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

📄 test.lst

📁 C51开发板测试程序 C51开发板测试程序
💻 LST
字号:
C51 COMPILER V8.05a   TEST                                                                 06/21/2008 11:16:10 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN Test.OBJ
COMPILER INVOKED BY: D:\program\uv3\C51\BIN\C51.EXE Test.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #ifndef         __STC12C5410AD_H__
   3          #define         __STC12C5410AD_H__
   4          
   5          bdata unsigned char flag;
   6          sbit led_fleg   =flag^0;        //3秒切换显示标志
   7          
   8          sbit J1                 =P2^2;
   9          sbit J2                 =P2^3;
  10          sbit KEY_1              =P3^4;
  11          sbit KEY_2              =P3^5;
  12          sbit SPEAKER    =P2^4;
  13          sbit LED_A              =P1^5;
  14          sbit LED_B              =P1^6;
  15          sbit LED_C              =P2^0;
  16          sbit LED_D              =P1^1;
  17          sbit LED_E              =P1^2;
  18          sbit LED_F              =P1^4;
  19          sbit LED_G              =P1^7;
  20          sbit LED_H              =P1^3;
  21          sbit LED_S0             =P2^6;          //流水灯                        
  22          sbit LED_S2             =P2^7;          //左2,十位
  23          sbit LED_S1             =P3^7;          //左3,个位
  24          sbit LED_S3             =P2^1;          //左1,百位
  25          sbit LED_S4             =P2^5;          //左4,符号位
  26          sbit INT_0              =P3^2;
  27          sbit INT_1              =P3^3;
  28          void warter();
  29          char warter_led;
  30          
  31          char l_bai;
  32          char l_shi;
  33          char l_ge;
  34          char t_shi;
  35          char t_ge;
  36          unsigned int    disptimer;
  37          char gPulseCount;
  38          char scan;
  39          char TimeSub;
  40          unsigned int    TimeAdd;
  41          unsigned char   buff    =0;
  42          unsigned char code table[]=
  43          {
  44          0x3f,0x06,0x5b,0x4f,
  45          0x66,0x6d,0x7d,0x07,
  46          0x7f,0x6f,0x38,0xb9,            //38=L,b9=度
  47          0x39,0x5e,0x79,0x71
  48          };
  49          
  50          void Initialization()
  51          {       
  52   1      //      AUXR    =0x10;                                          //f=fosc/12
  53   1              TMOD    =0x21;                                          //定时器0设为方式1定时器1设为方式2自动重装
  54   1              TH1=TL1 =0xE8;                                          //11.0592MHz时1200波特率
  55   1              TH0             =(65536-1000)/256;
C51 COMPILER V8.05a   TEST                                                                 06/21/2008 11:16:10 PAGE 2   

  56   1              TL0             =(65536-1000)%256;                      //定时器0定时1ms
  57   1              TR1             =1;                                                     //启动定时器1   
  58   1              TR0             =1;                                                     //启动定时器0
  59   1              ET0             =1;                                                     //开定时器0中断
  60   1              EA              =1;                                                     //开总中断
  61   1      //      IE              =0x07;                                          //外部中断
  62   1      //      IP              =0x05;
  63   1              IT1             =1;                                                     //external interrupt falling edge take effect
  64   1              IT0             =1;                                                     //下沿触发
  65   1      }
  66          /*************显示数送端口**************/
  67          void send_port()
  68          {
  69   1              LED_A                   =!(buff>>0 & 0x01);             //send data to IO port
  70   1              LED_B                   =!(buff>>1 & 0x01);
  71   1              LED_C                   =!(buff>>2 & 0x01);
  72   1              LED_D                   =!(buff>>3 & 0x01);
  73   1              LED_E                   =!(buff>>4 & 0x01);
  74   1              LED_F                   =!(buff>>5 & 0x01);
  75   1              LED_G                   =!(buff>>6 & 0x01);
  76   1              LED_H                   =!(buff>>7 & 0x01);
  77   1      }
  78          /*********************流水灯********************************/
  79          void warter()
  80          {       
  81   1              switch (warter_led)
  82   1              {
  83   2                      case 0:
  84   2                              LED_F = 1;                              //流水灯高低次序
  85   2                              LED_C = 0;
  86   2                              LED_E = 0;
  87   2                              LED_D = 0;
  88   2                              LED_B = 1;
  89   2                              LED_A = 0;
  90   2                              LED_H = 0;
  91   2                              LED_G = 0;
  92   2                              break;
  93   2                      case 1:
  94   2                              LED_F = 0;                              //流水灯高低次序
  95   2                              LED_C = 0;
  96   2                              LED_E = 0;
  97   2                              LED_D = 1;
  98   2                              LED_B = 0;
  99   2                              LED_A = 0;
 100   2                              LED_H = 0;
 101   2                              LED_G = 1;
 102   2                              break;
 103   2                      case 2:
 104   2                              LED_F = 0;                              //流水灯高低次序
 105   2                              LED_C = 0;
 106   2                              LED_E = 1;
 107   2                              LED_D = 0;
 108   2                              LED_B = 0;
 109   2                              LED_A = 0;
 110   2                              LED_H = 1;
 111   2                              LED_G = 0;
 112   2                              break;
 113   2                      case 3:
 114   2                              LED_F = 0;                              //流水灯高低次序
 115   2                              LED_C = 1;
 116   2                              LED_E = 0;
 117   2                              LED_D = 0;
C51 COMPILER V8.05a   TEST                                                                 06/21/2008 11:16:10 PAGE 3   

 118   2                              LED_B = 0;
 119   2                              LED_A = 1;
 120   2                              LED_H = 0;
 121   2                              LED_G = 0;
 122   2              }
 123   1      }
 124          
 125          //*********************三秒显示切换************************************
 126          void Disp()
 127          {       
 128   1      
 129   1              char bai        =0;
 130   1              char shi        =0;
 131   1              char ge         =0;
 132   1              char fuha;
 133   1              buff = 0;
 134   1              if(disptimer>3000)                                              //disptimer放在定时中断中递减
 135   1              {
 136   2                      disptimer=0;                                            //3秒显示切换定时值
 137   2                      led_fleg=led_fleg^1;                            //每执行一次,标志改变一次
 138   2              }
 139   1              else if(led_fleg==1)    
 140   1              {
 141   2                      bai = l_bai;                                            //流量百位
 142   2                      shi = l_shi;                                            //流量十位
 143   2                      ge  = l_ge;                                                     //流量个位
 144   2                      fuha= 10;
 145   2              }
 146   1              else
 147   1                      {                                                                       //百位不显示,段码送全1
 148   2      //              bai = t_bai;
 149   2                      shi = t_shi;                                            //温度十位
 150   2                      ge  = t_ge;                                                     //温度个位
 151   2                      fuha= 11;
 152   2                      }
 153   1      //*********显示位选择**********
 154   1              LED_S0                  =1;                                             //disable all bits
 155   1              LED_S1                  =1;                                             //关显示
 156   1              LED_S2                  =1;
 157   1              LED_S3                  =1;
 158   1              LED_S4                  =1;
 159   1              switch (scan)                                                   //
 160   1              {
 161   2                      case 0:                                                         //s4显示设置脉冲计数
 162   2                              warter();                                               //led dynamic scan
 163   2                              LED_S0                  =0;     
 164   2                              break;
 165   2                      case 1:                                                         
 166   2                              buff=table[ge];                                 //
 167   2                              send_port();                                    //显示段送端口
 168   2                              LED_S1                  =0;
 169   2                              break;
 170   2                      case 2:                                                         
 171   2                              if(bai||shi>0)
 172   2                                      {
 173   3                                      buff=table[shi];                                //
 174   3                                      send_port();                                    //显示段送端口
 175   3              //                      LED_H = 1;                                              //小数点显示
 176   3                                      LED_S2          =0;
 177   3                                      }
 178   2                              else
 179   2                                      LED_S2          =1;     
C51 COMPILER V8.05a   TEST                                                                 06/21/2008 11:16:10 PAGE 4   

 180   2                              break;
 181   2                      case 3:                                                         
 182   2                              if(bai>0)
 183   2                                      {
 184   3                                      buff=table[bai];                        //
 185   3                                      send_port();                            //显示段送端口
 186   3                                      LED_S3  =0;
 187   3                                      }
 188   2                              else 
 189   2                                      LED_S3  =1;
 190   2                              break;
 191   2                      case 4:                                                         
 192   2                              buff=table[fuha];                               //改A字码为L(x038),B为C符号
 193   2                              send_port();                                    //显示段送端口
 194   2                              LED_S4                  =0;
 195   2                              break;
 196   2              }
 197   1              scan++;
 198   1              if(scan==5)     scan=0;
 199   1      }
 200          /*************定时器1中断服务*********/
 201          void Timer0Srv() interrupt 1                    //定时器1ms定时中断
 202          {
 203   1              TH0             =(65536-1000)/256;
 204   1              TL0             =(65536-1000)%256;                      //定时器0初装值定时1ms
 205   1              TimeAdd++;                                                      //最大计数值:65535ms
 206   1              TimeSub--;                                                      //最大计数值:256ms
 207   1              disptimer++;                                            //显示计时
 208   1      //      warter();       
 209   1              Disp();                                                         //定时器中断时扫描显示一次
 210   1      }
 211          void main()
 212          {
 213   1              Initialization();
 214   1              while(1)
 215   1                      {
 216   2                      J1              = 1;
 217   2                      J2              = 0;
 218   2                      l_bai   = 1;
 219   2                      l_shi   = 7;
 220   2                      l_ge    = 4;
 221   2                      t_shi   = 0;
 222   2                      t_ge    = 6;
 223   2      
 224   2                      if(TimeAdd==500)                        //流水灯流动触发,0.5秒滚动一次
 225   2                              {
 226   3                              warter_led++;
 227   3                              TimeAdd=0;
 228   3                              }
 229   2                      if(warter_led==4) (warter_led=0);
 230   2      
 231   2      //              if(TimeAdd==0) (gPulseCount++);
 232   2      //              if(TimeAdd==9) (TimeAdd=0);
 233   2      //              warter();
 234   2      //              LED_S0 =1;
 235   2                      };
 236   1      
 237   1      }
*** WARNING C316 IN LINE 237 OF Test.c: unterminated conditionals


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V8.05a   TEST                                                                 06/21/2008 11:16:10 PAGE 5   

   CODE SIZE        =    469    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     15    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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