📄 key.lst
字号:
C51 COMPILER V7.09 KEY 10/19/2006 13:24:53 PAGE 1
C51 COMPILER V7.09, 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
3 #define LED_BIT P3
4 #define LED_SEG P0
5
6 #define KeyIO P2 //p2口接4mul4键盘
7
8 sbit ScanIO = P3^3; //p3.3为附加扫描线扩展1mul8键盘
9 unsigned char Key_Vlue[25] = {0x77,0xb7,0xd7,0xe7,0x7b,0xbb,0xdb,0xeb,
10 // 0 1 2 3 4 5 6 7
11 0x7d,0xbd,0xdd,0xed,0x7e,0xbe,0xde,0xee,
12 // 8 9 10 11 12 13 14 15
13 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
14 unsigned char Scan_Key1mul8()
15 {
16 1 unsigned char i;
17 1 unsigned char scancode,keycode;
18 1 ScanIO = 0;
19 1 scancode = 0xff;//P2口输出全1则无键闭合
20 1 KeyIO = scancode;
21 1 keycode = KeyIO;
22 1 if(keycode!=0xff)
23 1 {
24 2 for(i=16;i<24;i++)
25 2 {
26 3 if(keycode == Key_Vlue[i])
27 3 return (i);//返回的是键值的相对位置16~23
28 3 }
29 2 }
30 1 return 0xff;//无键按下时返回值为0xff
31 1 }
32
33
34
35 //线反转法4mul4键盘扫描子程序
36 unsigned char Scan_Key4mul4()
37 {
38 1 unsigned char i;
39 1 unsigned char scancode,keycode,keycode_line,keycode_row;
40 1
41 1 scancode = 0xf0;//列置低,行置高
42 1 KeyIO = scancode;//输入扫描码,扫描行
43 1 keycode_line = KeyIO;
44 1
45 1 scancode = 0x0f;//列置高,行置低
46 1 KeyIO = scancode;//输入扫描码,扫描列
47 1 keycode_row = KeyIO;
48 1
49 1 keycode = ((keycode_line&0xF0)|(keycode_row&0x0F));
50 1 for(i=0;i<16;i++)
51 1 {
52 2 if(keycode==Key_Vlue[i])
53 2 return (i);//返回的是键值的相对位置0~15
54 2 }
55 1 return 0xff;//无键按下时返回值为0xff
C51 COMPILER V7.09 KEY 10/19/2006 13:24:53 PAGE 2
56 1 }
57
58 unsigned char Key(void)
59 {
60 1 unsigned char temp;
61 1 temp=Scan_Key1mul8();
62 1 if(temp!=0xff)
63 1 return temp;
64 1 else
65 1 {
66 2 temp=Scan_Key4mul4();
67 2 if(temp!=0xff)
68 2 return temp;
69 2 }
70 1 return 0xff;
71 1 }
72
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 90 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 25 ----
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 + -