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

📄 0820.lst

📁 全功能交通灯设计智能交通灯.rar
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.02   0820                                                                  08/21/2008 01:50:51 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 0820
OBJECT MODULE PLACED IN 0820.OBJ
COMPILER INVOKED BY: E:\design tools\keilc\C51\BIN\C51.EXE 0820.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 count,key1num,flag,a,zg,zr,y,cg,cr,numzg,numzr,numcg,numcr,countser,flagSer,dyflagSer;
  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   0820                                                                  08/21/2008 01:50:51 PAGE 2   

  56   1              SM1=1;
  57   1              ES=1;//中断
  58   1              y=3;
  59   1              zg=30;
  60   1              zr=23;
  61   1              cg=20;
  62   1              cr=33;
  63   1      
  64   1              P3=0xff;
  65   1              P2=0x00;
  66   1              P1=0x00;
  67   1      
  68   1      }
  69          void guan()      //消影子程序
  70          {
  71   1              zshi=1;
  72   1              cshi=1;
  73   1              zge=1;
  74   1              cge=1;
  75   1      
  76   1      }
  77          void display(uchar dat_z,dat_c)  //显示子程序
  78          {
  79   1      
  80   1                              zshi=1;
  81   1                              P1=dis[(dat_z)%10];
  82   1                              zshi=0;
  83   1                              delay(5);
  84   1               guan();
  85   1              
  86   1                              zge=1;
  87   1                              P1=dis[(dat_z)/10];
  88   1                              zge=0;
  89   1                              delay(5);
  90   1              guan();    
  91   1      
  92   1                              cshi=1;
  93   1                              P2=dis[(dat_c)%10];
  94   1                              cshi=0;;
  95   1                              delay(5);
  96   1              guan();
  97   1                              cge=1;
  98   1                              P2=dis[(dat_c)/10];
  99   1                              cge=0;
 100   1                              delay(5);
 101   1                                      
 102   1      }
 103          void displayy(uchar dat)
 104          {
 105   1                              zshi=1;
 106   1                              P1=dis[dat];
 107   1                              zshi=0;
 108   1                              delay(5);
 109   1              guan(); 
 110   1      
 111   1                      cshi=1;
 112   1                              P2=dis[dat];
 113   1                              cshi=0;
 114   1                              delay(5);
 115   1                                      guan(); 
 116   1      }
 117          void displayz(uchar dat_z)
C51 COMPILER V8.02   0820                                                                  08/21/2008 01:50:51 PAGE 3   

 118          {
 119   1                                      zshi=1;
 120   1                              P1=dis[(dat_z)%10];
 121   1                              zshi=0;
 122   1                              delay(5);
 123   1               guan();
 124   1              
 125   1                              zge=1;
 126   1                              P1=dis[(dat_z)/10];
 127   1                              zge=0;
 128   1                              delay(5);
 129   1              guan(); 
 130   1      }
 131          void displayc(uchar dat_c)
 132          {
 133   1              
 134   1                              cshi=1;
 135   1                              P2=dis[(dat_c)%10];
 136   1                              cshi=0;;
 137   1                              delay(5);
 138   1              guan();
 139   1                              cge=1;
 140   1                              P2=dis[(dat_c)/10];
 141   1                              cge=0;
 142   1                              delay(5);
 143   1              guan();                 
 144   1      }
 145          void keyscan()
 146          {
 147   1              if(key1==0)
 148   1              {
 149   2                      delay(5);
 150   2                      if(key1==0)
 151   2                      {
 152   3                          while(!key1)
 153   3                              {
 154   4                                      if(flag==0)
 155   4                                       {
 156   5                                              display(zg,cr); 
 157   5                                       }
 158   4                                       if(flag==2)
 159   4                                       {
 160   5                                              display(cg,zr);
 161   5                                       }
 162   4                              }       
 163   3                              key1num++;
 164   3                                      if(key1num==1)
 165   3                      {
 166   4                              TR0=0;
 167   4      
 168   4                      }
 169   3                      if(key1num==3)
 170   3                      {
 171   4                              TR0=1;
 172   4                              key1num=0;
 173   4                      }
 174   3      
 175   3                      }
 176   2              
 177   2              }
 178   1              if(key1num!=0)
 179   1              {
C51 COMPILER V8.02   0820                                                                  08/21/2008 01:50:51 PAGE 4   

 180   2                      if(key1num==1)
 181   2                      {
 182   3                              if(key2==0)
 183   3                              {
 184   4                                      delay(2);
 185   4                                      if(key2==0)
 186   4                                      {       
 187   5                                        while(!key2)
 188   5                                         {
 189   6                                                      if(flag==0)
 190   6                                                       {
 191   7                                                              displayz(zg);   
 192   7                                                       }
 193   6                                                       if(flag==2)
 194   6                                                       {
 195   7                                                              displayz(cg);
 196   7                                                       }
 197   6                                              }
 198   5                                               if(flag==0)
 199   5                                                       {
 200   6                                                              zg++;   
 201   6                                                       }
 202   5                                                       if(flag==2)
 203   5                                                       {
 204   6                                                              cg++;
 205   6                                                       }
 206   5                              
 207   5                                      }
 208   4                              
 209   4                              }
 210   3      
 211   3                                      if(key3==0)
 212   3                                      {
 213   4                                              delay(5);
 214   4                                              if(key3==0)
 215   4                                              {
 216   5                                                      while(!key3)
 217   5                                                      {
 218   6                                                                              if(flag==0)
 219   6                                                                       {
 220   7                                                                              displayz(zg);   

⌨️ 快捷键说明

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