📄 keyscan.lst
字号:
C51 COMPILER V8.05a KEYSCAN 09/21/2007 13:33:54 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE KEYSCAN
OBJECT MODULE PLACED IN KeyScan.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE KeyScan.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #define uchar unsigned char
3
4 bit bdata KeyFlag;
5
6 void Delay10ms(void)
7 {
8 1 uchar i,j,k;
9 1
10 1 for(i=5; i>0; i--)
11 1 for(j=4; j>0; j--)
12 1 for(k=248; k>0; k--);
13 1 }
14
15 uchar KeyScan(void)
16 {
17 1 uchar PreRead; /*first read key value*/
18 1 uchar ReRead; /*second read key value*/
19 1 uchar RowTemp;
20 1 uchar ColTemp;
21 1
22 1 KeyFlag = 0;
23 1
24 1 P2 = 0xf0;
25 1 RowTemp = P2 & 0xf0; /*read row value*/
26 1 if(RowTemp == 0xf0) return(0xff);
27 1
28 1 P2 = 0x0f;
29 1 ColTemp = P2 & 0x0f; /*read column value*/
30 1
31 1 PreRead = RowTemp|ColTemp; /*get keyboard scan value*/
32 1
33 1 Delay10ms();
34 1
35 1 P2 = 0xf0;
36 1 RowTemp = P2 & 0xf0; /*reread row value*/
37 1 if(RowTemp == 0xf0) return(0xff);
38 1
39 1 P2 = 0x0f;
40 1 ColTemp = P2 & 0x0f; /*reread column value*/
41 1
42 1 ReRead = RowTemp|ColTemp; /*re-get keyboard scan value*/
43 1
44 1 if(PreRead==ReRead)
45 1 {
46 2 KeyFlag = 1;
47 2 //P2 = 0xf0;
48 2 return(~ReRead);
49 2 }
50 1 }
51
52 main()
53 {
54 1 uchar GetKeyValue;
55 1 uchar KeyValue;
C51 COMPILER V8.05a KEYSCAN 09/21/2007 13:33:54 PAGE 2
56 1 GetKeyValue=KeyScan();
57 1 if(KeyFlag = 1)
*** WARNING C276 IN LINE 57 OF KEYSCAN.C: constant in condition expression
58 1 KeyValue = GetKeyValue;
59 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 83 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -