1、LCD1602和LCD12864液晶四位显示LCD1602和LCD12864液晶四位显示LCD1602和LCD12864是常用的液晶显示器件,与单片机连接有8位、4位和串口方式。8位显示时,首先要选择单片机的一个8位端口与液晶的数据引脚(D7-D0)相连,还需另选一个端口与RS、RW和E三个控制引脚相连,多余5个这个端口引脚与RS、RW和E三个控制引脚构成互斥关系,造成程序编程设计上的难度,如果舍弃这五个引脚,则需占用单片机的两个端口引脚才能完成液晶显示。在复杂电路设计中由于端口受限所以造成设计无法完成,须采用更多端口引脚的单片机才能完成设计。本文利用LCD1602和LCD12864均具有的四
2、位显示方式,将8位数据分成高四位和低四位分时传输,将单片机的低四位与液晶屏的高四位连接,将单片机的高四位与RS、RW和E三个控制引脚连接,完成了只用单片机一个端口即可完成显示任务,给设计带来极大的方便。1、LCD1602四位显示例下面的一个例子是使用P0口的低4位连接到LCD1602的高4位数据线。RS、RW、E则分别连接到P0.4、P0.5、P0.6 。只用一个端口即完成了与LCD1602的数据传输。如图2。这里要特别指出LCD1602的低四位虽然不用,但也要如图中所示那样通过1K电阻接高电平,否则LCD1602是无法工作的。图2 1602四位连接图源代码:/* * 1602.h * Aut
3、hor: 程静涛 */#ifndef _u1602_H_#define _u1602_H_#define uchar unsigned char#define uint unsigned intsbit RS =P04;sbit RW=P05;sbit EN =P06;/延时程序void delay1(uint i)uint j;while(-i!=0)for(j=0;j4);/送高四位数据到P0口,同时保持P0高四位。EN=1;delay1(5);EN=0;P0=0x80|(com & 0x0f); /送低四位数据到P0口,同时保持P0高四位。EN=1;delay1(5);EN=0;/写数据
4、void W_datd(uchar dat)EN=0;RS=1;RW=0;P0=0x90|(dat & 0xf0)4);/送高四位数据到P0口,同时保持P0高四位。EN=1;delay1(5);EN=0;P0=0x90|(dat & 0x0f); /送低四位数据到P0口,同时保持P0高四位。EN=1;delay1(5);EN_0;/lcd初始化程序void lcdinit()delay1(30);W_com(0x02);/光标归位W_com(0x28);/四位传输W_com(0x0c);/ 显示功能开,无光标、无闪烁。W_com(0x06);/ 写入新数据后光标右移W_com(0x01);/清
5、屏delay1(10);/在指定位置显示一个字符,x为行,Y为列;void displaydat(uchar x,uchar y,uchar one)uchar add;if (x = 0) add=0x80+y;else add=0xc0+y;W_com(add);W_datd(one);/显示字符串void displaystr(uchar x,uchar y,uchar *s)y=y&0x0f;while(*s) displaydat(x,y,*s);y+;s+;#endif /* 1602_H_ */主程序/* Processor: AT89C52 * Compiler: Keil f
6、or 8051 */#include #include #include u1602.h#define uint unsigned int#define uchar unsigned charuchar table=LCD1602 Line 4;uchar table1=Welcome to study;void main(void) lcdinit(); displaystr(0,0,table); delay1(5); displaystr(1,0,table1); / Write your code here while (1) ; 2、LCD12864四位显示例下面的一个例子是使用P0
7、口的低4位连接到LCD12864的高4位数据线。RS、RW、E则分别连接到P0.4、P0.5、P0.6 。只用一个端口即完成了与LCD12864的数据传输。如图3。这里要特别指出LCD12864的低四位虽然不用,但也要如图中所示那样通过1K电阻接高电平,否则LCD12864是无法工作的。如图3图3 LCD12864四位显示#include #include #include #define dely(); _nop_();_nop_();_nop_();_nop_();#define uchar unsigned char#define uint unsigned int/*12864 端口定
8、义*/#define LCD_data P0 /数据口sbit RS = P04; /寄存器选择输入 sbitRW = P05; /液晶读/写控制sbitE = P06; /液晶使能控制uchar code str1 = 欢迎学习单片机;uchar code str2 = 字符显示模式;uchar code str3 = LCD12864四位 ;uchar code dis4 = 交流QQ:812549630 ;uchar code table1=/自定义字库 0x02,0x00,0x03,0x80,0x03,0x83,0xFF,0xFF,0xFF,0xFF,0xC3,0x83,0xFF,0x
9、FF,0xFF,0xFF, 0xC3,0x83,0xFF,0xFF,0xFF,0xFF,0x03,0x80,0x03,0x82,0x03,0xFE,0x01,0xFC,0x00,0xF8,/电 0x00,0x0C,0x7F,0xFE,0x7F,0xFF,0x00,0x1C,0x00,0x78,0x01,0xE0,0x01,0xC0,0x00,0xC0, 0xFF,0xFF,0x7F,0xFF,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x1F,0xC0,0x0F,0xC0,0x03,0x80,/子 0x03,0x18,0x33,0x1C,0x33,0x1C,0x33,0x18
10、,0x33,0x18,0xFF,0xFF,0xFF,0xFF,0x33,0x18, 0x33,0x18,0x33,0x18,0x33,0xF8,0x33,0xF8,0x30,0x01,0x30,0x03,0x3F,0xFF,0x1F,0xFE,/世 0x30,0x0C,0x3F,0xFE,0x3F,0xFC,0x33,0xCC,0x3F,0xFC,0x3F,0xFC,0x33,0xCC,0x3F,0xFC, 0x3F,0xFC,0x0F,0x60,0x1E,0x30,0x3E,0x3C,0x76,0x3E,0xE6,0x37,0x0E,0x30,0x3C,0x30;/界 unsigned ch
11、ar code Photo1 = /图形0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x18,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
12、0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x14,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF2,0xFE,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF2,0x88,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF7,0xE8,0xF0,0x00,0x00,0x00,
13、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF2,0xA8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF3,0xAA,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF6,0xEE,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xAC,
14、0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF3,0x8C,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x13,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x20,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,
15、0x00,0x00,0xF0,0x40,0xF0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0xF0,0x30,0xF0,0x00,0x00,0x00,0x00,0x0F,0xFE,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0xF0,0x00,0xF0,0x00,0x00,0x00,0x00,0x3F,0xFF,0x80,0x00,0x00,0x3C,0x00,0x00,0x00,0xF7,0xFF,0xF0,0x00,0x00,0x00,0xFE,0x7F,0x0F,0xC0,
16、0x00,0x00,0x3C,0x00,0x00,0x00,0xF0,0x20,0xF0,0x00,0x00,0x03,0xFF,0xF8,0x03,0xE0,0x00,0x00,0x3C,0x00,0x00,0x00,0xF3,0xFE,0xF0,0x00,0x00,0x07,0xFF,0xF0,0x3F,0xFF,0x80,0x00,0x3C,0x00,0x00,0x00,0xF2,0x22,0xF0,0x00,0x00,0x0F,0x03,0xE0,0x3F,0xFF,0x83,0xFC,0x3C,0x00,0x00,0x00,0xF2,0x22,0xF0,0x00,0x0F,0xEE,
17、0x01,0xC0,0x3F,0xFF,0x9F,0xFF,0x3C,0x1F,0xC0,0x00,0xF2,0x22,0xF0,0x00,0x3F,0xFE,0x01,0xE0,0x3B,0xBB,0xFF,0xFF,0xFE,0xFF,0xF8,0x00,0xF2,0x22,0xF7,0xE0,0xFF,0xFC,0x01,0xE0,0x3B,0xBB,0xF8,0x03,0xFF,0xFF,0xFC,0x00,0xF2,0x22,0xFF,0xF9,0xF0,0x1C,0x00,0x00,0x3B,0xBB,0xF0,0x00,0xFF,0xE0,0x3E,0x00,0xF0,0x20,
18、0xFF,0xFF,0xC0,0x00,0x00,0x00,0x3B,0xBB,0xC0,0x03,0xFF,0xC0,0x0F,0x00,0xF0,0x00,0xF8,0x3F,0xBF,0xFF,0xFF,0xE0,0x3B,0xBB,0x9F,0xFB,0xFF,0xE0,0x07,0xFE,0xF0,0x00,0xF0,0x0F,0x3F,0xFF,0xFF,0xE0,0x3B,0xBB,0x9F,0xFB,0xFF,0xC0,0x03,0xFE,0xF3,0xFC,0xF0,0x0E,0x3F,0xFF,0xFF,0xE0,0x3B,0xBB,0x9F,0xFB,0xFF,0xC0,
19、0x07,0xFE,0xF2,0x04,0xF0,0x1C,0x3C,0x00,0x00,0xE0,0x3B,0xBB,0x9F,0xF9,0xFF,0xC0,0x0F,0x80,0xF3,0x0C,0xF0,0x1C,0x3F,0xFF,0xFF,0xE0,0x3B,0xBB,0x9F,0xF9,0xFF,0xC0,0x0E,0x00,0xF2,0xB4,0xF0,0x38,0x3F,0xFF,0xFF,0xE0,0x3B,0xBB,0x9F,0xF8,0xFF,0x80,0x1E,0x00,0xF2,0x64,0xF0,0x38,0x3F,0xFF,0xFF,0xE0,0x3B,0xBB,
20、0x9F,0xFF,0xFF,0xF0,0x1C,0x00,0xF2,0x94,0xF0,0x30,0x3F,0xFF,0xFF,0xE0,0x3B,0xBB,0x9F,0xFF,0xFF,0xF0,0x1C,0x00,0xF3,0x0C,0xF0,0x00,0x3F,0xFF,0xFF,0xE0,0x3B,0xBB,0x9F,0xFF,0xFF,0xF0,0x00,0x00,0xF4,0x04,0xF0,0x00,0x3F,0xFF,0xFF,0xE0,0x3B,0xBB,0x9F,0xFF,0x6F,0xB0,0x00,0x00,0xF8,0x06,0xF0,0x00,0x3F,0xFF,
21、0xFF,0xE0,0x3B,0xBB,0x9F,0xFF,0xFF,0xB0,0x00,0x00,0xF0,0x03,0xF0,0x00,0x3F,0xFF,0xFF,0xEF,0xFB,0xBB,0x9F,0xFF,0xFF,0xB0,0x00,0x00,0xF0,0x00,0xF7,0xFF,0xFF,0xFF,0xFB,0x6F,0xFB,0xBB,0x9F,0xFF,0x7F,0xF0,0x00,0x00,0xF0,0x00,0xF7,0xFF,0xFF,0xFF,0xFF,0x6F,0xFB,0xBB,0x9F,0xFF,0x7F,0xF0,0x00,0x00,0xF1,0x0C,
22、0xF7,0xFF,0xFF,0xFF,0xFF,0x6F,0xFB,0xBB,0x9F,0xFF,0xFF,0xB0,0x00,0x00,0xF2,0x18,0xF7,0xFF,0xFF,0xFF,0xFF,0x6F,0xFB,0xBB,0x9F,0xFF,0xFF,0xB0,0x00,0x00,0xF7,0xBE,0xF7,0xFF,0xFF,0xFF,0xFF,0x6F,0xFB,0xBB,0x9F,0xFF,0x7F,0xF0,0x00,0x00,0xFD,0x22,0xF7,0xFF,0xFF,0xFF,0xFF,0x6F,0xFB,0xBB,0x9F,0xFF,0x7F,0xFF,
23、0xFF,0xFF,0xF3,0x3E,0xF7,0xFF,0xFC,0x00,0x07,0x6F,0xFB,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xFD,0x22,0xF7,0xFF,0xFC,0x00,0x07,0x6F,0xFB,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xF1,0xBE,0xF7,0xFF,0xFC,0x00,0x00,0x0F,0xFB,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xF3,0x94,0xF7,0xFF,0xFD,0xBB,0xF7,0x6F,0xFB,0xFB,
24、0xBB,0xFF,0x7F,0xFF,0xFF,0xFF,0xF7,0x94,0xF7,0xFF,0xFF,0xBB,0xF7,0x6F,0xFB,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xF9,0x94,0xF7,0xFF,0xFF,0xBB,0xF7,0x6F,0xFB,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFE,0xF7,0x94,0xF7,0xFF,0xFD,0xBB,0xF7,0x6F,0xFB,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFE,0xF9,0x14,0xF7,0xFF,0xFD,0xBB,
25、0xB7,0x6F,0xFB,0xFB,0xBB,0xFF,0x7F,0xFF,0xFF,0xFE,0xF7,0xA4,0xF7,0xFF,0xFF,0xBB,0xF7,0x6F,0xFB,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFE,0xF9,0x42,0xF7,0xFF,0xFF,0xBB,0xF7,0x6F,0xFB,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xF6,0x01,0xF7,0xFF,0xFD,0xBB,0xF7,0x6F,0xFB,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xF0,0x00,
26、0xF7,0xFF,0xFD,0xBB,0xF7,0x6F,0xFB,0xFB,0xBB,0xFF,0x7F,0xFF,0xFF,0xFF,0xF0,0x00,0xF7,0xFF,0xFF,0xBB,0xF7,0x6F,0xFB,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFE,0xF0,0x00,0xF7,0xFF,0xFF,0xBB,0xF7,0x6F,0xFB,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFE,0xF0,0x00,0xF7,0xFF,0xFD,0xBB,0xB7,0x6F,0xFB,0xFF,0xFF,0xBF,0x7F,0xBF,
27、0xFF,0xFE,0xF0,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF0,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
28、0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00; void Disply(uchar X,uchar Y); /确定显示位置/*延时子程序*/void Delay1ms(unsigned int count) unsigned int i,j; for(i=0;icount;i+) for(j=0;j4); dely(); E = 1; dely(); E = 0;/ LCD_data=(LCD_data&0xf0)|(cmd & 0x0f); / dely(); /E = 1; / dely(); / E = 0;/*/写指令数据到LCD *RS=L,RW=L,E=高脉冲,D0-D7=指令码 /*/void Lcd_com(uchar cmd) Delay1ms(10); RS = 0; RW = 0; E = 0; _nop_(); _nop_(); LCD_data=0x80|(cmd & 0xf0)4); dely(); E = 1; dely(); E = 0; LCD_data=0x80|(cmd & 0x0f); dely(); E = 1; dely(); E = 0;/*/*写显示数据到LCD *RS=H,RW=L,E=高脉冲,D0-D7=数据 /*/void LCD_Write(u
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1