📄 jianpan.lst
字号:
C51 COMPILER V8.05a JIANPAN 02/23/2009 09:31:33 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE JIANPAN
OBJECT MODULE PLACED IN jianpan.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE jianpan.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 uchar temp;
5 uchar code table[]=
6
7 {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0xf1,0x80,0xa0,0x90,0x86,0xcc,0x83,0x8c,0x9c};
8 int num;
9 void delay(uint z)
10 {
11 1 uint x,y;
12 1 for(x=z;x>0;x--)
13 1 for(y=110;y>0;y--);
14 1 }
15
16 void main()
17
18 {
19 1 P1=0xff;
20 1 while(1)
21 1 {
22 2 P1=0xff;
23 2 /*检测第一行*/
24 2 P3=0xfe;
25 2 temp=P3;
26 2 temp=temp&0xf0;
27 2 while(temp!=0xf0)//第二个while循环
28 2 {
29 3 delay(5);
30 3 temp=P3;
31 3 temp=temp&0xf0;//消除抖动
32 3 while(temp!=0xf0)
33 3 {
34 4 temp=P3;//必须加这一句,否则跳不出while()循环
35 4 switch(temp)
36 4 {
37 5 case 0xee:num=1;break;//1110
38 5 case 0xde:num=2;break;//1101
39 5 case 0xbe:num=3;break;//1011
40 5 case 0x7e:num=4;break;//0111
41 5 }
42 4 }
43 3 while(temp!=0xf0)
44 3 {
45 4 temp=P3;
46 4 temp=temp&0xf0;
47 4 }//等待按键松下,不加这个将跳不出第二个while()循环,
48 3 /*键盘检测后的程序*/
49 3
50 3 P1=table[num];//写检测键盘后执行的程序
51 3 delay(200) ;
52 3 }
53 2 /*检测第二行*/
54 2 P3=0xfd;//11111101
55 2 temp=P3;
C51 COMPILER V8.05a JIANPAN 02/23/2009 09:31:33 PAGE 2
56 2 temp=temp&0xf0;//获得高四位的值
57 2 while(temp!=0xf0)
58 2 {
59 3 delay(5);
60 3 temp=P3;
61 3 temp=temp&0xf0;
62 3 while(temp!=0xf0)
63 3 {
64 4 temp=P3;
65 4 switch(temp)
66 4 {
67 5 case 0xed:num=5;break;
68 5 case 0xdd:num=6;break;
69 5 case 0xbd:num=7;break;
70 5 case 0x7d:num=8;break;
71 5 }
72 4 }
73 3 while(temp!=0xf0)
74 3 {
75 4 temp=P3;
76 4 temp=temp&0xf0;
77 4 }//等待按键松下
78 3 /*键盘检测后的程序*/
79 3 P0=table[num];
80 3 }
81 2 /*检测第三行*/
82 2 P3=0xfb;//11111011
83 2 temp=P3;
84 2 temp=temp&0xf0;//获得高四位的值
85 2 while(temp!=0xf0)
86 2 {
87 3 delay(5);
88 3 temp=P3;
89 3 temp=temp&0xf0;
90 3 while(temp!=0xf0)
91 3 {
92 4 temp=P3;
93 4 switch(temp)
94 4 {
95 5 case 0xeb:num=9;break;
96 5 case 0xdb:num=10;break;
97 5 case 0xbb:num=11;break;
98 5 case 0x7b:num=12;break;
99 5 }
100 4 }
101 3 while(temp!=0xf0)
102 3 {
103 4 temp=P3;
104 4 temp=temp&0xf0;
105 4 }//等待按键松下
106 3 /*键盘检测后的程序*/
107 3 P0=table[num];
108 3 }
109 2 /*检测第四行*/
110 2 P3=0xf7;//11110111
111 2 temp=P3;
112 2 temp=temp&0xf0;//获得高四位的值
113 2 while(temp!=0xf0)
114 2 {
115 3 delay(5);
116 3 temp=P3;
117 3 temp=temp&0xf0;
C51 COMPILER V8.05a JIANPAN 02/23/2009 09:31:33 PAGE 3
118 3 while(temp!=0xf0)
119 3 {
120 4 temp=P3;
121 4 switch(temp)
122 4 {
123 5 case 0xe7:num=13;break;
124 5 case 0xd7:num=14;break;
125 5 case 0xb7:num=15;break;
126 5 case 0x77:num=16;break;
127 5 }
128 4 }
129 3 while(temp!=0xf0)
130 3 {
131 4 temp=P3;
132 4 temp=temp&0xf0;
133 4 }//等待按键松下
134 3 /*键盘检测后的程序*/
135 3 P0=table[num];
136 3 }
137 2
138 2 }
139 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 510 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
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 + -