基于单片机的交通灯设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单片机的交通灯设

集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

郑州航空工业管理学院

单片机课程设计说明书

2014 级专业班级

题目

学号

姓名

指导教师

二О一六年十二月十五日

一、交通灯的基本原理

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。近年来随着科技的飞速发展,单片机的应用正在不断地走向深入。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。

交通灯是城市交通的重要指挥系统,与人们的日常生活密切相关。随着经济的快速发展,城市中的车辆逐渐增多,交通拥堵和堵塞现象日趋严重,引起交通事故频发等一系列问题,因此设计一个灵活、稳定、便捷的多功能交通灯控制系统具有必要性和现实性。本次设计的意义在于通过对具体的控制系统的设计,掌握微机控制系统设计的一般方法和处理问题的思路,特别是一些常用的技术手段。在实践设计过程中,积累设计经验,开拓思维空间,全面提高个人的综合能力。

本系统由单片机硬/软件系统,8位8段数码管和LED灯显示系统。和电路控制电路等组成,较好的模拟了交通路面的控制。

倒计时电路主要是由双位共阴数码管和74HC573N驱动模块组成,控制信号通过单片机的端口P1口进行信号的传输。倒计时电路负责的是显示红绿灯持续显示的时间。当绿灯或者红灯持续显示时,数码管显示该状态的持续时间,在黄灯闪烁显示时,起到倒计时秒数的作用。

红绿灯功能电路主要是由各色的发光二极管和74HC573N驱动模块组成,控制信号跟数码管一样都是通过P1口进行传输。红绿灯电路负责的是各个车行道和人行道通行状态的显示。

系统经初始化可以开始自动运行,数码管有倒计时显示功能,即

1、具有直行、左转、右转、停止四个指示灯;

2、指示灯有倒计时显示功能,直行+右转20秒,左转+右转10秒,停止+右转30秒,按此规律不断循环;

3、直行和左转灯灭掉前3秒能够闪烁提示(每秒两次);

4、能够调整直行、左转、停止指示灯的时间。

二、交通灯的硬件设计

本设计单片机主要是用于控制交通灯的演示系统,故只需要单片机最小系统即可完成。此电路由单片机、时钟电路、电源、复位电路4个组成部分组成。下图分别为单片机原理图、交通灯系统电路图。

图1 单片机系统原理图

图2 交通灯系统原理图

2.1 复位电路

复位方式有多种,本设计采用按键复位。接线图如图3复位电路,

在复位期间(即RST为高电平期间),P0口为高组态,P1-P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。在设定的定时时间内必须在RST引脚产生一个由高到低的电平变化,以清内部定时器.

图3 复位电路图

2.2 晶振电路

选取原则:传统做法,但能够实现所需,即最简单也最是实用。电容选取30pF,晶振为12MHz。

图4 晶振电路图

供电电路由主电源和备用电源组成。主电源主要是由变压器、6A整流桥、4个二极管, 2个104pf电容,二个电解电容以及7805三端稳压管组成。这个部分为系统提供主要的供电,输出电压为5V直流。备用电源主要是由4位的5号电池盒组成。这个部分在主电源断电时能够几乎瞬时的为系统提供电源,输出电压也是5V直流。该电源直接接到单片机的电源端。

图5 主电源和备用电源切换功能电路

2.4 原件清单

三、交通灯的软件设计

3.1交通灯程序

#include

#include

#define uchar unsigned char #define uint unsigned int unsigned char code

Tab[]={ 0xc0,0xf9,0xa4,0xb0,0x

99,0x92,0x82,0xf8,0x80,0x90,0x bf,0xff,0xce};

sbit up=P3^1;

sbit down=P3^2;

sbit set=P3^3;

sbit S8 = P2^0;

sbit S7 = P2^1;

sbit S6 = P2^2;

sbit S5 = P2^3;

sbit S4 = P2^4;

sbit S3 = P2^5;

sbit S2 = P2^6;

sbit S1 = P2^7;

uchar

fenduan1=20,fenduan2=10,fendua n3=3;

uchar times=0;

uchar second=0;

uchar bsecond=0;

uchar sss=0;uchar

disData[8]={7,12,1,10,11,11,6, 7};

void keydisplay();

void display();

void Delay()

{

unsigned char i;

for(i=0;i<255;i++);

}

void ISR_Timer0(void) interrupt 1

{

TH0=0x3c;

TL0=0xb0;

times++;

if (times == 10)

{

bsecond++;

times=0;

}

}

相关文档
最新文档