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

📄 ser.lst

📁 全功能交通灯设计智能交通灯.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   SER                                                                   08/19/2008 14:42:15 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE SER
OBJECT MODULE PLACED IN ser.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ser.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          ///////////////////////////////////////////////////////////////////
   2          //新规则交通灯设计/////////////////////////////////////////////////
   3          //设置P3.0,P3.1,P3.2三个按键调节时间,key1(功能键)/////////////
   4          //调节主次通道的时间,key2(减一键),key3(加一键)///////////////////// 
   5          //增加串口通信,人机互动//////
   6          ////黄山////
   7          #include <reg51.h>        //定义头文件
   8          #include <stdio.h>
   9          #define uchar     unsigned char  //定义无符号变量
  10          #define uint      unsigned int     //定义有符号变量
  11          uchar num,num1,count,key1num,flag,a;
  12          sbit key1=P3^3;
  13          sbit key2=P3^1;
  14          sbit key3=P3^2;
  15          sbit zshi=P3^7;
  16          sbit zge=P3^6;
  17          sbit cshi=P3^5;
  18          sbit  cge=P3^4;
  19          uchar code  dis[]={
  20                                                                  
  21                  0X3f,/*0*/
  22                  0X06,/*1*/
  23                  0X5b,/*2*/
  24                  0X4f,/*3*/
  25                  0X66,/*4*/
  26                  0X6d,/*5*/
  27                  0X7d,/*6*/
  28                  0X07,/*7*/
  29                  0X7f,/*8*/
  30                  0X6f,/*9*/
  31                  0X00,/*NULL*/
  32          };                         //0-9位七段共阴数码管显示
  33          
  34          
  35          void delay(uint c)        //延时子程序
  36          {
  37   1         uint i,j;
  38   1          for(i=0;i<c;i++)
  39   1                for(j=0;j<100;j++);
  40   1              
  41   1      }
  42          
  43          void init()        //初始化子程序
  44          {
  45   1              TMOD=0x21;//设置定时器0为工作方式1
  46   1              TH0=(65536-10000)/256;
  47   1              TL0=(65536-10000)%256;
  48   1              TH1=0xfd;
  49   1              TL1=0xfd;
  50   1              EA=1;//开总中断
  51   1              ET0=1;//开定时器0中断
  52   1              TR0=1;//启动定时器0
  53   1              TR1=1;
  54   1              REN=1; //允许串口中断,采用串口中断法
  55   1              SM0=0;
C51 COMPILER V8.02   SER                                                                   08/19/2008 14:42:15 PAGE 2   

  56   1              SM1=1;
  57   1              ES=1;//中断
  58   1              
  59   1              num=56;
  60   1              num1=56;
  61   1              P3=0xff;
  62   1              P2=0x00;
  63   1              P1=0x00;
  64   1      
  65   1      }
  66          void guan()      //消影子程序
  67          {
  68   1              zshi=1;
  69   1              cshi=1;
  70   1              zge=1;
  71   1              cge=1;
  72   1      
  73   1      }
  74          void display(uchar dat_z,dat_c)  //显示子程序
  75          {
  76   1              if(dat_z>=23&&dat_z<=56)           //分段显示
  77   1              {
  78   2                      if(26<dat_z&&dat_z<=56)
  79   2                      {
  80   3                              P0=0xeb;
  81   3                              zshi=1;
  82   3                              P1=dis[(dat_z-23)%10];
  83   3                              zshi=0;
  84   3                              delay(5);
  85   3               guan();
  86   3              
  87   3                              zge=1;
  88   3                              P1=dis[(dat_z-23)/10];
  89   3                              zge=0;
  90   3                              delay(5);
  91   3              guan();    
  92   3      
  93   3                              cshi=1;
  94   3                              P2=dis[(dat_c-26)%10];
  95   3                              cshi=0;;
  96   3                              delay(5);
  97   3                              guan();
  98   3                              cge=1;
  99   3                              P2=dis[(dat_c-26)/10];
 100   3                              cge=0;
 101   3                              delay(5);
 102   3              
 103   3                      }
 104   2              if(dat_z>=23&&dat_z<=26)                  //黄灯亮,最后三秒倒计时
 105   2                      {       
 106   3                                      P0=0xe2;//黄灯
 107   3                              zge=1;
 108   3                              P1=dis[(dat_z-23)%10];
 109   3                                      zshi=0;
 110   3                                       delay(1);
 111   3              guan();
 112   3                                      
 113   3                              cshi=1;
 114   3                              cge=1;
 115   3                              P2=dis[(dat_z-23)%10];
 116   3                              cge=0;
 117   3                              delay(5);
C51 COMPILER V8.02   SER                                                                   08/19/2008 14:42:15 PAGE 3   

 118   3              guan();                         
 119   3                      }
 120   2              }
 121   1              
 122   1              if(dat_z<23)
 123   1              {
 124   2                      if(dat_z>3&&dat_z<23)
 125   2                      {
 126   3                               P0=0xdd;//红灯
 127   3                              zshi=1;
 128   3                              P1=dis[(dat_z)%10];
 129   3                              zshi=0;
 130   3                              delay(5);
 131   3               guan();
 132   3              
 133   3                              zge=1;
 134   3                              P1=dis[(dat_z)/10];
 135   3                              zge=0;
 136   3                              delay(5);
 137   3              guan();
 138   3      
 139   3                              cshi=1;
 140   3                              P2=dis[(dat_c-3)%10];
 141   3                              cshi=0;
 142   3                                      delay(5);
 143   3              guan();
 144   3      
 145   3                              cge=1;
 146   3                              P2=dis[(dat_c-3)/10];
 147   3                              cge=0;
 148   3                              delay(5);
 149   3         guan();
 150   3                      }
 151   2                      if(dat_z<=3)             //黄灯亮,最后三秒倒计时
 152   2                      {
 153   3                                      P0=0xd4;
 154   3                                       cge=1;
 155   3                              P1=0xff;        
 156   3                              zshi=0;
 157   3                              P1=dis[(dat_z)%10];
 158   3                                       delay(1);
 159   3                                      zshi=1;
 160   3        guan();
 161   3                                      
 162   3                                      zge=1; 
 163   3                                      zshi=1;
 164   3                                      cge=1;
 165   3                              P2=0xff;
 166   3                                      cshi=0;
 167   3                                      P2=dis[(dat_z)%10];
 168   3                                      delay(1);
 169   3                                      cshi=1;
 170   3       guan();
 171   3                      }
 172   2      
 173   2              }                        
 174   1      
 175   1      }
 176          void displayz(uchar dat_z)              //设置主通道时间时显示子程序,相当于主通道时间闪烁功能
 177          {
 178   1              cge=1;
 179   1              if(dat_z>=23&&dat_z<=56)
C51 COMPILER V8.02   SER                                                                   08/19/2008 14:42:15 PAGE 4   

 180   1              {
 181   2                      if(26<dat_z&&dat_z<=56)
 182   2                      {
 183   3                              P0=0xeb;
 184   3                              zshi=1;
 185   3                              P1=dis[(dat_z-23)%10];
 186   3                              zshi=0;
 187   3                              delay(5);
 188   3      
 189   3                                       guan();
 190   3              
 191   3                              zge=1;
 192   3                              P1=dis[(dat_z-23)/10];
 193   3                              zge=0;
 194   3                              delay(5);
 195   3                              guan();
 196   3              
 197   3                      }
 198   2              if(dat_z>=23&&dat_z<=26)
 199   2                      {       
 200   3                                      P0=0xe2;//黄灯
 201   3                              zge=1;
 202   3                              P1=dis[(dat_z-23)%10];
 203   3                                      zshi=0;
 204   3                                       delay(1);
 205   3                                       guan();
 206   3              }
 207   2              
 208   2              if(dat_z<23)
 209   2              {
 210   3                      if(dat_z>3&&dat_z<23)
 211   3                      {
 212   4                               P0=0xdd;//红灯
 213   4                              zshi=1;
 214   4                              P1=dis[(dat_z)%10];
 215   4                              zshi=0;
 216   4                              delay(5);
 217   4               guan();
 218   4              
 219   4                              zge=1;
 220   4                              P1=dis[(dat_z)/10];
 221   4                              zge=0;
 222   4                              delay(5);
 223   4         guan();
 224   4                      }
 225   3                      if(dat_z<=3)
 226   3                      {
 227   4                                      P0=0xd4;
 228   4                                       cge=1;
 229   4                              P1=0xff;        
 230   4                              zshi=0;
 231   4                              P1=dis[(dat_z)%10];
 232   4                                       delay(1);
 233   4                                      zshi=1;
 234   4        guan();
 235   4                              
 236   4                      }
 237   3      
 238   3              }
 239   2        }             
 240   1      }
 241          void displayc(uchar dat_c)///设置次通道时间时显示子程序,相当于主通道时间闪烁功能
C51 COMPILER V8.02   SER                                                                   08/19/2008 14:42:15 PAGE 5   

⌨️ 快捷键说明

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