📄 keypad.lst
字号:
C51 COMPILER V7.06 KEYPAD 03/08/2007 19:44:47 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE KEYPAD
OBJECT MODULE PLACED IN keypad.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE keypad.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg51.h>
2 #define uchar unsigned char
3 uchar key_code[]={0x7e,0x7d,0x7b,0x77,0xbe,0xbd,0xbb,0xb7,0xde,0xdd,0xdb,0xd7,0xee,0xed,0xeb,0xe7};
4 uchar duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x73,0x3e,
-0x6e,0x1c,0x23,0x40,0x03};
5
6 uchar code ksp[4]={0x7f,0xbf,0xdf,0xef};
7 void delay(void)
8 {
9 1 uchar i,j;
10 1 for(i=0;i<5;i++)
11 1 for(j=0;j<255;j++);
12 1
13 1 }
14 uchar keypad_scan()
15 {
16 1 uchar key,i;
17 1 P2=0xf0;
18 1 while(P2!=0xf0);
19 1 do{
20 2 for(i=0;i<4;i++)
21 2 {
22 3 P2=ksp[i];
23 3 if(P2!=ksp[i])
24 3 {
25 4 delay();
26 4 key=P2;
27 4 if(key!=ksp[i])
28 4 {return(key);}
29 4 }
30 3
31 3 }
32 2 }while(1);
33 1 }
34
35 char gotkey()
36 {
37 1 uchar i;
38 1 char temp;
39 1 temp=keypad_scan();
40 1 for(i=0;i<16;i++)
41 1 {
42 2 if(temp==key_code[i]) return(i);
43 2 }
44 1 }
45 void main()
46 { char ch;
47 1 do{
48 2 ch=gotkey();
49 2 P1=duanma[ch];
50 2 }while(1);
51 1
52 1 }
C51 COMPILER V7.06 KEYPAD 03/08/2007 19:44:47 PAGE 2
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 84 ----
CONSTANT SIZE = 4 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 39 ----
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 + -