📄 水温控制系统 (1).lst
字号:
225 2 {
226 3 FunctionKey_Flag=0;
227 3 {
228 4 break;
229 4 }
230 3 }
231 2 else if(ReturnKey_Flag==1)
232 2 {
233 3 ReturnKey_Flag=0;
234 3 Return=1;
235 3 goto End;
236 3
237 3 }
238 2
239 2 }
240 1 lcd_code(0xc9);
241 1 lcd_data(num_1+0x30);
242 1 lcd_data(num_0+0x30);
243 1 while(1)
244 1 {
245 2 keyvaule();
246 2 if(ChooseKey_Flag_subb==1)
247 2 {
248 3 ChooseKey_Flag_subb=0;
249 3 if(num_1==0)
250 3 {
251 4 num_1=9;
252 4 }
253 3 else
254 3 {
255 4 num_1--;
256 4 }//减选择键按下,判断计时器是否越界
257 3 lcd_code(0xc9);
258 3 lcd_data(num_1+0x30);
259 3 lcd_data(num_0+0x30);
260 3 }
261 2 else if(ChooseKey_Flag_add==1)
262 2 {
263 3 ChooseKey_Flag_add=0;
264 3 if(num_1==9)
265 3 {
266 4 num_1=0;
267 4 }
268 3 else
269 3 {
270 4 num_1++;
271 4 }//加选择键按下,判断计时器是否越界
272 3 lcd_code(0xc9);
273 3 lcd_data(num_1+0x30);
274 3 lcd_data(num_0+0x30);
275 3 }
276 2 else if(FunctionKey_Flag==1)
277 2 {
278 3 FunctionKey_Flag=0;
279 3 {
280 4 goto End;
281 4 }
282 3 }
283 2 else if(ReturnKey_Flag==1)
284 2 {
285 3 ReturnKey_Flag=0;
C51 COMPILER V7.09 __温控制系统__1_ 12/06/2008 20:27:06 PAGE 6
286 3 goto End ;
287 3 }
288 2 }
289 1 End: lcd_code(0xc9);
290 1 lcd_data(num_1+0x30);
291 1 lcd_data(num_0+0x30);
292 1 num=((num_1)*10)+(num_0);
293 1 num_2=(float)num;
294 1 return(num_2);
295 1 }
296
297
298 /*********************延时函数********************/
299 void delay(unsigned int t)
300 {
301 1 unsigned int i;
302 1 for(i=0;i<=t;i++);
303 1 }
304
305
306
307 /************向液晶写一个命令的函数***************/
308 void lcd_code(unsigned char lcdcode)
309 {
310 1 delay(3);
311 1 A_LCDCOM=lcdcode;
*** ERROR C202 IN LINE 311 OF ..\代码库\水温控制系统 (1).C: 'A_LCDCOM': undefined identifier
312 1 delay(200);
313 1 }
314
315
316
317 /**************向液晶写一个数据的函数*************/
318 void lcd_data(unsigned char lcddata)
319 {
320 1 delay(3);
321 1 A_LCDDATA=lcddata;
*** ERROR C202 IN LINE 321 OF ..\代码库\水温控制系统 (1).C: 'A_LCDDATA': undefined identifier
322 1 delay(200);
323 1 }
324
325
326 /******************初始化液晶屏函数**************/
327 void init_lcd(void)
328 {
329 1 delay(1000);
330 1 lcd_code(0x38);//功能设定,5*7点阵,8位数据接口
331 1 delay(1000);
332 1 lcd_code(0x0c);//显示画面设置,开显示
333 1 delay(1000);
334 1 lcd_code(0x01);//清屏指令
335 1 delay(1000);
336 1 lcd_code(0x06);//当读或写一个字符后地址指针加1,且光标加1
337 1 delay(1000);
338 1 }
339
340
341 /***************显示字符串的函数*******************/
342 void display_char(unsigned char *displaychar)
343 {
344 1 while(*displaychar>0)
345 1 {
C51 COMPILER V7.09 __温控制系统__1_ 12/06/2008 20:27:06 PAGE 7
346 2 lcd_data(*displaychar);
347 2 displaychar++;
348 2 }
349 1 }
350
351
352 /***************显示温度值的函数*******************/
353 void display_tem(float f)
354 {
355 1 unsigned int num0,num1;
356 1 num0=f;//小数部分舍去,留下整数部分
357 1 f=f-num0;//减去整数部分得到小数部分
358 1 num1=f*10000;
359 1 lcd_code(0x87);
360 1 if(Negative==1)
361 1 {
362 2 Negative=0;
363 2 lcd_data('-');
364 2 }//若温度为负,则先显示负号
365 1 lcd_data((num0/100)%10+0x30);
366 1 delay(30);
367 1 lcd_data((num0/10)%10+0x30);
368 1 delay(30);
369 1 lcd_data((num0%10)+0x30);
370 1 delay(30);
371 1 lcd_data('.');
372 1 delay(30);
373 1 lcd_data((num1/1000)%10+0x30);
374 1 delay(30);
375 1 lcd_data((num1/100)%10+0x30);
376 1 delay(30);
377 1 lcd_data((num1/10)%10+0x30);
378 1 delay(30);
379 1 lcd_data((num1%10)+0x30);
380 1 delay(30);//将温度值转换成各位显示
381 1 lcd_data(0x00);//显示摄氏温度符号
382 1 delay(30);
383 1 }
384
385
386
387 /***************自制摄氏温度符号函数*******************/
388 void Built(void)
389 {
390 1 lcd_code(0x40);//设置CGRAM地址,自定义字符字模就可以写入CGRAM中
391 1 lcd_data(0x08);//自定义字符°C,字符码为00
392 1 lcd_data(0x14);
393 1 lcd_data(0x0b);
394 1 lcd_data(0x04);
395 1 lcd_data(0x04);
396 1 lcd_data(0x04);
397 1 lcd_data(0x03);
398 1 lcd_data(0x00);
399 1 }
400
401
402
403 /******读取键盘值*********/
404 void keyvaule(void)
405 {
406 1 unsigned char Key_value;
407 1 Key_value=A;
C51 COMPILER V7.09 __温控制系统__1_ 12/06/2008 20:27:06 PAGE 8
*** ERROR C202 IN LINE 407 OF ..\代码库\水温控制系统 (1).C: 'A': undefined identifier
408 1 if(Key_value!=0xff)//读键盘值,判断是否有建按下
409 1 {
410 2 delay_ms(10);//延时5ms防抖
411 2 Key_value=A;
*** ERROR C202 IN LINE 411 OF ..\代码库\水温控制系统 (1).C: 'A': undefined identifier
412 2 if(Key_value!=0xff)//再次读键盘值,判断是否真的有键按下
413 2 {
414 3
415 3 switch(Key_value)//有键按下,确定键值
416 3 {
417 4 case 0xfe: do
418 4 {Key_value=A;}
*** ERROR C202 IN LINE 418 OF ..\代码库\水温控制系统 (1).C: 'A': undefined identifier
419 4 while(Key_value!=0xff);//等待按键释放
420 4 delay_ms(10);//延时防抖
421 4 do
422 4 {Key_value=A;}
*** ERROR C202 IN LINE 422 OF ..\代码库\水温控制系统 (1).C: 'A': undefined identifier
423 4 while(Key_value!=0xff);
424 4 ChooseKey_Flag_subb=1;//有减选择键按下,置位减标志位
425 4 break;
426 4 case 0xfd: do
427 4 {Key_value=A;}
*** ERROR C202 IN LINE 427 OF ..\代码库\水温控制系统 (1).C: 'A': undefined identifier
428 4 while(Key_value!=0xff);//等待按键释放
429 4 delay_ms(10);//延时防抖
430 4 do
431 4 {Key_value=A;}
*** ERROR C202 IN LINE 431 OF ..\代码库\水温控制系统 (1).C: 'A': undefined identifier
432 4 while(Key_value!=0xff);
433 4 ChooseKey_Flag_add=1;//有加选择键按下,置位加标志位
434 4 break;
435 4 case 0xfb: do
436 4 {Key_value=A;}
*** ERROR C202 IN LINE 436 OF ..\代码库\水温控制系统 (1).C: 'A': undefined identifier
437 4 while(Key_value!=0xff);//等待按键释放
438 4 delay_ms(10);//延时防抖
439 4 do
440 4 {Key_value=A;}
*** ERROR C202 IN LINE 440 OF ..\代码库\水温控制系统 (1).C: 'A': undefined identifier
441 4 while(Key_value!=0xff);
442 4 FunctionKey_Flag=1;//有功能键按下,置位功能键标志位
443 4 break;
444 4 case 0xf7: do
445 4 {Key_value=A;}
*** ERROR C202 IN LINE 445 OF ..\代码库\水温控制系统 (1).C: 'A': undefined identifier
446 4 while(Key_value!=0xff);//等待按键释放
447 4 delay_ms(10);//延时防抖
448 4 do
449 4 {Key_value=A;}
*** ERROR C202 IN LINE 449 OF ..\代码库\水温控制系统 (1).C: 'A': undefined identifier
450 4 while(Key_value!=0xff);
451 4 ReturnKey_Flag=1;
452 4 break;
453 4 default:break;
454 4 }
455 3 }
456 2 else;
457 2 }
458 1 else;
459 1 }
C51 COMPILER V7.09 __温控制系统__1_ 12/06/2008 20:27:06 PAGE 9
460
C51 COMPILATION COMPLETE. 1 WARNING(S), 27 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -