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

📄 form.lst

📁 该程序是基于c8051f的红外线发射率的测量程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 737   3              
 738   3                       case on_btn_NO_m:
 739   3                   if(shift_flag==1)
 740   3                                 new_table_edit(DATA,'M');
 741   3                               else
 742   3                                 new_table_edit(DATA,'m'); 
 743   3                           break;
 744   3              
 745   3                       case on_btn_NO_shift:   //大小写切换
 746   3                   if(shift_flag==0)
 747   3                                 shift_flag=1;
 748   3                   else
 749   3                                 shift_flag=0; 
 750   3                           break;
 751   3              
 752   3                       case on_btn_NO_up:
 753   3      
 754   3                           break;
 755   3              
 756   3                       case on_btn_NO_down:
 757   3      
 758   3                           break;
 759   3              
 760   3                       case on_btn_NO_left:
 761   3                    new_table_edit(left,NULL); 
 762   3                           break;
 763   3              
 764   3                       case on_btn_NO_right:
 765   3                    new_table_edit(right,NULL); 
 766   3                           break;
 767   3              
 768   3                       case on_btn_NO_uppage:
 769   3      
 770   3                           break;
 771   3              
 772   3                       case on_btn_NO_downpage:
 773   3      
 774   3                           break;
 775   3              
 776   3                       case on_btn_NO_new:
C51 COMPILER V7.07   FORM                                                                  05/17/2003 16:08:38 PAGE 14  

 777   3                         if(new_enable==yes)
 778   3                         {
 779   4                           sample_new_table.colomn++;
 780   4                   if(sample_new_table.colomn>8)
 781   4                                 sample_new_table.colomn=1;
 782   4                   languge_mode(English,yes);    //置语言模式
 783   4                   for(i=0;i<10;i++)
 784   4                               {
 785   5                                 set_caract_pos(sample_new_table.ins_dot[i].x,sample_new_table.ins_dot[i].y+sample_new_table.v_step*(
             -sample_new_table.colomn-1));
 786   5                     sample_new_table.str[sample_new_table.colomn-1][i]=' ';
 787   5                     set_window_char(' ');
 788   5                               }
 789   4                               //打两个时间间隔符
 790   4                   set_caract_pos(sample_new_table.ins_dot[5].x+8,sample_new_table.ins_dot[5].y+sample_new_table
             -.v_step*(sample_new_table.colomn-1));
 791   4                               set_window_char('/'); 
 792   4                               set_caract_pos(sample_new_table.ins_dot[7].x+8,sample_new_table.ins_dot[7].y+sample_new_table.v_step*(
             -sample_new_table.colomn-1));
 793   4                               set_window_char('/');  
 794   4                           //初始化光标位置于左端
 795   4                               init_caract(sample_new_table.ins_dot[0].x,sample_new_table.ins_dot[0].y+sample_new_table.v_step*(samp
             -le_new_table.colomn-1),0x4f,0x00,yes); //在表中置光标
 796   4                   edit_enable=yes;
 797   4                   new_enable=no;
 798   4                  } 
 799   3                          break;
 800   3              
 801   3                       case on_btn_NO_ok:
 802   3                           //分配存储空间
 803   3                   fs.sum=read_byte(0); //读出总的项目数
 804   3                       if(fs.sum<250)
 805   3                               {
 806   4                                 fs.pointer=read_byte(1);
 807   4                     fs.item_addr=2+fs.pointer*74; //计算出新建项目的起始地址
 808   4                     write_byte(fs.sum+1,0);     //总项目加1
 809   4                                 write_byte(fs.pointer+1,1); //项目号加1
 810   4                                 if(fs.sum==249)
 811   4                                   fs.restart=yes; //通知转头
 812   4                   }
 813   3                               else if(fs.sum==250)
 814   3                               {
 815   4                                 if(fs.restart==yes)
 816   4                                 {
 817   5                                   fs.pointer=0;
 818   5                                   fs.item_addr=2+fs.pointer*74; //计算出新建项目的起始地址
 819   5                                   write_byte(fs.pointer+1,1); //项目号加1
 820   5                       fs.restart=no;
 821   5                                 }
 822   4                                 else
 823   4                                 {
 824   5                                   fs.pointer=read_byte(1);
 825   5                       fs.item_addr=2+fs.pointer*74; //计算出新建项目的起始地址
 826   5                                       write_byte(fs.pointer+1,1); //项目号加1
 827   5                                 }
 828   4                               }
 829   3                               //存入编号
 830   3                               for(i=0;i<10;i++)
 831   3                                 write_byte(sample_new_table.str[sample_new_table.colomn-1][i],fs.item_addr+i); 
 832   3                               //格式化该项目数据区,标记数据结束标志
 833   3                   for(i=10;i<74;i++)
 834   3                                 write_byte('\r',fs.item_addr+i); 
C51 COMPILER V7.07   FORM                                                                  05/17/2003 16:08:38 PAGE 15  

 835   3                           send_message(0,on_btn_para); //进入参数设置界面
 836   3                               edit_enable=no;
 837   3                               new_enable=yes;
 838   3                               return; 
 839   3                           break;
 840   3              
 841   3                       case on_btn_NO_return:
 842   3                   show_form(&Main_form);   //返回主界面
 843   3                   if(scale_renew==1)
 844   3                                 {
 845   4                                   //重画刻度和曲线起点
 846   4                             draw_scale(); 
 847   4                         curve1.x0=45;
 848   4                                 curve1.y0=380;
 849   4                                 curve2.x0=45;
 850   4                                 curve2.y0=200;
 851   4                                 }
 852   3                       return;     
 853   3                           break;
 854   3              
 855   3                       case Idel:
 856   3      
 857   3                           break;
 858   3                                              
 859   3                       default:
 860   3      
 861   3                           break;
 862   3                }
 863   2        }
 864   1      }
 865          
 866          //========================================================================================================
             -===
 867          //参数设置例子回调函数
 868          //========================================================================================================
             -===
 869          void para_form_exp_sub(void)
 870          {
 871   1        show_form(&para_exp_form);
 872   1        current_form_index=para_exp_form.index;
 873   1        while(1)
 874   1        {
 875   2           current_form_index=para_exp_form.index;
 876   2           switch(search(para_exp_form.index))  //查询 
 877   2                {
 878   3              case on_btn_para_exp_return:
 879   3                           show_form(&para_form);   //返回参数界面
 880   3                               show_para();
 881   3                               init_caract(para_table.ins_dot[para_table.colomn][para_table.array].x,para_table.ins_dot[para_table.co
             -lomn][para_table.array].y,0x4f,0x00,yes); //在表中置光标
 882   3                       return;     
 883   3                          
 884   3              default:
 885   3      
 886   3                           break;
 887   3                }
 888   2        }
 889   1      }
 890          
 891          //========================================================================================================
             -=====================
 892          //参数表的编辑输入
C51 COMPILER V7.07   FORM                                                                  05/17/2003 16:08:38 PAGE 16  

 893          //========================================================================================================
             -======================
 894          void table_edit(unsigned int cmd, unsigned char dat)
 895          {
 896   1        set_caract_color(0x4f,0x00);
 897   1        switch(cmd)
 898   1         {
 899   2           case up:                           //上移一行                     
 900   2               if(para_table.colomn>0)
 901   2                           para_table.colomn-=1;
 902   2                         else
 903   2                           para_table.colomn=8;
 904   2               break;
 905   2          
 906   2           case down:                        //下移一行
 907   2               if(para_table.colomn<8)
 908   2                           para_table.colomn+=1;
 909   2                         else
 910   2                           para_table.colomn=0;
 911   2               break;
 912   2      
 913   2           case left:                        //左移一列
 914   2                if(para_table.array>0)
 915   2                           para_table.array-=1;
 916   2                        else
 917   2                        {
 918   3                           para_table.array=7;
 919   3                           if(para_table.colomn>0)
 920   3                             para_table.colomn-=1;
 921   3                        }
 922   2                        break; 
 923   2          
 924   2               case right:                       //右移一列
 925   2                if(para_table.array<7)
 926   2                           para_table.array+=1;
 927   2                         else
 928   2                         {
 929   3                           para_table.array=0;
 930   3                               if(para_table.colomn<8)
 931   3                             para_table.colomn+=1;
 932   3                         }            
 933   2                 break;
 934   2      
 935   2           //输入和保存字符
 936   2               case DATA:                      
 937   2                languge_mode(English,yes);  //切换语言
 938   2                        para_table.str[para_table.colomn][para_table.array]=dat; //存入到内存
 939   2                set_window_char(dat);      //显示字符
 940   2                        if(touch_screen_input)
 941   2                        {
 942   3                          if(para_table.array<7)  
 943   3                            para_table.array+=1;    //右移一列
 944   3                          else
 945   3                           {
 946   4                                 if(para_table.colomn<8)  //下移一行
 947   4                               para_table.colomn+=1;
 948   4                             else
 949   4                               para_table.colomn=0;
 950   4                     para_table.array=0;
 951   4                                }
 952   3                  }
 953   2                         break;
C51 COMPILER V7.07   FORM                                                                  05/17/2003 16:08:38 PAGE 17  

 954   2      
 955   2           default:
 956   2                    
 957   2                 break; 
 958   2         
 959   2         }
 960   1        MOVE_CARACT
 961   1      }
 962          //=======================================================================================================
 963          //显示参数
 964          //=======================================================================================================
 965          void show_para(void)
 966          {
 967   1        int i,j;
 968   1        languge_mode(English,yes);  //切换语言
 969   1        //如果存在数据,则显示
 970   1        if(para_table.Is_data_exist==yes)
 971   1        {
 972   2          for(i=0;i<9;i++)
 973   2              {
 974   3                for(j=0;j<8;j++)
 975   3                {
 976   4                  set_caract_pos(para_table.ins_dot[i][j].x,para_table.ins_dot[i][j].y);
 977   4                  set_window_char(para_table.str[i][j]);      //显示字符
 978   4                }
 979   3              }
 980   2        }
 981   1      }
 982          
 983          //========================================================================================================

⌨️ 快捷键说明

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