⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 board.lst

📁 单片机控制面板程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -