基于51单片机的交通灯设计

一、 设计任务  

本实验目的是通过使用AT89s52系列芯片制作一个交通灯设计电路,实现南北东西交通运行的,与红绿灯秒计时功能、数码管显示功能等。

二、 性能指标要求 

1、各方向的红、绿色信号灯能按照设定规则运行;

2、绿灯亮之前,黄灯闪烁5次;

3、红灯和绿灯倒计时间能够正确显示;

4、两干道的车辆不会会车冲突。

5、可以扩展其他功能(如按键设置时间,按键模拟警车)

三 设计思路及设计框图

1.设计思路

先在万用板上装置一个最小系统,在将独立数码管焊接在排针上, 12M石英晶振给芯片提供脉冲,程序可实现加1、2、3、4、5等功能,红绿灯显示时间可以修改,有紧急开关。再使用KeiluVision5来进行编译,再将生成的hex文件通过下载串口导入芯片中。然后根据按键功能查看是否实现功能。

4个按键实现对应功能。定义的P2^2是模式的切换,有两种模式,P2^3是时间加,P2^4是时间减,P2^5是紧急开关,其次,还要把复位用一个按键控制。

总体设计框图:

部分程序:

#include"REG52.H"
#include"intrins.h"

#define uchar unsigned char
#define uint unsigned int

uchar Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
uchar nt=60,wt=60,sz=0,t,ds=60,seg=60;
bit ms=0;

sbit k = P2^0;       //进入时间设置
sbit g = P2^1;       //结束设置
sbit a = P2^2;        //加时间
sbit s = P2^3;        //减时间
// 东西南北 两干道
sbit NSR = P1^0;   //南  红灯
sbit NSG = P1^2;   //南  绿灯
sbit NSY = P1^1;   //南  黄灯

sbit WER = P1^3;   //东  红灯
sbit WEG = P1^4;   //东  绿灯
sbit WEY = P1^5;   //东  黄灯
//声明
void delay(uint t);
void display();
void Init_Timer0(void);
void NST();
void WET();
void keycan();

void main()
{
    Init_Timer0(); //定时器初始化
    while(1)
    {
        if(sz==0||sz==3)  //设置键
        {
            if(sz==3)
            {nt=10;wt=10;}
            if(ms==0)
            {NST();}
            if(ms==1)
            {WET();}    
        }
        if(sz==1)
        {seg=nt;}
        if(sz==2)
        {seg=wt;}
        keycan();
        display();
    }
    
}

void delay(uint t)//延时函数              
{
    uchar x,y;
    for(x=0;x<t;x++)
        for(y=0;y<200;y++);
}

参考电路:

资料内容:

需要全部资料可从我的资源里下载。

 

 

需要完整的资料可在我的资源里下载,也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白茶丫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值