📄 board.lst
字号:
859 3 led04=19;
860 3 fault_flash_flag=1;
861 3 break;
862 3 }
863 2 case 2:
864 2 {
865 3 led01=17;//F.SC
866 3 led02=25;
867 3 led03=15;
868 3 led04=19;
869 3 fault_flash_flag=1;
870 3 break;
871 3 }
872 2 case 3:
873 2 {
874 3 led01=28;//F.EF 表示外部输入故障
875 3 led02=18;
876 3 led03=15;
877 3 led04=19;
878 3 fault_flash_flag=1;
879 3 break;
880 3 }
881 2 case 4:
882 2 {
883 3 led01=23;//F.EP
884 3 led02=18;
885 3 led03=15;
886 3 led04=19;
887 3 fault_flash_flag=1;
888 3 break;
889 3 }
890 2 case 5:
891 2 {
892 3 led01=24;//F.FR
893 3 led02=28;
894 3 led03=15;
895 3 led04=19;
896 3 fault_flash_flag=1;
897 3 break;
898 3 }
899 2 case 6:
900 2 {
901 3 led01=20;//F.OH
902 3 led02=22;
903 3 led03=15;
904 3 led04=19;
905 3 fault_flash_flag=1;
906 3 break;
907 3 }
908 2 case 7:
909 2 {
910 3 led01=26;//F.OU
911 3 led02=22;
912 3 led03=15;
913 3 led04=19;
914 3 fault_flash_flag=1;
915 3 break;
916 3 }
917 2 case 8:
918 2 {
C51 COMPILER V7.06 BOARD 03/19/2009 21:23:59 PAGE 16
919 3 led01=24;//F.ER
920 3 led02=18;
921 3 led03=15;
922 3 led04=19;
923 3 fault_flash_flag=1;
924 3 break;
925 3 }
926 2 case 9:
927 2 {
928 3 led01=22;//F.PO
929 3 led02=23;
930 3 led03=15;
931 3 led04=19;
932 3 fault_flash_flag=1;
933 3 break;
934 3 }
935 2 case 10:
936 2 {
937 3 led01=24;//F.UA
938 3 led02=26;
939 3 led03=15;
940 3 led04=19;
941 3 fault_flash_flag=1;
942 3 break;
943 3 }
944 2 case 11:
945 2 {
946 3 led01=24;//F.OA
947 3 led02=22;
948 3 led03=15;
949 3 led04=19;
950 3 fault_flash_flag=1;
951 3 break;
952 3 }
953 2 case 12:
954 2 {
955 3 led01=21;//F.OL
956 3 led02=22;
957 3 led03=15;
958 3 led04=19;
959 3 fault_flash_flag=1;
960 3 break;
961 3 }
962 2 case 13:
963 2 {
964 3 led01=26;//F.UU
965 3 led02=26;
966 3 led03=15;
967 3 led04=19;
968 3 fault_flash_flag=1;
969 3 break;
970 3 }
971 2 case 14:
972 2 {
973 3 led01=25;//F.OS
974 3 led02=22;
975 3 led03=15;
976 3 led04=19;
977 3 fault_flash_flag=1;
978 3 break;
979 3 }
980 2 default:break;
C51 COMPILER V7.06 BOARD 03/19/2009 21:23:59 PAGE 17
981 2 }
982 1
983 1 }
984 //=============================================================
985 //程序说明:1ms子中断
986 //=============================================================
987 void T0_PERIOD(void) interrupt 1 //外中断,接收中断子程序
988 {
989 1
990 1 TH0=0xfc;
991 1 TL0=0x66; //1ms
992 1 //=====================================
993 1 send();//发送程序
994 1 //=====================================
995 1 light_pro();//点灯程序
996 1 //=====================================
997 1 //通讯未成功,报故障,其他菜单不响应
998 1 //=====================================
999 1 if(send_success_flag==0)
1000 1 {
1001 2 confirm=0;//通讯不正常时,需要初始化某些参数
1002 2 point_flag=0;
1003 2 high_led_number=4;
1004 2 led_pos=0;
1005 2 start_only_once_flag=0;
1006 2 fault_first_flag=0;
1007 2 send_ask_set_flag=0;
1008 2 send_ask_fault_flag=0;
1009 2 fault_enter_flag=0;
1010 2 send_on_kind=0;
1011 2
1012 2 led01=17;//F.EC
1013 2 led02=18;
1014 2 led03=15;
1015 2 led04=19;
1016 2 fault_flash_flag=1;
1017 2 }
1018 1 else//通讯正常后,判断是否存在故障
1019 1 {
1020 2 //=====================================
1021 2 //故障代码循环显示程序,当没有模式键按下时
1022 2 //使出现的所有故障类型循环显示,一旦故障后
1023 2 //有模式键按下则不显示故障代码
1024 2 //=====================================
1025 2 if(fault_data!=0)
1026 2 {
1027 3 if(fault_enter_flag==1)
1028 3 {
1029 4 fault_enter_flag=0;
1030 4 if(fault_first_flag==0)//一旦出现故障,没有模式键前提下,不断更新
1031 4 {
1032 5 confirm=0;
1033 5 point_flag=0;
1034 5 led_pos=0;
1035 5 fault_pro();//故障处理程序
1036 5 start_only_once_flag=0;
1037 5 }
1038 4 }
1039 3 else
1040 3 fault_enter_flag++;//这个寄存器的作用是2次周期中断获取一个故障代码
1041 3 }
1042 2 else
C51 COMPILER V7.06 BOARD 03/19/2009 21:23:59 PAGE 18
1043 2 {
1044 3 fault_enter_flag=0;//这个值需要复位
1045 3 if((start_only_once_flag==0)&&(confirm==0))//保证开机时通讯正常后,只进入一次
1046 3 {
1047 4 led01=10;//F.--
1048 4 led02=10;
1049 4 led03=15;
1050 4 led04=19;
1051 4 start_only_once_flag=1;
1052 4 }
1053 3 fault_flash_flag=0;//没有任何故障,不需要进行故障代码的闪烁
1054 3 fault_first_flag=0;//这里清零可以使得一出现故障,可以使所有故障代码进行循环闪烁
1055 3 }
1056 2 }
1057 1 //===================================
1058 1 //以下程序用来定时:当一类数据发送完成时,
1059 1 //10ms还没收到主机应答时,需要再次发送
1060 1 //====================================
1061 1 if(send_over_flag==1)//一类数据发送完毕后,需要进行计时操作,防止长时间没有收到应答而造成心跳故障
1062 1 send_inter_count++;
1063 1 else
1064 1 send_inter_count=0;
1065 1
1066 1 if(send_inter_count>SEND_COMM_ERROR)//20ms没有收到应答,则从发前次数据
1067 1 {
1068 2 send_over_kind=0;
1069 2 send_over_flag=0;
1070 2 send_inter_count=0;
1071 2 rx_point=0;
1072 2 send_on_kind=0;
1073 2 }
1074 1 //=
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -