📄 key_new.lst
字号:
C51 COMPILER V7.07 KEY_NEW 06/14/2007 21:11:22 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE KEY_NEW
OBJECT MODULE PLACED IN key_new.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE key_new.c COMPACT BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <SST89x5x4.H>
2
3 #define uchar unsigned char
4 #define uint unsigned int
5 #define lcd_clr 0x01
6 #define option_num 8
7 uchar basic_time=0;
8 uchar page = 0;
9 uchar page_old = 0;
10 uchar page_new = 1;
11
12
13 /*
14 keyboard data
15 0 12
16 1 8
17 2 4
18 3 0
19 4 1
20 5 2
21 6 3
22 7 5
23 8 6
24 9 7
25 10-ok 9
26 11 10
27 12-wrong11
28 13 13
29 14 14
30 15 15
31 */
32
33 #define key_0 12
34 #define key_1 8
35 #define key_2 4
36 #define key_3 0
37 #define key_4 1
38 #define key_5 2
39 #define key_6 3
40 #define key_7 5
41 #define key_8 6
42 #define key_9 7
43 #define key_o 9
44 #define key_d 10
45 #define key_c 11
46 #define key_l 13
47 #define key_u 14
48 #define key_r 15
49
50 //全局变量定义
51 sbit rs = P1^7;
52 sbit rw = P1^6;
53 sbit e = P2^1;
54 sbit lcd_deng = P2^3;
55 sbit le = P2^6;
C51 COMPILER V7.07 KEY_NEW 06/14/2007 21:11:22 PAGE 2
56 sbit ce = P2^4;
57
58 //函数申明
59 void lcd_ini(void);
60 void lcd_wrc(uchar com);
61 void lcd_wrd(uchar dat);
62 void lcd_checkbusy();
63 void delay(uchar n);
64 void ldelay(uchar n);
65 void lcd_on();
66 void lcd_off();
67 uchar lcd_read_ac();
68 void lcd_dis_num(uint dat);
69 void lcd_dis_ch(uchar h,uchar l);
70 void lcd_add(uchar h,uchar l);
71
72
73 void page_0();
74 void page_1();
75 void page_2();
76 void page_3();
77 void page_4();
78 void page_5();
79
80 //keyboard
81 uchar key_data(void);
82 uchar check_key(void);
83 uchar key_data_ok(void);
84
85 uchar lcd_line = 0;
86 //总线控制--使能和释放
87 void ad_en(void);
88 void lcd_en(void);
89 void three_en(void);
90 /*
91 struct caidan
92 {
93 uchar key_index;
94 uchar key_ok;
95 uchar key_cancel;
96 uchar (*function)(); //定义一个指向函数的指针变量
97 };
98
99 struct caidan menu[]=
100 {
101
102 // {0,0,1,(*page_0)},
103 // {0,0,1,(*function)},
104 {1,6,0,(*page_1)},
105 {2,7,0,(*page_2)},
106 {3,8,0,(*page_3)},
107 {4,9,0,(*page_4)},
108 {5,10,0,(*page_5)},
109
110 };
111 */
112 void page_1()
113 {
114 1 uchar i = 0;
115 1 uchar dat_1[] = {"1.列车检测"};
116 1 uchar dat_2[] = {"2.单车检测"};
117 1 uchar dat_3[] = {"3.参数设置"};
C51 COMPILER V7.07 KEY_NEW 06/14/2007 21:11:22 PAGE 3
118 1 uchar dat_4[] = {"4.历史数据"};
119 1 uchar dat_5[] = {"5.两相测量"};
120 1 // lcd_wrc(0x01);
121 1 // ldelay(200);
122 1 page_new = 0;
123 1 lcd_add(1,1);
124 1 for (i=0; i<10; i++)
125 1 {
126 2 lcd_wrd(dat_1[i]);
127 2 }
128 1 // lcd_wrc(0x04);
129 1 lcd_add(2,1);
130 1 for (i=0; i<10; i++)
131 1 {
132 2 lcd_wrd(dat_2[i]);
133 2 }
134 1 lcd_add(3,1);
135 1 for (i=0; i<10; i++)
136 1 {
137 2 lcd_wrd(dat_3[i]);
138 2 }
139 1 lcd_add(4,1);
140 1 for (i=0; i<10; i++)
141 1 {
142 2 lcd_wrd(dat_4[i]);
143 2 }
144 1 // lcd_wrc(0x34);
145 1 // lcd_wrc(0x05);
146 1 }
147 void page_0(void)
148 {
149 1 uchar dat_1[] = {"一二三四五六日"};
150 1 uchar i = 0;
151 1
152 1 basic_time ++;
153 1 page_new = 0;
154 1
155 1 // lcd_wrc(0x01);
156 1 //计算温度和湿度年月日
157 1 if(basic_time==100)
158 1 {
159 2 cal_temp_humi();
*** WARNING C206 IN LINE 159 OF KEY_NEW.C: 'cal_temp_humi': missing function-prototype
160 2 lcd_read_time();
*** WARNING C206 IN LINE 160 OF KEY_NEW.C: 'lcd_read_time': missing function-prototype
161 2 basic_time = 0;
162 2 }
163 1 else
164 1 {
165 2 lcd_read_time();
166 2 }
167 1
168 1 // cal_basic(); //
169 1 lcd_add(1,1);
170 1 lcd_dis_num_2(20);
*** WARNING C206 IN LINE 170 OF KEY_NEW.C: 'lcd_dis_num_2': missing function-prototype
*** ERROR C267 IN LINE 170 OF KEY_NEW.C: 'lcd_dis_num_2': requires ANSI-style prototype
171 1 lcd_dis_num_2((uint)b_data.year);
*** ERROR C202 IN LINE 171 OF KEY_NEW.C: 'b_data': undefined identifier
172 1 lcd_dis_ch(0xc4,0xea); //uchar h,uchar l);
173 1 lcd_wrd(0x20);
174 1 lcd_wrd(0x20);
C51 COMPILER V7.07 KEY_NEW 06/14/2007 21:11:22 PAGE 4
175 1 lcd_add(1,5);
176 1 lcd_dis_num_2((uint)b_data.month);
*** ERROR C202 IN LINE 176 OF KEY_NEW.C: 'b_data': undefined identifier
177 1 lcd_dis_ch(0xd4,0xc2);
178 1 lcd_add(1,7);
179 1 lcd_dis_num_2((uint)b_data.date);
*** ERROR C202 IN LINE 179 OF KEY_NEW.C: 'b_data': undefined identifier
180 1 lcd_dis_ch(0xc8,0xd5);
181 1 lcd_add(2,1);
182 1 lcd_dis_ch(0xd0,0xc7);
183 1 lcd_dis_ch(0xc6,0xda);
184 1
185 1 // lcd_dis_num_1((uint)b_data.day);
186 1 i=b_data.day;
*** ERROR C202 IN LINE 186 OF KEY_NEW.C: 'b_data': undefined identifier
187 1 lcd_dis_ch(dat_1[2*(i-1)],dat_1[2*(i-1)+1]);
188 1
189 1 lcd_add(2,5);
190 1 lcd_dis_num_2((uint)b_data.hour);
*** ERROR C202 IN LINE 190 OF KEY_NEW.C: 'b_data': undefined identifier
191 1 lcd_wrd(0x3a);
192 1 // lcd_add(2,6);
193 1 lcd_dis_num_2((uint)b_data.minute);
*** ERROR C202 IN LINE 193 OF KEY_NEW.C: 'b_data': undefined identifier
194 1 lcd_wrd(0x3a);
195 1 // lcd_add(2,8);
196 1 lcd_dis_num_2((uint)b_data.second);
*** ERROR C202 IN LINE 196 OF KEY_NEW.C: 'b_data': undefined identifier
197 1 lcd_add(3,1);
198 1 lcd_dis_ch(0xca,0xaa);
199 1 lcd_dis_ch(0xb6,0xc8);
200 1 lcd_wrd(0x3a);
201 1 lcd_add(3,4);
202 1 lcd_dis_num_2((uint)b_data.humi);
*** ERROR C202 IN LINE 202 OF KEY_NEW.C: 'b_data': undefined identifier
203 1 // lcd_wrd(0x25);
204 1 lcd_dis_ch(0xa3,0xa5);
205 1 lcd_add(3,7);
206 1 lcd_dis_ch(0xc7,0xeb);
207 1 lcd_dis_ch(0xb0,0xb4);
208 1 lcd_add(4,1);
209 1 lcd_dis_ch(0xce,0xc2);
210 1 lcd_dis_ch(0xb6,0xc8);
211 1 lcd_wrd(0x3a);
212 1 lcd_add(4,4);
213 1 lcd_dis_num_2((uint)b_data.temp);
*** ERROR C202 IN LINE 213 OF KEY_NEW.C: 'b_data': undefined identifier
214 1 lcd_dis_ch(0xa1,0xe6);
215 1 lcd_add(4,7);
216 1 lcd_dis_ch(0xc8,0xa1);
217 1 lcd_dis_ch(0xcf,0xfb);
218 1
219 1 }
220
221
222 void ad_en(void)
223 {
224 1 /*
225 1 e = 0; //lcd not enable
226 1 le = 0; //three-states latched
227 1 ce = 0; //ad enable
228 1 */
C51 COMPILER V7.07 KEY_NEW 06/14/2007 21:11:22 PAGE 5
229 1 }
230 void lcd_en(void)
231 {
232 1 ce = 1; //ad not enable
233 1 le = 0; //three-states latched
234 1 e = 1; //lcd enable
235 1 }
236
237 void three_en(void)
238 {
239 1 ce = 1; //ad not enable
240 1 e = 0; //lcd not enable
241 1 le = 1; //tree-states open
242 1 }
243
244
245 void lcd_ini()
246 {
247 1 delay(100);
248 1 lcd_wrc(0x34);
249 1 delay(10);
250 1 lcd_wrc(0x30);
251 1 delay(10);
252 1 lcd_wrc(0x01);
253 1 delay(10);
254 1 lcd_wrc(0x06);
255 1 delay(10);
256 1 lcd_wrc(0x0c);
257 1 delay(200);
258 1 }
259 void lcd_wrc(uchar com)
260 {
261 1 lcd_en();
262 1 lcd_checkbusy();
263 1 rs = 0;
264 1 rw = 0;
265 1 P0 = com;
266 1 e = 1;
267 1 delay(10);
268 1 e = 0;
269 1 }
270
271 void lcd_wrd(uchar dat)
272 {
273 1 // checkbusy();
274 1 lcd_en();
275 1 lcd_checkbusy();
276 1 rs = 1;
277 1 rw = 0;
278 1 P0 = dat;
279 1 e = 1;
280 1 delay(5);
281 1 e = 0;
282 1 }
283 void lcd_checkbusy()
284 {
285 1
286 1 uchar busy = 0;
287 1 lcd_en();
288 1 P0 = 0XFF;
289 1 busy = P0;
290 1 if(busy>0x7f)
C51 COMPILER V7.07 KEY_NEW 06/14/2007 21:11:22 PAGE 6
291 1 {
292 2 rs = 0;
293 2 rw = 1;
294 2 e = 1;
295 2 busy = P0;
296 2 e = 0;
297 2 delay(10);
298 2 }
299 1 }
300 uchar lcd_rdd();
301 void delay(uchar n)
302 {
303 1 while(n--);
304 1 }
305
306 void ldelay(uchar n)
307 {
308 1 uchar a=100;
309 1 while(a--)
310 1 {
311 2 while(n--);
312 2 }
313 1 }
314
315
316 void lcd_on()
317 {
318 1 lcd_deng = 0;
319 1 }
320 void lcd_off()
321 {
322 1 lcd_deng = 1;
323 1 }
324 uchar lcd_read_ac()
325 {
326 1 // uchar dat = 0;
327 1 lcd_en();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -