📄 key_scan.lst
字号:
C51 COMPILER V7.50 KEY_SCAN 12/28/2007 10:53:50 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE KEY_SCAN
OBJECT MODULE PLACED IN key_scan.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE key_scan.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include <intrins.h>
3
4 #define TIMER0_COUNT 1000
5 #define uchar unsigned char
6
7
8 extern void delay(unsigned int ms);
9
10 code uchar key_code[]={0xee,0xed,0xeb,0xe7, //0.1.2.3.
11 0xde,0xdd,0xdb,0xd7, //4.5.6.7.
12 0xbe,0xbd,0xbb,0xb7, //8.9.a.b.
13 0x7e,0x7d,0x7b,0x77}; //c.d.e.f.
14
15 code ksp[4]={0xfe,0xfd,0xfb,0xf7};
16
17
18 uchar keypad_scan()
19 {
20 1 uchar key,i;
21 1 P1=0xf0;
22 1 while(P1!=0xf0);
23 1 do
24 1 {
25 2 for(i=0;i<4;i++)
26 2 {
27 3 P1=ksp[i];
28 3 if(P1!=ksp[i])
29 3 {
30 4 delay(20);
31 4 key=P1;
32 4 if(key!=ksp[i])
33 4 {
34 5 P1=0xff; // P1归1
35 5 return(key);
36 5 }
37 4 }
38 3 }
39 2 }while(1);
40 1 }
41
42
43 uchar gotkey()
44 {
45 1 uchar temp,i;
46 1 temp=keypad_scan();
47 1 for(i=0;i<=15;i++)
48 1 {
49 2 if(temp==key_code[i]) return(i);
50 2 }
51 1 return(16);
52 1 }
53
54
55
C51 COMPILER V7.50 KEY_SCAN 12/28/2007 10:53:50 PAGE 2
56
57
58
59
60
61
62 /*
63
64 void Timer0(void) interrupt 1 using 1
65 {
66 TL0=0x00;
67 // TH0=0x25; // 25ms
68 TH0=0x01;
69 // if(p14==0) {p14_sign=1; EA=0;}
70 // else p14_sign=0;
71 if(p15==0) {p15_sign=1; EA=0;}
72 if(p16==0) {p16_sign=1; EA=0;}
73 // if(p17==0) {p17_sign=1; EA=0;}
74 // else p17_sign=0;
75 }
76
77 void Timer0_star()
78 {
79 TMOD=0x01;
80 TH0=0x4c;
81 TL0=0x00;
82 EA=1;
83 ET0=1;
84 TR0=1;
85 }
86
87 */
88
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 112 ----
CONSTANT SIZE = 24 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 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 + -