1602.LST
上传用户:jdm789308
上传日期:2020-12-22
资源大小:78k
文件大小:12k
源码类别:

软件测试

开发平台:

Visual C++

  1. C51 COMPILER V7.07   1602                                                                  08/24/2009 23:05:27 PAGE 1   
  2. C51 COMPILER V7.07, COMPILATION OF MODULE 1602
  3. OBJECT MODULE PLACED IN 1602.OBJ
  4. COMPILER INVOKED BY: C:KeilC51BINC51.EXE 1602.c BROWSE DEBUG OBJECTEXTEND
  5. stmt level    source
  6.    1          #include <reg52.h>
  7.    2          #include "1602.h"
  8.    3          #define DataPort P0
  9.    4          #define ADCPort P2
  10.    5          #define uchar unsigned char
  11.    6          sbit button_r=P1^0;
  12.    7          sbit button_c=P1^1;
  13.    8          sbit button_l=P1^2;
  14.    9          sbit button_q=P1^3;
  15.   10          sbit LED_R=P1^4;
  16.   11          sbit LED_C=P1^5;
  17.   12          sbit LED_L=P1^6;
  18.   13          sbit LED_Q=P1^7;
  19.   14          sbit RS=P3^0;
  20.   15          sbit RW=P3^1;
  21.   16          sbit EN=P3^2;
  22.   17          sbit START=P3^7;
  23.   18          unsigned char func;
  24.   19          unsigned long int  R,C,L,f,y;
  25.   20          uchar i=0;
  26.   21          uchar aa,bb,cc;
  27.   22          //uchar code aa[5]="free";
  28.   23          uchar code meun[2][16]={"  is:   ","00000000      "};
  29.   24          uchar code m[10]="0123456789";
  30.   25          unsigned char T0count; 
  31.   26          unsigned char timecount; 
  32.   27          bit flag; 
  33.   28          void Intar_T0T1(void)
  34.   29               {
  35.   30   1              
  36.   31   1                      flag=0; 
  37.   32   1                      timecount=0; 
  38.   33   1                      T0count=0; 
  39.   34   1                      TH0=0;                                                                                                  
  40.   35   1                      TL0=0; 
  41.   36   1                      TR0=1;
  42.   37   1                  TR1=1;
  43.   38   1                  
  44.   39   1              }
  45.   40          void    delay1(void)
  46.   41                  {
  47.   42   1              int i;
  48.   43   1              for(i=80;i>0;i--);
  49.   44   1              }
  50.   45          void delay_ms(uchar t)
  51.   46          {
  52.   47   1              unsigned char i=0;
  53.   48   1              while(t--)for(i=0;i<120;i++);
  54.   49   1      }
  55.   50          
  56.   51          void WriteData(uchar dat)
  57.   52          {
  58.   53   1              EN=0;
  59.   54   1              RS=0;             //********RS寄存器选择输入端,当RS=0;当进行写模块操作,指向指令寄存器。
  60.   55   1              RW=0;             //********当RS=1,无论是读操作还是写操作,都是指向数据寄存器。
  61. C51 COMPILER V7.07   1602                                                                  08/24/2009 23:05:27 PAGE 2   
  62.   56   1              RS=1;
  63.   57   1              RW=0;
  64.   58   1              EN=1;
  65.   59   1              DataPort=dat;
  66.   60   1          EN=0;
  67.   61   1              RS=0;
  68.   62   1              RW=0;
  69.   63   1              for (i=0;i<20;i++);
  70.   64   1      }
  71.   65          
  72.   66          void WriteCmd(uchar cmd)
  73.   67          {
  74.   68   1              EN=0;
  75.   69   1              RS=0;             //********RS寄存器选择输入端,当RS=0;当进行写模块操作,指向指令寄存器。
  76.   70   1              RW=0;             //********当RS=1,无论是读操作还是写操作,都是指向数据寄存器。
  77.   71   1              EN=1;
  78.   72   1              DataPort=cmd;
  79.   73   1              RS=0;
  80.   74   1              RW=0;
  81.   75   1              EN=0;
  82.   76   1              for (i=0;i<20;i++);
  83.   77   1      }
  84.   78          
  85.   79          void DisChar(uchar ps,uchar dat)
  86.   80          {
  87.   81   1              WriteCmd((0x80+ps));
  88.   82   1              WriteData(dat);
  89.   83   1      }
  90.   84          
  91.   85          void LcdInit(void)
  92.   86          {
  93.   87   1              char pp=0;
  94.   88   1      
  95.   89   1              WriteCmd(0x38);
  96.   90   1          delay_ms(5);
  97.   91   1              WriteCmd(0x38);
  98.   92   1          delay_ms(5);
  99.   93   1              WriteCmd(0x38);
  100.   94   1          delay_ms(5);
  101.   95   1              
  102.   96   1              WriteCmd(0x01);delay_ms(5);
  103.   97   1              WriteCmd(0x06);delay_ms(5);
  104.   98   1              WriteCmd(0x38);
  105.   99   1              WriteCmd(0x0c); 
  106.  100   1              WriteCmd(0x40);
  107.  101   1              
  108.  102   1              for(pp=0;pp<16;pp++)DisChar(pp,*(meun[0]+pp));
  109.  103   1              for(pp=0;pp<16;pp++)DisChar(pp+0x40,*(meun[1]+pp));     
  110.  104   1      }
  111.  105          
  112.  106          void Display(unsigned long int x)
  113.  107          {   DisChar(0,aa);
  114.  108   1          DisChar(9+0x40,bb);
  115.  109   1          DisChar(10+0x40,cc);
  116.  110   1          DisChar(7+0x40,m[x%10]);x /= 10;
  117.  111   1              DisChar(6+0x40,m[x%10]);x /= 10;
  118.  112   1              DisChar(5+0x40,m[x%10]);x /= 10;
  119.  113   1              DisChar(4+0x40,m[x%10]);x /= 10;
  120.  114   1              DisChar(3+0x40,m[x%10]);x /= 10;
  121.  115   1              DisChar(2+0x40,m[x%10]);x /= 10;
  122.  116   1              DisChar(1+0x40,m[x%10]);x /= 10;
  123.  117   1              DisChar(0+0x40,m[x%10]);x /= 10;
  124. C51 COMPILER V7.07   1602                                                                  08/24/2009 23:05:27 PAGE 3   
  125.  118   1              delay_ms(200);
  126.  119   1      }
  127.  120          button()
  128.  121                  {
  129.  122   1              //button_r=1;
  130.  123   1              if(button_r==0)
  131.  124   1                      {
  132.  125   2                      func=1; //功能1:测电阻
  133.  126   2                  LED_R=0;
  134.  127   2                  LED_C=1;
  135.  128   2                  LED_L=1;
  136.  129   2                  LED_Q=1;
  137.  130   2                      }
  138.  131   1          //button_c=1;
  139.  132   1              if(button_c==0)
  140.  133   1                      {
  141.  134   2                              func=2; //功能2:测电容
  142.  135   2                  LED_R=1;
  143.  136   2                  LED_C=0;
  144.  137   2                  LED_L=1;
  145.  138   2                  LED_Q=1;
  146.  139   2                }
  147.  140   1          //button_l=1;
  148.  141   1              if(button_l==0)
  149.  142   1                      {
  150.  143   2                              func=3; //功能3:测电感
  151.  144   2                  LED_R=1;
  152.  145   2                  LED_C=1;
  153.  146   2                  LED_L=0;
  154.  147   2                  LED_Q=1; 
  155.  148   2                              }
  156.  149   1          if(button_q==0)
  157.  150   1               {
  158.  151   2                  func=4;     //功能3:测电感
  159.  152   2                  LED_R=1;
  160.  153   2                  LED_C=1;
  161.  154   2                  LED_L=1;
  162.  155   2                  LED_Q=0;
  163.  156   2                 } 
  164.  157   1          return func;
  165.  158   1                      }
  166.  159                  
  167.  160          void    R_measure(void)                 //电阻测量,以Ω为单位
  168.  161                  {
  169.  162   1              while(flag==0);
  170.  163   1          f=(T0count*65536+TH0*256+TL0);      //Hz
  171.  164   1          //电阻计算公式
  172.  165   1              R=721500000/f-10000;
  173.  166   1          y=R;
  174.  167   1              }
  175.  168                  
  176.  169                  
  177.  170          void    C_measure(void)                 //电容测量,以pF为单位
  178.  171                  {
  179.  172   1              while(flag==0);
  180.  173   1          f=(T0count*65536+TH0*256+TL0);      //Hz
  181.  174   1          //电容计算公式
  182.  175   1              C=4800000/f;                                    //pf
  183.  176   1          y=C;
  184.  177   1              }
  185.  178          
  186.  179          void    L_measure(void)                 //电感测量,以uH为单位
  187. C51 COMPILER V7.07   1602                                                                  08/24/2009 23:05:27 PAGE 4   
  188.  180                  {
  189.  181   1          while(flag==0);
  190.  182   1          f=(T0count*65536+TH0*256+TL0);      //Hz
  191.  183   1              //电感计算公式
  192.  184   1              f/=100000;
  193.  185   1              L=922/(f*f);                            //L=922*10^10/(f*f)   uH
  194.  186   1          y=L;
  195.  187   1              }
  196.  188          unsigned int ADCTransform()
  197.  189          {
  198.  190   1              unsigned long int uiResult;
  199.  191   1          START=1;
  200.  192   1          START=0;
  201.  193   1          delay_ms(10);
  202.  194   1          uiResult=ADCPort;    //出入转换结果。
  203.  195   1          uiResult=(10000000*uiResult)/51;               //处理运算结果。
  204.  196   1          y=uiResult;
  205.  197   1      }
  206. *** WARNING C173 IN LINE 197 OF 1602.C: missing return-expression
  207.  198          
  208.  199          
  209.  200          
  210.  201          void main(void)
  211.  202          {   TMOD=0x15;//0001 0101 
  212.  203   1              TH0=0; 
  213.  204   1              TL0=0; 
  214.  205   1              TH1=(65536-49989)/256; 
  215.  206   1              TL1=(65536-49989)%256; 
  216.  207   1              ET0=1; 
  217.  208   1              ET1=1;
  218.  209   1              EA=1;
  219.  210   1          TR1=1;
  220.  211   1              TR0=1;
  221.  212   1          y=0x00;
  222.  213   1          //ADCPort=51;
  223.  214   1         LcdInit();
  224.  215   1         // while(1);
  225.  216   1          /*while(1)
  226.  217   1              {
  227.  218   1                      if(flag==1) 
  228.  219   1              { 
  229.  220   1                      y=(T0count*65536+TH0*256+TL0);
  230.  221   1                  Display(y);
  231.  222   1                  flag=0; 
  232.  223   1                      timecount=0; 
  233.  224   1                      T0count=0; 
  234.  225   1                      TH0=0;                                                                                                  
  235.  226   1                      TL0=0; 
  236.  227   1                      TR0=1;
  237.  228   1                  TR1=1;
  238.  229   1                              
  239.  230   1              } 
  240.  231   1              }*/
  241.  232   1              while(1)
  242.  233   1              {   
  243.  234   2               button();
  244.  235   2                  if (func==1)
  245.  236   2                              {
  246.  237   3                aa='R';
  247.  238   3                bb='n';
  248.  239   3                cc='n';
  249.  240   3                  R_measure();
  250. C51 COMPILER V7.07   1602                                                                  08/24/2009 23:05:27 PAGE 5   
  251.  241   3                   
  252.  242   3                              }
  253.  243   2                      if (func==2)
  254.  244   2                              {
  255.  245   3                aa='C';
  256.  246   3                bb='p';
  257.  247   3                cc='F';
  258.  248   3                  C_measure();
  259.  249   3                  }
  260.  250   2                      if (func==3)
  261.  251   2                              {
  262.  252   3                aa='L';
  263.  253   3                bb='u';
  264.  254   3                cc='H';
  265.  255   3                  L_measure();
  266.  256   3                              }
  267.  257   2             if(func==4)
  268.  258   2                  {
  269.  259   3                aa='Q';
  270.  260   3                bb='n';
  271.  261   3                cc='n';
  272.  262   3                  ADCTransform();
  273.  263   3                  }
  274.  264   2                Display(y);
  275.  265   2                Intar_T0T1();
  276.  266   2               }
  277.  267   1      }
  278.  268          
  279.  269          void t0(void) interrupt 1 using 0       //计脉冲个数
  280.  270          { 
  281.  271   1        T0count++; 
  282.  272   1      } 
  283.  273          
  284.  274          void t1(void) interrupt 3 using 0        //定时1s
  285.  275          { 
  286.  276   1        TH1=(65536-50045)/256; 
  287.  277   1        TL1=(65536-50045)%256; 
  288.  278   1        timecount++; 
  289.  279   1          if(timecount==20) 
  290.  280   1          { 
  291.  281   2            TR0=0;
  292.  282   2            TR1=0;
  293.  283   2            timecount=0; 
  294.  284   2            flag=1;
  295.  285   2          } 
  296.  286   1      }
  297. MODULE INFORMATION:   STATIC OVERLAYABLE
  298.    CODE SIZE        =   1307    ----
  299.    CONSTANT SIZE    =     42    ----
  300.    XDATA SIZE       =   ----    ----
  301.    PDATA SIZE       =   ----    ----
  302.    DATA SIZE        =     27       8
  303.    IDATA SIZE       =   ----    ----
  304.    BIT SIZE         =      1    ----
  305. END OF MODULE INFORMATION.
  306. C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)