AT89C51-红绿灯源码

该博客介绍了使用AT89C51单片机进行红绿灯控制的源码实现,详细说明了在Keil4编程环境中及Protues仿真软件上的操作过程。
摘要由CSDN通过智能技术生成

编码软件:Keil4
测试仿真软件:Protues

AT89C51-红绿灯源码,使用Protues仿真

实现代码如下:

#include<regx51.h>
#define uchar unsigned char
#define uint unsigned int

uint i_dx_green,i_nb_green,i_yellow,dx_green,nb_green;  	

uchar seg_09[]={
   0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};	 			   
uchar dongxi_green=15;			   //东西绿15s
uchar yellow=3;			   //南北黄3s	 
uchar nanbei_green=25;			   //南北绿25s	  

//数码管位
sbit S_nb=P0^1;				  //南北十位
sbit G_nb=P0^0;				  //南北个位
sbit S_dx=P0^3;				  //东西十位
sbit G_dx=P0^2;				  //东西个位

//红绿灯位
sbit XD_green=P3^0;			  //西东绿
sbit XD_yellow=P3^1;		  //西东黄
sbit XD_red=P3^4;			  //西东红
sbit BN_green=P3^5;			  //北南绿
sbit BN_yellow=P3^6;		  //北南黄
sbit BN_red=P3^7;			  //北南红

//中断位
sbit K1=P3^2;
sbit K2=P3^3;
sbit K3=P0^4;

//定时延时
void delay(uint time)
{
   
	uint t1;
	t1=time;
	while(t1--);
}
void time50ms(uchar j)			  //定时50ms
{
   
	uchar k;
	for(k=0;k
观察十字路口红绿灯工作流程,设计交通灯。 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
发出的红包

打赏作者

colorful_stars

您是我见过全宇宙最可爱的人!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值