📄 tian.lst
字号:
232 P1=0;
233 }*/
234 /************************************************
235 键盘子程序
236 ***********************************************/
237
238
239
240 void dlms(void); // delay time
241 uchar kbscan(void);
C51 COMPILER V7.04 TIAN 09/12/2003 17:56:34 PAGE 5
242
243 void dlms(void)
244 {
245 1 uchar i;
246 1 for(i=200;i>0;i--){}
247 1
248 1 }
249
250
251 uchar ckbscan(void) //select the key
252 {
253 1 uchar sccode,recode,i,a;
254 1 P1=0xf0;
255 1
256 1 if((P1&0xf0)!=0xf0)
257 1 { dlms();
258 2 if((P1&0xf0)!=0xf0)
259 2 { sccode=0xfe;
260 3 while((sccode&0x10)!=0)
261 3 {P1=sccode;
262 4
263 4 if((P1&0xf0)!=0xf0)
264 4 { a=P1;
265 5 i=a&0xf0;
266 5 recode=i|0x0f;
267 5 return((~sccode)+(~recode));
268 5 }
269 4 else
270 4 sccode=(sccode<<1)|0x01;
271 4 }
272 3 }
273 2 }
274 1
275 1 return(0);
276 1 }
277
278 /**************************************
279 功能函数
280 *******************************************/
281
282
283 deroutput() //直接输出
284 {uchar i,j;
285 1 while(1)
286 1 {
287 2 P1=0x00;
288 2 for(i=0;i<10;i++)
289 2
290 2 str[i]= ReadAd();
291 2
292 2 AT24C64_W(str,0x00,10);
293 2 AT24C64_R(str1,0x00,10);
294 2
295 2
296 2 for(i=0;i<10;i++)
297 2 P0=str1[i];
298 2 j=ckbscan();
299 2 if(j==0x18) break;
300 2 }
301 1 }
302
303
C51 COMPILER V7.04 TIAN 09/12/2003 17:56:34 PAGE 6
304 /*storage() //存储子函数
305 {
306 uchar i;
307 for(j=0x00;;)
308 {
309 for(i=0;i<10;i++)
310 str[i]= ReadAd();
311
312 AT24C64_W(str,j,10);
313 j+=0x0a;
314
315
316 if(ckbscan()==0x18) break;
317
318 }
319
320 }
321
322
323 show() //延迟转换
324 {uchar i;
325
326 i=0x00;
327 while(1)
328 {
329 AT24C64_R(str1,i,10);
330
331
332 for(i=0;i<10;i++)
333 P0=str1[i];
334 i+=0xa0;
335 if(i>(j-0x01))
336 { while(1)
337 {
338 if(ckbscan()==0x18)break;
339 }
340
341 break;
342 }
343 }
344 }
345 */
346 //主程序
347
348 main()
349 { uchar i;
350 1
351 1 IE=0x00;
352 1 SP=0x60;
353 1 P3=0x00;
354 1 while(1)
355 1 {i=ckbscan();
356 2 if(i==0x11) i=1;
357 2 if(i==0x14) i=2;
358 2 if(i==0x18) i=3;
359 2 if(i==0x12) i=4;
360 2 switch(i){
361 3 case 1: deroutput(); break; //开始取数
362 3 // case 2: storage(); break; //存储
363 3 case 3: break; //结束
364 3 //case 4: show() ;break; //过去显示
365 3 default: break;
C51 COMPILER V7.04 TIAN 09/12/2003 17:56:34 PAGE 7
366 3 }
367 2 if(i==3) break;
368 2 }
369 1 }
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
C51 COMPILER V7.04 TIAN 09/12/2003 17:56:34 PAGE 8
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
I2C_SCK. . . . . . . . . . . . . . . . ABSBIT ----- BIT 0095H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
_I2C_Send_Byte . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
d. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
bit_ack. . . . . . . . . . . . . . . AUTO DATA BIT 0000H 1
adclk. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
str1 . . . . . . . . . . . . . . . . . PUBLIC DATA ARRAY 0000H 10
number . . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 0000H 16
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
size_t . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
addo . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0092H 1
adcs . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1
I2C_Nack . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_Delay_N_mS. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
n_milisecond . . . . . . . . . . . . * REG * DATA U_INT 0006H 2
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
SP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0081H 1
ReadAd . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
str. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
I2C_Ack. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
I2C_Start. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
dlms . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
_AT24C64_R . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
mcu_address. . . . . . . . . . . . . AUTO DATA VOID_PTR 0001H 3
AT24C64_address. . . . . . . . . . . AUTO DATA U_INT 0003H 2
count. . . . . . . . . . . . . . . . AUTO DATA U_INT 0005H 2
_AT24C64_W . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
mcu_address. . . . . . . . . . . . . AUTO DATA VOID_PTR 0000H 3
AT24C64_address. . . . . . . . . . . AUTO DATA U_INT 0003H 2
count. . . . . . . . . . . . . . . . AUTO DATA U_INT 0005H 2
I2C_Stop . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_Delay . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
x. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
ckbscan. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
sccode . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
recode . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
a. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
str. . . . . . . . . . . . . . . . . . PUBLIC DATA ARRAY 000AH 10
Delay_10_uS. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA CHAR 0007H 1
I2C_Receive_Byte . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
d. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
Adclk. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
j. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0014H 1
deroutput. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
j. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
C51 COMPILER V7.04 TIAN 09/12/2003 17:56:34 PAGE 9
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
I2C_SDA. . . . . . . . . . . . . . . . ABSBIT ----- BIT 0096H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 650 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 21 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 + -