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

📄 08819.lst

📁 多功能数字交通灯设计
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   08819                                                                 08/20/2008 10:36:23 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 08819
OBJECT MODULE PLACED IN 08819.OBJ
COMPILER INVOKED BY: E:\design tools\keilc\C51\BIN\C51.EXE 08819.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,zg,zr,y,cg,cr;
  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   08819                                                                 08/20/2008 10:36:23 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=zr-y;
  62   1              cr=zg+y;
  63   1              
  64   1              
  65   1              num=56;
  66   1              num1=56;
  67   1              P3=0xff;
  68   1              P2=0x00;
  69   1              P1=0x00;
  70   1      
  71   1      }
  72          void guan()      //消影子程序
  73          {
  74   1              zshi=1;
  75   1              cshi=1;
  76   1              zge=1;
  77   1              cge=1;
  78   1      
  79   1      }
  80          void display(uchar dat_z,dat_c)  //显示子程序
  81          {
  82   1      
  83   1                              zshi=1;
  84   1                              P1=dis[(dat_z)%10];
  85   1                              zshi=0;
  86   1                              delay(5);
  87   1               guan();
  88   1              
  89   1                              zge=1;
  90   1                              P1=dis[(dat_z)/10];
  91   1                              zge=0;
  92   1                              delay(5);
  93   1              guan();    
  94   1      
  95   1                              cshi=1;
  96   1                              P2=dis[(dat_c)%10];
  97   1                              cshi=0;;
  98   1                              delay(5);
  99   1              guan();
 100   1                              cge=1;
 101   1                              P2=dis[(dat_c)/10];
 102   1                              cge=0;
 103   1                              delay(5);
 104   1                                      
 105   1      }
 106          void displayy(uchar dat)
 107          {
 108   1                              zshi=1;
 109   1                              P1=dis[dat];
 110   1                              zshi=0;
 111   1                              delay(5);
 112   1              guan(); 
 113   1      
 114   1                      cshi=1;
 115   1                              P2=dis[dat];
 116   1                              cshi=0;
 117   1                              delay(5);
C51 COMPILER V8.02   08819                                                                 08/20/2008 10:36:23 PAGE 3   

 118   1                                      guan(); 
 119   1      }
 120          void keyscan()
 121          {
 122   1              if(key1==0)
 123   1              {
 124   2                      delay(5);
 125   2                      if(key1==0)
 126   2                      {
 127   3                              while(!key1)
 128   3                              display();
*** WARNING C209 IN LINE 128 OF 08819.C: '_display': too few actual parameters
 129   3                              
 130   3                              key1num++;
 131   3      
 132   3                      }
 133   2                      if(key1num==1)
 134   2                      {
 135   3                              TR0=0;
 136   3                      }
 137   2                      if(key1num==3)
 138   2                      {
 139   3                              TR0=1;
 140   3                      }
 141   2              }
 142   1              if(key1num!=0)
 143   1              {
 144   2                      if(key2==0)
 145   2                      {
 146   3                              delay(5);
 147   3                              if(key2==0)
 148   3                              {
 149   4                                      while(!key2);
 150   4                                      if(flag==0)
 151   4                                      zg++;
 152   4                                      if(flag==2)
 153   4                                      zr++;
 154   4                              }
 155   3                      }
 156   2              }
 157   1      }
 158          
 159          /*
 160           void keyscan() //键盘扫描子程序,KEY1功能键,KEy2减一键,KEY3加一键
 161          {
 162                  
 163                  if(key1==0)
 164                  {
 165                          delay(5);
 166                          if(key1==0)
 167                          {
 168                                  key1num++;
 169                                  while(!key1)
 170                                  {
 171                                          display(num,num1);
 172                                  }
 173                                  if(key1num==1)
 174                                  {
 175                                          TR0=0;
 176                                  }
 177                                  if(key1num==3)
 178                                  {
C51 COMPILER V8.02   08819                                                                 08/20/2008 10:36:23 PAGE 4   

 179                                          key1num=0;
 180                                          TR0=1;
 181                                  }
 182                          }
 183                  }
 184                  if(key1num!=0)  //先判断功能设置键
 185                  {
 186                          if(key2==0)
 187                          {

⌨️ 快捷键说明

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