?? lcd.lst
字號:
C51 COMPILER V8.12 LCD 05/20/2009 00:11:09 PAGE 1
C51 COMPILER V8.12, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <AT89X52.H>
2 #include <lcd.h>
3 #include <intrins.h>
4
5 void delay(unsigned char ms)
6 {
7 1 unsigned char i,j;
8 1 for(i=ms;i>0;i--)
9 1 for(j=100;j>0;j--);
10 1 }
11
12 void WriteCommandLCM(unsigned char comm,unsigned char bank)
13 {
14 1 while (checkbusy(bank));
15 1 RW = 0;
16 1 RS = 0;
17 1 if(1==bank) {CS1=0; CS2=1;}
18 1 if(2==bank) {CS1=1; CS2=0;}
19 1 if(3==bank) {CS1=0; CS2=0;}
20 1 P0 = comm;
21 1 EN = 1;
22 1 EN = 0;
23 1 }
24 void WriteDataLCM(unsigned char Data,unsigned char bank)
25 {
26 1 while (checkbusy(bank));
27 1 RS=1;
28 1 RW=0;
29 1 if(1==bank) {CS1=0; CS2=1;}
30 1 if(2==bank) {CS1=1; CS2=0;}
31 1 if(3==bank) {CS1=0; CS2=0;}
32 1 P0=Data;
33 1 EN=1;
34 1 EN=0;
35 1 }
36 void LCMInit(void)
37 {
38 1 RST = 0;
39 1 EN =0;
40 1 delay(10);
41 1 RST = 1;
42 1 delay(10);
43 1 CS1=0;
44 1 CS2=0;
45 1 WriteCommandLCM(0x3f,3);//打開顯示功能;
46 1 WriteCommandLCM(0x40,3);//設置Y地址為0;
47 1 WriteCommandLCM(0xb8,3);//設置行地址為0;
48 1 WriteCommandLCM(0xc0,3);//設置顯示起始行為0;
49 1
50 1 }
51 unsigned char ReadStatusLCM(unsigned char bank)
52 {
53 1 unsigned char sta;
54 1 RS=0;
55 1 RW=1;
C51 COMPILER V8.12 LCD 05/20/2009 00:11:09 PAGE 2
56 1 if(1==bank) {CS1=0; CS2=1;}
57 1 if(2==bank) {CS1=1; CS2=0;}
58 1 if(3==bank) {CS1=0; CS2=0;}
59 1 P0=0xff;
60 1 EN=1;
61 1 EN=0;
62 1 sta=P0;
63 1 return sta;
64 1 }
65
66 unsigned char checkbusy(unsigned char bank)
67 {
68 1 return (ReadStatusLCM(bank)&0x80);
69 1 }
70
71 void writelcd(unsigned char x,unsigned char y,unsigned char *p)
72 {
73 1 unsigned char bank=1,row,i;
74 1 row=y;
75 1 if(y>4) {bank=2;row=y-4;}
76 1 WriteCommandLCM(0xb6+x*2,bank);//設置行地址為X;
77 1 WriteCommandLCM(0x30+row*16,bank);//設置列地址為y;
78 1 for(i=0;i<16;i++) WriteDataLCM(p[i],bank);
79 1 WriteCommandLCM(0xb7+x*2,bank);
80 1 WriteCommandLCM(0x30+row*16,bank);
81 1 for(i=0;i<16;i++) WriteDataLCM(p[i+16],bank);
82 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 339 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 11
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -