电子设计工程师认证课程
3.5.3 设计内容
1、 实验仪1602液晶接口定义
试验仪LCD显示器接口定义如图3.30 所示。
图
3.30 1602液晶模块的双26针插脚位置及定义
DB0~DB7对应8155的A口,RE 对应P1.5,RW对应P1.6,E对应P1.7
2、原理图
U2VCCVCCC10.1uFDB0DB1DB2DB3DB4DB5DB6DB7123RS4RW5E678910111213141516GNDVDDVORSRWEDB0DB1DB2DB3DB4DB5DB6DB7BL1BL2J121CON2VCCR11020182018FM1602C 图3.31 1602液晶原理图
3、 原理框图
26
电子设计工程师认证课程
总线信号8155 I/O扩展电路液晶数据口4、 软件流程图(1)总体流程
1602液晶P1.5~P1.7 LCD控制端图3.32 1602液晶原理框图
开始清屏8155初始化设置输入方式液晶初始化设置显示方式键盘初始化键盘 是否输入?YN液晶显示
图3.33软件总体流程
27
电子设计工程师认证课程
(2)写显示数据流程
读忙标志位RS=1RW =0 E=1 送数据 0E= 图3.34 写显示数据流程
28
电子设计工程师认证课程
(3)写指令流程
读忙标志位RS=0(4)读忙标志位流程
例3.3 1602液晶接口程序void wrd(uchar dat)//写数据 { busy();
rs=1;
RW =0E=1 送指令 E= 0 图3.35 写控制指令流程
RS=0RW =1E=1读数据,最高位为忙标志 图3.36 读忙标志位流程
29
电子设计工程师认证课程
}
void wri(uchar dat)//写指令 { }
void busy(void) { }
IO定义如下所示: #define rs P1_5 #define rw P1_6 #define en P1_7
#define PORT XBYTE[0x0fd00] #define PORT_A XBYTE[0x0fd01] #define PORT_B XBYTE[0x0fd02] #define PORT_C XBYTE[0x0fd03] 5、调试步骤
9、 10、 11、 12、
把电源模块、CPU模块、8155 I/O扩展模块、1602液晶模块、串口通信模块插在正确的位置上,并把跳帽进行正确短接(J1短接则液晶背光点亮) 建立Keil工程,编辑、编译源代码并生成可下载的HEX文件 连接串口线,通过串口通信模块使用STC-ISP软件下载程序 调试,直到能够正确显示 PORT_A=0xff; rs=0; rw=1; en=1; PORT=0x00; PORT=0x0f;
//把8155A口由输出状态转为输入状态 //把8155A口由输入状态转为输出状态
while(PORT_A & 0x80); busy(); rs=0; rw=0; en=1; PORT_A=dat; en=0; rw=0; en=1; PORT_A=dat; en=0;
30