【c51单片机】交通红绿灯设计

观察十字路口红绿灯工作流程,设计交通灯。

1、初始时:南北向、东西向直行左转均为红灯

2、南北向直行:

①南北向直行绿灯亮,延时若干秒

②启动南北向左转数码管显示:倒计时6秒;同时南北向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向直行绿灯灭,南北向直行黄灯亮,延时3秒

③南北向左转数码管倒计时显示结束,关闭;同时南北向直行黄灯灭,南北向直行红灯亮

3、南北向左转:

①南北向左转绿灯亮,延时若干秒

②启动东西向直行数码管显示:倒计时6秒;同时南北向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向左转绿灯灭,南北向左转黄灯亮,延时3秒

③东西向直行数码管倒计时显示结束,关闭;同时南北向左转黄灯灭,南北向左转红灯亮

4、东西向直行:

①东西向直行绿灯亮,延时若干秒

②启动东西向左转数码管显示:倒计时6秒;同时东西向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向直行绿灯灭,东西向直行黄灯亮,延时3秒

③东西向左转数码管倒计时显示结束,关闭;同时东西向直行黄灯灭,东西向直行红灯亮

5、东西向左转:

①东西向左转绿灯亮,延时若干秒

②启动南北向直行数码管显示:倒计时6秒;同时东西向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向左转绿灯灭,东西向左转黄灯亮,延时3秒

③南北向直行数码管倒计时显示结束,关闭;同时东西向左转黄灯灭,东西向左转红灯亮

观察十字路口红绿灯工作流程,设计交通灯。

1、初始时:南北向、东西向直行左转均为红灯

2、南北向直行:

①南北向直行绿灯亮,延时若干秒

②启动南北向左转数码管显示:倒计时6秒;同时南北向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向直行绿灯灭,南北向直行黄灯亮,延时3秒

③南北向左转数码管倒计时显示结束,关闭;同时南北向直行黄灯灭,南北向直行红灯亮

3、南北向左转:

①南北向左转绿灯亮,延时若干秒

②启动东西向直行数码管显示:倒计时6秒;同时南北向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向左转绿灯灭,南北向左转黄灯亮,延时3秒

③东西向直行数码管倒计时显示结束,关闭;同时南北向左转黄灯灭,南北向左转红灯亮

4、东西向直行:

①东西向直行绿灯亮,延时若干秒

②启动东西向左转数码管显示:倒计时6秒;同时东西向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向直行绿灯灭,东西向直行黄灯亮,延时3秒

③东西向左转数码管倒计时显示结束,关闭;同时东西向直行黄灯灭,东西向直行红灯亮

5、东西向左转:

①东西向左转绿灯亮,延时若干秒

②启动南北向直行数码管显示:倒计时6秒;同时东西向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向左转绿灯灭,东西向左转黄灯亮,延时3秒

③南北向直行数码管倒计时显示结束,关闭;同时东西向左转黄灯灭,东西向左转红灯亮


  •  PROTEUS元件表

元件名称

型号

数量

Proteus关键字

单片机

AT89C51

1

AT89C51

晶振

11.0592MHz

1

CRYSTAL

电容

22pF

2

CAP

电解电容

10uF

1

CAP-ELEC

按键

1

BUTTON

电阻

220Ω

1

RES

电阻

10kΩ

1

RES

电阻

700Ω

1

RES

排阻

800Ω

1

RESPACK

数码管

8

7SEG

交通灯

 8

TRAFFIC

锁存器

2

74HC573

  • 数码管、交通灯、锁存器查找方式

  • 在PROTEUS中设计的单片机系统电路图

  • 在KEIL中编写的源程序

/***********************
      作者:申俊
               2018.10.4  
**************************/
#include <reg51.h>
unsigned char code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
void delay(int t)
{int i,j;
 for(i=0;i<=t;i++)
	 for(j=0;j<=110;j++);
}
sbit NB=P2^0;//南北,低4位控制直行,高四位控制左转向
sbit DX=P2^1;//东西,低4位控制直行,高四位控制左转向
int i;
void main()
{
	NB=1;P1=0X88;NB=0;
	DX=1;P1=0X88;DX=0;
	P0=0X00;

	/*1、南北向、东西向直行左转均为红灯*/
	NB=1;P1=0X99;NB=0;//南北直、左红灯亮
	DX=1;P1=0X99;DX=0;//东西直、左红灯亮
	delay(3000);
	NB=1;P1=0X88;NB=0;//南北直、左红灯灭
	DX=1;P1=0X88;DX=0;//东西直、左红灯灭 
	 
    /*2、南北向直行(NB)*/
	NB=1;P1=0X84;NB=0;//南北直绿灯亮
	delay(3000);
	//南北向左转数码管显示:倒计时6秒
	for(i=6;i>=4;i--) //南北向直行绿灯闪烁3下
	{
		NB=1;P1=0X0C;NB=0;//南北直绿灯亮	
		P0=table[i];
		delay(500);
		NB=1;P1=0X08;NB=0;//南北直绿灯灭
		delay(500);
	}
	NB=1;P1=0X0C;NB=0;//南北直绿灯亮
	for(i=3;i>=0;i--)
	{
		P0=table[i];
		delay(1000);
	}
	NB=1;P1=0X8A;NB=0;//南北直黄灯亮
	delay(3000);
	NB=1;P1=0X88;NB=0;//南北直黄灯灭,左转数码管倒计时显示结束

	/*3、南北向左转(NB)*/
	NB=1;P1=0X48;NB=0;//南北左绿灯亮
	delay(3000);
	//南北向直行数码管显示:倒计时6秒
	for(i=6;i>=4;i--) //南北向左转绿灯闪烁3下
	{
		NB=1;P1=0XC0;NB=0;//南北左转绿灯亮	
		P0=table[i];
		delay(500);
		NB=1;P1=0X80;NB=0;//南北左转绿灯灭
		delay(500);
	}
	NB=1;P1=0XC0;NB=0;//南北左转绿灯亮
	for(i=3;i>=0;i--)
	{
		P0=table[i];
		delay(1000);
	}
	NB=1;P1=0XA8;NB=0;//南北左转黄灯亮
	delay(3000);
	NB=1;P1=0X88;NB=0;//南北左转黄灯灭,直行数码管倒计时显示结束
	delay(1000);
	NB=1;P1=0X99;NB=0;

	/*4、东西向直行(NB)*/
	DX=1;P1=0X84;DX=0;//东西北直绿灯亮
	delay(3000);
	//东西向左转数码管显示:倒计时6秒
	for(i=6;i>=4;i--) //东西向直行绿灯闪烁3下
	{
		DX=1;P1=0X0C;DX=0;//东西直绿灯亮	
		P0=table[i];
		delay(500);
		DX=1;P1=0X08;DX=0;//东西直绿灯灭
		delay(500);
	}
	DX=1;P1=0X0C;DX=0;//东西直绿灯亮
	for(i=3;i>=0;i--)
	{
		P0=table[i];
		delay(1000);
	}
	DX=1;P1=0X8A;DX=0;//东西直黄灯亮
	delay(3000);
	DX=1;P1=0X88;DX=0;//东西直黄灯灭,左转数码管倒计时显示结束

	/*5、东西向左转(NB)*/
	DX=1;P1=0X48;DX=0;//南北左绿灯亮
	delay(3000);
	//东西向直行数码管显示:倒计时6秒
	for(i=6;i>=4;i--) //东西向左转绿灯闪烁3下
	{
		DX=1;P1=0XC0;DX=0;//东西左转绿灯亮	
		P0=table[i];
		delay(500);
		DX=1;P1=0X80;DX=0;//东西左转绿灯灭
		delay(500);
	}
	DX=1;P1=0XC0;DX=0;//东西左转绿灯亮
	for(i=3;i>=0;i--)
	{
		P0=table[i];
		delay(1000);
	}
	DX=1;P1=0XA8;DX=0;//东西左转黄灯亮
	delay(3000);
	DX=1;P1=0X88;DX=0;//东西左转黄灯灭,直行数码管倒计时显示结束
	delay(1000);
	DX=1;P1=0X99;DX=0;
}

问题咨询请联系-》群名:IT项目交流群    群号:245022761


观察十字路口红绿灯工作流程,设计交通灯。 1、初始时:南北向、东西向直行左转均为红灯 2、南北向直行: ①南北向直行绿灯亮,延时若干秒 ②启动南北向左转数码管显示:倒计时6秒;同时南北向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向直行绿灯灭,南北向直行黄灯亮,延时3秒 ③南北向左转数码管倒计时显示结束,关闭;同时南北向直行黄灯灭,南北向直行红灯亮 3、南北向左转: ①南北向左转绿灯亮,延时若干秒 ②启动东西向直行数码管显示:倒计时6秒;同时南北向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向左转绿灯灭,南北向左转黄灯亮,延时3秒 ③东西向直行数码管倒计时显示结束,关闭;同时南北向左转黄灯灭,南北向左转红灯亮 4、东西向直行: ①东西向直行绿灯亮,延时若干秒 ②启动东西向左转数码管显示:倒计时6秒;同时东西向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向直行绿灯灭,东西向直行黄灯亮,延时3秒 ③东西向左转数码管倒计时显示结束,关闭;同时东西向直行黄灯灭,东西向直行红灯亮 5、东西向左转: ①东西向左转绿灯亮,延时若干秒 ②启动南北向直行数码管显示:倒计时6秒;同时东西向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向左转绿灯灭,东西向左转黄灯亮,延时3秒 ③南北向直行数码管倒计时显示结束,关闭;同时东西向左转黄灯灭,东西向左转红灯亮
在本次设计中,程序并没有采用原来学习书本上的汇编语言,而是采用了C51编写, 程序仿真采用流行的PROTEUS软件,和keil联合仿真,方便调试程序和修改硬件,结果证明方案的硬件设计正确,程序也符合要求。1 概述 1.1单片机认识 MCS-51单片机是Intel公司在1980年继MCS-48系列8位单片机之后推出的高档8位单片机。MCS-51单片机在性能和片内功能方面大大优于MCS-48系列单片机。 MCS-51的典型产品有:8051、8031、8751、80C51、80C31、87C51等,8051内部有4kB ROM,8751内部有4kB EPROM,8031片内无ROM。除此之外,三者的内部结构及引脚完全相同。 89S51是一种低功耗、高性能CMOS8位微控制器,具有4K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,AT89S51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 1.2 单片机的应用 单片机是应工业测控需要而产生的,最能反映其功能及形态的名称是在一个应用系统中,Single-chip Micro-controller。按照测控系统的特点和要求,单片机的应用可分为单机应用和多机应用两大类。我们这次要完成的单片机课程设计就是它的单机应用,下面在介绍一下单片机在单机应用领域内的主要内容。 (1)智能产品 单片机与传统机械产品相结合,使传统机械产品结构简化,控制智能化,购成新一代机电一体化产品。目前,利用单片机构成的智能产品已广泛应用于家用电器、办公设备、数控机床、纺织机械、工业设备等行业。 (2)智能仪表 目前,各种传感器、变送器、控制仪表已普遍采用单片机应用系统。它集测量、处理、控制功能于一体,具有各种智能化功能,如存储、数据处理、查找、判断、联网和语音等功能。 单片机构成的智能仪表,能使仪表具有数字化、智能化、多功能化、综合化、柔性化等优点,赋予测量仪表以崭新的面貌,使传统的仪器、仪表发生根本性的变革,它代表了仪器仪表的发展趋势。 (3)测控技术 ===
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jason~shen

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值