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

📄 6.lst

📁 51控制的十字路口交通灯 左右转 人行道
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   6                                                                     05/08/2006 21:50:17 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 6
OBJECT MODULE PLACED IN 6.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 6.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   6                                                                     05/08/2006 21:50:17 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;
  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      CASE=1;//the initial road situation
  87   1      TMOD=0x61;//initialise timer
  88   1      TH0=-50000/256;
  89   1      TL0=-50000%256;
  90   1      EA=1;
  91   1      ET0=1;
  92   1      TR0=1;
  93   1      }
  94          
  95          void display(unsigned char PT,unsigned char ST)//road time display function
  96          {
  97   1       unsigned char n;
  98   1       n=PT%10;
  99   1       PB1=0;
 100   1       P0=table[n];
 101   1       delay();
 102   1       delay();
 103   1       PB1=1;
 104   1       delay();
 105   1       n=PT/10;
 106   1       PB2=0;
 107   1       P0=table[n];
 108   1       delay();
 109   1       delay();
 110   1       PB2=1;
 111   1       delay();
 112   1       n=ST%10;
 113   1       SB1=0;
 114   1       P0=table[n];
 115   1       delay();
 116   1       delay();
 117   1       SB1=1;
C51 COMPILER V7.06   6                                                                     05/08/2006 21:50:17 PAGE 3   

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

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

⌨️ 快捷键说明

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