📄 key.lst
字号:
C51 COMPILER V8.08 KEY 08/24/2008 22:52:04 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<intrins.h>
3 sbit P34=0xb4;
4 sbit P35=0xb5;
5 //定义显示代码
6 char code disp[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
7 //声明获得键码函数
8 unsigned char get_char(void);
9 //声明延时函数
10 void delay(void);
11 //声明显示函数
12 void display(char dispchar);
13
14 main(){
15 1 unsigned char keybuf,count;
16 1 SCON=0;
17 1 ES=0;
18 1 EA=0;
19 1 count=0;
20 1
21 1 while(1)
22 1 {
23 2 keybuf=get_char();
24 2
25 2 display(keybuf);
26 2
27 2 }
28 1 }
29
30 unsigned char get_char(void){
31 1 unsigned char column=0,mask=0x00,key_code;
32 1 TI=0;
33 1 SBUF=mask;
34 1 while(TI==0);
35 1 while(1){
36 2 while((P34&P35)!=0);
37 2 delay();
38 2 if((P34&P35)!=0) continue;
39 2 else break;
40 2 }
41 1 mask=0xfe;
42 1 while(1)
43 1 {
44 2 TI=0;
45 2 SBUF=mask;
46 2 while(TI==0);
47 2 if((P34&P35)!=0)
48 2 {
49 3 mask=_crol_(mask,1);
50 3 column++;
51 3 if(column>=8) column=0;
52 3 continue;
53 3 }
54 2 else break;
55 2 }
C51 COMPILER V8.08 KEY 08/24/2008 22:52:04 PAGE 2
56 1 if(P34==0) key_code=column;
57 1 else key_code=8+column;
58 1 return(key_code);
59 1
60 1 }
61
62 void delay(void){
63 1 unsigned int i=0;
64 1 while(i--);
65 1 }
66
67 void display(char dispchar)
68 {
69 1 P1=disp[dispchar];
70 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 142 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 5
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 + -