找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2881|回复: 4
收起左侧

求一份十字路口交通灯控制代码

[复制链接]
ID:355770 发表于 2018-6-23 12:05 | 显示全部楼层 |阅读模式
一、简述
本项目为典型的LED显示和中断定时电路。利用定时器T0产生每10ms一次的中断,每100次中断为1s。对两个方向分别显示红、绿、黄灯,已经相应的剩余时间即可。值得注意的是,需要意识到,A方向红灯时间=B方向绿灯时间+黄灯缓冲时间这一常识。本项目使用的MAX7219芯片使用方法请参考题目3。
二、设计任务和要求
设计一个十字路口交通灯控制器。用单片机控制LED灯模拟指示。模拟东西方向的十字路口交通信号控制情况。东西向通行时间为80s,南北向通行时间为60s,缓冲时间为3s。
d.jpg
求代码,急用,谢谢各位大佬!!!!
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit RED_A=P0^0; //????
sbit YELLOW_A=P0^1;
sbit GREEN_A=P0^2;
sbit RED_B=P1^0; //????
sbit YELLOW_B=P1^1;
sbit GREEN_B=P1^2;
sbit DIN=P3^0;
sbit LOAD=P3^1;
sbit CLK=P3^2;
uchar Flash_Count=0,Operation_Type=1,Time_Count=0,hh=1,i=80,mm=1,tt=9;

void DelayMS(uint x)
{
uchar i;
while(x--) for(i=0;i<120;i++);
}

void Traffic_Light()
{
switch(Operation_Type)
{
case 1:
RED_A=1;YELLOW_A=1;GREEN_A=0;
RED_B=0;YELLOW_B=1;GREEN_B=1;
DelayMS(2000);
Operation_Type=2;
break;
case 2:
DelayMS(300);
YELLOW_A=~YELLOW_A;GREEN_A=1;
if(++Flash_Count!=10) return;
Flash_Count=0;
Operation_Type=3;
break;
case 3:
RED_A=0;YELLOW_A=1;GREEN_A=1;
RED_B=1;YELLOW_B=1;GREEN_B=0;
DelayMS(2000);
Operation_Type=4;
break;
case 4:
DelayMS(300);
YELLOW_B=~YELLOW_B;GREEN_B=1;
if(++Flash_Count!=10) return;
Flash_Count=0;
Operation_Type=1;
}
}
void Write(uchar Addr,uchar Dat)
{
uchar i;
LOAD=0;
for(i=0;i<8;i++)
{
CLK=0;Addr<<=1;DIN=CY;
CLK=1;_nop_();
CLK=0;
}
for(i=0;i<8;i++)
{
CLK=0;Dat<<=1;DIN=CY;
CLK=1;_nop_();
CLK=0;
}
LOAD=1;
}

void Initialise()
{
Write(0x09,0x3f);
Write(0x0a,0x07);
Write(0x0b,0x01);
Write(0x0c,0x01);
}

void main()
{
Initialise();
TMOD=0x01;   //定时器0工作在方式1
EA=1;
ET0=1;
TR0=1;
while(1)
{
       
        Traffic_Light();
}
}

void T0_INT()interrupt 1
{
TH0=-50000/256;
TL0=-50000%256;
if(tt--==0)
{
tt=9;
if(hh--==0)
{
hh=1;
Write(1,i/0x0a);
Write(2,i%0x0a);
if(i--==0)
{
if(mm==0)
{
mm=1;
i=80;
}
else
{
mm=0;
i=60;
}
}
}
}
}
这是我写的代码,但是数码管不会动,不知道是什么原因,求教!!!!
回复

使用道具 举报

ID:355770 发表于 2018-6-23 12:07 | 显示全部楼层
求一份可以运行的完整代码,急用,谢谢各位大佬!!!
回复

使用道具 举报

ID:303383 发表于 2018-6-23 17:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

ID:362137 发表于 2018-7-3 17:53 | 显示全部楼层
楼主可以把你的这一套设计发一遍吗
回复

使用道具 举报

ID:668663 发表于 2019-12-19 20:11 | 显示全部楼层
楼主写出来了吗,可以把正确的发一遍吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表