任务实施

更新于 2026年10月10日 版权声明
任务实施

一、任务分析

根据电路分析可知:单片机的P0端口作为LCD1602的数据,LCD1602控制端口RS、RW、EN分别连单片机的P2.0、P2.1、P2.2这3个端口。

LCD1602驱动函数如下:

●判忙函数void busy()

该函数用于读取LCD1602的状态,“忙”就继续读取状态,“闲”就执行后面的命令。

●写命令函数 void Write_cmd()

该函数用于向LCD1602发送命令。

●写数据函数 void Write_data()

该函数用于向LCD1602写入数据。

●初始化程序void Lcd_init()

该函数用于初始化LCD1602。

设置地址指针、数据指针:

“I Like LCD”字符在LCD1602第一行中间显示,所以数据地址为:0x80+0x03。

二、程序设计

程序执行流程图如图7-1-5所示。

参考程序:

#include<reg51.h>

#define uint unsigned int

#define uchar unsigned char

#define DATA P0

sbit rs=P2^0;

sbit rw=P2^1;

sbit en=P2^2;

sbit BF=P0^7;       //用于判忙

void delayms (uint x)   //延时函数(https://www.daowen.com)

{

图示

图7-1-5 程序流程图

图示

图示

图示

三、电路仿真

1.绘制电路图

打开Proteus软件,建立“LCD1602”文件,放置元器件,所需元件见表7-1-3。

表7-1-3 元件清单

图示

把所需元件放置完后,连接电路,完成后的电路图如图7-1-6所示。

图示

图7-1-6 绘制电路图

2.编写程序

打开Keil软件,新建“LCD1602”工程文件,新建“1602.c”文件,编写程序,并生成hex文件。编写完成后的部分程序如图7-1-7所示。

3.电路仿真

双击“AT89C51”元件,在“Program File”栏中选择已经生成的“1602.hex”文件,导入单片机中,单击“仿真”按钮进行电路程序仿真。仿真结果如图7-1-8所示。

仿真结果显示:1602显示“I Like LCD”,同时在单片机、显示屏和排阻的每个引脚旁边会出现一个小方块,红色的方块表示高电平,蓝色的方块表示低电平。通过方块颜色的变化可以很直观地知道每个引脚电平的变化。

图示

仿真视频

图示

图7-1-7 编写程序

图示

图7-1-8 仿真结果

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)