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

📄 7.lst

📁 51控制的十字路口交通灯 左右转 人行道
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   7                                                                     05/12/2006 19:27:59 PAGE 1   


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

stmt level    source

   1          /**********************************/
   2           /*         交通灯控制系统         */
   3           /*    设计:陈金玉 吴振铨         */
   4           /*     广东工业大学信息工程学院   */
   5           /*         04应用电子2班         */
   6           /*         2006年4月25日        */
   7           /**********************************/
   8          // cross road traffic light control system              
   9          // designed by chen jin yu   wu zhen quan      
  10          // 2006.4.10  at guang dong university of technology
  11          // information engineering college
  12          #include"reg51.h"
  13          unsigned char code table[]={  // seven segments LED code
  14                  0xC0,/*0*/
  15                  0xF9,/*1*/
  16                  0xA4,/*2*/
  17                  0xB0,/*3*/
  18                  0x99,/*4*/
  19                  0x92,/*5*/
  20                  0x82,/*6*/
  21                  0xF8,/*7*/
  22                  0x80,/*8*/
  23                  0x90,/*9*/};
  24          sbit A_R=P1^0;//A road Red light
  25          sbit A_G=P1^1;//A road Green light
  26          sbit A_Y=P1^2;//A road Yellow light
  27          sbit A_A=P1^3;//A road Arrow light
  28          sbit C_R=P1^4;//C road Red light
  29          sbit C_G=P1^5;//C road Green light
  30          sbit C_Y=P1^6;//C road Yellow light
  31          sbit C_A=P1^7;//C road Arrow light
  32          sbit B_R=P1^0;//C road Red light
  33          sbit B_G=P1^1;//B road Green light
  34          sbit B_Y=P1^2;//B road Yellow light
  35          sbit B_A=P1^3;//B road Arrow light
  36          sbit D_R=P1^4;//D road Red light
  37          sbit D_G=P1^5;//D road Green light
  38          sbit D_Y=P1^6;//D road Yellow light
  39          sbit D_A=P1^7;//D road Arrow light
  40          sbit PB1=P2^7;//primary road led bit 1
  41          sbit PB2=P2^6;//primary road led bit 2
  42          sbit SB1=P2^5;//secondary road led bit 1
  43          sbit SB2=P2^4;//secondary road led bit 2
  44          sbit PSW_G=P2^3;//primary road sidewalk Green lighi
  45          sbit PSW_R=P2^2;//primary road sidewalk Red lighi
  46          sbit SSW_G=P2^1;//secondary road sidewalk Green lighi
  47          sbit SSW_R=P2^0;//secondary road sidewalk Red lighi
  48          sbit PR_G=P3^0;//primary road turn right Red light
  49          sbit PR_R=P3^1;//primary road turn right Green light
  50          sbit SR_G=P3^2;//secondary road turn right Red light
  51          sbit SR_R=P3^3;//secondary road turn right Green light
  52          
  53          sbit menu=P3^7;
  54          sbit add=P3^5;
  55          sbit dec=P3^6;
C51 COMPILER V7.06   7                                                                     05/12/2006 19:27:59 PAGE 2   

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

 118   1       P0=table[n];
 119   1       delay();
 120   1       delay();
 121   1       SB1=1;
 122   1       delay();
 123   1       n=ST/10;
 124   1       SB2=0;
 125   1       P0=table[n];
 126   1       delay();
 127   1       delay();
 128   1       SB2=1;
 129   1       delay();
 130   1       }
 131          
 132          void delay(void)// led scan delay
 133          {  
 134   1         for(k=0;k<300;k++)
 135   1            ;
 136   1      
 137   1      }
 138          
 139          void settime()
 140          {
 141   1        EA=0;
 142   1        ET0=0;
 143   1        TR0=0;
 144   1       exit=1;
 145   1       while(exit)
 146   1       {
 147   2       
 148   2       
 149   2      for(k=0;k<40000;k++)
 150   2              ;
 151   2       while(menu!=0)
 152   2          {
 153   3               A_A=0;
 154   3           PT=A1;
 155   3           n=PT%10;
 156   3           PB1=0;
 157   3           P0=table[n];
 158   3           delay();
 159   3           delay();
 160   3           PB1=1;
 161   3           delay();
 162   3           n=PT/10;
 163   3           PB2=0;
 164   3           P0=table[n];
 165   3           delay();
 166   3           delay();
 167   3           PB2=1;
 168   3           delay();
 169   3               if(add==0)
 170   3             {
 171   4                  for(k=0;k<20000;k++)
 172   4                   ;
 173   4                      if(add==0)
 174   4                      A1++;
 175   4              //if(A1>99);
 176   4                       //A1=0;
 177   4                      }
 178   3            if(dec==0)
 179   3              {
C51 COMPILER V7.06   7                                                                     05/12/2006 19:27:59 PAGE 4   

 180   4                   for(k=0;k<20000;k++)
 181   4                  ;
 182   4                       if(dec==0)
 183   4                       A1--;
 184   4               //if(A1==0);
 185   4                        //A1=99;
 186   4                      }
 187   3            }
 188   2          A_A=1;
 189   2      for(k=0;k<40000;k++)
 190   2              ;
 191   2         while(menu!=0)
 192   2          {
 193   3           PT=B1;
 194   3          A_G=0;
 195   3           n=PT%10;
 196   3           PB1=0;
 197   3           P0=table[n];
 198   3           delay();
 199   3           delay();
 200   3           PB1=1;
 201   3           delay();
 202   3           n=PT/10;
 203   3           PB2=0;
 204   3           P0=table[n];
 205   3           delay();
 206   3           delay();
 207   3           PB2=1;
 208   3           delay();
 209   3               if(add==0)
 210   3             {
 211   4                  for(k=0;k<20000;k++)
 212   4                   ;
 213   4                      if(add==0)
 214   4                      B1++;
 215   4             // if(B1==99);
 216   4                      // B1=0;
 217   4                      }
 218   3            if(dec==0)
 219   3              {
 220   4               for(k=0;k<20000;k++)
 221   4                   ;
 222   4                       if(dec==0)
 223   4                       B1--;
 224   4              // if(B1==0);
 225   4                      // B1=99;
 226   4                      }
 227   3            }
 228   2      A_G=1;
 229   2      for(k=0;k<40000;k++)
 230   2              ;
 231   2       while(menu!=0)
 232   2          {
 233   3           ST=C1;
 234   3          C_A=0;
 235   3          n=ST%10;
 236   3       SB1=0;
 237   3       P0=table[n];
 238   3       delay();
 239   3       delay();
 240   3       SB1=1;
 241   3       delay();
C51 COMPILER V7.06   7                                                                     05/12/2006 19:27:59 PAGE 5   

 242   3       n=ST/10;
 243   3       SB2=0;
 244   3       P0=table[n];
 245   3       delay();
 246   3       delay();
 247   3       SB2=1;
 248   3       delay();
 249   3               if(add==0)
 250   3             {
 251   4                  for(k=0;k<20000;k++)
 252   4                   ;
 253   4                      if(add==0)
 254   4                      C1++;
 255   4              //if(C1==99);
 256   4                      // C1=0;
 257   4                      }
 258   3            if(dec==0)
 259   3              {
 260   4               for(k=0;k<20000;k++)
 261   4                   ;
 262   4                       if(dec==0)
 263   4                       C1--;
 264   4             // if(C1==0);
 265   4                      // C1=99;
 266   4                      }
 267   3            }
 268   2      C_A=1;
 269   2      for(k=0;k<40000;k++)
 270   2              ;
 271   2         while(menu!=0)
 272   2          {
 273   3           ST=D1;
 274   3          C_G=0;
 275   3          n=ST%10;
 276   3       SB1=0;
 277   3       P0=table[n];
 278   3       delay();

⌨️ 快捷键说明

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