单片机原理及应用课程设计交通灯管理电路设计.docx

上传人:b****3 文档编号:4796183 上传时间:2023-05-07 格式:DOCX 页数:30 大小:327.11KB
下载 相关 举报
单片机原理及应用课程设计交通灯管理电路设计.docx_第1页
第1页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第2页
第2页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第3页
第3页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第4页
第4页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第5页
第5页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第6页
第6页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第7页
第7页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第8页
第8页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第9页
第9页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第10页
第10页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第11页
第11页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第12页
第12页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第13页
第13页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第14页
第14页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第15页
第15页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第16页
第16页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第17页
第17页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第18页
第18页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第19页
第19页 / 共30页
单片机原理及应用课程设计交通灯管理电路设计.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机原理及应用课程设计交通灯管理电路设计.docx

《单片机原理及应用课程设计交通灯管理电路设计.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用课程设计交通灯管理电路设计.docx(30页珍藏版)》请在冰点文库上搜索。

单片机原理及应用课程设计交通灯管理电路设计.docx

单片机原理及应用课程设计交通灯管理电路设计

课程设计

课程单片机原理及应用课程设计

题目交通灯管理电路设计

院系电子科学学院

专业班级

学生姓名

学生学号

指导教师

 

 

2012年3月9日

课程设计任务书

课程单片机原理及应用课程设计

题目交通灯管理电路设计

一、设计目的:

训练学生综合运用己学课程的基本知识,独立进行单片机应用技术开发工作,掌握单片机程序设计、调试,应用电路设计、分析及调试检测。

二、设计要求:

1.应用MCS-51单片机设计十字路口的交通灯亮、灭及倒计时功能;

2.硬件设计根据设计的任务选定合适的单片机,根据控制对象设计接口电路。

设计的单元电路必须有工作原理,器件的作用,分析和计算过程;

3.软件设计根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;

4.原理图设计根据所确定的设计电路,利用Protel等有关工具软件绘制电路原理图、PCB板图、提供元器件清单。

三、参考资料:

[1]李朝青.单片机原理及接口技术(第3版).北京:

北京航空航天大学出版社,2005

[2]马忠梅等.单片机的C语言应用程序设计.北京:

北京航空航天大学出版社,2007

[3]赵新民.智能仪器设计基础.哈尔滨:

哈尔滨工业大学出版社,1999

[4]何立民.单片机应用技术大全.北京:

北京航空航天大学出版社,1994;

完成期限2012.3.5—2012.3.9

指导教师

专业负责人

2012年3月2日

 

目录

第1章概述1

第2章总体设计及核心器件简介2

2.1总体设计2

2.2AT89C512

2.38255A4

2.474LS1645

2.5X50457

第3章硬件电路设计11

3.1复位电路11

3.3晶振电路11

3.4I/O口扩展电路12

3.5LED数码管显示电路12

3.6交通灯状态显示电路14

3.7紧急情况中断电路15

3.8总体设计原理图及功能介绍16

第4章程序设计17

4.1设计思想17

4.2程序框图17

4.3源程序17

结论21

参考文献23

第1章概述

近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。

交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。

交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。

本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。

本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、紧急情况中断系统、复位电路等几大部分组成。

系统除基本的交通灯功能外,还具有倒计时、紧急情况处理等功能,较好的模拟实现了十字路口可能出现的状况。

软件上采用C51编程,主要编写了主程序,LED数码管显示程序,中断程序延时程序等。

经过整机调试,实现了对十字路口交通灯的模拟。

 

第2章总体设计及核心器件简介

2.1总体设计

整个设计以AT89C51单片机为核心,由I/O口扩展,LED数码管显示,紧急情况中断电路,watchdog复位电路组成。

硬件模块入图3-1。

图2-1硬件模块

2.2AT89C51

1.AT89C51单片机简介

AT89C51是美国ATMEL公司推出的系列单片机,将多种功能的8位CPU与FPEROM(快闪可编程/擦除只读存储器)结合在一个芯片上,是一种低功耗、高性能的CMOS控制器,为很多嵌入式控制应用提供了非常灵活而又价格适宜的方案,其性能价格比远高于同类芯片。

它与MCS-51指令系统兼容,片内FPEROM允许对程序存储器在线重复编程,也可用常规的EPROM编程器编程,可循环写入/擦除1000次。

89C51内含4KB的FPEROM,一般的EEPROM的字节擦除时间和写入时间基本上均为10ms,对于任一个实时控制系统来说,这样长的时间是不可能在线修改程序的。

图2-289C51内部结构图

与EEPROM相比较,FPEROM大大缩短了存储内容擦除和写入的时间,为在线改写程序提供了极大的方便,而且价格也比带EPROM87C系列单片机便宜,这更显示出了89C系列的优越性。

它还有128*8Bit的片内RAM;32根I/O线;2个16位定时/计数器;5个中断源;一个全双工的异步串行口;间歇和掉电工作模式;三级程序存储器加密;全静态工作,晶振工作范围:

0Hz—24MHz。

2.管脚功能

AT89C51单片机为40引脚芯片如图2-3所示。

I/O口线:

P0、P1、P2、P3共四个八位P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读ˆ写操作。

P0口也用以输出外部存储器的低8位地址。

由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存信号用ALE。

P1口是专门供用户使用的I/O口,是准双向口。

P2口是从系统扩展时作高8位地址线用。

不扩展外部存储器时,P口也可以作为用户I/O口线使用,P2口也是准双向口。

P3口是双功能口,该口的每一位均可独立地定义为第一I/O功能或第二I/O功能。

作为第一功能使用时操作同P1口。

P3口的第二功能如表2-1。

图2-389C51引脚图

控制口线:

PSEN(片外取控制)、ALE(地址锁存控制)、EA(片外储器选择)、RE2SET(复位控制);

电源及时钟:

CCC、VSS;XTAL1,XTAL2

表2-1引脚功能表

2.38255A

8255A是Intel公司生产的可编程输入输出接口芯片,它具有3个8位的并I/O

口,具有三种工作方式,可通过程序改变其功能,因而使用灵活,通用性强,可作为单

片机与多种外围设备连接时的中间接口电路。

8255有三种基本工作方式, 三种工作方式由工作方式控制字决定,方式控制字由CPU通过输入/输出指令来提供.三个端口中PC口被分为两个部分,上半部分随PA口称为A组,下半部分随PB

口称为B组.其中PA口可工作与方式0、1和2,而PB口只能工作在方式0和1。

8255共有40个引脚,采用双列直插式封装。

其引脚图如图2-4所示,各引脚功能如下:

 

图2-48255A引脚图

D0--D7:

三态双向数据线,与单片机数据总线连接,用来传送数据信息。

CS:

片选信号线,低电平有效,表示芯片被选中。

RD:

读出信号线,低电平有效,控制数据的读出。

WR:

写入信号线,低电平有效,控制数据的写入。

Vcc:

+5V电源。

PA0--PA7:

A口输入/输出线。

PB0--PB7:

B口输入/输出线。

PC0--PC7:

C口输入/输出线。

RESET:

复位信号线。

A1、A0:

地址线,用来选择8255内部端口。

GND:

地线。

2.474LS164

74LS164引脚定义如图2-5所示,其真值表如表2-2所示,其功能是将外部输入的串行数据转化为8位的并行数据输出具有锁寸功能。

A、B端为串行数据输入端,QA~QH为数据输出端,CLK为外部时钟输入端,CLR为清零端。

图2-574LS164引脚图

表2-274LS164真值表

输入

输出

CLEAR

CLOCK

AB

QAQB……QH

L

X

XX

LLL

H

L

XX

QA0QB0QH0

H

HH

HQAnQGn

H

LX

LQAnQGn

H

XL

LQAnQGn

注QA0、QB0、QH0为在稳态输入条件建立之前QA、QB和QH相应的电平;QAn、QGn为在最近的时钟↑转换前QA或QG的电平,表示移1位。

74LS164内部功能图如图2-6所示:

图2-674LS164内部功能图

2.5X5045

X5045是一种集看门狗、电压监控和串行EEPROM三种功能于一身的可编程电路。

这种组合设计减少了电路对电路板空间的需求。

X5045中的看门狗对系统提供了保护功能。

当系统发生故障而超过设置时间时,电路中的看门狗将通过RESET信号向CPU作出反应。

X5045提供了三个时间值供用户选择使用。

它所具有的电压监控功能还可以保护系统免受低电压的影响,当电源电压降到允许范围以下时,系统将复位,直到电源电压返回到稳定值为止。

X5045的存储器与CPU可通过串行通信方式接口,共有4096个位,可以按512x8个字节来放置数据。

1引脚介绍

CS/WDI:

片选输入/看门狗复位输入;

SO:

串行输出;

WP:

写保护输入;

RESET:

复位输出;

SCK:

同步时钟输入;

SI:

串行输入。

图2-7X5045引脚图Vss:

地;

Vcc:

电源;

2工作原理

2.1上电复位

向X5045加电时会激活其内部的上电复位电路,从而使RESET引脚有效。

该信号可避免系统微处理器在电压不足或振荡器未稳定的情况下工作。

当VCC超过器件的Vtrip门限值时,电路将在200ms(典型)延时后释放RESET以允许系统开始工作。

2.2低电压监视

工作时,X5045对VCC电平进行监测,若电源电压跌落至预置的最小Vtrip以下时,系统即确认RESET,从而避免微处理器在电源失效或断开的情况下工作。

当RESET被确认后,该RESET信号将一直保持有效,直到电压跌到低于1V。

而当VCC返回并超过Vtrip达200ms时,系统重新开始工作。

2.3看门狗定时器

看门狗定时器的作用是通过监视WDI输入来监视微处理器是否激活。

由于微处理器必须周期性的触发CS/WDI引脚以避免RESET信号激活而使电路复位,所以CS/WDI引脚必须在看门狗超时时间终止之前受到由高至低信号的触发。

2.4重新设置VCC门限

X5045/45出厂时设置的标准VCC门限电压为Vtrip,但在应用时,如果标准值不恰当,用户可以重新调整。

2.5SPI串行存储器

器件存储器部分是带块锁保护的CMOS串行EEPROM阵列,阵列的内部组织是x8位。

X5045可提供最少为1000,000次擦写和100年的数据保存期,并具有串行外围接口(SPI)和软件协议的特点,允许工作在简单的四总线上。

X5045主要是通过一个8位的指令寄存器来控制器件的工作,其指令代码通过SI输入端(MSB在前)写入寄存器。

表2-3所列为X5045的指令格式及其操作。

表2-3X5045的指令格式及其操作

2.6时钟和数据时序

当CS变低以后,SI线上的输入数据在SCK的第一个上升沿时被锁存。

而SO线上的数据则由SCK的下降沿输出。

用户可以停止时钟,然后再启动它,以便在它停止的地方恢复操作。

在整个工作期间,CS必须为低。

2.7状态寄存器

状态寄存器包含四个非易失性状态位和两个易失性状态位。

控制位用于设置看门狗定时器的操作和存储器的块锁保护。

状态寄存器的格式如表2-4(缺省值为00H):

表2-4状态寄存器格式

其中:

WIP(Write-In-Progress)位是易失性只读位,用于指明器件是否忙于内部非易失性写操作。

WIP位可用RDSR指令读出。

当该位为“1”时,表示非易失性写操作正在进行;为“0”时,表示没有进行写操作。

WEL(WriteEnableLatch)位用于指出“写使能”锁存的状态。

WEL=1时,表示锁存被设置;WEL=0表示锁存已复位。

WEL位是易失性只读位。

可以用WREN指令设置WEL位;用WRDI指令复位WEL位。

用BLO,BL1(BlockLock)位可设置块锁存保护的范围。

任何被块锁保护的存储器都只能读出不能写入。

这两个非易失性位可用WRSR指令来编程,并允许用户保护EEPROM阵列的1/4、1/2、全部或0。

参见表2-5。

2-5受保护的EEPROM陈列地址

WD0、WD1(WatchdogTimer)位用于选择看门狗的超时周期。

见表2-6。

表2-6看门狗的超时周期选择

当用CS选中器件后,送8位RDSR指令,并由CLK信号触发即可将状态寄存器的内容从SO线上读出。

而在写状态寄存器时,应先将CS拉低,然后送WREN指令,再拉高CS。

然后再次拉低CS,最后送入WREN指令及对应于状态寄存器内容的8位数据即可。

该操作由CS变高结束。

WEL位及WP引脚的状态对器件内的存储器及状态寄存器各部分保护的影响如表2-7所列。

表2-7WREN命令和/WP引脚状态寄存器的影响

第3章硬件电路设计

3.1复位电路

复位方式有多种,但本设计采用看门狗芯片X5045,接线图如图3-1所示。

3-1复位电路原理图

在设定的定时时间内,89C51必须在/CS/WDI引脚产生一个由高到低的电平变化,以清内部定时器,即“喂狗”,否则X5045将产生一个复位信号。

3.3晶振电路

  晶振电路原理图如3-2:

             3-2 晶振模块原理图

 选取原则:

传统做法,但能够实现所需,即最简单也最是实用。

电容选取22uF,晶振为11.0592Hz。

3.4I/O口扩展电路

硬件原理设计图如图3-3所示:

图3-38255A扩展单片机I/0口电路图

用74LS373锁存,74LS138译码,扩展单片机的I/O口,由原理图得8255端口地址分配为:

A口:

0FFD8H

B口:

0FFD9H

C口:

0FFDAH

3.5LED数码管显示电路

在单片机应用系统中,数码管显示常用两种方法:

静态显示和动态扫描显示。

所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。

这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小,可以提供单独锁存的I/O接口电路很多。

所以本设计采用串并转换电路74LS164的静态显示电路。

其电路图如图3-4所示。

图3-4数码管显示静态驱动电路

MCS-51单片机串行口方式0为移位寄存器方式,外接2片74LS164作为2位LED显示器的静态显示接口,把89C51的RXD作为数据输出线,TXD作为移位时钟脉冲。

74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。

其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,共一个输入信号时可并接。

T(第8脚)为时钟输入端,可连接到串行口的TXD端。

每一个时钟信号的上升沿加到T端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。

R(第9脚)为复位端,当R=0时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用。

Q1…Q8(第3-6和10-13引脚)并行输出端分别接LED显示器的hg···a各段对应的引脚上。

在给出了8个脉冲后,最先进入74LS164的第一个数据到达了最高位,然后如果再来一个脉冲,第一个脉冲就会从最高位移出。

设计中的2片7LS164首尾相串,而时钟端则接在一起,这样,当输入8个脉冲时,从单片机RXD端输出的数据就进入到了第一片74LS164中了,而当第二个8个脉冲到来后,这个数据就进入了第二片74LS164,而新的数据则进入了第一片74LS164,这样首先送出的数据被送到了右面的164中,后送入的则在左面的164中。

本设计中采用的是共阴极LED数码管,其字形码如表3-1所示。

表3-1共阴极LED数码管字形码表

数据位

D7

D6

D5

D4

D3

D2

D1

D0

笔段位

A

B

C

D

E

F

G

H

字形码

0

0

1

1

1

1

1

1

0

7EH

1

0

0

0

1

0

0

1

0

12H

2

1

0

1

1

1

1

0

0

BCH

3

1

0

1

1

0

1

1

0

B6H

4

1

1

0

1

0

0

1

0

D2H

5

1

1

1

0

0

1

1

0

E6H

6

1

1

1

0

1

1

1

0

EEH

7

0

0

1

1

0

0

1

0

32H

8

1

1

1

1

1

1

1

0

FEH

9

1

1

1

1

0

1

1

0

F6H

全灭

0

0

0

0

0

0

0

0

00H

3.6交通灯状态显示电路

十字路口的交通灯分布示意图如图3-5所示,将这12个交通灯进行编号。

图3-5十字路口交通灯分布示意图

这12个交通灯共有四个状态:

状态1(S1):

东西红灯(4、10)亮,南北绿灯(3、9)亮

状态2(S2):

南北黄灯(2、8)亮,东西仍为红灯(4、10)亮

状态3(S3):

南北红灯(1、7)亮,东西绿灯(6、12)亮

状态4(S4):

东西黄灯(5、11)亮,南北仍为红灯(1、7)亮

对应的硬件原理设计图如图3-6所示:

图3-6交通灯状态显示电路

用7407对发光二极管进行驱动,图中电阻R为390欧姆,以保证通过发光二极管的电流大于工作电流10mA。

四种状态下发光二极管与相应端口取值关系见表3-2。

表3-2发光二极管与相应端口取值关系

PB5

PB4

PB3

PB2

PB1

PB0

PA5

PA4

PA3

PA2

PA1

PA0

西红

西绿

西黄

南红

南绿

南黄

东红

东绿

东黄

北红

北绿

北黄

东西红灯亮

南北绿灯亮

0

1

1

1

0

1

0

1

1

1

0

1

1D1DH

东西红灯亮

南北黄灯亮

0

1

1

1

1

0

0

1

1

1

1

0

1E1EH

东西绿灯亮

南北红灯亮

1

0

1

0

1

1

1

0

1

0

1

1

2B2BH

东西黄灯亮

南北红灯亮

1

1

0

0

1

1

1

1

0

0

1

1

3333h

红灯全亮

0

1

1

0

1

1

0

1

1

0

1

1

1B1BH

3.7紧急情况中断电路

紧急情况中断处理电路图如图3-7所示:

图3-7紧急情况中断电路图

当东西向(或南北向)有特殊情况,比如有救护车通过,开关SW0为低电平则应使交通灯处于S3(东西绿灯、南北),开关SW1为低电平则应使交通灯处于S1(南北向绿灯、东西向红灯)。

3.8总体设计原理图及功能介绍

①整个设计原理图见附图。

2功能介绍

在应用电路中,采用8255A对单片机的I/O口进行有效的扩展,从而大大增加了可利用的I/O口资源,使得I/O口很充裕。

8255的PA口和PB口接发光二极管,通过对PA口和PB口的位写“1”或“0”来控制发光二极管的亮、灭,进而模拟显示出十字路口交通灯的各种状态。

LED数码管则用来对各种状态进行倒计时的显示。

设计中采用74LS164静态驱动LED数码管,利用单片机的RXD作为数据的输出端给164送数。

利用164的移位进行多位的显示。

利用延时程序控制每秒时间,从而控制RXD送数的时间间隔。

紧急情况的处理则采用查询加中断的方式。

通过查询P1.2和P1.3的状态来控制外部中断1,然后进去相应的处理程序。

在哪一方向上有紧急情况,则能通过开关进行中断,使该方向上为绿灯放行,同时紧急情况报警灯亮。

第4章程序设计

4.1设计思想

交通灯根据其显示情况可以分为四个状态,可以通过定时来控制每个状态的时间;通过定时也可以向LED数码管中每隔1秒送一个数,显示该状态剩余的时间;如果有中断出现则进入相应的处理程序:

先保留目前的显示状态,然后根据情况显示处理中的状态,紧急情况结束则恢复到保留的原来状态。

4.2程序框图

主程序框图和中断程序框图分别如图4-1和4-2所示。

图4-1主程序框图图4-2中断程序框图

4.3源程序

#include

#include

#include

#defineuintunsignedint

#defineucharunsignedchar

#defineCOM8255XBYTE[0xffdb]

#definePA8255XBYTE[0xffd8]

#definePB8255XBYTE[0Xffd9]

sbitP1_0=P1^0;

sbitP1_2=P1^2;

sbitP1_3=P1^3;

sbitP3_0=P3^0;

sbitP3_1=P3^1;

ucharcodetable[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xff,0xf6,0x00};

voiddelay_500ms(intx)/*延时子程序*/

{

inti;

for(;x>0;x--)

for(i=6245;i>0;i++)

{;}

}

voidint1_srv(void)interrupt2using2

{

uchara,b;

if(!

INT1)

{

a=PA8255;

b=PB8255;/*保留A口,B口状态*/

if(P1_2==0)

{

PA8255=0x1d;

PB8255=0x1d;

P1_0=0;

}

if(P1_3==0)

{

PA8255=0x2b;

PB8255=0x2b;

P1_0=0;

}

while(!

INT1);/*等待开关断开*/

PA8255=0xff;

PA8255=0xff;

PA8255=a;

PB8255=b;/*恢复A口,B口状态*/

P1_0=1;

}

}

voiddisplay(ucharx,uchary)

{

uchara[][2]={5,1,4,1,3,1,2,1,1,1,0,1,9,10,8,10,7,10,6,10,5,10,4,10,3,10,2,10,1,10,0,10};

uchari,j;

for(i=x;i

{

for(j=0;j<2;j++)

{

x=a[i][j];

SBUF=table[x];

do{}while(TI==0);

TI=0;

}

delay_500ms

(2);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2