📄 file_lcd.lst
字号:
202 1
203 1 }
204 //////////////////////////////////////////////////////
205 //左半屏开显示子程序
206 void DISP1()
207 {
208 1
209 1 TRANS=0X3F; //开显示指令
210 1 TRANS1();
211 1 LCDSTA1();
212 1
213 1 }
214 /////////////////////////////////////////////////////
215 //左半屏关显示子程序
216 void DISOFF1()
217 {
218 1
219 1 TRANS=0X3E; //关显示指令
220 1 TRANS1();
221 1 LCDSTA1();
222 1
223 1 }
224 //////////////////////////////////////////////////////////////
225 //左半屏清屏函数
226 void L_clear()
227 {
228 1 PAGEADD=0XB8;
229 1 for(PAGENUM=0X08;PAGENUM>0;PAGENUM--)
230 1 {
231 2 TRANS=PAGEADD;
232 2 TRANS1();
233 2 CLMADD=0X00;
234 2 for(CLMSUM=0X40;CLMSUM>0;CLMSUM--)
C51 COMPILER V7.50 FILE_LCD 09/13/2007 09:33:44 PAGE 6
235 2 {
236 3 LCDSTA1();
237 3 WRITE=0X00;
238 3 WRITE1();
239 3 }
240 2 PAGEADD++;
241 2 }
242 1 }
243
244 ///////////////////////////////////////////////////////////
245 //左半屏初始化子程序
246 void lcd1()
247 {
248 1 DISOFF1(); //关显示
249 1 LCDSTA1(); //等待写入
250 1 DISP1(); //开显示
251 1 LCDSTA1(); //等待写入
252 1 L_clear(); //左半屏清屏
253 1 }
254
255 //////////////////////////////////////////////////////////
256 //************************************************
257 ////////////////////////////////////////////////////////
258 //右半屏处理
259 ///////////////////////////////////////////////////////
260 //延时保证写入
261 void LCDSTA2()
262 {
263 1 asm("nop");
264 1 asm("nop");
265 1 asm("nop");
266 1 asm("nop");
267 1 asm("nop");
268 1 asm("nop");
269 1 asm("nop");
270 1 asm("nop");
271 1 asm("nop");
272 1 asm("nop");
273 1 asm("nop");
274 1 asm("nop");
275 1 asm("nop");
276 1 asm("nop");
277 1 asm("nop");
278 1 asm("nop");
279 1
280 1 }
281
282 /////////////////////////////////////////////////////
283 //右半屏发送指令子程序
284 void TRANS2()
285 {
286 1 LCDSTA2();
287 1 TRISD=0X00; //D口为输出
*** ERROR C202 IN LINE 287 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: 'TRISD': undefined identifier
288 1 P1^6=1; //P1^6=1
*** ERROR C141 IN LINE 288 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: syntax error near '='
289 1 P3^6=0; //R/W=0
*** ERROR C141 IN LINE 289 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: syntax error near '='
290 1 P3^7=0; //DI=0
*** ERROR C141 IN LINE 290 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: syntax error near '='
291 1 P2=TRANS; //需要写入命令放入D口
292 1 P3^5=1; //E=1
C51 COMPILER V7.50 FILE_LCD 09/13/2007 09:33:44 PAGE 7
*** ERROR C141 IN LINE 292 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: syntax error near '='
293 1 P3^5=0; //E=0
*** ERROR C141 IN LINE 293 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: syntax error near '='
294 1 P1^6=0; //P1^6=0
*** ERROR C141 IN LINE 294 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: syntax error near '='
295 1 P3^6=1; //R/W=1
*** ERROR C141 IN LINE 295 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: syntax error near '='
296 1 }
297
298 ////////////////////////////////////////////////////
299 //右半屏写数据子程序
300 void WRITE2()
301 {
302 1 TRANS=CLMADD;
303 1 TRANS2();
304 1 LCDSTA2();
305 1 TRISD=0X00;
*** ERROR C202 IN LINE 305 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: 'TRISD': undefined identifier
306 1 P1^6=1; //P1^6=1
*** ERROR C141 IN LINE 306 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: syntax error near '='
307 1 P3^6=0; //R/W=0
*** ERROR C141 IN LINE 307 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: syntax error near '='
308 1 P3^7=1; //DI=1
*** ERROR C141 IN LINE 308 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: syntax error near '='
309 1 P2=WRITE; //需要写入数据放入D口
310 1 P3^5=1; //E=1
*** ERROR C141 IN LINE 310 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: syntax error near '='
311 1 P3^5=0; //E=0
*** ERROR C141 IN LINE 311 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: syntax error near '='
312 1 P1^6=0; //P1^6=0
*** ERROR C141 IN LINE 312 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: syntax error near '='
313 1 CLMADD++;
314 1 P3^6=1; //R/W=1
*** ERROR C141 IN LINE 314 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\FILE_LCD.C: syntax error near '='
315 1
316 1 }
317
318 ///////////////////////////////////////////////////////////
319 //右半屏开显示子程序
320 void DISP2()
321 {
322 1 TRANS=0X3F; //开显示指令
323 1 TRANS2();
324 1 LCDSTA2();
325 1 }
326
327 //////////////////////////////////////////////////////////
328 //右半屏关显示子程序
329 void DISOFF2()
330 {
331 1
332 1 TRANS=0X3E; //关显示指令
333 1 TRANS2();
334 1 LCDSTA2();
335 1
336 1 }
337
338 //////////////////////////////////////////////////////////////
339 //右半屏清屏函数
340 void R_clear()
341 {
342 1 PAGEADD=0XB8;
C51 COMPILER V7.50 FILE_LCD 09/13/2007 09:33:44 PAGE 8
343 1 for(PAGENUM=0X08;PAGENUM>0;PAGENUM--)
344 1 {
345 2 TRANS=PAGEADD;
346 2 TRANS2();
347 2 CLMADD=0X00;
348 2 for(CLMSUM=0X40;CLMSUM>0;CLMSUM--)
349 2 {
350 3 LCDSTA2();
351 3 WRITE=0X00;
352 3 WRITE2();
353 3 }
354 2 PAGEADD++;
355 2 }
356 1 }
357
358 ////////////////////////////////////////////////////////////
359 //右半屏初始化子程序
360 void lcd2()
361 {
362 1 DISOFF2(); //关显示
363 1 LCDSTA2(); //等待写入
364 1 DISP2(); //开显示
365 1 LCDSTA2(); //等待写入
366 1 R_clear(); //左半屏清屏
367 1 }
368
369 ////////////////////////////////////////////////////////
370 //液晶屏左右半屏控制子程序结束
371 ///////////////////////////////////////////////////////
372
373 //////////////////////////////////////////////////////
374 //液晶显示函数,程序解释如下
375 //void dis1() LCD左半屏显示中文16*16格式函数
376 //void dis3() LCD左半屏显示图形界面函数
377 //void dis5() LCD左半屏显示数字8*16格式函数
378 //****************************************************
379 //void dis2() LCD右半屏显示中文16*16格式函数
380 //void dis4() LCD右半屏显示图形界面函数
381 //void dis6() LCD右半屏显示数字8*16格式函数
382 //***************************************************
383 //void dis7() 显示组号子函数
384 //void dis8() 显示单体电池电压子函数
385 /////////////////////////////////////////////////////
386 //LCD左半屏显示中文16*16格式函数
387 void dis1()
388 {
389 1 TRANS=row;
390 1 TRANS1();
391 1 TRANS=PAGEADD;
392 1 TRANS1();
393 1 i=i*32;
394 1 asm("nop");
395 1 asm("nop");
396 1 for(k=0;k<16;k++)
397 1 {
398 2 WRITE=table5[i+k];
399 2 WRITE1();
400 2 asm("nop");
401 2 asm("nop");
402 2 }
403 1 CLMADD=CLMADD-16;
404 1 PAGEADD=PAGEADD+1;
C51 COMPILER V7.50 FILE_LCD 09/13/2007 09:33:44 PAGE 9
405 1 TRANS=PAGEADD;
406 1 TRANS1();
407 1 for(;k<32;k++)
408 1 {
409 2 WRITE=table5[i+k];
410 2 WRITE1();
411 2 }
412 1 }
413
414 ////////////////////////////////////////////////////////
415 //LCD左半屏显示图形界面函数
416 void dis3()
417 {
418 1 row=0xc0; //设置显示起始行
419 1 PAGEADD=0XB8;
420 1 CLMADD=0X40;
421 1 i=0;
422 1 TRANS=row;
423 1 TRANS1();
424 1 TRANS=PAGEADD;
425 1 TRANS1();
426 1 i=i*64;
427 1 for(k=0;k<64;k++)
428 1 {
429 2 WRITE=table2[i+k];
430 2 WRITE1();
431 2 }
432 1 asm("nop");
433 1 asm("nop");
434 1 CLMADD=CLMADD-64;
435 1 PAGEADD=PAGEADD+1;
436 1 TRANS=PAGEADD;
437 1 TRANS1();
438 1 for(;k<128;k++)
439 1 {
440 2 WRITE=table2[i+k];
441 2 WRITE1();
442 2 }
443 1 asm("nop");
444 1 asm("nop");
445 1 CLMADD=CLMADD-64;
446 1 PAGEADD=PAGEADD+1;
447 1 TRANS=PAGEADD;
448 1 TRANS1();
449 1 for(;k<192;k++)
450 1 {
451 2 WRITE=table2[i+k];
452 2 WRITE1();
453 2 }
454 1 asm("nop");
455 1 asm("nop");
456 1 CLMADD=CLMADD-64;
457 1 PAGEADD=PAGEADD+1;
458 1 TRANS=PAGEADD;
459 1 TRANS1();
460 1 for(;k<256;k++)
461 1 {
462 2 WRITE=table2[i+k];
463 2 WRITE1();
464 2 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -