📄 read_key.lst
字号:
C51 COMPILER V6.23a READ_KEY 12/13/2002 12:45:23 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE READ_KEY
OBJECT MODULE PLACED IN Read_Key.OBJ
COMPILER INVOKED BY: D:\KEIL\C51\BIN\C51.EXE Read_Key.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /* DA is key's high 4 bits
2 if (DA == 0)
3 high(key) = 1
4 else
5 high(key) = 0
6
7 if (Inc == 0)
8 low(key) = 1
9 if (Dec == 0)
10 low(key) = 2
11 if (Wri == 0)
12 low(key) = 3
13 */
14
15 #include "reg51.h"
16
17 void delay(unsigned int);
18 bit b_inc = 0,b_dec = 0,da_first = 0;
19 sbit Inc = P1^0;
20 sbit Dec = P1^1;
21 sbit DA = P1^2;
22 sbit Wri = P3^2;
23 unsigned char i;
24
25 unsigned char Read_Key(unsigned char *d,unsigned char *pc)
26 {
27 1 unsigned char key;
28 1 P1 = P1 | 0x0f;
29 1 if (Inc == 0)
30 1 {
31 2 delay(10);
32 2 if (Inc ==0)
33 2 {
34 3 if (b_inc == 0)
35 3 {
36 4 delay(300);
37 4 b_inc = 1;
38 4 }
39 3 if (DA == 0)
40 3 {
41 4 key = 0x11; // if (DA == 0) high(key) = 2;
42 4 (*pc)++;
43 4 }
44 3 else //if (Inc == 0) low(key) = 1;
45 3 { key = 0x01;
46 4 (*d)++;
47 4 }
48 3 for ( i = 0;Inc == 0 && i < 60;i++)
49 3 delay(1);
50 3 }
51 2 }
52 1 else if (Dec == 0)
53 1 {
54 2 delay(10);
55 2 if (Dec == 0)
C51 COMPILER V6.23a READ_KEY 12/13/2002 12:45:23 PAGE 2
56 2 {
57 3 if (b_dec == 0)
58 3 {
59 4 delay(300);
60 4 b_dec = 1;
61 4 }
62 3 if (DA == 0)
63 3 {
64 4 key = 0x12;
65 4 (*pc)--;
66 4 }
67 3 else
68 3 {
69 4 key = 0x02;
70 4 (*d)--;
71 4 }
72 3 for (i = 0;Dec == 0 && i < 60;i++)
73 3 delay(1);
74 3 }
75 2 }
76 1 else if (DA == 0)
77 1 {
78 2 delay(50);
79 2 if (DA == 0)
80 2 {
81 3 b_inc = b_dec = 0;
82 3 if (Wri == 0)
83 3 key = 0x13;
84 3 else
85 3 {
86 4 key = 0x10;
87 4 if (!da_first)
88 4 {
89 5 da_first = 1;
90 5 (*pc)++;
91 5 }
92 4 }
93 3 }
94 2 }
95 1 else if (Wri == 0)
96 1 {
97 2 b_inc = b_dec = da_first = 0;
98 2 delay(100);
99 2 if (Wri == 0)
100 2 {
101 3 key = 0x03;
102 3 }
103 2 }
104 1 else
105 1 {
106 2 b_inc = b_dec = da_first = 0;
107 2 key = 0x00;
108 2 }
109 1 return key;
110 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 257 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V6.23a READ_KEY 12/13/2002 12:45:23 PAGE 3
DATA SIZE = 1 7
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -