📄 cortrol.lst
字号:
488 2 B[3]=22;
489 2 }
490 1 else if(display_set_data<10000)
491 1 {B[0]=display_set_data%10;
492 2 B[1]=(display_set_data/10)%10;
493 2 B[2]=(display_set_data/100)%10;
494 2 B[3]=display_set_data/1000;
495 2 }
496 1 if(dis_set_flag==DC)
497 1 {B[0]=23;
498 2 B[1]=22;
499 2 B[2]=22;
500 2 B[3]=22;
501 2 B[4]=17;
502 2 }
503 1
504 1 for(i=0;i<5;i++)
505 1 {dp_data=DD[B[i]];
506 2 for(j=8;j>0;j--)
507 2 { CLK=0;
508 3 if(dp_data&0x80)
509 3 Y=1;
510 3 else Y=0;
511 3 DATA0=Y;
512 3 CLK=1;
513 3 dp_data=dp_data<<1;
514 3
515 3 }
516 2
517 2 }
518 1 STB=0;
519 1 STB=1;
520 1 delay(2);
521 1 STB=0;
522 1
523 1 }
524 /******************************************定时器0中断************************
525 ***函数名称: time0() ****
526 ***函数功能: 定时检测温度,湿度,亮度并显示 ****
527 *****************************************************************************/
528 void time0() interrupt 1
529 {
530 1 uchar key[4];
531 1 TH0 = 0xa5; // 每秒中断100次
532 1 TL0 = 0x00; // 中断周期: 10mS
533 1
534 1 Key_scan();
535 1 if(KeyNumber!=0xff)
536 1 {
537 2 // kb_data=KeyNumber;
538 2 key[kf++]=KeyNumber;
539 2 if(kf>3)
C51 COMPILER V7.20 CORTROL 08/25/2008 11:28:19 PAGE 10
540 2 kf=0;
541 2 time_count=1;
542 2 KeyNumber=0xff;
543 2
544 2 }
545 1 else
546 1 { if(time_count==1)
547 2 {kb_data=key[0];
548 3 keyboard_flag=0;
549 3 kf=0;
550 3 }
551 2 time_count=0;
552 2 }
553 1 // if(keyflag==0)
554 1 // {
555 1 if(f1==200)
556 1 {TH_F0=1;
557 2 f3=0;
558 2 TH_F2=0;
559 2 f2++;
560 2 keyflag=0;
561 2 }
562 1 if(f2==200)
563 1 {TH_F1=1;
564 2 TH_F0=0;
565 2 f1=0;
566 2 f3++;
567 2 }
568 1 if(f3==200)
569 1 {TH_F2=1;
570 2 f2=0;
571 2 TH_F1=0;
572 2 f1++;
573 2 if(keyflag==1)
574 2 TH_F2=0;
575 2 }
576 1 // }
577 1 // time_count++;
578 1 // LED=1;
579 1 if(serial_count>6)
580 1 {
581 2 RT_Flag=1;
582 2 }
583 1 }
584 /*****************************************************************************
585 /********************************键盘扫描中断程序****************************
586 ***函数名称: Key_scan()
587 ***函数功能: 键盘扫描
588 ******************************************************************************/
589 /*void INTT1()interrupt 2
590 {
591
592 EX1=0;
593
594 // Key_scan();
595 // keyflag=0;
596 // keyboard_flag=0;
597
598 EX1=1;
599
600 } */
601 //*****************************键盘扫描函数*********************************************************
C51 COMPILER V7.20 CORTROL 08/25/2008 11:28:19 PAGE 11
602 //*******函数名称:Key_scan *********
603 //*******函数功能:扫描键盘,并取得键值 *********
604 //*******修改参数:KeyNumber *********
605 //**************************************************************************************************
606 void Key_scan()
607 {
608 1 uchar i,j,pin1;
609 1 for(i=0;i<4;i++)
610 1 {for(j=0;j<4;j++)
611 2 {P2=0XFF&(~(0X01<<(3-i)));
612 3 pin1=P2;
613 3 // delay1(10);
614 3 if(((pin1>>(4+j))&0x01)==0)
615 3 {KeyNumber=i+j*4;
616 4
617 4 }
618 3 }
619 2 }
620 1 // P2=0XF0;
621 1 // LED=0;
622 1
623 1 }
624 //****************************************************************************************************
625 //******************************************按键查询处理函数 ****************************************
626 //*******函数名称:key_deal ******************
-
627 //*******函数功能:查询按键,若是设置温度,湿度键,就调用设置处理函数 ******************
628 //****************************************************************************************************
629 void key_deal(void)
630 {
631 1 switch(kb_data)
632 1 {case 3: keycost_deal(TEMP);
633 2
634 2 break;
635 2 case 7: keycost_deal(HUMI);
636 2 break;
637 2 default: break;
638 2
639 2
640 2 }
641 1
642 1 }
643 //===================================================================================================
644 //==========================================按键处理函数=============================================
645 //********函数名称:keycost_deal ******
646 //********函数功能:设置温湿度控制参数值,处理,显示 ******
647 //********入口参数:TEMP,HUMI,温湿度标志 ******
648 //********出口参数:无 ******
649 //********修改参数: L_Temp_set, H_Temp_set,L_Hum_set,H_Hum_set ******
650 //===================================================================================================
651 void keycost_deal(unsigned char TH_flag)
652 { unsigned char KD1=0,KD2=0,KD3=0,keydata=0xff;
653 1 uchar i;
654 1 char DDC;
655 1 keyflag=1;
656 1 for(i=0;i<2;i++)
657 1 { if(TH_flag==HUMI)
658 2 i=1;
659 2 DDC=1;
660 2 Display_set(0,i);
661 2 keyboard_flag=1;
662 2 while(keyboard_flag==1);
C51 COMPILER V7.20 CORTROL 08/25/2008 11:28:19 PAGE 12
663 2 keydata=key_switch(kb_data);
664 2 if(kb_data==0x0D) //按下“-”号
665 2 {DDC=DDC*(-1);
666 3 Display_set(0,DC);
667 3 keyboard_flag=1;
668 3 // KeyNumber=0xff;
669 3 }
670 2 else if(kb_data==0x0E) //按下"返回"键
671 2 return;
672 2 //=======================第一次数字键============================================
673 2 while(keyboard_flag==1);
674 2 keydata=key_switch(kb_data);
675 2 if(keydata>=0&&keydata<=9)
676 2 {KD1=keydata;
677 3 Display_set((keydata*DDC),i);
678 3
679 3 }
680 2 else if(keydata==0x0E) //按下"返回"键
681 2 return;
682 2 else
683 2 {error_bell(); //蜂鸣器报错误信号
684 3 return;
685 3 }
686 2 //=======================第二次数字键============================================
687 2 keyboard_flag=1;
688 2 while(keyboard_flag==1);
689 2 keydata=key_switch(kb_data);
690 2
691 2 if(keydata>=0&&keydata<=9)
692 2 {
693 3 Display_set(((KD1*10+keydata)*DDC),i);
694 3 // F++;
695 3 KD2=keydata;
696 3 // KeyNumber=0xff;
697 3
698 3 }
699 2 else if(kb_data==0x0F) //有“个”位时按下"确定"键
700 2 {if(i==0)
701 3 {if(TH_flag==TEMP)
702 4 { L_Temp_set=KD1*DDC;
703 5 keydata=0xff;
704 5 // KeyNumber=0xff;
705 5 continue;
706 5 }
707 4
708 4 }
709 3 else if(i==1)
710 3 {if(TH_flag==TEMP)
711 4 { H_Temp_set=KD1*DDC;
712 5 return;
713 5 }
714 4 if(TH_flag==HUMI)
715 4 { H_Hum_set=KD1*DDC;
716 5 return;
717 5 }
718 4 }
719 3 }
720 2 else if(kb_data==0x0E) //按下"返回"键
721 2 return;
722 2 else
723 2 {error_bell(); //蜂鸣器报错误信号
724 3 return;
C51 COMPILER V7.20 CORTROL 08/25/2008 11:28:19 PAGE 13
725 3 }
726 2 //=======================第三次数字键============================================
727 2 keyboard_flag=1;
728 2 while(keyboard_flag==1);
729 2 keydata=key_switch(kb_data);
730 2
731 2 if(kb_data==0x0F) //有“十”位数据时按下"确定"键
732 2 {
733 3 if(i==0)
734 3 {
735 4 if(TH_flag==TEMP)
736 4 {
737 5 L_Temp_set=(KD1*10+KD2)*DDC;
738 5 keydata=0xff;
739 5 // KeyNumber=0xff;
740 5 continue;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -