📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 05/27/2008 11:08:23 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil51\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include <stdio.h>
3 #include <uart.h>
4 #include <max7219.h>
5
6 #define P_KEY P1
7
8 void delay(int time)
9 {
10 1 int i;
11 1 for (i=0; i<time; i++)
12 1 {
13 2 ;
14 2 }
15 1 }
16
17
18
19
20
21 char FindKey()
22 {
23 1 char key = -1, i;
24 1
25 1 P_KEY = 0x0f;
26 1 key = P_KEY;
27 1
28 1
29 1 if (key == 0x0f)
30 1 {
31 2 return -1;
32 2 }
33 1
34 1 delay(5000);
35 1
36 1
37 1 key = P_KEY;
38 1 if (key == 0x0f)
39 1 {
40 2 return -1;
41 2 }
42 1
43 1 for (i=0; i<4; i++)
44 1 {
45 2 P_KEY = ~(1 << (i + 4));
46 2
47 2 key = P_KEY;
48 2
49 2 key = key & 0x0f;
50 2 if (key == 0x0f)
51 2 {
52 3 continue;
53 3 }
54 2
55 2 if (key == 0x0e)
C51 COMPILER V7.50 MAIN 05/27/2008 11:08:23 PAGE 2
56 2 {
57 3 key = i + 0 * 4;
58 3 }
59 2 else if (key == 0x0d)
60 2 {
61 3 key = i + 1 * 4;
62 3 }
63 2 else if (key == 0x0b)
64 2 {
65 3 key = i + 2 * 4;
66 3 }
67 2 else if (key == 0x07)
68 2 {
69 3 key = i + 3 * 4;
70 3 }
71 2 P_KEY = 0x0f;
72 2 while( (P_KEY != 0x0f));
73 2 break;
74 2
75 2 }
76 1 return key;
77 1
78 1 }
79
80
81 /*
82 unsigned char FindKey()
83 {
84 unsigned char key, temp;
85
86 P_KEY = 0x0f;
87 key = P_KEY;
88 if (key == 0x0f)
89 {
90 return 0;
91 }
92 delay(5000);
93
94 key = P_KEY;
95 if (key == 0x0f)
96 {
97 return 0;
98 }
99
100
101 temp = (key >> 4);
102
103 if (temp >= 4)
104 {
105 if (temp == 4)
106 {
107 temp = 3;
108 }
109 else
110 {
111 temp = 4;
112 }
113 }
114
115
116 P_KEY = 0xf0;
117
C51 COMPILER V7.50 MAIN 05/27/2008 11:08:23 PAGE 3
118 key = P_KEY;
119
120 key = key & 0x0f;
121
122 if (key >= 4)
123 {
124 if (key == 4)
125 {
126 key = 3;
127 }
128 else
129 {
130 key = 4;
131 }
132 }
133
134
135
136 key = (key - 1) * 4 + temp;
137
138 P_KEY = 0x0f;
139 while( P_KEY != 0x0f);
140 return key;
141
142
143 }
144 */
145
146 char buf[20];
147 sbit P20 = P2^0;
148
149
150 unsigned char code ascii[11]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0F};
151
152
153 void main(void)
154 {
155 1 int key;
156 1
157 1 int i;
158 1
159 1
160 1 uart_init();
161 1 InitialMax7219();
162 1
163 1 for (i=0; i<8; i++)
164 1 {
165 2 WriteToMax7219(i + 1, ascii[i]&0x7f);
166 2 }
167 1
168 1
169 1 while(1)
170 1 {
171 2
172 2 key = FindKey();
173 2 if (key >= 0)
174 2 {
175 3 sprintf(buf, "Key = %d \n", key);
176 3 SendStr(buf);
177 3 }
178 2 }
179 1
C51 COMPILER V7.50 MAIN 05/27/2008 11:08:23 PAGE 4
180 1
181 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 240 ----
CONSTANT SIZE = 23 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 20 4
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 + -