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

📄 traffic6.lst

📁 用51单片机控制交通灯亮灭
💻 LST
字号:
C51 COMPILER V7.20   TRAFFIC6                                                              05/28/2008 20:05:30 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE TRAFFIC6
OBJECT MODULE PLACED IN traffic6.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE traffic6.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          uint a;
   5          uchar temp,time,flag;
   6          sbit lcd_rw =P2^5;
   7          sbit lcd_rs =P2^6;
   8          sbit lcd_en =P2^4;
   9          #define lcd_data P1//P1作为数据口
  10          sbit NSRed=P3^0;
  11          sbit NSGreen=P3^1;
  12          sbit EWRed=P3^2;
  13          sbit EWGreen=P3^3;
  14          
  15          /*一下八行定义液晶和键盘*/
  16          uchar code table[]="1=>E & W BUSY:";
  17          uchar code table1[]="2=>S & N BUSY:";
  18          sbit commonkey=P0^4;
  19          sbit key1=P0^0; //东西繁忙控制
  20          sbit key2=P0^1; //南北繁忙控制
  21                  
  22          void run1();
  23          void run2();
  24          void delay(uint z)
  25          {
  26   1              uint i,j;
  27   1              for(i=z;i>0;i--)
  28   1                      for(j=114;j>0;j--);
  29   1      }
  30          void write_data(uchar dat)
  31          {
  32   1              lcd_rs=1;
  33   1              lcd_rw=0;
  34   1              lcd_data=dat;
  35   1              delay(5);
  36   1              lcd_en=0;
  37   1              lcd_en=1;
  38   1              delay(5);
  39   1              lcd_en=0;       
  40   1      } 
  41          void write_com(uchar dat)
  42          {
  43   1              lcd_rs=0;
  44   1              lcd_rw=0;
  45   1              lcd_data=dat;
  46   1              delay(5);
  47   1              lcd_en=0;
  48   1              lcd_en=1;
  49   1              delay(5);
  50   1              lcd_en=0;
  51   1      } 
  52          /*液晶初始化*/
  53          void lcd_init()
  54          {
  55   1                      
C51 COMPILER V7.20   TRAFFIC6                                                              05/28/2008 20:05:30 PAGE 2   

  56   1          lcd_rw=0;
  57   1              write_com(0x38);//设置显示模式
  58   1              write_com(0x38);
  59   1              write_com(0x08);//显示关闭
  60   1              write_com(0x01);//显示清屏
  61   1              write_com(0x06);//指针向右加1
  62   1              write_com(0x0c);//不显示光标
  63   1      }
  64          void Time0_init()
  65          {
  66   1              EA=1;
  67   1              ET0=1;
  68   1              TMOD=0x01;
  69   1              TH0=(65536-50000)/256;
  70   1              TL0=(65536-50000)%256;
  71   1      
  72   1      }
  73          void Time0_intt() interrupt 1 using 3
  74          {
  75   1              TH0=(65536-50000)/256;
  76   1              TL0=(65536-50000)%256;
  77   1              temp++;
  78   1              if(temp==20)
  79   1              {
  80   2                      temp=0;
  81   2                      time--;
  82   2                      if(flag==1)
  83   2                      write_com(0x80+14);
  84   2                      if(flag==2)
  85   2                      write_com(0x80+14+0x40);
  86   2                      write_data(time/10+0x30);
  87   2                      write_data(time%10+0x30);
  88   2      /*              if(time==0) 
  89   2                      {
  90   2                              flag++;
  91   2                              if(flag==1) time=9;
  92   2                              if(flag==2) time=11;
  93   2                              if(flag==3) 
  94   2                              {
  95   2                                      time=7;
  96   2                                      flag=0;
  97   2                              }
  98   2                              if(flag==0) time=16;
  99   2                      } */
 100   2              }       
 101   1      }
 102          
 103          void main()
 104          {
 105   1                      uchar i;
 106   1                      
 107   1                      lcd_init();
 108   1                      
 109   1                      Time0_init();
 110   1                      write_com(0x80);
 111   1                      for(i=0;i<14;i++)
 112   1                      write_data(table[i]);
 113   1                      write_com(0x80+0x40);
 114   1                      for(i=0;i<14;i++)
 115   1                      write_data(table1[i]);
 116   1                      
 117   1                      commonkey=0;
C51 COMPILER V7.20   TRAFFIC6                                                              05/28/2008 20:05:30 PAGE 3   

 118   1                      while(1)
 119   1                      {
 120   2                              if(key1==0)
 121   2                              {
 122   3                                      delay(20);
 123   3                                      if(key1==0)
 124   3                                      {
 125   4                                              while(!key1);
 126   4                                                      flag=1;
 127   4                                              while(1)
 128   4                                              {
 129   5                                                      run1();
 130   5                                              }
 131   4                                      }
 132   3                              }
 133   2                                      
 134   2                              if(key2==0)
 135   2                              {
 136   3                                      delay(5);
 137   3                                      if(key2==0)
 138   3                                      {
 139   4                                              while(!key2);
 140   4                                              flag=2;
 141   4                                              while(1)
 142   4                                              {
 143   5                                                      run2();
 144   5                                               }
 145   4                                      }       
 146   3                              
 147   3                              }
 148   2                      }
 149   1      }
 150          
 151          
 152          void run1()
 153          {
 154   1              EWGreen=0;
 155   1              NSRed=0;
 156   1              TR0=1;
 157   1              time=15;
 158   1              write_com(0x80+14);
 159   1              write_data(time/10+0x30);
 160   1              write_data(time%10+0x30);
 161   1              while(time);
 162   1                      TR0=0; //东西通,南北可右转,15s
 163   1              a=40;
 164   1              while(a--)  //开始闪烁7s
 165   1              {
 166   2                      EWGreen=1;
 167   2                      NSRed=1;
 168   2                      delay(100);
 169   2                      EWGreen=0;
 170   2                      NSRed=0;
 171   2                      delay(100);
 172   2              }                                        
 173   1              P3=0XFF; 
 174   1      
 175   1              EWRed=0;
 176   1              NSRed=0; //以下让东西红灯,南北黄灯6秒
 177   1              NSGreen=0;
 178   1              TR0=1;
 179   1              time=6;
C51 COMPILER V7.20   TRAFFIC6                                                              05/28/2008 20:05:30 PAGE 4   

 180   1              write_com(0x80+14);
 181   1              write_data(time/10+0x30);
 182   1              write_data(time%10+0x30);
 183   1              while(time);  //东西止,南北可左转,约8s
 184   1                      TR0=0; 
 185   1                            
 186   1              a=25;
 187   1              while(a--) //开始闪烁4s
 188   1              {
 189   2                      EWRed=1;
 190   2                  NSRed=1; 
 191   2                  NSGreen=1;
 192   2                      delay(100);
 193   2                      EWRed=0;
 194   2                      NSRed=0; 
 195   2                  NSGreen=0;
 196   2                      delay(100);             
 197   2              }
 198   1          P3=0XFF;      
 199   1      /*以下东西和南北转换****/
 200   1              NSGreen=0;
 201   1              EWRed=0;
 202   1              TR0=1;
 203   1              time=10;
 204   1              write_com(0x80+14);
 205   1              write_data(time/10+0x30);
 206   1              write_data(time%10+0x30);
 207   1              while(time);
 208   1                      TR0=0; 
 209   1              a=25;
 210   1              while(a--)
 211   1              {
 212   2                      NSGreen=1;
 213   2                      EWRed=1;
 214   2                      delay(100);
 215   2                      NSGreen=0;
 216   2                      EWRed=0;
 217   2                      delay(100);
 218   2              }
 219   1      
 220   1              P3=0XFF;
 221   1      
 222   1              NSRed=0;
 223   1              EWRed=0;
 224   1              EWGreen=0;
 225   1              TR0=1;
 226   1              time=6;
 227   1              write_com(0x80+14);
 228   1              write_data(time/10+0x30);
 229   1              write_data(time%10+0x30);
 230   1              while(time);
 231   1                      TR0=0; 
 232   1              a=15;
 233   1              while(a--)
 234   1              {
 235   2                      NSRed=1;
 236   2                      EWRed=1;
 237   2                  EWGreen=1;
 238   2                      delay(100);
 239   2                      NSRed=0;
 240   2                      EWRed=0;
 241   2                  EWGreen=0;
C51 COMPILER V7.20   TRAFFIC6                                                              05/28/2008 20:05:30 PAGE 5   

 242   2                      delay(100);                     
 243   2              }
 244   1              P3=0XFF;
 245   1              
 246   1      }
 247          void run2()
 248          {
 249   1      
 250   1              EWGreen=0;
 251   1              NSRed=0;
 252   1              TR0=1;
 253   1              time=10;
 254   1              write_com(0x80+14);
 255   1              write_data(time/10+0x30);
 256   1              write_data(time%10+0x30);
 257   1              while(time);
 258   1                      TR0=0; //东西通,南北可右转,15s
 259   1              a=40;
 260   1              while(a--)  //开始闪烁7s
 261   1              {
 262   2                      EWGreen=1;
 263   2                      NSRed=1;
 264   2                      delay(100);
 265   2                      EWGreen=0;
 266   2                      NSRed=0;
 267   2                      delay(100);
 268   2              }                                        
 269   1              P3=0XFF; 
 270   1      
 271   1              EWRed=0;
 272   1              NSRed=0; //以下让东西红灯,南北黄灯6秒
 273   1              NSGreen=0;
 274   1              TR0=1;
 275   1              time=6;
 276   1              write_com(0x80+14);
 277   1              write_data(time/10+0x30);
 278   1              write_data(time%10+0x30);
 279   1              while(time);  //东西止,南北可左转,约8s
 280   1                      TR0=0; 
 281   1                            
 282   1              a=25;
 283   1              while(a--) //开始闪烁4s
 284   1              {
 285   2                      EWRed=1;
 286   2                  NSRed=1; 
 287   2                  NSGreen=1;
 288   2                      delay(100);
 289   2                      EWRed=0;
 290   2                      NSRed=0; 
 291   2                  NSGreen=0;
 292   2                      delay(100);             
 293   2              }
 294   1          P3=0XFF;      
 295   1      /*以下东西和南北转换****/
 296   1              NSGreen=0;
 297   1              EWRed=0;
 298   1              TR0=1;
 299   1              time=15;
 300   1              write_com(0x80+14);
 301   1              write_data(time/10+0x30);
 302   1              write_data(time%10+0x30);
 303   1              while(time);
C51 COMPILER V7.20   TRAFFIC6                                                              05/28/2008 20:05:30 PAGE 6   

 304   1                      TR0=0; 
 305   1              a=25;
 306   1              while(a--)
 307   1              {
 308   2                      NSGreen=1;
 309   2                      EWRed=1;
 310   2                      delay(100);
 311   2                      NSGreen=0;
 312   2                      EWRed=0;
 313   2                      delay(100);
 314   2              }
 315   1      
 316   1              P3=0XFF;
 317   1      
 318   1              NSRed=0;
 319   1              EWRed=0;
 320   1              EWGreen=0;
 321   1              TR0=1;
 322   1              time=6;
 323   1              write_com(0x80+14);
 324   1              write_data(time/10+0x30);
 325   1              write_data(time%10+0x30);
 326   1              while(time);
 327   1                      TR0=0; 
 328   1              a=15;
 329   1              while(a--)
 330   1              {
 331   2                      NSRed=1;
 332   2                      EWRed=1;
 333   2                  EWGreen=1;
 334   2                      delay(100);
 335   2                      NSRed=0;
 336   2                      EWRed=0;
 337   2                  EWGreen=0;
 338   2                      delay(100);                     
 339   2              }
 340   1              P3=0XFF;
 341   1              
 342   1      }
 343                  
 344          
 345          
 346          
 347          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    754    ----
   CONSTANT SIZE    =     30    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5    ----
   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 + -