?? yj22.lst
字號:
C51 COMPILER V3.20, SN-0 YJ22 11/16/04 14:44:05 PAGE 1
DOS C51 COMPILER V3.20, COMPILATION OF MODULE YJ22
OBJECT MODULE PLACED IN YJ22.OBJ
COMPILER INVOKED BY: C:\C51\BIN\C51.EXE YJ22.C DB OE SMALL ROM(LARGE)
stmt level source
1 #include <reg51.h>
2 #include <stdio.h>
3 #include <math.h>
4 #include <intrins.h>
5
6
7 //#define SHUCHU P2
8
9 #define uchar unsigned char
10 #define _Nop() _nop_()
11
12 sbit v0=P3^5;
13 sbit RS=P1^1;
14 sbit RW=P1^2;
15 sbit E=P1^3;
16 sbit bl1=P1^4;
17 sbit bl2=P1^5;
18 sbit led=P1^6;
19 sbit led2=P1^5;
20
21
22 uchar code tab[]={0x74,0x68,0x69,0x73,0x69,0x73,0x61,0x67,
23 0x6f,0x6f,0x64,0x63,0x61,0x74,0x21,0x21,0x6c,
24 0x75,0x63,0x6b,0x79,0x3f,0x3f,0x3f,0x3f,0x3f,
25 0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f};
26 uchar SHUCHU0;
27 uchar data1;
28 uchar add0;
29 bit busy;
30 uchar j=0x37;
31
32
33 void cleardisplay();
34 void write_command(uchar);
35 void write_data(uchar);
36 void writechar(uchar,uchar);
37 void readdata(uchar);
38 //void intport();
39 void intLcd();
40 void DELAY(uchar);
41 //void delay1();
42 void readstate();
43 void writestring(uchar,uchar *,uchar);
44
45 void main()
46 {
47 1 uchar i,ucAddr;
48 1 uchar *s;
49 1 s=tab;
50 1
51 1 intLcd();
52 1 for(;;)
53 1 {
54 2 led2=0;
55 2
C51 COMPILER V3.20, SN-0 YJ22 11/16/04 14:44:05 PAGE 2
56 2 led=0;
57 2
58 2 writestring(ucAddr,s,31);
59 2 DELAY(200);
60 2 DELAY(200);
61 2 DELAY(200);
62 2
63 2
64 2 //writechar(ucAddr,j);
65 2 j=*s++;
66 2 DELAY(200);
67 2 ucAddr++;
68 2 writechar(ucAddr,j);
69 2 ucAddr++;
70 2 //j=*s++;
71 2 //readdata(0x82);
72 2 DELAY(200);
73 2 led2=1;
74 2 led=1;
75 2 DELAY(200);
76 2 DELAY(200);
77 2 DELAY(200);
78 2 DELAY(200);
79 2 led2=0;
80 2 led=0;
81 2
82 2 DELAY(200);
83 2 DELAY(200);
84 2 DELAY(200);
85 2
86 2
87 2 }
88 1
89 1 }
90
91
92
93
94
95
96
97
98
99
100 void write_command(uchar shu1)
101 {
102 1 readstate();
103 1 E=0;
104 1 RS=0x00;
105 1 RW=0x00;
106 1 P2=shu1;
107 1 E=1;
108 1 DELAY(5);
109 1 E=0;
110 1 DELAY(5);
111 1 }
112
113
114 void readdata(uchar uAddr)
115 {
116 1 uchar temp1;
117 1 temp1=uAddr;
C51 COMPILER V3.20, SN-0 YJ22 11/16/04 14:44:05 PAGE 3
118 1 write_command(temp1+0x80);
119 1 readstate();
120 1 E=0;
121 1 RS=1;
122 1 RW=1;
123 1 E=1;
124 1 _Nop();
125 1 _Nop();
126 1
127 1 SHUCHU0=P2; /*高電平*/
128 1 _Nop();
129 1 _Nop();
130 1
131 1 E=0;
132 1
133 1 }
134 void write_data(uchar shu2)
135 {
136 1 readstate();
137 1 E=0;
138 1 RS=1;
139 1 RW=0;
140 1 P2=shu2;
141 1 E=1;
142 1 E=0;
143 1 DELAY(1);
144 1 }
145
146 void readstate()
147 {
148 1 busy=0;
149 1 RS=0;
150 1 RW=1;
151 1 E=1;
152 1 //DELAY();
153 1 //data1=SHUCHU; /*高電平*/
154 1 //E=0;
155 1 //data1&=0x80;
156 1 //if(data1==0) busy=0;
157 1 //else busy=1;
158 1 do
159 1 {
160 2 //P2=0xff;
161 2 busy=P2&0x80;
162 2 E=0;
163 2 }
164 1 while(busy==1);
165 1 }
166
167
168 void intLcd()
169 {
170 1
171 1 uchar i;
172 1 RS=0;
173 1 RW=0;
174 1 for(i=0;i<3;i++)
175 1 {
176 2 P2=0x30;
177 2 E=1;
178 2 E=0;
179 2 DELAY(50);
C51 COMPILER V3.20, SN-0 YJ22 11/16/04 14:44:05 PAGE 4
180 2 }
181 1 DELAY(10);
182 1 write_command(0x38);
183 1 DELAY(41);
184 1 //write_command(0x38); /*顯示模式 八位接口,2行 5X7*/
185 1
186 1 write_command(0x08);/*清屏*/
187 1 write_command(0x01); /*關顯示*/
188 1 write_command(0x06);/*光標右移*/
189 1 write_command(0x0e);/*顯示開,光標設置顯示光標*/
190 1 //write_command(0x09);
191 1
192 1 DELAY(2);
193 1 }
194
195 void DELAY(uchar temp)
196 {
197 1 uchar i,j;
198 1 for(j=0;j<temp;j++)
199 1 {
200 2 for(i=0;i<250;i++);
201 2 //for(i=0;i<250;i++);
202 2 }
203 1
204 1 }
205
206 void writechar(uchar uAddr,uchar uDis)
207 {
208 1 if(uAddr<16)
209 1 {
210 2 write_command(0x80+uAddr);
211 2 write_data(uDis);
212 2 }
213 1 else
214 1 {
215 2 write_command(0xc0+uAddr-16);
216 2 write_data(uDis);
217 2 }
218 1 }
219
220 void writestring(uchar uAddr1,uchar *P,uchar k)
221 {
222 1 uchar i;
223 1 for(i=0;i<k;i++)
224 1 {
225 2 if(uAddr1<16)
226 2 {
227 3
228 3 write_command(0x80+uAddr1);
229 3 write_data(*(P+i));
230 3 }
231 2 else
232 2 {
233 3 write_command(0xc0+uAddr1-16);
234 3 write_data(*(P+i));
235 3 }
236 2 uAddr1++;
237 2 }
238 1
239 1 }
240
241
C51 COMPILER V3.20, SN-0 YJ22 11/16/04 14:44:05 PAGE 5
242
243
244 /*void return()
{
write_command(0x02); 回車
}
void mode()
{
write_command(0x07); 光標增,顯示右移動
}
void display()
{
write_command(0x0e);顯示開,光標顯,閃爍
}
void shift()
{
Writecmommand(0x1c); 顯示移位,光標右移
}
void setF()
{
write_command(0x38);八位接口,2行 5X7
}
void display()
{
write_command(0x3C);八位接口,2行 5X10
}*/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 451 ----
CONSTANT SIZE = 33 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 16
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -