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

📄 text1.lst

📁 电压监控保护程序,多位数码显示,保护电压,和检测
💻 LST
字号:
C51 COMPILER V7.50   TEXT1                                                                 04/18/2008 20:12:11 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51st.H>
   2          #include <stdio.h>
   3          #define uchar unsigned char
   4          #define uint  unsigned int
   5          
   6          sbit  DP       =P1^0;//
   7          sbit  COM1     =P1^1;
   8          sbit  COM2     =P1^2;
   9          sbit  COM3     =P1^3;
  10          sbit  ACC_Detect  =P1^4;//ACC  Detect
  11          sbit  INPUT    =P1^5;//voltage detect
  12          sbit  SW       =P1^6;
  13          sbit  LED_COM  =P1^7;                                                           
  14          /********************************************/
  15          //引脚P3的定义
  16          sbit RedLED1    =P3^0;
  17          sbit RedLED2    =P3^1;//
  18          sbit GreenLED1  =P3^2;
  19          sbit GreenLED2  =P3^3;//
  20          sbit BlueLED1   =P3^4;// 
  21          sbit BlueLED2   =P3^5;//
  22          
  23          uchar x,y,z,t,led,LedFlag,Delay;
  24          uint count;
  25          uchar code dig[]={0x3f,0x06,0x9B,0x8F,0xA6,0xAD,0xBD,0x47,0xBF,0xAF};
  26          
  27          void mDelay(uchar c)//延时调用
  28          {
  29   1        uchar i;
  30   1        for(i=0;i<c;i++);
  31   1      }
  32          
  33          void NmDelay(uchar c)
  34          {
  35   1        while(c--)
  36   1          {
  37   2            mDelay(255);
  38   2           }
  39   1      }
  40          
  41          void Timer_Init()
  42          {
  43   1                TMOD=0x01;
  44   1                TCON=0x00;
  45   1                ET0=1;
  46   1      //        ET1=1;
  47   1                EA=1;
  48   1               // TR1=1;
  49   1      }
  50          
  51          void series_init()
  52          {
  53   1         SCON=0x50;//0xD8; //0xD0/M=3,REN=1;  D0
  54   1         PCON=0x00;
  55   1         TI=1;        
C51 COMPILER V7.50   TEXT1                                                                 04/18/2008 20:12:11 PAGE 2   

  56   1      }
  57          
  58          
  59          void Send_Char(uchar c)
  60          {
  61   1         TI=0;
  62   1         SBUF=c;
  63   1         while(TI==0);
  64   1         TI=0;
  65   1      }
  66          
  67          /*void Time1(void) interrupt 3
  68          { 
  69             count++;
  70             if(count>62)TR1=0;
  71             else
  72             TR1=1;
  73          
  74          }*/
  75          
  76          
  77          
  78          void Num_Disp(uchar a,uchar b,uchar c)
  79          {
  80   1         x=a;
  81   1         y=b;
  82   1         z=c;
  83   1         TR0=1;//启动定时器
  84   1      }
  85          
  86          void Display(uint a)
  87          {
  88   1        uchar i;
  89   1        i=((a-102)*61/70);
  90   1        x=a/100;
  91   1        y=i/10;
  92   1        z=(i)%10;
  93   1        Num_Disp(x,y,z);
  94   1      }
  95          
  96          void Time0(void) interrupt 1
  97          {
  98   1         TR0=0;
  99   1         count++;
 100   1         LED_COM=0;
 101   1         P3=dig[x];
 102   1         DP=0;
 103   1         COM1=1;
 104   1         NmDelay(8);
 105   1         COM1=0;
 106   1         P3=dig[y];
 107   1         DP=1;
 108   1         COM2=1;
 109   1         NmDelay(8);
 110   1         COM2=0;
 111   1         P3=dig[z];
 112   1         DP=0;
 113   1         COM3=1;
 114   1         NmDelay(8);
 115   1         COM3=0;
 116   1         P3=led;
 117   1         LED_COM=1;
C51 COMPILER V7.50   TEXT1                                                                 04/18/2008 20:12:11 PAGE 3   

 118   1         TL0=0xFF;
 119   1         TH0=0xE0;   
 120   1         TR0=1;               
 121   1      }
 122          
 123          void WatchDog_Init()
 124          {
 125   1        WDT_CONTR=0x37;
 126   1      }
 127          
 128          void WatchDog_Clear()
 129          {
 130   1        WDT_CONTR=0x37;
 131   1      }
 132          
 133          void Sys_Init()
 134          {
 135   1        P1M0=0x30;//设置p1.4、p1.5为输入高阻
 136   1        P1M1=0x00;
 137   1        P1&=0x00;
 138   1        Timer_Init();
 139   1        ADC_CONTR=0xE5;
 140   1        mDelay(100);
 141   1        ADC_CONTR|=0x08;
 142   1        LedFlag=0;
 143   1      }
 144          
 145          uchar Ad_Detect()
 146          {
 147   1        uchar i=0;
 148   1        ADC_CONTR&=0xEF;
 149   1        ADC_CONTR|=0x08;
 150   1        while(!(ADC_CONTR&0x10))
 151   1          { 
 152   2                i++;
 153   2                if(i>5)return 0;
 154   2                mDelay(10);
 155   2               }
 156   1        return ADC_DATA;
 157   1      }
 158          
 159          void Led_Change(uchar n)
 160          {
 161   1       uchar a,b;
 162   1       switch(n)
 163   1       {
 164   2        case 1:
 165   2                led>>=1;
 166   2                if(led==0)led=0x20;
 167   2                        break;
 168   2        case 2: 
 169   2                        led<<=1;
 170   2                        if(led>0x20)led=0x01;
 171   2                        break;
 172   2        case 3:                 
 173   2                    a=led<<(8-n);
 174   2                    b=led>>1;
 175   2                    led=a|b; 
 176   2                        break;
 177   2        case 4: 
 178   2                    a=led<<(8-n);
 179   2                    b=led>>2;
C51 COMPILER V7.50   TEXT1                                                                 04/18/2008 20:12:11 PAGE 4   

 180   2                    led=a|b;
 181   2                        break;
 182   2        case 5: 
 183   2                a=(led&0x07)>>1;
 184   2                    b=(led&0x38)<<1;
 185   2                    led=a|b;
 186   2                        if(led>0x40||led<1)
 187   2                          led=0x0c;
 188   2                        break;
 189   2        case 6: 
 190   2                if(led>0x40||led<1||led==0x0C)
 191   2                        {
 192   3                              led=0x21;
 193   3                              break;
 194   3                        }
 195   2                        else
 196   2                        {               
 197   3                  a=(led&0x07)<<1;
 198   3                      b=(led&0x38)>>1;
 199   3                      led=a|b;                  
 200   3                          break;
 201   3                        }
 202   2        case 7:                 
 203   2                        led=~led;
 204   2                        break;                    
 205   2        default:  break;
 206   2        
 207   2        }
 208   1      
 209   1      }
 210             
 211          void main(void)
 212          {
 213   1         uchar Data,temp;
 214   1         Sys_Init();
 215   1         WatchDog_Init();
 216   1              Send_Char('O');
 217   1              Send_Char('K');
 218   1              Send_Char('!');
 219   1         while(1)                             
 220   1                {
 221   2              while(1)
 222   2                   {
 223   3                     WatchDog_Clear();
 224   3                         mDelay(10);
 225   3                         if(Ad_Detect()!=0) Data=Ad_Detect();
 226   3                         if(Data>0x65&&Data<0xA5&&ACC_Detect==1)
 227   3                           {
 228   4                                 if(count>3876)
 229   4                                  {
 230   5                                        if((Data<(temp+3))&&(Data>(temp-3))) temp=Data;   
 231   5                                        else break;//continue;                                  
 232   5                                   }
 233   4                                 else  break;                    
 234   4      
 235   4                                }
 236   3                          NmDelay(255);
 237   3                              Send_Char(0x88);
 238   3                    }
 239   2      
 240   2                   count=0;
 241   2                       LedFlag=0;
C51 COMPILER V7.50   TEXT1                                                                 04/18/2008 20:12:11 PAGE 5   

 242   2                   SW=1;
 243   2                       while(1)
 244   2                       {
 245   3                     WatchDog_Clear();
 246   3                         if(Ad_Detect()!=0) temp=Ad_Detect();
 247   3                         if(temp<0x65||temp>0xA5||ACC_Detect==0||count>3876)
 248   3                           {
 249   4                                 TR0=0;
 250   4                                 SW=0;
 251   4                                 P3=0;
 252   4                                 LED_COM=0;
 253   4                                 break;
 254   4                                }                        
 255   3                         else if((temp>(Data+3))||(temp<(Data-3)))
 256   3                               {
 257   4                                 TR0=0;
 258   4                                 count=0;
 259   4                                 TR0=1;
 260   4                               }
 261   3                               Data=temp;
 262   3                      if(temp>0x64&&temp<0x6E)
 263   3                              {
 264   4                                if(LedFlag!=1)
 265   4                                 { 
 266   5                                   LedFlag=1;
 267   5                                       led=0x20;
 268   5                                       Delay=60;
 269   5                                      }
 270   4                                else
 271   4                                  Led_Change(1);
 272   4                              }
 273   3                              else if(temp>0x6D&&temp<0x77)
 274   3                              {
 275   4                                if(LedFlag!=2)
 276   4                                 { 
 277   5                                   LedFlag=2;
 278   5                                       led=0x01;
 279   5                                       Delay=60;                                                               
 280   5                                      }
 281   4                                else
 282   4                                  Led_Change(2);
 283   4                              }
 284   3                              else if(temp>0x76&&temp<0x80)
 285   3                              {
 286   4                                if(LedFlag!=3)
 287   4                                 { 
 288   5                                   LedFlag=3;
 289   5                                       led=0x09;
 290   5                                       Delay=130;
 291   5                                      }
 292   4                                else
 293   4                                  Led_Change(3);
 294   4                              }
 295   3                              else if(temp>0x7F&&temp<0x89)
 296   3                              {
 297   4                                if(LedFlag!=4)
 298   4                                 { 
 299   5                                   LedFlag=4;
 300   5                                       led=0x09;
 301   5                                       Delay=130;
 302   5                                      }
 303   4                                else
C51 COMPILER V7.50   TEXT1                                                                 04/18/2008 20:12:11 PAGE 6   

 304   4                                  Led_Change(4);
 305   4                              }
 306   3                              else if(temp>0x88&&temp<0x92) 
 307   3                              {
 308   4                                if(LedFlag!=5)
 309   4                                 { 
 310   5                                   LedFlag=5;
 311   5                                       led=0x0C;
 312   5                                       Delay=100;
 313   5                                      }
 314   4                                else
 315   4                                  Led_Change(5);
 316   4                              }
 317   3                              else if(temp>0x91&&temp<0x9B) 
 318   3                              {
 319   4                                if(LedFlag!=6)
 320   4                                 { 
 321   5                                   LedFlag=6;
 322   5                                       led=0x21;
 323   5                                       Delay=150;
 324   5                                      }
 325   4                                else
 326   4                                  Led_Change(6);
 327   4                              }
 328   3                              else 
 329   3                              {
 330   4                                if(LedFlag!=7)
 331   4                                 { 
 332   5                                   LedFlag=7;
 333   5                                       led=0x55;
 334   5                                       Delay=190;
 335   5                                      }
 336   4                                else
 337   4                                  Led_Change(7);
 338   4                              }
 339   3                              P3=led;
 340   3                              LED_COM=1;
 341   3                  NmDelay(Delay);
 342   3                          Display(temp);
 343   3                              //Send_Char(0x88);
 344   3                    }
 345   2              } 
 346   1      }
 347          
*** WARNING C316 IN LINE 347 OF Text1.c: unterminated conditionals


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    942    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9       2
   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 + -