📄 lcd.lst
字号:
C51 COMPILER V6.02 LCD 03/10/2006 14:34:51 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN LCD.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE LCD.C DB OE SMALL ROM(LARGE)
stmt level source
1
2 #include "defineh.h"
3 #include "externh.h"
4 #include "lcd.h"
5 //#include "gloge.h"
6
7 sbit mLcdRs = P1^0; /*LCD数据和命令选择低为命令,高为数据*/
8 sbit mLcdClk = P1^1; /*LCD读写时钟*/
9 void d_work1(void); //显示有信息,请按井字键查询
10
11 /************************************************/
12 void disttime(void)
13 {
14 1 uchar i;
15 1 cleardis_buffer();
16 1 for(i=0;i<20;i++)
17 1 dis_buffer[i]=display21[i];
18 1 i=time[0];
19 1 i>>=4;
20 1 if(i>0x02) i=0; //月份的十位//判断显示的时间是否为符合正常要求
21 1 dis_buffer[2]=distable[i];
22 1 i=time[0];
23 1 i&=0x0f;
24 1 if(i>0x0a) i=0; //月份的个位//判断显示的时间是否为符合正常要求
25 1 dis_buffer[3]=distable[i];
26 1 i=time[1];
27 1 i>>=4;
28 1 if(i>0x04) i=0; //日期的十位://判断显示的时间是否为符合正常要求
29 1 dis_buffer[6]=distable[i];
30 1 i=time[1];
31 1 i&=0x0f;
32 1 if(i>0x0a) i=0; //日期的个位://判断显示的时间是否为符合正常要求
33 1 dis_buffer[7]=distable[i];
34 1 i=time[2];
35 1 i>>=4;
36 1 if(i>0x06) i=0; //小时的十位//判断显示的时间是否为符合正常要求
37 1 dis_buffer[12]=distable[i];
38 1 i=time[2];
39 1 i&=0x0f;
40 1 if(i>0x0a) i=0; //小时的个位 //判断显示的时间是否为符合正常要求
41 1 dis_buffer[13]=distable[i];
42 1 i=time[3];
43 1 i>>=4;
44 1 if(i>0x06) i=0; //分钟的十位//判断显示的时间是否为符合正常要求
45 1 dis_buffer[15]=distable[i];
46 1 i=time[3];
47 1 i&=0x0f;
48 1 if(i>0x0a) i=0; //分钟的个位 //判断显示的时间是否为符合正常要求
49 1 dis_buffer[16]=distable[i];
50 1 disLCD(SECONDLINE);
51 1 }
52 /************************************************/
53 void dis(uchar disnum)
54 {
55 1 switch(disnum)
C51 COMPILER V6.02 LCD 03/10/2006 14:34:51 PAGE 2
56 1 {
57 2 case 1:
58 2 #if DOORFIVE
{
display(FIRSTLINE,display101);
display(SECONDLINE,display102);
}
#else
64 2
65 2 display(FIRSTLINE,display1);
66 2 display(SECONDLINE,display2);
67 2 #endif
68 2 break;
69 2
70 2 case 2: display(FIRSTLINE,display3);display(SECONDLINE,display4); break;
71 2 case 3:
72 2 #if DOORSEVEN
display(SECONDLINE,display107);
#elif DOORFIVE
display(SECONDLINE,display106);
#endif
77 2 #if DOORFIVE
{
display(FIRSTLINE,display105);
}
#else
84 2 {
85 3 display(FIRSTLINE,display5);
86 3 display(SECONDLINE,display6);
87 3 }
88 2 #endif
89 2
90 2
91 2 break;
92 2 case 4: display(FIRSTLINE,display7);display(SECONDLINE,display8); break;
93 2 case 5: display(FIRSTLINE,display9);display(SECONDLINE,display10); break;
94 2 case 6: d_work1(); //显示短信息
95 2 break;
96 2 case 7: { if(timedis_bit) //显示时间
97 3 {
98 4 display(FIRSTLINE,display20);
99 4 disttime();
100 4 //timedis_bit=0;
101 4 }
102 3 else {
103 4 distime=DELATIMEEND;
104 4 //display(FIRSTLINE,display1);
105 4 //display(SECONDLINE,display2);
106 4 }
107 3 }
108 2 break;
109 2
110 2 /* case 7: display(FIRSTLINE,disENROOM); break;
111 2 case 8: display(FIRSTLINE,disWAIT); break;
112 2 case 9: display(FIRSTLINE,disMIMA); break;
113 2 case 10: display(FIRSTLINE,disSORRY); break;
114 2 case 11: display(SECONDLINE,disERROR); break;
115 2 case 12: display(FIRSTLINE,disPLEASE); break;
116 2 case 13: display(FIRSTLINE,disUSER); break;
117 2 case 14: display(SECONDLINE,disCEN); break;
C51 COMPILER V6.02 LCD 03/10/2006 14:34:51 PAGE 3
118 2 case 15: display(THREELINE,disSYS); break;
119 2 case 16: display(FIRSTLINE,disUSERMI); break;
120 2 case 17: display(FIRSTLINE,disCENMI); break;
121 2 case 18: display(SECONDLINE,disONOFF); break;
122 2 case 19: display(THREELINE,disIDCARD); break;
123 2 case 20: display(FIRSTLINE,disIDADD); break;
124 2 case 21: display(SECONDLINE,disIDSUB); break;
125 2
126 2 case 23: display(FIRSTLINE,disLOUNUM); break;
127 2 case 24: display(SECONDLINE,disMASTER); break;
128 2 case 26: display(FOURLINE,disTRYUSE); break; */
129 2
130 2 default: break;
131 2 }
132 1 }
133 void d_work1(void)
134 {
135 1 uchar wu;
136 1 disclr();
137 1 for(wu=0;wu<20;wu++)
138 1 {
139 2 dis_buffer[wu]=0x20;
140 2 }
141 1 dis_buffer[0]=0x20;
142 1 dis_buffer[1]=0x20;
143 1 dis_buffer[2]=0x20;
144 1 dis_buffer[3]=0x20;
145 1 dis_buffer[4]=0xD3;
146 1 dis_buffer[5]=0xD0;
147 1 dis_buffer[6]=0x20;
148 1 dis_buffer[7]=0x20;
149 1 dis_buffer[8]=0xD0;
150 1 dis_buffer[9]=0xC5;
151 1 dis_buffer[10]=0x20;
152 1 dis_buffer[11]=0x20;
153 1 dis_buffer[12]=0xCF;
154 1 dis_buffer[13]=0xA2;
155 1 //disLCD(FIRSTLINE);
156 1 display(FIRSTLINE,disp22);
157 1
158 1 /*dis_buffer[0]=0x20;
159 1 dis_buffer[1]=0x20;
160 1 dis_buffer[2]=0xc7;
161 1 dis_buffer[3]=0xe8;
162 1 dis_buffer[4]=0xd4;
163 1 dis_buffer[5]=0xc4;
164 1 dis_buffer[6]=0xD0;
165 1 dis_buffer[7]=0xC5;
166 1 dis_buffer[8]=0xCF;
167 1 dis_buffer[9]=0xA2;
168 1 for(wu=10;wu<20;wu++)
169 1 {
170 1 dis_buffer[wu]=0x20;
171 1 }
172 1 for(wu=0;wu<20;wu++)
173 1 {
174 1 dis_buffer[wu]=0x20;
175 1 }
176 1 disLCD(SECONDLINE);
177 1 */
178 1
179 1 //display(SECONDLINE,disp23);
C51 COMPILER V6.02 LCD 03/10/2006 14:34:51 PAGE 4
180 1
181 1 }
182 /************************************************/
183 void disLCD(uchar linenum)
184 {
185 1 uchar i;
186 1 ET0=0; //关闭TIME0 TIMEE2中断
187 1 ET2=0;
188 1 writereg(linenum);
189 1 delays100us();
190 1 for(i=0;i<20;i++)
191 1 {
192 2 writedata(dis_buffer[i]);
193 2 delays100us();
194 2 }
195 1 ET0=1; //重新开中断
196 1 ET2=1;
197 1 }
198
199 void disLCDinint(uchar linenum)
200 {
201 1 uchar i;
202 1 ET0=0; //关闭TIME0 TIMEE2中断
203 1 ET2=0;
204 1 writereg(linenum);
205 1 delays100us();
206 1 for(i=0;i<20;i++)
207 1 {
208 2 writedata(dis_buffer[i]);
209 2 delays100us();
210 2 }
211 1 ET0=1; //重新开中断
212 1 ET2=1;
213 1 }
214 /**********************************************/
215 void writereg(uchar wrdata) /*写命令到LCD寄存器*/
216 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -