📄 all.lst
字号:
154 3 }
155 2 break; //'9'
156 2 case 41: if(i==3) //'ok'
157 2 {
158 3 ch=ch*256/512;
159 3 shuchu=ch;
160 3 ch=0;
161 3 TH0=65200;
162 3 TL0=65200;
163 3 vShowOneChin(2,49,uca_0);
164 3 vShowOneChin(2,64,uca_0);
165 3 vShowOneChin(4,48,uca_SHU);
166 3 vShowOneChin(4,64,uca_CHU);
167 3 vShowOneChar(6,88,uca_HEN);
168 3 vShowOneChar(6,104,uca_HEN);
169 3 vShowOneChar(6,112,uca_HEN);
170 3 }
171 2 i=0;
172 2 break;
173 2 }
174 1 }
175
176 void vTimer0(void) interrupt 1 using 2
177 {
178 1 uchar a,d;
C51 COMPILER V6.23a ALL 10/02/2007 16:57:17 PAGE 4
179 1 unsigned long int c=0;
180 1 uchar data tab[3];
181 1 a=(((zhuhuandata&0xf0)>>4)*100/16);
182 1 d=((zhuhuandata&0x0f)*100/256);
183 1 c=(a+d)*5.12;
184 1 tab[0]=c%10;
185 1 tab[1]=c/10%10;
186 1 tab[2]=c/100%10;
187 1 vShowOneChar(2,89,uca[tab[2]]);
188 1 vShowOneChar(2,103,uca[tab[1]]);
189 1 vShowOneChar(2,111,uca[tab[0]]);
190 1 TH0=TIME1H;
191 1 TL0=TIME1L;
192 1
193 1 }
194
195 void main(void)
196 {
197 1 SCANPORT=0x8F;
198 1 ClearLCD(0x00);
199 1 vShowOneChar(2,89,uca[5]);
200 1 vShowOneChar(2,96,uca_XIAOSHU);
201 1 vShowOneChar(2,103,uca[0]);
202 1 vShowOneChar(2,111,uca[0]);
203 1 vShowOneChar(2,120,uca_V);
204 1 vShowOneChin(0,0,uca_DANG);
205 1 vShowOneChin(0,16,uca_QIAN);
206 1 vShowOneChin(0,32,uca_GONG);
207 1 vShowOneChin(0,48,uca_ZUO);
208 1 vShowOneChin(0,64,uca_DIAN);
209 1 vShowOneChin(0,80,uca_YA);
210 1 vShowOneChin(0,96,uca_MAOHAO);
211 1 vShowOneChin(4,0,uca_QING);
212 1 vShowOneChin(4,16,uca_SHE);
213 1 vShowOneChin(4,32,uca_ZHI);
214 1 vShowOneChin(4,48,uca_SHU);
215 1 vShowOneChin(4,64,uca_CHU);
216 1 vShowOneChin(4,80,uca_DIAN);
217 1 vShowOneChin(4,96,uca_YA);
218 1 vShowOneChin(4,112,uca_MAOHAO);
219 1 vShowOneChar(6,96,uca_XIAOSHU);
220 1 vShowOneChar(6,88,uca_HEN);
221 1 vShowOneChar(6,104,uca_HEN);
222 1 vShowOneChar(6,113,uca_HEN);
223 1 vShowOneChar(6,119,uca_V);
224 1
225 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<外部中断0,用于开启键盘扫描及键码处理标志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
226 1 TMOD=0X01;
227 1 TH0=TIME1H;
228 1 TL0=TIME1L;
229 1 ET0=1; //T/C0开中断
230 1 TR0=1; //开定时器0中断
231 1 IT0=1; //外中断方式:下降沿。
232 1 EX0=1; //开启外部中断。
233 1 EA=1;
234 1
235 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<外部中断0,用于开启键盘扫描及键码处理标志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
236 1
237 1 while(1)
238 1 {
239 2 wr=0;
240 2 wr=1;
C51 COMPILER V6.23a ALL 10/02/2007 16:57:17 PAGE 5
241 2 chuli();
242 2 if(zhuhuandata<=shuchu)P27=0;
243 2 if(zhuhuandata>shuchu)P27=1;
244 2 if(zhuhuandata<=shuchu)P27=0;
245 2 }
246 1 }
247
248 void chuli()
249 {
250 1 rd=0;
251 1 zhuhuandata=P0;
252 1 }
253
254 //*************************************************************************************************
255 //* *
256 //* ********************************函数实现****************************** *
257 //* *
258 //*************************************************************************************************
259 unsigned char getkey()
260 {
261 1 uchar ucTemp=0; //扫描状态暂存。
262 1 uchar ucRow=0,ucLine=0; //行号,列号。
263 1
264 1 for(ucLine=0;ucLine<3;ucLine++) //列扫描
265 1 {
266 2 SCANPORT=uca_LineScan[ucLine]; //输出扫描电位。
267 2 ucTemp=SCANPORT&0x8F; //输入扫描电位,并屏蔽高4位。
268 2 if(ucTemp!=0x8F)
269 2 { //判断该列是否有按键按下。
270 3 switch(ucTemp)
271 3 {
272 4 case 0x8E: ucRow=10;break; //如果有,则判断行号。
273 4 case 0x8D: ucRow=20;break;
274 4 case 0x8B: ucRow=30;break;
275 4 case 0x87: ucRow=40;break;
276 4 default: P0=~P0; break;
277 4 }
278 3 break;
279 3 }
280 2 }
281 1
282 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<恢复键扫描处理前初始状态>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
283 1 SCANPORT=0x8F; //恢复P2口
284 1 return (ucRow+ucLine+1);//返回按键编码。格式为2位数,高位为行号,低位为列号。
285 1 }
286 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<恢复键扫描处理前初始状态>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
287 void vINT0(void) interrupt 0
288 {
289 1 EX0=0;
290 1 key_chuli(getkey());
291 1 while((SCANPORT&0x8F)!=0x8f) //等待按键松开//
292 1 {
293 2 };
294 1 EX0=1;
295 1 }
296
297
298
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1446 ----
C51 COMPILER V6.23a ALL 10/02/2007 16:57:17 PAGE 6
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 9
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 + -