基于单片机的单行道红绿灯仿真

该博客介绍了如何使用单片机进行单行道红绿黄交通灯的仿真设计。系统设定红灯亮30秒,黄灯5秒,绿灯20秒,并在切换前5秒所有灯闪烁。同时,设计了中断按键实现所有灯立即熄灭,复位键可重启系统。代码实现详述于博客内容中。
摘要由CSDN通过智能技术生成

基本电路图,3个led等代表三个信号灯,两个数码管作倒计时使用,一个复位按键,一个中断按键
仿真结果是红灯会亮30秒,黄灯5秒,绿灯20秒,每个led在最后5秒都会闪烁。按下中断按键是直接全灭(包括倒数数码管),按复位键即可重新开机。

代码

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit red=P0^0;	
sbit yellow=P0^1;	
sbit green=P0^2;	
uint x,y;
uchar i;
uchar count;
uchar code table[]={
   0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
/*ÑÓ³Ùº¯Êý*/
void delay(uint time)
{
   
	for(x=time;x>0;x--)
	{
   
	for
观察十字路口红绿灯工作流程,设计交通灯。 1、初始时:南北向、东西向直行左转均为红灯 2、南北向直行: ①南北向直行绿灯亮,延时若干秒 ②启动南北向左转数码管显示:倒计时6秒;同时南北向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向直行绿灯灭,南北向直行黄灯亮,延时3秒 ③南北向左转数码管倒计时显示结束,关闭;同时南北向直行黄灯灭,南北向直行红灯亮 3、南北向左转: ①南北向左转绿灯亮,延时若干秒 ②启动东西向直行数码管显示:倒计时6秒;同时南北向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向左转绿灯灭,南北向左转黄灯亮,延时3秒 ③东西向直行数码管倒计时显示结束,关闭;同时南北向左转黄灯灭,南北向左转红灯亮 4、东西向直行: ①东西向直行绿灯亮,延时若干秒 ②启动东西向左转数码管显示:倒计时6秒;同时东西向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向直行绿灯灭,东西向直行黄灯亮,延时3秒 ③东西向左转数码管倒计时显示结束,关闭;同时东西向直行黄灯灭,东西向直行红灯亮 5、东西向左转: ①东西向左转绿灯亮,延时若干秒 ②启动南北向直行数码管显示:倒计时6秒;同时东西向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向左转绿灯灭,东西向左转黄灯亮,延时3秒 ③南北向直行数码管倒计时显示结束,关闭;同时东西向左转黄灯灭,东西向左转红灯亮
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值