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

📄 jiaotongdeng.lst

📁 学期末的单片机实践作品--交通灯(含程序、仿真图、PCB)
💻 LST
字号:
C51 COMPILER V9.00   JIAOTONGDENG                                                          01/04/2013 08:48:30 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE JIAOTONGDENG
OBJECT MODULE PLACED IN .\jiaotongdeng.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE ..\jiaotongdeng.c BROWSE DEBUG OBJECTEXTEND OBJECT(.\jiaotongdeng.obj)

line level    source

   1          #include<reg51.h>
   2          #define uchar unsigned char
   3          #define uint unsigned  int
   4          sbit sw1=P3^0;
   5          sbit sw2=P3^1;
   6          sbit sw3=P3^2;
   7          sbit key_ew=P3^3;
   8          sbit key_sn=P3^4;
   9          uchar TH,TL; 
  10          uchar SN=30,EW=25,NN=60;
  11          uint tt,ii,jj,kk;
  12          //uchar ii;
  13          uchar code DisCode[]
  14          ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  15          
  16          uchar code weide[]={0xfe,0xfd};
  17          uchar Disbuff0[2];
  18          uchar Disbuff1[2];
  19          /*void Delay(uint x)//MS延时
  20          {
  21                  uchar i;
  22                  while(x--)for(i=0;i<123;i++);
  23          }  */
  24          void init()
  25          {
  26   1       TMOD=0x01;      
  27   1       TH=(65536-2500)/256,
  28   1       TL=(65536-2500)%256;
  29   1       TH0=TH;
  30   1       TL0=TL;
  31   1       EA=1;
  32   1       ET0=1;
  33   1       TR0=1;
  34   1      }
  35          void fenli0()
  36          {
  37   1       Disbuff0[0]=SN/10;
  38   1       Disbuff0[1]=SN%10;
  39   1      }
  40          void fenli1()
  41          {
  42   1        Disbuff1[0]=EW/10;
  43   1        Disbuff1[1]=EW%10;
  44   1      }
  45          
  46          void Display()
  47          {
  48   1         uchar ii;
  49   1         if(ii==0)
  50   1         {   
  51   2           P0=0x80;
  52   2               P2=0x80;
  53   2           P0=DisCode[Disbuff0[0]]&0x7f;
  54   2               P2=DisCode[Disbuff1[0]]|0x80;
  55   2               
C51 COMPILER V9.00   JIAOTONGDENG                                                          01/04/2013 08:48:30 PAGE 2   

  56   2               
  57   2              }
  58   1               else
  59   1               { 
  60   2                P0=0x80;
  61   2                P2=0x80;
  62   2                P0=DisCode[Disbuff0[1]]|0x80;
  63   2                P2=DisCode[Disbuff1[1]]&0x7f;
  64   2                                                       
  65   2              
  66   2               }
  67   1               ii=~ii;
  68   1      
  69   1      }
  70          void xianshi()
  71          {
  72   1        if(NN==60)
  73   1        {
  74   2          SN=30;
  75   2              EW=25;
  76   2              P1=0xb3;
  77   2        }
  78   1        if(EW==0&&NN==35)
  79   1        {
  80   2          EW=5;
  81   2              //P1=0xb5;
  82   2        }
  83   1        if(NN==30)
  84   1         {
  85   2          SN=25;
  86   2              EW=30;
  87   2              P1=0x5e;
  88   2      
  89   2         }
  90   1         if(SN==0&&NN==5)
  91   1         {
  92   2           SN=5;
  93   2               //P1=0x6e;
  94   2         }
  95   1         EW--;
  96   1         SN--;
  97   1         NN--;
  98   1         if(NN==0)
  99   1         {
 100   2           NN=60;
 101   2         }
 102   1         fenli0();
 103   1         fenli1();
 104   1           
 105   1      
 106   1          
 107   1      }
 108          void LED()
 109          {
 110   1        if(NN<=35&&NN>30)
 111   1         {
 112   2          if(ii)
 113   2              {
 114   3            P1=0xb5;
 115   3              }
 116   2              else P1=0xf7; 
 117   2         }
C51 COMPILER V9.00   JIAOTONGDENG                                                          01/04/2013 08:48:30 PAGE 3   

 118   1         if(NN<=5)
 119   1         {
 120   2          if(ii)
 121   2              {
 122   3            P1=0x6e;
 123   3              }
 124   2              else P1=0xfe; 
 125   2         }
 126   1      }
 127          
 128          void qiangzhi_sw()//强制通行
 129          {         
 130   1          if(key_ew==0)
 131   1                {
 132   2                  TR0=0;
 133   2                      P0=0x3f;
 134   2                      P2=0x3f;
 135   2                      P1=0x5e;
 136   2                      while(!key_ew);          
 137   2                      TR0=1;
 138   2                }
 139   1               if(key_sn==0)
 140   1                {
 141   2                  TR0=0;
 142   2                      P0=0x3f;
 143   2                      P2=0x3f;
 144   2                      P1=0xb3;
 145   2                      while(!key_sn);          
 146   2                      TR0=1;
 147   2                }
 148   1      }
 149          /*void key1()
 150          {
 151             uchar m=0,num=0,n=0;
 152             uchar sw11,sw22=1,sw33=1;
 153                  if(sw1==0)
 154                   {  
 155                     Delay(10);
 156                     if(sw1==0)
 157                      {             
 158                            while(!sw1);
 159                               num++;
 160                               TR0=0;
 161                            while(!m)
 162                             {  
 163                                if(n==1)
 164                                      { 
 165                                             if(sw11==1&&sw1==0)
 166                                                  {
 167                                                     Delay(10);  
 168                                                   if(sw11==1&&sw1==0)
 169                                                    {
 170                                                          num++;
 171                                                    }
 172                                                  }
 173                                             if(num==4)
 174                                              {
 175                                                 while(!sw1);
 176                                              } 
 177                                             sw11=sw1;               
 178                                      }   
 179                                          n=1;     
C51 COMPILER V9.00   JIAOTONGDENG                                                          01/04/2013 08:48:30 PAGE 4   

 180                                          Delay(3); 
 181                                     switch (num)
 182                                      {
 183                                            
 184                                            case 1:
 185                                                   {                                                                                                                                              
 186                                                                           if(sw22==1&&sw2==0)
 187                                                                             {
 188                                                                               sec++;
 189                                                                                   if(sec==60)
 190                                                                                   sec=0;
 191                                                                                   Dis_fenli();
 192                                                                             }    
 193                                                                            sw22=sw2;
 194                                                                            if(sw33==1&&sw3==0)
 195                                                                            {
 196                                                                              sec--;
 197                                                                              if(sec==255)
 198                                                                              sec=59;
 199                                                                              Dis_fenli(); 
 200                                                                            }
 201                                                                            sw33=sw3;     
 202                                                                           SJ_Display_shanshuo(6,7);
 203                                                                   
 204                                                            } break;
 205                                           case 2:
 206                                                   {
 207                                                                           if(sw22==1&&sw2==0)
 208                                                                             {
 209                                                                               min++;
 210                                                                                   if(min==60)
 211                                                                                    min=0;
 212                                                                                    Dis_fenli();
 213                                                                             }    
 214                                                                            sw22=sw2;
 215                                                                            if(sw33==1&&sw3==0)
 216                                                                            {
 217                                                                              min--;
 218                                                                              if(min==255)
 219                                                                              min=59;
 220                                                                              Dis_fenli(); 
 221                                                                            }
 222                                                                            sw33=sw3;
 223                                                                             SJ_Display_shanshuo(3,4);    
 224                                                             } break;
 225                                          case 3:
 226                                                 {                                                  
 227                                                                        if(sw22==1&&sw2==0)
 228                                                                             {
 229                                                                               hour++;
 230                                                                               if(hour==24)
 231                                                                               hour=0;
 232                                                                               Dis_fenli();
 233                                                                             }    
 234                                                                            sw22=sw2;
 235                                                                            if(sw33==1&&sw3==0)
 236                                                                            {
 237                                                                               hour--;
 238                                                                               if(hour==255)
 239                                                                               hour=23;
 240                                                                               Dis_fenli();
 241                                                                            }
C51 COMPILER V9.00   JIAOTONGDENG                                                          01/04/2013 08:48:30 PAGE 5   

 242                                                                            sw33=sw3;     
 243                                                                             SJ_Display_shanshuo(0,1);        
 244                                                    } break;
 245                                          case 4:
 246                                                   {
 247                                                             TR0=1;
 248                                                              m=1;
 249                                                                  while(!sw1);
 250                                                                  Delay(5);
 251                                                                  while(!sw1);                                                                                       
 252                                                           } break;
 253                                                                          
 254                                  }                                
 255                            }                                        
 256                     }                     
 257                  }       
 258          }*/
 259          
 260          void main()
 261          {
 262   1       init();
 263   1       fenli0();
 264   1       fenli1();
 265   1       while(1)
 266   1       {
 267   2        qiangzhi_sw(); 
 268   2        //key1();
 269   2       }
 270   1      
 271   1      }
 272          void timer0() interrupt 1
 273           {
 274   1        TH0=TH;
 275   1        TL0=TL;
 276   1        tt++;
 277   1        jj++;
 278   1       if(tt==400)
 279   1        {
 280   2          tt=0;
 281   2              xianshi();    
 282   2        }      
 283   1        Display();
 284   1        LED();
 285   1        if(jj==100)
 286   1        {
 287   2          jj=0;
 288   2         ii=~ii; 
 289   2        }
 290   1       }         


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    369    ----
   CONSTANT SIZE    =     12    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     17       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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