?? key.lst
字號:
C51 COMPILER V7.50 KEY 03/24/2008 11:06:15 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "key.h"
2 #include "config.h"
3
4 volatile uint8 KeyCurrent,KeyOld,KeyNoChangedTime;
5 volatile uint8 KeyPress,KeyDown,KeyUp,KeyLast;
6 volatile uint8 KeyChangeable;
7
8 void Timer0Init(void)
9 {
10 1 EA = 0;
11 1 TMOD &= 0xf0;
12 1 TMOD |= 0x01;
13 1 TH0 = 0xdc; //定時中斷約5ms
14 1 ET0 = 1; //TIMER0中斷允許
15 1 TR0 = 1; //開始計數
16 1 EA = 1;
17 1 }
18
19 void KeyInit(void)
20 {
21 1 KeyIO = 0xff;
22 1 KeyCurrent = 0;
23 1 KeyOld = 0;
24 1 KeyNoChangedTime = 0;
25 1 KeyPress = 0;
26 1 KeyDown = 0;
27 1 KeyUp = 0;
28 1 KeyLast = 0;
29 1 KeyChangeable = 1;
30 1 Timer0Init();
31 1 }
32
33 void Timer0ISP(void) interrupt 1
34 {
35 1 TH0 = 0xdc; //timer0 溢出中斷約5ms
36 1 if(0 == KeyChangeable)
37 1 return;
38 1 KeyCurrent = ~(KeyIO);
39 1 if(KeyCurrent != KeyOld)
40 1 {
41 2 KeyNoChangedTime = 0;
42 2 KeyOld = KeyCurrent;
43 2 return;
44 2 }
45 1 else
46 1 {
47 2 KeyNoChangedTime++;
48 2 if(KeyNoChangedTime >= 1)
49 2 {
50 3 KeyNoChangedTime=1;
51 3 KeyPress = KeyOld;
52 3 KeyDown |= (~KeyLast) & KeyPress;
53 3 KeyUp |= KeyLast & (~KeyPress);
54 3 KeyLast = KeyPress;
55 3 }
C51 COMPILER V7.50 KEY 03/24/2008 11:06:15 PAGE 2
56 2 }
57 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 109 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 ----
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 + -