📄 mykey.lst
字号:
C51 COMPILER V7.00 MYKEY 10/25/2004 11:31:38 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE MYKEY
OBJECT MODULE PLACED IN mykey.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE mykey.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.h>
2 unsigned char key,key_h,kpush;
3 unsigned int key_l;
4
5 //按键连接到p1.0、p1.1、p1.2
6
7 void int_t0(void) interrupt 1 {
8 1 //unsigned char dd,i;
9 1 TL0=TL0+30;TH0=0xfb; //800
10 1 /* 按键判别 */
11 1 if ((P1&0x7)==0x7) {
12 2 if ((key_l>30)&&(key_l<800)&&(key_h>30)) { //释放按键,如果之前按键时间少于1秒,读入键值
13 3 key=kpush;
14 3 }
15 2 if ((++key_h)>200) key_h=200;
16 2 key_l=0;
17 2 if (key>=0x80) key=0; //如果之前的按键为长按1秒,清除键值
18 2 } else {
19 2 kpush=P1&0x7;
20 2 key_l++;
21 2 if ((key_l>800)&&(key_h>30)) { //如果按键超过1秒,键值加0x80标志长按键
22 3 key=kpush|0x80;
23 3 key_h=0;
24 3 key_l=0;
25 3 }
26 2 }
27 1 }
28 void main(void) {
29 1 TMOD=0x1;TR0=1;ET0=1;EA=1;
30 1 while (1) {
31 2 while (!key) {}
32 2 switch (key) {
33 3 case 1:break;
34 3 case 2:break;
35 3 }
36 2 }
37 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 144 ----
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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -