?? cs22-2.lst
字號:
C51 COMPILER V7.06 CS22_2 02/20/2007 20:53:56 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CS22_2
OBJECT MODULE PLACED IN CS22-2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CS22-2.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <REG51.H>
2 #include<INTRINS.H>
3 #define uchar unsigned char
4 #define uint unsigned int
5 #define DataPort P0
6 sbit LCM_RS=P2^0;
7 sbit LCM_RW=P2^1;
8 sbit LCM_EN=P2^2;
9 uchar code exampl[]="ForAnExample www.hlelectron.com ";
10 void Delay400ms(void);
11 void Delay5ms(void);
12 void WaitForEnable(void);
13 void WriteDataLCM(uchar data W);
14 void WriteCommandLCM(uchar CMD,uchar Attribc);
15 void InitLcd(void);
16 void Display(uchar dd);
17 void DisplayOneChar(uchar x,uchar y,uchar Wdata);
18 void ePutstr(uchar x,uchar y,uchar code *ptr);
19 //*******************************
20 void main(void)
21 {
22 1 uchar temp;
23 1 Delay400ms();
24 1 InitLcd();
25 1 temp=32;
26 1 ePutstr(0,0,exampl);
27 1 Delay400ms();
28 1 Delay400ms();
29 1 Delay400ms();
30 1 Delay400ms();
31 1 Delay400ms();
32 1 Delay400ms();
33 1 Delay400ms();
34 1 Delay400ms();
35 1 while(1)
36 1 {
37 2 temp&=0x7f;
38 2 if(temp<32)temp=32;
39 2 Display(temp++);
40 2 Delay400ms();
41 2 }
42 1 }
43 /****************************************/
44 void InitLcd(void)
45 {
46 1 WriteCommandLCM(0x38,0);
47 1 Delay5ms();
48 1 WriteCommandLCM(0x38,0);
49 1 Delay5ms();
50 1 WriteCommandLCM(0x38,0);
51 1 Delay5ms();
52 1 WriteCommandLCM(0x38,1);
53 1 WriteCommandLCM(0x08,1);
54 1 WriteCommandLCM(0x01,1);
55 1 WriteCommandLCM(0x06,1);
C51 COMPILER V7.06 CS22_2 02/20/2007 20:53:56 PAGE 2
56 1 WriteCommandLCM(0x0c,1);
57 1 }
58 /*****************************************/
59 void Delay5ms(void)
60 {
61 1 uint i=5552;
62 1 while(i--);
63 1 }
64 /****************************************/
65 void Delay400ms(void)
66 {
67 1 uchar i=5;
68 1 uint j;
69 1 while(i--)
70 1 {
71 2 j=7269;
72 2 while(j--);
73 2 }
74 1 }
75 /*****************************************/
76 void LocateXY(char posx,char posy)
77 {
78 1 uchar temp;
79 1 temp&=0x7f;
80 1 temp=posx&0x0f;
81 1 posy&=0x01;
82 1 if(posy)temp|=0x40;
83 1 temp|=0x80;
84 1 WriteCommandLCM(temp,0);
85 1 }
86 /*****************************************/
87 void WaitForEnable(void)
88 {
89 1 DataPort=0xff;
90 1 LCM_RS=0;LCM_RW=1;_nop_();
91 1 LCM_EN=1;_nop_();_nop_();
92 1 while(DataPort&0x80);
93 1 LCM_EN=0;
94 1 }
95 /*****************************************/
96 void WriteDataLCM(uchar dataW)
97 {
98 1 WaitForEnable();
99 1 LCM_RS=1;LCM_RW=0;_nop_();
100 1 DataPort=dataW;_nop_();
101 1 LCM_EN=1;_nop_();_nop_();LCM_EN=0;
102 1 }
103 /*****************************************/
104 void WriteCommandLCM(uchar CMD,uchar Attribc)
105 {
106 1 if(Attribc)WaitForEnable();
107 1 LCM_RS=0;LCM_RW=0;_nop_();
108 1 DataPort=CMD;_nop_();
109 1 LCM_EN=1;_nop_();_nop_();LCM_EN=0;
110 1 }
111 /****************************************/
112 void Display(uchar dd)
113 {
114 1 uchar i;
115 1 for(i=0;i<16;i++){
116 2 DisplayOneChar(i,1,dd++);
117 2 dd&=0x7f;
C51 COMPILER V7.06 CS22_2 02/20/2007 20:53:56 PAGE 3
118 2 if(dd<32)dd=32;
119 2 }
120 1 }
121 /****************************************/
122 void DisplayOneChar(uchar x,uchar y,uchar Wdata)
123 {
124 1 LocateXY(x,y);
125 1 WriteDataLCM(Wdata);
126 1 }
127 /****************************************/
128 void ePutstr(uchar x,uchar y,uchar code *ptr)
129 {
130 1 uchar i,l=0;
131 1 while(ptr[l]>31){l++;}
132 1 for(i=0;i<l;i++){
133 2 DisplayOneChar(x++,y,ptr[i]);
134 2 if(x==16){
135 3 x=0;y^=1;
136 3 }
137 2 }
138 1 }
139
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 382 ----
CONSTANT SIZE = 33 ----
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 + -