📄 keyscan.lst
字号:
C51 COMPILER V8.06 KEYSCAN 07/31/2008 16:08:35 PAGE 1
C51 COMPILER V8.06, COMPILATION OF MODULE KEYSCAN
OBJECT MODULE PLACED IN keyscan.OBJ
COMPILER INVOKED BY: d:\Keil2\C51\BIN\C51.EXE keyscan.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<absacc.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5 unsigned char code table[]={0x3f,0x06,0x5b,0x4f,
6 0x66,0x6d,0x7d,0x07,
7 0x7f,0x6f,0x77,0x7c,
8 0x39,0x5e,0x79,0x71};
9 unsigned char code dispbit1[]={0,1};
10 unsigned char code dispbit2[]={1,0};
11 unsigned char dispbit[]={0xfe,0xfd};
12 unsigned char dispbuf[]={0,0};
13 unsigned char cnt;
14 sbit S1=P2^0;
15 sbit S2=P2^1;
16 void delays(void);
17 unsigned char kbscan(void);
18 void main(void)
19 {uchar key;
20 1
21 1 TMOD=0x01;
22 1 TH0=(65536-4000)/256;
23 1 TL0=(65536-4000)%256;
24 1 TR0=1;
25 1 ET0=1;
26 1 EA=1;
27 1
28 1 while(1)
29 1 {key=kbscan();
30 2 delays();
31 2 dispbuf[0]=key/16;
32 2 dispbuf[1]=key%16;
33 2
34 2 }
35 1 }
36
37
38 //
39 void delays(void)
40 {
41 1 uchar i;
42 1 for(i=300;i>0;i--);
43 1 }
44
45 //
46 uchar kbscan(void)
47 {
48 1 uchar sccode,recode;
49 1 P3=0xf0;
50 1 if((P3&0xf0)!=0xf0)
51 1 {
52 2 delays();
53 2 if((P3&0xf0)!=0xf0)
54 2 {
55 3 sccode=0xfe;
C51 COMPILER V8.06 KEYSCAN 07/31/2008 16:08:35 PAGE 2
56 3 while((sccode&0x10)!=0)
57 3 {
58 4 P3=sccode;
59 4 if((P3&0xf0)!=0xf0)
60 4 {
61 5 recode=(P3&0xf0)|0x0f;
62 5 return((~sccode)+(~recode));
63 5
64 5 }
65 4 else sccode=(sccode<<1)|0x01;
66 4 }
67 3 }
68 2 }
69 1 return(0);
70 1 }
71
72 void Timer0() interrupt 1 using 1
73 {
74 1 TH0=(65536-4000)/256;
75 1 TL0=(65536-4000)%256;
76 1
77 1 // S1=dispbit1[cnt];
78 1 // S2=dispbit2[cnt];
79 1 P2=dispbit[cnt];
80 1 P0=table[dispbuf[cnt]];
81 1 cnt++;
82 1 if(cnt==2)cnt=0;
83 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 161 ----
CONSTANT SIZE = 20 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 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 + -