📄 12864精简版.lst
字号:
C51 COMPILER V7.06 12864__简__ 11/12/2007 02:15:26 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 12864__简__
OBJECT MODULE PLACED IN 12864精简版.OBJ
COMPILER INVOKED BY: D:\keic51\C51\BIN\C51.EXE 12864精简版.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "reg51.h"
2 #include "code.h"
3
4 #define rs P20
5 #define rw P21
6 #define e P22
7 #define cs1 P23
8 #define cs2 P24
9 #define lcd P0
10 #define keydata P1
11
12 sbit P20=P2^0;
13 sbit P21=P2^1;
14 sbit P22=P2^2;
15 sbit P23=P2^3;
16 sbit P24=P2^4;
17
18 bit busy_bit=1;
19 #define unchar unsigned char
20
21 unchar i,j,k;
22
23
24 void delay10ms(void) //延时程序
25
26 {
27 1
28 1
29 1 for(j=3;j>0;j--)
30 1
31 1 for(k=214;k>0;k--);
32 1
33 1 }
34
35 char getkey() //按键判断
36 {
37 1 char i;
38 1 keydata=0x0f;
39 1 while(keydata==0x0f); //判断有无按键按下,无则等待
40 1 delay10ms(); //去抖动
41 1 keydata=0xef;
42 1 if(keydata==0xee) i=12;
43 1 else if(keydata==0xed) i=8;
44 1 else if(keydata==0xeb) i=4;
45 1 else if(keydata==0xe7) i=0;
46 1 keydata=0xdf;
47 1 if(keydata==0xde) i=13;
48 1 else if(keydata==0xdd) i=9;
49 1 else if(keydata==0xdb) i=5;
50 1 else if(keydata==0xd7) i=1;
51 1 keydata=0xbf;
52 1 if(keydata==0xbe) i=14;
53 1 else if(keydata==0xbd) i=10;
54 1 else if(keydata==0xbb) i=6;
55 1 else if(keydata==0xb7) i=2;
C51 COMPILER V7.06 12864__简__ 11/12/2007 02:15:26 PAGE 2
56 1 keydata=0x7f;
57 1 if(keydata==0x7e) i=15;
58 1 else if(keydata==0x7d) i=11;
59 1 else if(keydata==0x7b) i=7;
60 1 else if(keydata==0x77) i=3;
61 1 delay10ms(); //去抖动
62 1 keydata=0x0f;
63 1 return(i);
64 1 }
65
66 void checkbusy(void)
67 {
68 1 unchar state=0;
69 1 while(busy_bit)
70 1 {
71 2 lcd=0xFF;//空读操作
72 2 rw=1;
73 2 rs=0;
74 2 e=1;
75 2 e=1;
76 2 e=0;
77 2
78 2 lcd=0xFF;//再读才有效
79 2 rw=1;
80 2 rs=0;
81 2 e=1;
82 2 state=lcd;
83 2 e=0;
84 2 busy_bit=(bit)(state>>7);
85 2 }
86 1 }
87
88 displayon() //开显示
89 {
90 1 cs1=1;
91 1 cs2=0;
92 1 checkbusy();
93 1 rw=0;
94 1 rs=0;
95 1 lcd=0x3f;
96 1 e=1;
97 1 e=0;
98 1
99 1 cs1=0;
100 1 cs2=1;
101 1 checkbusy();
102 1 rw=0;
103 1 rs=0;
104 1 lcd=0x3f;
105 1 e=1;
106 1 e=0;
107 1 }
108
109 displayoff() //关显示
110 {
111 1 cs1=1;
112 1 cs2=0;
113 1 checkbusy();
114 1 rw=0;
115 1 rs=0;
116 1 lcd=0x3e;
117 1 e=1;
C51 COMPILER V7.06 12864__简__ 11/12/2007 02:15:26 PAGE 3
118 1 e=0;
119 1
120 1 cs1=0;
121 1 cs2=1;
122 1 checkbusy();
123 1 rw=0;
124 1 rs=0;
125 1 lcd=0x3e;
126 1 e=1;
127 1 e=0;
128 1 }
129
130 rwcmd(unchar cmd) //写指令
131 {
132 1 checkbusy();
133 1 rw=0;
134 1 rs=0;
135 1 lcd=cmd;
136 1 e=1;
137 1 e=0;
138 1 }
139
140 rwdata(unchar displaydata) //写数据
141 {
142 1 checkbusy();
143 1 rw=0;
144 1 rs=1;
145 1 lcd=displaydata;
146 1 e=1;
147 1 e=0;
148 1 }
149
150
151
152 void addresswrite(unchar x,unchar y) //写地址函数
153 {
154 1 unchar unit;
155 1 rwcmd(0x0c); //写z地址,一般z地址默认为0
156 1 unit=x+0xb8;
157 1 rwcmd(unit); //写x地址;
158 1 unit=y+0x40;
159 1 rwcmd(unit); //写y地址
160 1 }
161
162 void display(unchar beginx,unchar endx,unchar beginy,unchar endy,unchar block,unchar p,unchar colour)
- //反白显示
163 { //显示 行开始 行结束 列开始 列结束 块选择 数组 反白与否
164 1 if(block==1) {cs1=0;cs2=1;}
165 1 if(block==2) {cs1=1;cs2=0;}
166 1
167 1
168 1 for(i=beginx;i<endx;i++)
169 1 {
170 2 addresswrite(i,beginy);
171 2 for(j=beginy;j<endy;j++)
172 2 {
173 3 if(colour==1)
174 3 switch(p)
175 3 {
176 4 case 1:rwdata(~character1[i][j]);break;
177 4 case 2:rwdata(~character2[i][j]);break;
178 4 case 3:rwdata(~character3[i][j]);break;
C51 COMPILER V7.06 12864__简__ 11/12/2007 02:15:26 PAGE 4
179 4 case 4:rwdata(~character4[i][j]);break;
180 4 case 5:rwdata(~character5[i][j]);break;
181 4 case 6:rwdata(~character6[i][j]);break;
182 4 case 7:rwdata(~character7[i][j]);break;
183 4 case 8:rwdata(~character8[i][j]);break;
184 4 case 9:rwdata(~character9[i][j]);break;
185 4 case 10:rwdata(~character10[i][j]);break;
186 4 case 11:rwdata(~character11[i][j]);break;
187 4 case 12:rwdata(~character12[i][j]);break;
188 4 case 13:rwdata(~character13[i][j]);break;
189 4 case 14:rwdata(~character14[i][j]);break;
190 4 case 15:rwdata(~character15[i][j]);break;
191 4 case 16:rwdata(~character16[i][j]);break;
192 4 case 17:rwdata(~character17[i][j]);break;
193 4 case 18:rwdata(~character18[i][j]);break;
194 4 case 19:rwdata(~character19[i][j]);break;
195 4 case 20:rwdata(~character20[i][j]);break;
196 4 case 21:rwdata(~character21[i][j]);break;
197 4 case 22:rwdata(~character22[i][j]);break;
198 4 case 23:rwdata(~character23[i][j]);break;
199 4 case 24:rwdata(~character24[i][j]);break;
200 4 case 25:rwdata(~character25[i][j]);break;
201 4 case 26:rwdata(~character26[i][j]);break;
202 4 case 27:rwdata(~character27[i][j]);break;
203 4 case 28:rwdata(~character28[i][j]);break;
204 4 default:break;
205 4 }
206 3 else if(colour==0)
207 3 switch(p)
208 3 {
209 4 case 1:rwdata(character1[i][j]);break;
210 4 case 2:rwdata(character2[i][j]);break;
211 4 case 3:rwdata(character3[i][j]);break;
212 4 case 4:rwdata(character4[i][j]);break;
213 4 case 5:rwdata(character5[i][j]);break;
214 4 case 6:rwdata(character6[i][j]);break;
215 4 case 7:rwdata(character7[i][j]);break;
216 4 case 8:rwdata(character8[i][j]);break;
217 4 case 9:rwdata(character9[i][j]);break;
218 4 case 10:rwdata(character10[i][j]);break;
219 4 case 11:rwdata(character11[i][j]);break;
220 4 case 12:rwdata(character12[i][j]);break;
221 4 case 13:rwdata(character13[i][j]);break;
222 4 case 14:rwdata(character14[i][j]);break;
223 4 case 15:rwdata(character15[i][j]);break;
224 4 case 16:rwdata(character16[i][j]);break;
225 4 case 17:rwdata(character17[i][j]);break;
226 4 case 18:rwdata(character18[i][j]);break;
227 4 case 19:rwdata(character19[i][j]);break;
228 4 case 20:rwdata(character20[i][j]);break;
229 4 case 21:rwdata(character21[i][j]);break;
230 4 case 22:rwdata(character22[i][j]);break;
231 4 case 23:rwdata(character23[i][j]);break;
232 4 case 24:rwdata(character24[i][j]);break;
233 4 case 25:rwdata(character25[i][j]);break;
234 4 case 26:rwdata(character26[i][j]);break;
235 4 }
236 3 }
237 2 }
238 1 }
239 /*********************menufunction*************************/
240
C51 COMPILER V7.06 12864__简__ 11/12/2007 02:15:26 PAGE 5
241 void menufunction(unchar floor,unchar menu)
242 {
243 1 /***************************显示层菜单**************************/
244 1 switch(menu)
245 1 {
246 2 case 1:
247 2 {
248 3 display(0,8,0,64,1,3,0);
249 3 display(0,8,0,64,2,4,0);
250 3 } break;
251 2 case 2:
252 2 {
253 3 display(0,8,0,64,1,5,0);
254 3 display(0,8,0,64,2,6,0);
255 3 } break;
256 2 case 3:
257 2 {
258 3 display(0,8,0,64,1,7,0);
259 3 display(0,8,0,64,2,8,0);
260 3 } break;
261 2 case 4:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -