单片机原理及应用实验一交通信号系统(基于Proteus仿真)

1.实验内容与要求

交通信号系统是保障交通安全高效的重要设施。51单片机价格低廉、体积小、低功耗、抗干扰性好等优点,适用于交通信号系统中,本实验利用51单片机IO口的开关量的输入输出功能及内部CPU运算功能,设计一个简易的交通信号灯系统,要求如下:

  1. 本设计用于南北、东西向交叉的十字路口,每组信号灯由红、黄、绿三个信号灯组成,如图所示:
  2. 信号灯有三种工作模式,分别是:正常工作模式、全黄闪模式、全红模式。正常模式工作过程为:两个方向的信号灯依次:绿高亮10s—>黄灯闪3次,每次1sà红灯亮10s,两个方向的信号交替进行;全黄闪模式工作过程为两个方向的黄灯同时闪烁,为慢行状态;全红模式为两个方向的红灯同时亮,为禁止通行模式。
  3. 模式切换通过设计按扭进行。
  4. 在keil中利用C51语言进行程序设计,利用ptoteus设计电路并进行仿真。

2.实验过程

包括:建立工程、资源、样式、库等具体操作说明。

Proteus建立一个新建一个项目,分别添加AT89C51,分别两个黄色红色绿色LED,两个button按键,若干个vcc和gnd。

3.系统组成

包括:本系统包括的软硬件功能模块及相互关系,应用图表示并有简要说明

6个LED都通过共阳连接AT89C51 因此io为低电平的时候 LED灯点亮。

K1,K2两个按键分别连接AT89C51 P1.0 P1.1两个IO口,当按键按下时,IO口为低电平,松开则为高电平。

东西向的红黄绿LED灯分别对接AT89C51 p2.0,p2.1,p2.2三个io口

南北向的红黄绿LED灯分别对接 AT89C51P2.3,P2.4,P2.5 三个io口

4.模块功能及代码

包括:每个模块的功能说明及详细代码,代码的关键部分应的注解

为实现三种工作模式 设定了如下几个函数

部分代码如下:

#include "reg52.h"
sbit LED0=P2^0;
sbit LED1=P2^1;
sbit LED2=P2^2;
sbit LED3=P2^3;
sbit LED4=P2^4;
sbit LED5=P2^5;
sbit K1=P1^0;
sbit K2=P1^1;

void delay(unsigned int time) 	
{
	unsigned int j = 0;
	for(;time>0;time--)
		for(j=0;j<125;j++);
		
}

void Normal()//正常模式
{
	LED0=1;  //东西红灯熄灭
	LED2=0;//东西绿灯
	LED3=0;//南北红灯
	delay(5000);
	LED2=~LED2;//东西绿灯熄灭
	
	LED1=0;
	delay(500);
	LED1=1;
	delay(500);
	LED1=0;
	delay(500);   //东西黄灯闪烁
	LED1=1;
	delay(500);
	LED1=0;
	delay(500);
	LED1=1;

部分运行效果图:

 包括:程序运行过程的主要界面及说明

       从keil5中输出了一个Hex文件,在proteus中的AT89C51中打开该Hex文件。

K1K2松开效果图

K1摁下K2松开效果图

 具体代码效果图文件等资源私信哦

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

杪商柒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值