?? isr.lst
字號:
C51 COMPILER V8.02 ISR 07/08/2008 20:47:02 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE ISR
OBJECT MODULE PLACED IN ISR.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ISR.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "hardware.h"
2 #include "ISR.H"
3 /*void beer()
4 { unsigned char j;
5 int i=100;
6 while(i--)
7 {
8 P3_0=0;
9 for(j=0;j<70;j++);
10 P1_0=1;
11 for(j=0;j<70;j++);
12 }
13 } */
14 unsigned char key_old=0,key_new=0,key=0,key_pressed_time=0,time_out=0;
15 void Count_2_interrupt(void) interrupt 5
16 {
17 1 TF2=0;
18 1 P2=1;
19 1 if(key)return; //如果上次按鍵未處理,則返回
20 1 KEY_IN=0xFF; //釋放IO
21 1
22 1 if((KEY_IN&0x0F)==0x0F) //按鍵釋放
23 1 {
24 2 if(!key_old) //如果上次無按鍵按下
25 2 {
26 3
27 3 return; //返回
28 3 }
29 2 else //如果上次有按鍵按下
30 2 {
31 3 if(key_pressed_time>100) //按鍵時間超過一秒,長按鍵碼
32 3 {
33 4 key=key_old+0x80; //長按鍵碼等于普通按鍵碼加0x80
34 4 }
35 3 else if(key_pressed_time>0)
36 3 {
37 4 key=key_old;
38 4 }
39 3 key_old=0;
40 3 }
41 2
42 2 return;
43 2 }
44 1 else //按鍵按下
45 1 {
46 2 key_new=0;
47 2 if(!ENTER)key_new+=KEY_ENTER; //ENTER鍵按下
48 2 if(!DOWN)key_new+=KEY_DOWN; //DOWN鍵按下
49 2 if(!UP)key_new+=KEY_UP; //UP鍵按下
50 2 if(!MENU)key_new+=KEY_MENU; //MENU鍵按下
51 2 if(key_new==key_old) //如果按鍵按下長于10ms
52 2 {
53 3 if(key_pressed_time>100) //如果按鍵按下超過1s
54 3 {
55 4
C51 COMPILER V8.02 ISR 07/08/2008 20:47:02 PAGE 2
56 4 return;
57 4 }
58 3 else
59 3 {
60 4 key_pressed_time++;
61 4 }
62 3 }
63 2 else
64 2 {
65 3 // beer();
66 3
67 3 key_pressed_time=0;
68 3 }
69 2 key_old=key_new; //保存本次按鍵值
70 2 }
71 1
72 1 }
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
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -