📄 board.lst
字号:
642 4 send_kind=send_kind&0xfd;//清除本次按键命令标志位
643 4 }
644 3 break;
645 3 }
646 2 case SET_FU_CMD:
647 2 {
648 3 if(rx_point>=5)
649 3 {
650 4 rx_point=0;
651 4 if(send_over_kind==SET_FU_CMD)
652 4 {
653 5 send_over_kind=0;
654 5 send_over_flag=0;//清除一类数据发送完标志位
655 5 send_kind=send_kind&0xf7;//清除本次设置菜单命令标志位
656 5 temp_data=rx_buffer[0]^rx_buffer[1]^rx_buffer[2]^rx_buffer[3];
657 5 if(temp_data==rx_buffer[4])
658 5 {
659 6 set_data=(rx_buffer[2]<<8)|rx_buffer[3];
660 6 if(led_data==5)
661 6 {
662 7 if(set_data>0)
663 7 set_data=ceil((long)set_data*1.5*5/(1.5*0.4*6*2.048*100));
664 7 if(set_data<0)
665 7 set_data=floor((long)set_data*1.5*5/(1.5*0.4*6*2.048*100));
666 7 }
667 6 }
668 5 if(function_key_kind==1)//是参数COPY键时处理
669 5 {
670 6 led_data++;
C51 COMPILER V7.06 BOARD 03/19/2009 21:23:59 PAGE 12
671 6 }
672 5 }
673 4 }
674 3 break;
675 3 }
676 2 default:break;
677 2 }
678 1 }
679 //============================================================
680 //程序说明:这里根据实际情况将5个LED灯进行控制
681 //============================================================
682 void light_pro()
683 {
684 1 char j,led_temp=0xff;
685 1 bit led_bit;
686 1 //===========================================================
687 1 //参数设置灯置标志位
688 1 //===========================================================
689 1 if(confirm==0x21)//系统处于设置菜单时点亮菜单设置灯
690 1 light_set_flag=1;
691 1 else
692 1 light_set_flag=0;
693 1 //===========================================================
694 1 //故障灯置标志位
695 1 //===========================================================
696 1 if(fault_data!=0)//系统有故障产生,则闪烁故障灯
697 1 light_fault_flag=1;
698 1 else
699 1 {
700 2 light_fault_flag=0;
701 2 light_fault_flash_flag=0;
702 2 light_fault_flash_count=0;
703 2 }
704 1 //===========================================================
705 1 //能量回馈灯置标志位
706 1 //===========================================================
707 1 if(sys_state&0x4)//已经有能量回馈后回馈灯常亮,
708 1 {
709 2 light_work_flag=1;
710 2 light_work_flash=0;
711 2 light_work_flash_flag=0;
712 2 light_work_flash_count=0;
713 2 }
714 1 else
715 1 {
716 2 if(sys_state&0x8)//没有回馈只有使能时,回馈灯闪烁
717 2 {
718 3 light_work_flag=1;
719 3 light_work_flash=1;
720 3 }
721 2 else //没有回馈也没有使能,则不亮灯
722 2 {
723 3 light_work_flag=0;
724 3 light_work_flash=0;
725 3 light_work_flash_flag=0;
726 3 light_work_flash_count=0;
727 3 }
728 2 }
729 1 //============================================================
730 1 //参数复制、粘贴置标志位
731 1 //============================================================
732 1 if((function_key_kind==1)||(function_key_kind==2))
C51 COMPILER V7.06 BOARD 03/19/2009 21:23:59 PAGE 13
733 1 light_copy_paste_flag=1;
734 1 else
735 1 light_copy_paste_flag=0;
736 1 //============================================================
737 1 if(light_power_flag==1)//电源灯点亮处理
738 1 led_temp=led_temp&0x7f;
739 1 //============================================================
740 1 if(light_set_flag==1)//设置灯点亮处理
741 1 led_temp=led_temp&0xbf;
742 1 //============================================================
743 1 if(light_fault_flag==1)//故障灯闪烁处理
744 1 {
745 2 if(light_fault_flash_flag==1)
746 2 led_temp=led_temp&0xdf;
747 2 light_fault_flash_count++;
748 2 if(light_fault_flash_count>200)//故障灯闪烁处理
749 2 {
750 3 light_fault_flash_count=0;
751 3 if(light_fault_flash_flag==1)
752 3 light_fault_flash_flag=0;
753 3 else
754 3 light_fault_flash_flag=1;
755 3 }
756 2 }
757 1 //===========================================================
758 1 if(light_work_flag==1)//工作指示灯处理
759 1 {
760 2 if(light_work_flash==0)
761 2 led_temp=led_temp&0xef;//回馈灯不闪烁处理
762 2 else
763 2 {
764 3 if(light_work_flash_flag==1)
765 3 led_temp=led_temp&0xef;//回馈灯闪烁处理
766 3
767 3 light_work_flash_count++;
768 3 if(light_work_flash_count>200)
769 3 {
770 4 light_work_flash_count=0;
771 4 if(light_work_flash_flag==1)
772 4 light_work_flash_flag=0;
773 4 else
774 4 light_work_flash_flag=1;
775 4 }
776 3 }
777 2 }
778 1 //============================================
779 1 if(light_copy_paste_flag==1)//参数复制、粘贴指示灯处理
780 1 led_temp=led_temp&0xf7;
781 1 //============================================
782 1 //指示灯处理程序
783 1 //============================================
784 1 for(j=0;j<8;j++)
785 1 {
786 2 if(led_temp&0x1==1)
787 2 led_bit=1;
788 2 else
789 2 led_bit=0;
790 2 CLK=0;
791 2 DI=led_bit;
792 2 CLK=1;//数据锁存
793 2 led_temp=led_temp>>1;
794 2 }
C51 COMPILER V7.06 BOARD 03/19/2009 21:23:59 PAGE 14
795 1 RCK=0;
796 1 RCK=1;//595芯片锁存输出信号
797 1 led_temp=P2|0xf8;
798 1 led_temp=led_temp&0xf7;
799 1 P2=led_temp;
800 1
801 1 }
802 //============================================================
803 //程序说明:一旦检测到主机故障,人机界面跳到故障显示
804 //============================================================
805 fault_pro(void)
806 {
807 1
808 1 fault_number=0;
809 1 if(time_i==16)//参数复位
810 1 time_i=1;
811 1 if(fault_temp&0x8000)//参数复位
812 1 fault_temp=0x1;
813 1
814 1 for(time_i;time_i<16;)
815 1 {
816 2 if(fault_data&fault_temp)
817 2 {
818 3 fault_number=time_i;
819 3 }
820 2 fault_temp=fault_temp<<1;
821 2 time_i++;
822 2 if(fault_number!=0)//已经采集到故障后,跳出
823 2 break;
824 2 }
825 1
826 1 if(fault_number==0)//这里重新开始故障位检测的目的是:当上面的循环没有检测到相应的故障位时。
827 1 {//这段程序可以保证在每次调用故障代码检测程序时都能检测到故障位,防止显示为空
828 2 time_i=1;
829 2 fault_temp=0x1;
830 2 for(time_i;time_i<16;)
831 2 {
832 3 if(fault_data&fault_temp)
833 3 {
834 4 fault_number=time_i;
835 4 }
836 3 fault_temp=fault_temp<<1;
837 3 time_i++;
838 3 if(fault_number!=0)//已经采集到故障后,跳出
839 3 break;
840 3 }
841 2 }
842 1
843 1 switch(fault_number)
844 1 {
845 2 case 0:
846 2 {
847 3 led01=10;//F.--
848 3 led02=10;
849 3 led03=15;
850 3 led04=19;
851 3 fault_flash_flag=0;
852 3 break;
853 3 }
854 2 case 1:
855 2 {
856 3 led01=17;//F.OC
C51 COMPILER V7.06 BOARD 03/19/2009 21:23:59 PAGE 15
857 3 led02=22;
858 3 led03=15;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -