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

📄 0.lst

📁 51控制的十字路口交通灯 左右转 人行道
💻 LST
字号:
C51 COMPILER V7.06   0                                                                     05/08/2006 22:55:34 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 0
OBJECT MODULE PLACED IN 0.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 0.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //附:源程序代码
   2          /**********************************/
   3           /*         交通灯控制系统         */
   4           /*    设计:陈金玉 吴振铨         */
   5           /*     广东工业大学信息工程学院   */
   6           /*         04应用电子2班         */
   7           /*         2006年4月25日        */
   8           /**********************************/
   9          #include"reg51.h"
  10          unsigned char code table[]={  // seven segments LED code
  11                  0xC0,/*0*/
  12                  0xF9,/*1*/
  13                  0xA4,/*2*/
  14                  0xB0,/*3*/
  15                  0x99,/*4*/
  16                  0x92,/*5*/
  17                  0x82,/*6*/
  18                  0xF8,/*7*/
  19                  0x80,/*8*/
  20                  0x90,/*9*/};
  21          sbit A_R=P1^0;//A road Red light
  22          sbit A_G=P1^1;//A road Green light
  23          sbit A_Y=P1^2;//A road Yellow light
  24          sbit A_A=P1^3;//A road Arrow light
  25          sbit C_R=P1^4;//C road Red light
  26          sbit C_G=P1^5;//C road Green light
  27          sbit C_Y=P1^6;//C road Yellow light
  28          sbit C_A=P1^7;//C road Arrow light
  29          sbit B_R=P1^0;//C road Red light
  30          sbit B_G=P1^1;//B road Green light
  31          sbit B_Y=P1^2;//B road Yellow light
  32          sbit B_A=P1^3;//B road Arrow light
  33          sbit D_R=P1^4;//D road Red light
  34          sbit D_G=P1^5;//D road Green light
  35          sbit D_Y=P1^6;//D road Yellow light
  36          sbit D_A=P1^7;//D road Arrow light
  37          sbit PB1=P2^7;//primary road led bit 1
  38          sbit PB2=P2^6;//primary road led bit 2
  39          sbit SB1=P2^5;//secondary road led bit 1
  40          sbit SB2=P2^4;//secondary road led bit 2
  41          sbit PSW_G=P2^3;//primary road sidewalk Green lighi
  42          sbit PSW_R=P2^2;//primary road sidewalk Red lighi
  43          sbit SSW_G=P2^1;//secondary road sidewalk Green lighi
  44          sbit SSW_R=P2^0;//secondary road sidewalk Red lighi
  45          sbit PR_G=P3^0;//primary road turn right Red light
  46          sbit PR_R=P3^1;//primary road turn right Green light
  47          sbit SR_G=P3^2;//secondary road turn right Red light
  48          sbit SR_R=P3^3;//secondary road turn right Green light
  49          unsigned char CASE;// road situation
  50          unsigned char PT;//primary road time
  51          unsigned char ST;//secondary road time
  52          void display(unsigned char PT,unsigned char ST);//road  time display
  53          void init(void);//initialise system
  54          void delay(void);// led scan delay
  55          time0()interrupt 1 using 1//T0 interrupt serve (delay 50ms)
C51 COMPILER V7.06   0                                                                     05/08/2006 22:55:34 PAGE 2   

  56          { 
  57   1        unsigned char i;
  58   1        i++;
  59   1        TH0=-50000/256;
  60   1        TL0=-50000%256;
  61   1           if(i>20)
  62   1            {
  63   2             i=0;
  64   2             PT--;
  65   2                 ST--;
  66   2            }
  67   1      }
  68          void init(void)//initialise system
  69          { 
  70   1      P0=0x00;//initialise I\O ports
  71   1      P1=0xFF; 
  72   1      P2=0xFF;
  73   1      P3=0xFF;
  74   1      CASE=1;//the initial road situation
  75   1      TMOD=0x61;//initialise timer
  76   1      TH0=-50000/256;
  77   1      TL0=-50000%256;
  78   1      EA=1;
  79   1      ET0=1;
  80   1      TR0=1;
  81   1      }
  82          void display(unsigned char PT,unsigned char ST)//road time display function
  83          {
  84   1       unsigned char n;
  85   1       n=PT%10;
  86   1       PB1=0;
  87   1       P0=table[n];
  88   1       delay();
  89   1       delay();
  90   1       PB1=1;
  91   1       delay();
  92   1       n=PT/10;
  93   1       PB2=0;
  94   1       P0=table[n];
  95   1       delay();
  96   1       delay();
  97   1       PB2=1;
  98   1       delay();
  99   1       n=ST%10;
 100   1       SB1=0;
 101   1       P0=table[n];
 102   1       delay();
 103   1       delay();
 104   1       SB1=1;
 105   1       delay();
 106   1       n=ST/10;
 107   1       SB2=0;
 108   1       P0=table[n];
 109   1       delay();
 110   1       delay();
 111   1       SB2=1;
 112   1       delay();
 113   1       }
 114          void delay(void)// led scan delay
 115          {  int k;
 116   1         for(k=0;k<300;k++)
 117   1              ;
C51 COMPILER V7.06   0                                                                     05/08/2006 22:55:34 PAGE 3   

 118   1      }
 119          void main(void)
 120          {        
 121   1        init();
 122   1        while(1)
 123   1        {
 124   2          switch(CASE)
 125   2               {
 126   3                 case 1:
 127   3                      PT=15;
 128   3                  ST=75;
 129   3                              C_R=0;//C go ahead forbit
 130   3                              D_R=0;//D go ahead forbit
 131   3                              A_A=0;//A road turn left allow
 132   3                              A_R=0;
 133   3                              B_A=0;//B road turn left allow
 134   3                              B_R=0;
 135   3                              PR_G=0;//primary road turn right allow
 136   3                  PR_R=1;
 137   3                  SR_R=0;//secondary road turn right forbit
 138   3                              SR_G=1;
 139   3                  PSW_G=1;//primary road sidewalk forbit
 140   3                              PSW_R=0;
 141   3                              SSW_G=1;//secondary road sidewalk forbit
 142   3                              SSW_R=0;
 143   3                      while(!(PT==0&&ST==0))
 144   3                  {
 145   4                               if(PT<6&&ST<66&&ST>PT)
 146   4                                   { 
 147   5                                         if(PT%2==1)
 148   5                                             {
 149   6                                              A_A=1;//A road turn left flash
 150   6                              B_A=1;//B road turn left flash
 151   6                                                      }
 152   5                                          else 
 153   5                              {
 154   6                                              A_A=0;
 155   6                              B_A=0;
 156   6                                                      }
 157   5                                        }
 158   4                   if(PT==0&&ST==60)
 159   4                              {
 160   5                                     PT=60;
 161   5                             A_A=1;//A road turn left forbid
 162   5                                     B_A=1;//B road turn left forbid
 163   5                         PR_G=1;//primary road turn  right forbid
 164   5                         PR_R=0;
 165   5                                         A_G=0;//A road go ahead allow
 166   5                                         A_R=1;
 167   5                                         B_G=0;//B road go ahead allow
 168   5                                         B_R=1;
 169   5                         SSW_G=0;//secondary road sidewalk allow
 170   5                                 SSW_R=1;
*** ERROR C100 IN LINE 170 OF 0.C: unprintable character 0xA3 skipped
*** ERROR C100 IN LINE 170 OF 0.C: unprintable character 0xBB skipped
 171   5                        }
*** ERROR C141 IN LINE 171 OF 0.C: syntax error near '}'
 172   4                   if(PT<6&&ST<6)
 173   4                                          { 
 174   5                                                   A_G=1;
 175   5                                               B_G=1;
 176   5                                               if(PT%2==1)
C51 COMPILER V7.06   0                                                                     05/08/2006 22:55:34 PAGE 4   

 177   5                                                 {
 178   6                                                      A_Y=1;//A road yellow light flash
 179   6                                  B_Y=1;//B road yellow light flash
 180   6                                  SSW_G=1;//secondary road sidewalk Green light flash
 181   6                                                          }
 182   5                                              else 
 183   5                                 {
 184   6                                                      A_Y=0;
 185   6                                  B_Y=0;
 186   6                                  SSW_G=0;
 187   6                                                      }
 188   5                                                 }
 189   4                           display(PT,ST);
 190   4                          }
 191   3                  A_G=1;//A road go ahead forbit
 192   3                          B_G=1;//B road go ahead forbit
 193   3                  SSW_G=1;//secondary road sidewalk forbit
 194   3                              SSW_R=0;
 195   3                              CASE=2;
 196   3                              Break; 
*** ERROR C100 IN LINE 196 OF 0.C: unprintable character 0xA3 skipped
*** ERROR C100 IN LINE 196 OF 0.C: unprintable character 0xBB skipped
 197   3             case 2:
*** ERROR C202 IN LINE 197 OF 0.C: 'Break': undefined identifier
*** ERROR C141 IN LINE 197 OF 0.C: syntax error near 'case'
 198   3                      PT=55;
 199   3                  ST=10;
 200   3                              A_R=0;//A road go ahead forbit
 201   3                              B_R=0;//B road go ahead forbit
 202   3                  C_A=0;//C road turn left allow
 203   3                              C_R=0;
 204   3                              D_A=0;//D road turn left allow
 205   3                              C_R=0;
 206   3                              SR_R=1;//secondary road turn right allow
 207   3                              SR_G=0;
 208   3                  PSW_G=1;//primary road sidewalk forbit
 209   3                              PSW_R=0;
 210   3                              SSW_G=1;//secondary road sidewalk forbit
 211   3                              SSW_R=0;
 212   3                      while(!(PT==0&&ST==0))
 213   3                    { 
 214   4                        if(PT<51&&ST<6&&PT>ST)
 215   4                                   { 
 216   5                                         if(PT%2==1)
 217   5                                             {
 218   6                                              C_A=1;//C road turn left flash
 219   6                              C_A=1;//C road turn left flash
 220   6                                                      }
 221   5                                          else 
 222   5                              {
 223   6                                              C_A=0;
 224   6                              C_A=0;
 225   6                                                      }
 226   5                                        }
 227   4                      if(PT==45&&ST==0)
 228   4                                  {
 229   5                                                ST=45;
 230   5                            C_A=1;//C road turn left forbid
 231   5                                        D_A=1;//D road turn left forbid
 232   5                            SR_R=0;//secondary road turn right forbit
 233   5                                        SR_G=1;
 234   5                                            C_G=0;//C road go ahead allow
C51 COMPILER V7.06   0                                                                     05/08/2006 22:55:34 PAGE 5   

 235   5                                                C_R=1;
 236   5                                            D_G=0;//D road go ahead allow
 237   5                                                D_R=1;
 238   5                            PSW_G=0;//primary road sidewalk allow
 239   5                                        PSW_R=1;
 240   5                                               }
 241   4                      if(PT<6&&ST<6)
 242   4                                          { 
 243   5                                                   C_G=1;
 244   5                                               D_G=1;
 245   5                                               if(PT%2==1)
 246   5                                                 {
 247   6                                                      C_Y=1;//C road yellow light flash
 248   6                                  D_Y=1;//D road yellow light flash
 249   6                                  PSW_G=1;//primary road sidewalk Green light flash
 250   6                                                          }
 251   5                                              else 
 252   5                                 {
 253   6                                                      C_Y=0;
 254   6                                  D_Y=0;
 255   6                                  PSW_G=0;
 256   6                                                      }
 257   5                                                 }
 258   4                              display(PT,ST);
 259   4                             }
 260   3                  C_G=1;//C road go ahead forbit
 261   3                          D_G=1;//C road go ahead forbit
 262   3                              CASE=1;
 263   3                              break;
 264   3                         
 265   3             }
 266   2         }
 267   1      }

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

⌨️ 快捷键说明

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