📄 at89c51.lst
字号:
C51 COMPILER V8.08 AT89C51 05/02/2008 18:43:02 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE AT89C51
OBJECT MODULE PLACED IN at89c51.OBJ
COMPILER INVOKED BY: D:\program files\Keil 3.2\C51\BIN\C51.EXE at89c51.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 unsigned char num;
3 void delay(void)
4 { unsigned char i;
5 1 for(i=0;i<200;i++)
6 1 {}
7 1 }
8 unsigned char keyscan(void)
9 { unsigned char test,tmp;
10 1 P1=0xf0;
11 1 if((P1&0xf0)!=0xf0)
12 1 { delay();
13 2 if((P1&0xf0)!=0xf0)
14 2 { test=0xfe;
15 3 while((test&0x10)!=0)
16 3 { P1=test;
17 4 if((P1&0xf0)!=0xf0)
18 4 { tmp=(P1&0xf0)|0x0f;
19 5 return(~(test)+~(tmp));
20 5 }
21 4 else test=(test<<1)|0x01;
22 4 }
23 3 }
24 2 }
25 1 return(0);
26 1 }
27 void readkey(unsigned char date)
28 { switch(date)
29 1 { case 0X11: num=0;break;
30 2 case 0X21: num=1;break;
31 2 case 0X41: num=2;break;
32 2 case 0X81: num=3;break;
33 2 case 0X12: num=4;break;
34 2 case 0X22: num=5;break;
35 2 case 0X42: num=6;break;
36 2 case 0x82: num=7;break;
37 2 case 0x14: num=8;break;
38 2 case 0x24: num=9;break;
39 2 case 0x44: num=10;break;
40 2 case 0x84: num=11;break;
41 2 case 0x18: num=12;break;
42 2 case 0x0: num=15;break;
43 2 }
44 1 }
45 void main(void)
46 { while(1)
47 1 {unsigned char a;
48 2 a=keyscan();
49 2 readkey(a);
50 2 P2=num;
51 2 }
52 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V8.08 AT89C51 05/02/2008 18:43:02 PAGE 2
CODE SIZE = 188 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 1
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 + -