lcd1602引脚功能(lcd1602)
你们好,最近小未来发现有诸多的小伙伴们对于lcd1602引脚功能,lcd1602这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
1、 新建工程
2、 新代码文件
3、 将代码复制到文件
4、 代码:
5、
10、 //头文件:
11、 #include reg52.h
12、
33、 void main(void)
34、 {
35、 Delay400Ms(); //启动等待,等LCD讲入工作状态
36、 LCDInit(); //初始化
37、 Delay5Ms(); //延时片刻(可不要)
38、 DisplayListChar(0, 0, uctech);
39、 DisplayListChar(0, 5, net);
40、 ReadDataLCD();//测试用句无意义
41、 while(1);
42、 }
43、
44、 void WriteDataLCD(unsigned char WDLCD)
45、 {
46、 ReadStatusLCD(); //检测忙
47、 LCD_Data=WDLCD;
48、 LCD_RS=1;
49、 LCD_RW=0;
50、 LCD_E=0; //若晶振速度太高可以在这后加小的延时
51、 LCD_E=0; //延时
52、 LCD_E=1;
53、 }
54、
55、 void WriteCommandLCD(unsigned char WCLCD,BuysC) //BuysC为0时忽略忙检测
56、 {
57、 if (BuysC) ReadStatusLCD(); //根据需要检测忙
58、 LCD_Data=WCLCD;
59、 LCD_RS=0;
60、 LCD_RW=0;
61、 LCD_E=0;
62、 LCD_E=0;
63、 LCD_E=1;
64、 }
65、
66、 unsigned char ReadDataLCD(void)
67、 {
68、 LCD_RS=1;
69、 LCD_RW=1;
70、 LCD_E=0;
71、 LCD_E=0;
72、 LCD_E=1;
73、 return(LCD_Data);
74、 }
75、
76、 unsigned char ReadStatusLCD(void)
77、 {
78、 LCD_Data=0xFF;
79、 LCD_RS=0;
80、 LCD_RW=1;
81、 LCD_E=0;
82、 LCD_E=0;
83、 LCD_E=1;
84、 while (LCD_Data Busy); //检测忙信号
85、 return(LCD_Data);
86、 }
87、
88、 void LCDInit(void)
89、 {
90、 LCD_Data=0;
91、 WriteCommandLCD(0x38,0); //三次模式设置,不检测忙信号
92、 Delay5Ms();
93、 WriteCommandLCD(0x38,0);
94、 Delay5Ms();
95、 WriteCommandLCD(0x38,0);
96、 Delay5Ms();
97、 WriteCommandLCD(0x38,1); //显示模式设置,开始要求每次检测忙信号
98、 WriteCommandLCD(0x08,1); //关闭显示
99、 WriteCommandLCD(0x01,1); //显示清屏
100、 WriteCommandLCD(0x06,1); //显示光标移动设置
101、 WriteCommandLCD(0x0C,1); //显示开及光标设置
102、 }
103、
104、 void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
105、 {
106、 Y=0x1;
107、 X=0xF; //限制X不能大于15,Y不能大于1
108、 if (Y) X |=0x40; //当要显示第二行时地址码+0x40;
109、 X |=0x80; //算出指令码
110、 WriteCommandLCD(X, 0); //这里不检测忙信号,发送地址码
111、 WriteDataLCD(DData);
112、 }
113、
114、 void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
115、 {
116、 unsigned char ListLength;
117、 ListLength=0;
118、 Y=0x1;
119、 X=0xF; //限制X不能大于15,Y不能大于1
120、 while (DData[ListLength]=0x20){ //若到达字串尾则退出
121、 if (X=0xF){ //X坐标应小于0xF
122、 DisplayOneChar(X, Y, DData[ListLength]); //显示单个字符
123、 ListLength++;
124、 X++;
125、 }
126、 }
127、 }
128、
129、 void Delay5Ms(void)
130、 {
131、 unsigned int TempCyc=5552;
132、 while(TempCyc--);
133、 }
134、
135、 void Delay400Ms(void)
136、 {
137、 unsigned char TempCycA=5;
138、 unsigned int TempCycB;
139、 while(TempCycA--){
140、 TempCycB=7269;
141、 while(TempCycB--);
142、 }
143、 }
144、 把文件添加到组
145、 编译
146、 代码简介。具体请看看代码注释
147、 如果你改了代码,就要重新编译
148、 连线,下载
149、 效果
以上就是lcd1602这篇文章的一些介绍,希望对大家有所帮助。
免责声明:本文章由会员“高俊一”发布如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系