交通灯设计制作

一、硬件设计

本设计采用单片机作为主控制器。东西和南北方向各有两个数码管,分别显示时间,东西和南北的时间是不一样的哦,要相差黄灯的时间才是正确的。74HC245芯片驱动数码管,使数码管更亮,白天看的很清楚哦~~数码管倒计时显示时间。可以分别设置主干道和支干道的通行时间。有紧急模式,可以特种车辆优先通行或交通事故应急处理。 交通灯设计制作

二、设计功能

本设计能模拟基本的交通控制系统共四个二位阴极数码管,东南西北各一个显示时间,四个数码管的阴极都接到STC89C51的P1口,阳极接到74HC245芯片上,通过P0口控制74HC245芯片,起到驱动放大作用。共12个发光二极管,四个路口每个路口各有一个红(禁行)、黄(警告)发光二极管,四个路口的二极管接到P2口,按键接P3口。本系统采用STC89C51单片机以及单片机最小系统和74HC245驱动电路以及外围的按键和数码管显示等部件,设计一个基于单片机的交通灯设计。本单片机控制交通灯系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。

交通灯设计制作

三、设计原理图

交通灯设计制作

四、软件程序

1、软件流程图

交通灯设计制作

2、主程序源码

#include <reg51.h> //头文件

#define uchar unsigned char

#define uint  unsigned int //宏定义

uchar data buf[4]; //秒显示的变量

uchar data sec_dx=20;   //东西数默认

uchar data sec_nb=30; //南北默认值

uchar data set_timedx=20; //设置东西方向的时间

uchar data set_timenb=30; //设置南北方向的时间

int n;

uchar data countt0,countt1;//定时器0中断次数

//定义6组开关

sbit  k4=P1^4;      //切换方向

sbit  k1=P1^5; //时间加

sbit  k2=P1^6; //时间减

sbit  k3=P1^7; //确认

sbit  k5=P3^4; //禁止

sbit  k6=P3^5; //夜间模式

sbit smg_we1 = P1^2;   //数码管位选定义

sbit smg_we2 = P1^1;

sbit smg_we3 = P2^7;

sbit smg_we4 = P2^6;

sbit Red_nb=P2^3; //南北红灯标志

sbit Yellow_nb=P2^4; //南北黄灯标志

sbit Green_nb=P2^5;     //南北绿灯标志

sbit Red_dx=P2^0; //东西红灯标志

sbit Yellow_dx=P2^1; //东西黄灯标志

sbit Green_dx=P2^2; //东西绿灯标志

sbit Buzz=P1^0;

bit set=0; //调时方向切换键标志 =1时,南北,=0时,东西

bit dx_nb=0; //东西南北控制位

bit shanruo=0; //闪烁标志位

bit yejian=0; //夜间黄灯闪烁标志位

uchar code table[11]={ //共阴极字型码

0x3f,  //–0

0x06,  //–1

0x5b,  //–2

0x4f,  //–3

0x66,  //–4

0x6d,  //–5

0x7d,  //–6

0x07,  //–7

0x7f,  //–8

0x6f,  //–9

0x00   //–NULL

};

//函数的声明部分

void delay(int ms); //延时子程序

void key(); //按键扫描子程序

void key_to1(); //键处理子程序

void key_to2();

void key_to3();

void display(); //显示子程序

void logo();    //开机LOGO

void Buzzer();

//主程序

void main()

{

TMOD=0X11;     //定时器设置

TH1=0X3C;

TL1=0XB0;

TH0=0X3C; //定时器0置初值 0.05S

TL0=0XB0;

EA=1; //开总中断

ET0=1; //定时器0中断开启

ET1=1;    //定时器1中断开启

TR0=1; //启动定时0

TR1=0;   //关闭定时1

EX0=1; //开外部中断0

EX1=1; //开外部中断1

    logo(); //开机初始化

P2=0Xcc; // 开始默认状态,东西绿灯,南北黄灯   

    sec_nb=sec_dx+5;  //默认南北通行时间比东西多5秒

while(1)   //主循环

{  

key();  //调用按键扫描程序

display();  //调用显示程序

}

}

完整资料:交通灯设计制作

来源:单片机实物仿真开发制作

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月11日
下一篇 2022年8月11日

相关推荐