?? keys.lst
字號(hào):
C51 COMPILER V7.06 KEYS 06/08/2006 23:56:18 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE KEYS
OBJECT MODULE PLACED IN KEYS.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE KEYS.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1
2 #include "main.h"
3 #include "KEYS.h"
4 KEYBoard Key;
5
6 /*********************************************************************************************/
7 void KEYBoardInit(void)
8 {
9 1 Key.Value=0; //Key初始化
10 1 Key.OldValue=0;
11 1 Key.NewValue=0;
12 1 Key.PressedTime=0;
13 1 }
14 ///////////////////////////////////////////////////////////////////////////////////////////////
15
16 /*********************************************************************************************/
17 void ScanKey(void) //鍵盤掃描
18 {
19 1 P3 = 255; //51按鍵掃描必須先寫1,
20 1 if(Key.Value)return; //如果上次按鍵還未處理,則直接返回,不掃描新的按鍵
21 1
22 1 if(KEY1IN && KEY2IN ) //如果輸入全部是高,則按鍵處于釋放狀態(tài)
23 1 {
24 2 if(!(Key.OldValue)) //如果上次無(wú)按鍵按下
25 2 {
26 3 return; //返回
27 3 }
28 2 else //如果上次有按鍵按下
29 2 {
30 3 if(Key.LongKey==1)
31 3 {
32 4 Key.LongKey=0;
33 4 Key.PressedTime=0;
34 4 }
35 3
36 3 if(Key.PressedTime>70) //按鍵時(shí)間超過一秒,長(zhǎng)按鍵碼
37 3 {
38 4 Key.Value=Key.OldValue+0x80; //長(zhǎng)按鍵碼等于普通按鍵碼加0x80
39 4 }
40 3
41 3 else if(Key.PressedTime>1)
42 3 {
43 4 Key.Value=Key.OldValue; //按鍵值
44 4 }
45 3 Key.OldValue=0;
46 3 }
47 2 return;
48 2 }
49 1 else //按鍵按下
50 1 {
51 2 Key.NewValue=0;
52 2 if(!KEY1IN)Key.NewValue=KEY1; //KEY1鍵按下
53 2 if(!KEY2IN)Key.NewValue=KEY2; //KEY2鍵按下
54 2 //if(!KEY3IN)Key.NewValue=KEY3; //KEY3鍵按下
55 2 //if(!KEY4IN)Key.NewValue=KEY4; //KEY4鍵按下
C51 COMPILER V7.06 KEYS 06/08/2006 23:56:18 PAGE 2
56 2
57 2 if(Key.NewValue==Key.OldValue) //如果連續(xù)兩次掃描到一樣的鍵,即按鍵按下長(zhǎng)于10ms
58 2 {
59 3 if(Key.PressedTime>180) //如果按鍵按下超過2s
60 3 {
61 4 Key.LongKey=1;
62 4 Key.PressedTime-=6; //則自動(dòng)按鍵。相當(dāng)于每隔50ms按一次
63 4 Key.Value=Key.NewValue;
64 4 return;
65 4 }
66 3 else
67 3 {
68 4 Key.PressedTime++; //按鍵按下計(jì)時(shí)加一
69 4 }
70 3 }
71 2 else
72 2 {
73 3 Key.PressedTime=0; //如果本次按下跟上次按下不一樣,則按鍵按下時(shí)間清零
74 3 }
75 2 Key.OldValue=Key.NewValue; //保存本次按鍵值
76 2 }
77 1 }
78 ///////////////////////////////////////////////////////////////////////////////////////////////
79
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 125 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -