📄 key.lst
字号:
C51 COMPILER V8.02 KEY 11/11/2008 22:44:43 PAGE 1
C51 COMPILER V8.02, 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
2 #include<reg52.h>
3 #include" lcd.h "
4 #include" key.h "
5 #include" led.h "
6
7 extern uchar Time;
8 uchar KeyFlag;
9 uchar ScanKey( void )
10 {
11 1 uchar mTemp[5],key=0,i;
12 1 mTemp[0]=Up;
13 1 mTemp[1]=Left;
14 1 mTemp[2]=Right;
15 1 mTemp[3]=Down;
16 1 mTemp[4]=Enter;
17 1
18 1 for(i=0;i<5;i++)
19 1 {
20 2 mTemp[i]=~mTemp[i];
21 2 mTemp[i]&=0x01;
22 2 }
23 1 key|=(mTemp[0]);
24 1 key|=(mTemp[1]<<1);
25 1 key|=(mTemp[2]<<2);
26 1 key|=(mTemp[3]<<3);
27 1 key|=(mTemp[4]<<4);
28 1
29 1 return key;
30 1 }
31 /////////////////////////////////////////////////////
32 //得到按键
33 uchar GetKey( void )
34 {
35 1 uchar key[2];
36 1 key[0]=ScanKey();
37 1 if(key[0]!=0)
38 1 {
39 2
40 2 Delay(200);
41 2 key[1]=ScanKey();
42 2 return (key[0]==key[1]) ? key[0] : 0;
43 2 }
44 1 else
45 1 return 0;
46 1
47 1 }
48
49 void KeyHandle( void )
50 {
51 1 uchar mKey=0;
52 1 //uchar temp[1];
53 1 mKey=GetKey();
54 1
55 1 if(mKey!=0)
C51 COMPILER V8.02 KEY 11/11/2008 22:44:43 PAGE 2
56 1 {
57 2 //Time=250;
58 2 switch(mKey)
59 2 {
60 3 case 0x01:
61 3 KeyFlag++;
62 3 if( KeyFlag>3 )
63 3 KeyFlag=0;
64 3
65 3 break;
66 3 case 0x02:
67 3 if( KeyFlag==0 )
68 3 {
69 4 //TestLed();
70 4 Clr();
71 4 DispWait();
72 4 TestLed();
73 4 }
74 3 else if( KeyFlag==1 )
75 3 {
76 4 //TestSeg();
77 4 Clr();
78 4 DispWait();
79 4 TestSeg();
80 4 }
81 3 else if( KeyFlag==2 )
82 3 {
83 4 Time=250;
84 4 Clr();
85 4 DispTemperature();
86 4 }
87 3 else if( KeyFlag==3 )
88 3 {
89 4 Time=250;
90 4 Clr();
91 4 DispTime();
92 4 }
93 3
94 3 break;
95 3 case 0x04:
96 3
97 3 break;
98 3
99 3 case 0x08:
100 3
101 3 break;
102 3
103 3 case 0x10:
104 3
105 3 break;
106 3
107 3 default:
108 3 break;
109 3 }
110 2
111 2 }
112 1
113 1
114 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V8.02 KEY 11/11/2008 22:44:43 PAGE 3
CODE SIZE = 205 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 7
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 + -