📄 lcd.lst
字号:
C51 COMPILER V8.05a LCD 06/05/2007 06:25:15 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: D:\syssoft\keil805\C51\BIN\C51.EXE lcd.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "MATH.H"
2 #include "STC12.H"
3 #include "function.h"
4 #include "pin.h"
5 #include "variable.h"
6 #include<intrins.h>
7 void LCD_INIT(void)
8 {
9 1 lcd_reset();
10 1 lcd_preset();
11 1 lcd_clr(0);
12 1 //default display
13 1 lcd_predp();
14 1 }
15
16 void lcd_predp(void)
17 {
18 1 byte da3;
19 1 dp_chara(addr_Tc,0,1,0,12);
20 1 da3=da_TC;
21 1 da3=da_TC/10;
22 1 dp_chara(da3,0,1,30,6);
23 1 da3=da_TC%10;
24 1 dp_chara(da3,0,1,36,6);
25 1 dp_chara(addr_dot2,0,1,24,6);
26 1 /* if(!k_pw)
27 1 {
28 1 dp_chara(addr_OFF,0,1,30,18);
29 1 }
30 1 else
31 1 {
32 1 dp_chara(addr_ON,0,1,30,18);
33 1 } */
34 1 dp_chara(addr_Ref,0,2,0,18);
35 1 dp_chara(addr_dot2,0,2,24,6);
36 1 if(!k_ref)
37 1 {
38 2 dp_chara(addr_OFF,0,2,30,18);
39 2 }
40 1 else
41 1 {
42 2 dp_chara(addr_ON,0,2,30,18);
43 2 }
44 1 dp_chara(addr_Wind,0,3,0,30);
45 1 switch(k_fa%3)
46 1 {
47 2 case 0:
48 2 dp_chara(addr_OFF,0,3,30,18);
49 2 break;
50 2 case 1:
51 2 dp_chara(addr_ON,0,3,30,18);
52 2 break;
53 2 case 2:
54 2 dp_chara(addr_AUT,0,3,30,18);
55 2 break;
C51 COMPILER V8.05a LCD 06/05/2007 06:25:15 PAGE 2
56 2 default:
57 2 break;
58 2 }
59 1 dp_chara(addr_TA,1,1,0,18);
60 1 //display ta
61 1 //ECCF3=0
62 1 CCAPM3&=0xfe;
63 1 da3=da_TA/10;
64 1 dp_bigchara(da3,1,2,18,12);
65 1 da3=da_TA%10;
66 1 dp_bigchara(da3,1,2,30,12);
67 1 //Open CCF3 interrupt
68 1 CCF3=0;
69 1 CCAPM3|=0x01;
70 1
71 1 }
72
73
74
75 void LCD_Write_da(byte chip,byte page,byte column,unsigned char di,byte len)
76 {
77 1 byte i;
78 1 E1=0;
79 1 // nobusyness(0);
80 1 delay(5);
81 1 E2=0;
82 1 // nobusyness(1);
83 1 delay(5);
84 1 switch(chip)
85 1 {
86 2 case 0:
87 2 //return from read-modify-write mode
88 2 // lcd_commd=0xee;
89 2 // LCD_WriteIR1();
90 2 // set page
91 2 lcd_commd=0xb8;
92 2 lcd_commd|=page;
93 2 LCD_WriteIR1();
94 2 //set column
95 2 lcd_commd=column;
96 2 LCD_WriteIR1();
97 2 //set read-modify-write mode
98 2 lcd_commd=0xe0;
99 2 LCD_WriteIR1();
100 2 //Write data to d_ram
101 2 for(i=0;i<len;i++)
102 2 {
103 3 //read BF flag
104 3 // nobusyness(0);
105 3 delay(5);
106 3 // da=di;
107 3 // DB0=(da&0x01);
108 3 // DB1=(da&0x02);
109 3 // da= da|0x03;
110 3 // P1=da;
111 3 seri_to_para(di);
112 3 AA=1;
113 3 R_W=0;
114 3 E1=1;
115 3 delay(1);
116 3 E1=0;
117 3 delay(1);
C51 COMPILER V8.05a LCD 06/05/2007 06:25:15 PAGE 3
118 3 }
119 2 //return from read-modify-write mode
120 2 lcd_commd=0xee;
121 2 LCD_WriteIR1();
122 2 break;
123 2
124 2 case 1:
125 2 //return from read-modify-write mode
126 2 // lcd_commd=0xee;
127 2 // LCD_WriteIR2();
128 2 // set page
129 2 lcd_commd=0xb8;
130 2 lcd_commd|=page;
131 2 LCD_WriteIR2();
132 2 //set column
133 2 lcd_commd=column;
134 2 LCD_WriteIR2();
135 2 //set read-modify-write mode
136 2 lcd_commd=0xe0;
137 2 LCD_WriteIR2();
138 2 //Write data to d_ram
139 2 for(i=0;i<len;i++)
140 2 {
141 3 //read BF flag
142 3 // nobusyness(0);
143 3 delay(5);
144 3 // da=di;
145 3 // DB0=(da&0x01);
146 3 // DB1=(da&0x02);
147 3 // da= da|0x03;
148 3 // P1=(da);
149 3 seri_to_para(di);
150 3 AA=1;
151 3 R_W=0;
152 3 E2=1;
153 3 delay(1);
154 3 E2=0;
155 3 delay(1);
156 3 }
157 2 //return from read-modify-write mode
158 2 lcd_commd=0xee;
159 2 LCD_WriteIR2();
160 2 break;
161 2
162 2 default:
163 2 break;
164 2 }
165 1
166 1 }
167
168
169
170
171 //Write instruction to LCD
172 void LCD_WriteIR1(void)
173 {
174 1 E1=0;
175 1 // nobusyness(0);
176 1 delay(5);
177 1 E2=0;
178 1 // nobusyness(1);
179 1 delay(5);
C51 COMPILER V8.05a LCD 06/05/2007 06:25:15 PAGE 4
180 1 // DB0=(lcd_commd&0x01);
181 1 // DB1=(lcd_commd&0x02);
182 1 // lcd_commd|=0x03;
183 1 // P1=lcd_commd;
184 1 seri_to_para(lcd_commd);
185 1 AA=0; //indicate it is instruction
186 1 R_W=0;
187 1 E1=1;
188 1 delay(1);
189 1 E1=0;
190 1 delay(1);
191 1 }
192
193 void LCD_WriteIR2(void)
194 {
195 1 E1=0;
196 1 // nobusyness(0);
197 1 delay(5);
198 1 E2=0;
199 1 // nobusyness(1);
200 1 delay(5);
201 1 // DB0=(lcd_commd&0x01);
202 1 // DB1=(lcd_commd&0x02);
203 1 // lcd_commd|=0x03;
204 1 // P1=lcd_commd;
205 1 seri_to_para(lcd_commd);
206 1 AA=0; //indicate it is instruction
207 1 R_W=0;
208 1 E2=1;
209 1 delay(1);
210 1 E2=0;
211 1 delay(1);
212 1 }
213
214 void LCD_Write_cbuff(void)
215 {
216 1 byte i,da,len;
217 1 E1=0;
218 1 // nobusyness(0);
219 1 delay(5);
220 1 E2=0;
221 1 // nobusyness(1);
222 1 delay(5);
223 1 lcd_commd=0;
224 1 da=lcd_xchip;
225 1 switch(da)
226 1 {
227 2 case 0:
228 2 //return from read-modify-write mode
229 2 // lcd_commd=0xee;
230 2 // LCD_WriteIR1();
231 2 // set page
232 2 lcd_commd=lcd_xrow;
233 2 lcd_commd|=0xb8;
234 2 LCD_WriteIR1();
235 2 //set column
236 2 lcd_commd=lcd_xcolumn;
237 2 LCD_WriteIR1();
238 2 //set read-modify-write mode
239 2 lcd_commd=0xe0;
240 2 LCD_WriteIR1();
241 2 //Write data to d_ram
C51 COMPILER V8.05a LCD 06/05/2007 06:25:15 PAGE 5
242 2 len=lcd_xlen;
243 2 for(i=0;i<len;i++)
244 2 {
245 3 //read BF flag
246 3 // nobusyness(0);
247 3 delay(5);
248 3 da=*ptc++;
249 3 // DB0=(da&0x01);
250 3 // DB1=(da&0x02);
251 3 // da= da|0x03;
252 3 // P1=da;
253 3 seri_to_para(da);
254 3 AA=1;
255 3 R_W=0;
256 3 E1=1;
257 3 delay(1);
258 3 E1=0;
259 3 delay(1);
260 3 }
261 2 //return from read-modify-write mode
262 2 lcd_commd=0xee;
263 2 LCD_WriteIR1();
264 2 break;
265 2
266 2 case 1:
267 2 //return from read-modify-write mode
268 2 // lcd_commd=0xee;
269 2 // LCD_WriteIR2();
270 2 // set page
271 2 lcd_commd=lcd_xrow;
272 2 lcd_commd|=0xb8;
273 2 LCD_WriteIR2();
274 2 //set column
275 2 lcd_commd=lcd_xcolumn;
276 2 LCD_WriteIR2();
277 2 //set read-modify-write mode
278 2 lcd_commd=0xe0;
279 2 LCD_WriteIR2();
280 2 //Write data to d_ram
281 2 len=lcd_xlen;
282 2 for(i=0;i<len;i++)
283 2 {
284 3 //read BF flag
285 3 // nobusyness(0);
286 3 delay(5);
287 3 da=*ptc++;
288 3 // DB0=(da&0x01);
289 3 // DB1=(da&0x02);
290 3 // da= da|0x03;
291 3 // P1=da;
292 3 seri_to_para(da);
293 3 AA=1;
294 3 R_W=0;
295 3 E2=1;
296 3 delay(1);
297 3 E2=0;
298 3 delay(1);
299 3 }
300 2 //return from read-modify-write mode
301 2 lcd_commd=0xee;
302 2 LCD_WriteIR2();
303 2 break;
C51 COMPILER V8.05a LCD 06/05/2007 06:25:15 PAGE 6
304 2
305 2 default:
306 2 break;
307 2 }
308 1
309 1 }
310
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -