📄 ex05.lst
字号:
C51 COMPILER V7.03 EX05 05/22/2005 12:51:27 PAGE 1
C51 COMPILER V7.03, COMPILATION OF MODULE EX05
OBJECT MODULE PLACED IN ex05.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ex05.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*******************************************************************************
2 Title: 演示程序5 - 按键检测 *
3 Name: ex05.c *
4 Date: 2005-5-5 *
5 Ver: 1.0 *
- *
6 web: http://www.mcustudy.com *
7 ********************************************************************************
8 * 描述: *
9 * 按键扫描程序 *
10 * 上电时, 点亮P00口LED *
11 * 按下K1时, LED向右移一位 *
12 * 按下K2时, LED向左移一位 *
13 *******************************************************************************/
14
15 #include <reg51.h>
16 #include <intrins.h>
17
18
19 sbit K1 = P3^2;
20 sbit K2 = P3^3;
21
22 unsigned char scan_key()
23 {
24 1 unsigned char key_s;
25 1 key_s = 0x00;
26 1 key_s |= K2;
27 1 key_s <<= 1;
28 1 key_s |= K1;
29 1 return key_s;
30 1 }
31
32 void proc_key(unsigned char key_v)
33 {
34 1 if((key_v & 0x01) == 0)
35 1 {
36 2 P0 = _cror_(P0,1);
37 2 }
38 1 else if((key_v & 0x02) == 0)
39 1 {
40 2 P0 = _crol_(P0, 1);
41 2 }
42 1 }
43
44 void delayms(unsigned char ms) // 延时子程序
45
46 {
47 1 unsigned char i;
48 1 while(ms--)
49 1 {
50 2 for(i = 0; i < 120; i++);
51 2 }
52 1 }
53
54
C51 COMPILER V7.03 EX05 05/22/2005 12:51:27 PAGE 2
55
56 main()
57 {
58 1
59 1 unsigned char key_s,key_v;
60 1 key_v = 0x03;
61 1 P0 = 0xfe;
62 1 while(1)
63 1 {
64 2 key_s = scan_key();
65 2 if(key_s != key_v)
66 2 {
67 3 delayms(20);
68 3 key_s = scan_key();
69 3 if(key_s != key_v)
70 3 {
71 4 key_v = key_s;
72 4 proc_key(key_v);
73 4 delayms(150);
74 4 }
75 3 }
76 2 }
77 1 }
78
79
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 106 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -