标题:
单片机交通信号灯TrafficLight仿真与源码
[打印本页]
作者:
不吵暴怒
时间:
2018-10-17 19:21
标题:
单片机交通信号灯TrafficLight仿真与源码
交通信号灯仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(30.87 KB, 下载次数: 28)
下载附件
2018-10-17 21:11 上传
单片机源程序如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit P1_0=P1^0;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P1_5=P1^5;
sbit P3_0=P3^0;
sbit P3_1=P3^1;
sbit P3_4=P3^4;
sbit P3_5=P3^5;
sbit P3_6=P3^6;
sbit P3_7=P3^7;
uchar n=90,f0=0,f1=0,a=0;
uchar code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//1-9
void init() //初始化函数
{
IT1=1; //外部中断1采用跳沿触发方式
IT0=1; //外部中断0采用跳沿触发方式
TMOD=0x11; //T1,T0都采用方式1工作
TH0=(65536-50000)/256;//定时初值50毫秒
TL0=(65536-50000)%256;
TR0=1; //启动定时器/计数器0
IP=0X01; //外部中断0为高优先级
IE=0X87;
}
void delay1()
{
uchar i,j;
for(i=0;i<10;i++)
for(j=0;j<33;j++)
;
}
void delayn(uint n)
{
uint i;
for(i=0;i<n;i++)
delay1();
}
void timer0() interrupt 1//定时器T0中断,实现倒计时
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
if(a==20) //没记一次为0.05秒,一共计20次为1秒,然后a重新归零计数,总时间n减1
{
a=0;
n--;
}
if(f1==0)
{
P1=0XF3;//南北方向绿灯亮,东西方向红灯亮
if(n<=6) //绿灯闪烁倒计时计数
{
if(a==10)
{
P1_2=!P1_2; //绿灯闪烁
}
}
if(n==0) //黄灯倒计时
{
delayn(500);
P1=0XF5;
delayn(500);
}
}
if(f0==0)
{
if(n==0)
{
n=50;
f1=1;
}
}
if(f1==1)
{
P1=0XDE; //东西方向绿灯亮
if(n<=6) //当时间剩6秒时绿灯闪烁
{
if(a==10)
{
P1_5=!P1_5;
}
}
if(n==0) //黄灯
{
delayn(500);
P1=0XEE;
delayn(500);
}
f0=1;
if(n==0)
{
n=90;
f1=0;
f0=0;
}
}
}
void display() //倒计时计数,让数码管显示相应的数字
{
while(1)
{
if(P1_0==0)
{
P0=seg[n%10];
P3_5=1;
delayn(5);
P3_5=0;
delayn(10);
P0=seg[n/10];
P3_4=1;
delayn(5);
P3_4=0;
}
if(P1_3==0)
{
P2=seg[n%10];
P3_7=1;
delayn(5);
P3_7=0;
P2=seg[n/10];
P3_6=1;
delayn(5);
P3_6=0;
delayn(10);
}
}
}
void int0() interrupt 0 //紧急情况1:四个方向都亮红灯
{
int n2;
P3_4=P3_5=P3_6=P3_7=0;
for(n2=0;n2<40;n2++)
{
delayn(1000);
P1=0XF6;
}
}
void int1() interrupt 2
{
int n2,n3;
P3_4=P3_5=P3_6=P3_7=0;
if(P3_1==0) //紧急情况2:东西方向同行,南北方向禁止通行
{
P3_0=1;
P1=0xDE;
for(n2=0;n2<30;n2++) //执行30秒恢复正常
{
delayn(1000);
P1=0XDE;
}
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
新建文件夹 (4).rar
(292.04 KB, 下载次数: 13)
2018-10-17 19:20 上传
点击文件名下载附件
单片机
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1