基于单片机交通信号灯红绿灯系统Proteus仿真(含全部资料)
·
全套资料包含:Proteus仿真源文件+keil C语言源程序+AD原理图+流程图+元器件清单+说明书等
资料下载:
通过网盘分享的文件:资料分享
链接: 百度网盘 请输入提取码 提取码: tgnu
目录
项目功能:
利用单片机AT89C51、9个LED指示灯以及LED数码管组成带倒计时显示的交通灯控制系统。
东西南北四个路口各三个LED指示灯,分别为红色、黄色、绿色。绿灯先亮9秒,最后2秒快闪,然后黄灯亮3秒,最后红灯亮9秒。南北向、东西向交替通行。南北向、东西向各有一位数码管显示红灯倒计时。
项目文件:
一、Proteus仿真源文件


二、AD原理图文件

二、报告说明书
三、系统流程图

四、器件清单
| 元件 | 型号 | 数量 |
| 单片机 | AT89C51 | 1 |
| 电容 | 10uf | 1 |
| 电容 | 30pf | 2 |
| 晶振 | 12MHZ | 1 |
| 电阻 | 10k | 1 |
| LED | 黄色 | 4 |
| LED | 绿色 | 4 |
| LED | 红色 | 4 |
| 电阻 | 100欧 | 12 |
| 数码管 | 1位共阳 | 2 |
五、Keil c语言程序源代码(部分)
#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
//数码管编码
uchar code smgduan[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//主函数
void main()
{
TMOD|=0X01;//初始化定时器
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
while(1)
{
//东西绿灯亮
time=10000;//9s
P1=0xf3;
while(time>2000)
{
P3=smgduan[time/1000];
}
while(time>0)//快闪
{
P3=smgduan[time/1000];
if(time%100>50)
P1=0xf7;
else
P1=0xf3;
}
//黄灯亮
P3=0xff;
time=10000;//9s
P1=0xde;
while(time>2000)
{
P2=smgduan[time/1000];
}
while(time>0)//快闪
{
P2=smgduan[time/1000];
else
P1=0xde;
}
//黄灯亮
P2=0xff;
time=3000;
P1=0xee;
while(time>0);
}
}
//定时器中断
void Timer0() interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
if(time>0)
time--;
}
六、全套资料包含
七:项目资源获取
需要完整的资料可以点击下面的名片关注,回复“资料”!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
更多推荐


所有评论(0)