51的交通燈設計,通俗易懂

这是一个基于51单片机的交通灯控制系统源程序,包括按键控制时间设置,绿、黄、红灯显示及定时切换等功能。通过设置不同变量实现秒数的增加和减少,以及状态切换。程序中定义了中断服务函数处理定时器0和定时器1,用于控制交通灯的计时和颜色变化。
摘要由CSDN通过智能技术生成

源程序:

#include <reg51.h>                     

#define uchar unsigned char

#define uint  unsigned int          

 

uchar data buf[4];

uchar data sec_dx=27;                                            

uchar data sec_nb=17;                 

uchar data set_timedx=27;           

uchar data set_timenb=17;           

int n;

uchar data countt0,countt1;

    

sbit  k1=P3^5;         

sbit  k2=P3^6;         

sbit  k3=P3^4;   

sbit  k4=P3^7;     

sbit  k5=P3^1;         

sbit  k6=P1^5;         

sbit Red_nb=P2^6;          

sbit Yellow_nb=P2^5;

sbit Green_nb=P2^4;    

 

sbit Red_dx=P2^3;          

sbit Yellow_dx=P2^2;

sbit Green_dx=P2^1;       

           

bit set=0;                    

bit dx_nb=0;              

bit shanruo=0;           

bit yejian=0;              

 

uchar code table[11]={     

      0x3f, 

      0x06, 

      0x5b, 

      0x4f,

      0x66,

      0x6d, 

      0x7d, 

      0x07, 

      0x7f, 

      0x6f, 

      0x00  

};

 

void delay(int ms);                

void key();                       

void key_to1();                      

void key_to2();

void key_to3();

void display();                 

void logo();                        

void Buzzer();

 

void main()

{

      TMOD=0X11;                          

      TH1=0X3C;         

      TL1=0XB0;

      TH0=0X3C;                          

      TL0=0XB0;

      EA=1;                              

      ET0=1;                                  

      ET1=1;                               

      TR0=1;                                  

      TR1=0;                                      

    logo();                                 

      P2=0Xc3;                        

    sec_nb=sec_dx+3;              

      while(1)                           

      {    

            key();                        

            display();                  

      }   

}

 

void key(void)

{    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值