📄 lcd.lst
字号:
C51 COMPILER V7.20 LCD 08/13/2008 21:53:02 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN LCD.OBJ
COMPILER INVOKED BY: D:\基地\Keil\C51\BIN\C51.EXE LCD.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "reg51.h"
2 //#include<SST/SST89x5x4.h>
3 #include "lcd.h"
4
5
6
7
8 /*
9 void Out_lcd(void)
10 //void main()
11 {
12 char i=0;
13
14 LcdInit();
15
16 PutStr(0,0,"si ge zi");
17 PutStr(0,1,"hu yang");
18 while(1);
19
20 }
21
22
23 /**************************************
24 说明:LCD写函数,完成lcd写操作的物理时序
25 value:写的具体数值
26 RS: 0-写指令
27 1-写数据
28 **************************************/
29
30 void LcdWrite(unsigned char value,bit RS)
31 {
32 1 /*1.设置RS信号线*/
33 1 Lcd_RS=RS;
34 1 /*2、设置RW信号线为读*/
35 1 Lcd_RW=0;
36 1 /*设置LCD片选*/
37 1 SELECT_LCD();
38 1 /*4、通过P0端口写值*/
39 1 P0=value;
40 1 /*5、锁存*/
41 1 SELECT_NONE();
42 1 }
43
44
45
46
47
48
49
50 /**************************************
51 说明: LCD读函数,完成LCD读操作的物理时序
52 RS: 0-写指令
53 1-写数据
54 Return:读出的具体值
55 **************************************/
C51 COMPILER V7.20 LCD 08/13/2008 21:53:02 PAGE 2
56
57 unsigned char LcdRead(bit RS)
58 {
59 1 unsigned char rt;
60 1 /*1 、设置RS信号线*/
61 1 Lcd_RS=RS;
62 1 /*2、设置RW信号线为读*/
63 1 Lcd_RW=1;
64 1 /*3、释放P0口*/
65 1 P0=0xff;
66 1 /*4、设置LCD片选*/
67 1 SELECT_LCD();
68 1 SELECT_LCD();
69 1 SELECT_LCD();
70 1 SELECT_LCD();
71 1 /*5、通过P0端口读值*/
72 1 rt=P0;
73 1 /*6、锁存*/
74 1 SELECT_NONE();
75 1
76 1 return rt;
77 1
78 1 }
79
80
81
82
83 /******************************
84 说明; LCD写指令
85 Value:写的具体值
86 Attrib:0-不检测忙信号
87 1-监测忙信号
88 ******************************/
89 void LcdWriteCmd(unsigned char value,unsigned char attrib)
90 {
91 1 /*监测忙状态*/
92 1 if(attrib)
93 1 while(LcdRead(0)&0x80);
94 1
95 1 LcdWrite(value,0);
96 1 }
97
98
99
100
101 /****************************
102 说明: LCD写数据
103 ***************************/
104 void LcdWriteData(unsigned char value)
105 {
106 1 /*监测忙状态*/
107 1 while(LcdRead(0)&0x80);
108 1
109 1 LcdWrite(value,1);
110 1 }
111
112
113 /****************************
114 说明:Lc读数据
115 *************************
116 unsigned char LcdReadData()
117 {
C51 COMPILER V7.20 LCD 08/13/2008 21:53:02 PAGE 3
118 //*监测忙状态*
119 while(LcdRead(0)&0x80);
120 return LcdRead(1);
121 }
122 */
123
124 /**************************
125 说明: 短延时,s5Ms
126 **************************/
127 void Delay5Ms(void)
128 {
129 1 unsigned int i=5552;
130 1 while(i--);
131 1 }
132
133
134 /*************************
135 说明:长延时,400Ms
136 **************************/
137 void Delay400Ms(void)
138 {
139 1 unsigned int i=80;
140 1 while(i--)
141 1 Delay5Ms();
142 1 }
143
144
145 /*********************************************
146 说明: LCD初始化函数,需要按照产品说明书完成
147 *********************************************/
148 void LcdInit(void)
149 {
150 1 Delay400Ms();
151 1
152 1 /*写指令0x38连续3次,不检测忙信号*/
153 1 LcdWriteCmd(0x38,0);
154 1 Delay5Ms();
155 1
156 1 LcdWriteCmd(0x38,0);
157 1 Delay5Ms();
158 1
159 1 LcdWriteCmd(0x38,0);
160 1 Delay5Ms();
161 1
162 1 //*以后的读写操作均要监测判断忙信号*/
163 1 LcdWriteCmd(0x38,1);
164 1 //*先设置关屏*/
165 1 LcdWriteCmd(0x08,1);
166 1 //*清屏*/
167 1 LcdWriteCmd(0x01,1);
168 1 //*设置光标显示模式*/
169 1 LcdWriteCmd(0x06,1);
170 1 //*开光标屏显示光
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -