基于80C51单片机的交通灯电路图和程序

来源:百度知道 编辑:UC知道 时间:2024/06/04 18:49:01
原始数据及任务:1:A道和B道均有车辆通过,AB道轮流放行。A道放行一分钟,B道放行一分钟。2:A道和B道有相应的数码管显示秒数。3:紧急车辆要求通过时,系统能禁止普通车辆通行,AB道均为红灯。紧急车由K1开关模拟。
技术要求:十字路口的四组红绿等中A道上的两组同色灯蝉联在一起,B道上的2组也彼此互联,受MCS-51单片机的I/O口控制,实验时由发光二极管替代,紧急车请求通过信号由人工控制 K1 ,以中断方式输入单片机额。
我的邮箱: 715356306@qq.com 急 麻烦会的快点 一经采用 马上给分

就算给20RMB我都不做的

20分没用 你给我20个Q币我帮你

这个程序我是有,但是你才给20分太少点了。所以我还是不给

//第一组,Rg(P1.0) r(P1.1) G(P1.2) Y(P1.3)
//第二组,Rg(P1.4) r(P1.5) G(P1.6) Y(P1.7)

#include<AT89X51.H>

void delay(int a) //12M 0.1秒
{
int n;
n=a*2;
do
{
TH0=0x3c;
TL0=0xb0;
TR0=1; //允许T0计数
while(!TF0); //算时间
TF0=0;
n-=1;
}
while(n);
TR0=0;
}

void jump()
{
int i;
//第一组
P1=0x9e;delay(560); //56秒
for(i=0;i<3;i++) //绿灯闪烁3秒
{
P1=0xde;delay(3); //绿灯灭
P1=0x9e;delay(7); //绿灯亮
}
P1=0x5e; //黄灯亮1秒
delay(10);
//第二组
P1=0xe9;delay(560);
for(i=0;i<3;i++)
{
P1=0xed;delay(3);
P1=0xe9;delay(7);
}
P1=0xe5;
delay(10);
}

main()
{
TMOD=0x01;
for(;;)
{jump();}
}

我有资料<