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

📄 form.lst

📁 该程序是基于c8051f的红外线发射率的测量程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
             -=======================================
 984          //检查表中数据是否正确
 985          //========================================================================================================
             -=======================================
 986          unsigned int Is_para_right(void)
 987          {
 988   1        unsigned int i;
 989   1        for(i=0;i<9;i++)
 990   1        {
 991   2          statusbar.text=(unsigned char*)"正在检查数据";//提示检查数据
 992   2              set_statusbar_window(&statusbar);
 993   2              languge_mode(English,no);
 994   2          set_window_str("!");
 995   2          temp_para[i].hour=(para_table.str[i][0]-'0')*10+(para_table.str[i][1]-'0');
 996   2              if(temp_para[i].hour>24)
 997   2          {
 998   3                  statusbar.text=(unsigned char*)"小时不能大于";//提示错误
 999   3              set_statusbar_window(&statusbar);
1000   3                      languge_mode(English,no);
1001   3                      set_window_str("24!");
1002   3                      para_table.colomn=i;
1003   3                      para_table.array=0;
1004   3              init_caract(para_table.ins_dot[i][0].x,para_table.ins_dot[i][0].y,0x4f,0xe0,yes); //在错误处显示红
             -色光标
1005   3                      return error;  
1006   3          }
1007   2          temp_para[i].minite=(para_table.str[i][2]-'0')*10+(para_table.str[i][3]-'0');
1008   2              if(temp_para[i].minite>59)
1009   2          {
1010   3                  statusbar.text=(unsigned char*)"分钟不能大于";
1011   3              set_statusbar_window(&statusbar);
1012   3                      languge_mode(English,no);
C51 COMPILER V7.07   FORM                                                                  05/17/2003 16:08:38 PAGE 18  

1013   3                      set_window_str("60!");
1014   3                      para_table.colomn=i;
1015   3                      para_table.array=2;
1016   3                      init_caract(para_table.ins_dot[i][2].x,para_table.ins_dot[i][2].y,0x4f,0xe0,yes); //在错误处显示红色光标
1017   3                      return error;  
1018   3              }
1019   2              if(para_table.str[i][7]=='\0')
1020   2                temp_para[i].temperature=(para_table.str[i][4]-'0')*100+(para_table.str[i][5]-'0')*10+(para_table.str[i
             -][6]-'0');
1021   2          else
1022   2          {
1023   3                temp_para[i].temperature=(para_table.str[i][4]-'0')*1000+(para_table.str[i][5]-'0')*100+(para_table.str
             -[i][6]-'0')*10+(para_table.str[i][7]-'0');
1024   3                if(temp_para[i].temperature>1100)
1025   3                {
1026   4              statusbar.text=(unsigned char*)"温度不能大于";
1027   4              set_statusbar_window(&statusbar);
1028   4                      languge_mode(English,no);
1029   4                      set_window_str("1100!");
1030   4                      para_table.colomn=i;
1031   4                      para_table.array=4;
1032   4                      init_caract(para_table.ins_dot[i][4].x,para_table.ins_dot[i][4].y,0x4f,0xe0,yes); //在错误处显示红色光标
1033   4                      return error;
1034   4                }       
1035   3              } 
1036   2        }
1037   1        statusbar.text=(unsigned char*)"数据正确";
1038   1        set_statusbar_window(&statusbar);
1039   1        languge_mode(English,no);
1040   1        set_window_str("!");
1041   1        para_table.Is_data_exist=yes;
1042   1        return 1;
1043   1      }
1044          
1045          void save_para_to_AI(void)
1046          {
1047   1        unsigned int i;
1048   1        //显示正在通信
1049   1        statusbar.text=(unsigned char*)"正在通信";//提示检查数据
1050   1        set_statusbar_window(&statusbar);
1051   1        languge_mode(English,no);
1052   1        set_window_str("!");
1053   1        write_AI(0x15,12); //停止AI表
1054   1        for(i=0;i<9;i++)
1055   1        {
1056   2          write_AI(0x1A+i*2,temp_para[i].temperature);  //写入温度
1057   2              write_AI(0x1B+i*2,temp_para[i].hour*60+temp_para[i].minite);  //写入时间
1058   2        }
1059   1        //write_AI(0,1);    //从第一段执行
1060   1        //write_AI(0x15,0); //启动AI表
1061   1        //显示通信结束
1062   1        statusbar.text=(unsigned char*)"正在通信";//提示检查数据
1063   1        set_statusbar_window(&statusbar);
1064   1        languge_mode(English,no);
1065   1        set_window_str("!");
1066   1      }
1067          //========================================================================================================
             -========
1068          //
1069          //========================================================================================================
             -========
1070          void draw_scale()
C51 COMPILER V7.07   FORM                                                                  05/17/2003 16:08:38 PAGE 19  

1071          {
1072   1        unsigned char i;
1073   1        scale.sum_time=0;
1074   1        for(i=0;i<9;i++)
1075   1        {
1076   2          scale.sum_time+=temp_para[i].hour*60+temp_para[i].minite;
1077   2        }
1078   1        scale.scale_time=1.2*scale.sum_time/8; //每刻度的值
1079   1        for(i=1;i<=4;i++)
1080   1        { 
1081   2          scale.hour=(scale.scale_time*2*i)/60;
1082   2              scale.minite=(scale.scale_time*2*i)%60;
1083   2              scale.scale_str[0]=scale.hour/10+'0';
1084   2              scale.scale_str[1]=scale.hour%10+'0';
1085   2              scale.scale_str[3]=scale.minite/10+'0';
1086   2              scale.scale_str[4]=scale.minite%10+'0';
1087   2              cover_static(&scale_static[i]);
1088   2          set_caract_pos(scale_static[i].x1,scale_static[i].y1);//插入点
1089   2          languge_mode(English,no);
1090   2          set_window_str(scale.scale_str);//输出字符串
1091   2        }
1092   1          show_caract(no);//隐藏光标
1093   1      }
1094          
1095          //========================================================================================================
             -=======================================
1096          //参数设置回调函数
1097          //========================================================================================================
             -===
1098          void para_form_sub(void)
1099          {
1100   1        
1101   1        show_form(&para_form);
1102   1        current_form_index=para_form.index;
1103   1        show_para();
1104   1        init_caract(para_table.ins_dot[para_table.colomn][para_table.array].x,para_table.ins_dot[para_table.colo
             -mn][para_table.array].y,0x4f,0x00,yes); //在表中置光标
1105   1        while(1)
1106   1        {
1107   2          current_form_index=para_form.index;
1108   2          switch(search(para_form.index))  //查询 
1109   2                {
1110   3                  case on_btn_para_0:
1111   3                  table_edit(DATA,'0'); 
1112   3                           break;
1113   3              case on_btn_para_1:
1114   3                           table_edit(DATA,'1'); 
1115   3                           break;
1116   3              case on_btn_para_2:
1117   3                           table_edit(DATA,'2');
1118   3                           break;
1119   3              case on_btn_para_3:
1120   3                            table_edit(DATA,'3');
1121   3                           break;
1122   3              case on_btn_para_4:
1123   3                           table_edit(DATA,'4');
1124   3                           break;
1125   3              case on_btn_para_5:
1126   3                           table_edit(DATA,'5');
1127   3                           break;
1128   3              case on_btn_para_6:
1129   3                           table_edit(DATA,'6');
C51 COMPILER V7.07   FORM                                                                  05/17/2003 16:08:38 PAGE 20  

1130   3                           break;
1131   3              case on_btn_para_7:
1132   3                           table_edit(DATA,'7');
1133   3                           break;
1134   3              case on_btn_para_8:
1135   3                           table_edit(DATA,'8');
1136   3                           break;
1137   3              case on_btn_para_9:
1138   3                           table_edit(DATA,'9');
1139   3                           break;
1140   3              case on_btn_para_up:
1141   3                           table_edit(up,NULL);
1142   3                   break;
1143   3       
1144   3              case on_btn_para_down:
1145   3                           table_edit(down,NULL);           
1146   3                          break;
1147   3      
1148   3              case on_btn_para_left:
1149   3                           table_edit(left,NULL);
1150   3                          break;
1151   3          
1152   3                  case on_btn_para_right:
1153   3                       table_edit(right,NULL);
1154   3                           
1155   3                           break;
1156   3               
1157   3                  case on_btn_para_ok:
1158   3                           if(Is_para_right())
1159   3                               {
1160   4                                 save_para_to_AI();
1161   4                                 scale_renew=1; //刷新曲线使能
1162   4                                 show_form(&Main_form);   //返回主界面
1163   4                     draw_scale();
1164   4                                 return;
1165   4                    }
1166   3                           break;                  
1167   3       
1168   3              case on_btn_para_cancle:
1169   3                       
1170   3                           break;
1171   3              case on_btn_para_next_page:
1172   3                          para_form_exp_sub();      //到参数例子界面
1173   3                           break;
1174   3               
1175   3                      case on_btn_para_return:
1176   3                           show_form(&Main_form);   //返回主界面
1177   3                               if(scale_renew==1)
1178   3                               {
1179   4                                   //重画刻度和曲线起点
1180   4                             draw_scale(); 
1181   4                         curve1.x0=45;
1182   4                                 curve1.y0=380;
1183   4                                 curve2.x0=45;
1184   4                                 curve2.y0=200;
1185   4                               }
1186   3                       return;     
1187   3                           break;
1188   3          
1189   3              default:
1190   3      
1191   3                           break;
C51 COMPILER V7.07   FORM                                                                  05/17/2003 16:08:38 PAGE 21  

1192   3                }
1193   2         }  
1194   1      }
1195          
1196          //======================================================================================================
1197          //显示当前温度,工作电压,电流,发射率
1198          //========================================================================================================
             -  
1199          unsigned char count=0;
1200          void disp_multi_para(void)
1201          {
1202   1        if(count==0)     //发射率  
1203   1        {
1204   2          emissivity=(float)(300+emissivity_AD/4096*2.4/2*800)/PV_temp;
1205   2              E_edit.text[0]=(unsigned int)emissivity%10+'0';
1206   2              E_edit.text[1]='.';
1207   2              E_edit.text[2]=((unsigned int)(emissivity*10))%10+'0';
1208   2              E_edit.text[3]=((unsigned int)(emissivity*100))%10+'0';
1209   2              E_edit.text[4]=((unsigned int)(emissivity*1000))%10+'0';
1210   2              E_edit.text[5]='\0';
1211   2          set_edit_window(&E_edit);
1212   2              count++;
1213   2        }
1214   1        else if(count==1) //温度
1215   1        {
1216   2          //显示摄氏温度
1217   2          if(PV_temp<1000)
1218   2              {
1219   3                T_edit.text[0]=PV_temp/100+'0';
1220   3            T_edit.text[1]=(PV_temp/10)%10+'0';
1221   3                T_edit.text[2]=PV_temp%10+'0';
1222   3                T_edit.text[3]='\0';
1223   3              }
1224   2              else
1225   2              {
1226   3                T_edit.text[0]=PV_temp/1000+'0';
1227   3            T_edit

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -