单片机交通灯设计报告.docx

上传人:b****6 文档编号:4268861 上传时间:2022-11-28 格式:DOCX 页数:29 大小:1.04MB
下载 相关 举报
单片机交通灯设计报告.docx_第1页
第1页 / 共29页
单片机交通灯设计报告.docx_第2页
第2页 / 共29页
单片机交通灯设计报告.docx_第3页
第3页 / 共29页
单片机交通灯设计报告.docx_第4页
第4页 / 共29页
单片机交通灯设计报告.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

单片机交通灯设计报告.docx

《单片机交通灯设计报告.docx》由会员分享,可在线阅读,更多相关《单片机交通灯设计报告.docx(29页珍藏版)》请在冰豆网上搜索。

单片机交通灯设计报告.docx

单片机交通灯设计报告

陕西工业职业技术学院

2010/2011学年第1学期

电子线路设计与仿真

实训报告

 

课程名称电子线路设计与仿真课程设计

班级:

电子信息0901

姓名:

杜志强

教学周数:

1周(第13周)

地点:

系统控制实验室行知楼(502)

指导教师:

朱黎、田宝珍

信息工程学院

摘要

本设计是在熟练掌握单片机及其仿真系统使用方法基础上,综合应用单片机原理、微机原理等课程方面的知识,设计一个采用AT89C51单片机控制的交通灯控制电路。

该设计结合实际情况给出了一种简单低成本城市交通灯控制系统的硬件及软件设计方案、各个路口交通灯的状态循环显示,并对程序流程图进行详细讲解分析。

硬件的设计采用89ATC51单片机为核心器件。

并辅助复位电路,驱动电路,数码管及晶体管显示部分。

通过中断扩展实现交通灯系统特殊情况的转换。

软件设计部分分为一个主程序和两个中断子程序,一个用于有紧急车辆通过时,系统要能禁止普通车辆通行,实行中断可使A(东西道)、B(南北道)两道均亮红灯;另一个用于一道有车而另一道无车时,通过控制交通灯系统能立即让有车道放行,假如A道有车B道无车,长按K0可以控制交通灯系统能立即让东西道放行;假如南北道有车东西道无车,长按K1可以控制交通灯系统能立即南北道放行。

十字路口的交通灯在工作时应具有如下特点:

红灯表示该条道路禁止通行;黄灯表示该条道路上未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯亮表示该条道路允许通行。

本设计利用单片机控制可以实现以下功能:

(1)A道和B道上均有车辆要求通过时,A,B道轮流放行。

A道放行5分钟(调试时改为35秒钟),B道放行4分钟(调试时改为35秒钟)。

(2)一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统能立即让有车道放行。

(3)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A,B道均为红灯,紧急车由K2开关模拟。

(4)绿灯转换为红灯时黄灯亮13秒钟

1概述

1.1设计任务书

设计个单片机控制的交通灯控制系统,可以实现以下功能:

(1)A道和B道上均有车辆要求通过时,A,B道轮流放行。

A道放行5分钟(调试时改为5秒钟),B道放行4分钟(调试时改为4秒钟)。

(2)一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统能立即让有车道放行。

(3)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A,B道均为红灯,紧急车由K2开关模拟。

(4)绿灯转换为红灯时黄灯亮1秒钟。

1.2设计思路

硬件设计部分,为实现所要求的功能,首先参考多种参考资料,选用89ATC51单片机为硬件设计的核心器件。

它具有128*8位内部RAM,有32根可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。

其次采用74LS245驱动电路驱动LED晶体管显示部分,用数码管显示黄、红、绿灯。

通过中断扩展实现交通灯系统特殊情况的转换。

软件设计部分,分为一个主程序和两个中断子程序,一个用于有紧急车辆通过时,系统要能禁止普通车辆通行,实行中断可使A、B两道均亮红灯;另一个用于一道有车而另一道无车时,通过控制交通灯系统能立即让有车道放行,假如A道有车B道无车,长按K0可以控制交通灯系统能立即A道放行,假如B道有车A道无车,长按K1可以控制交通灯系统能立即B道放行。

整体功能预览及环境设置

1)整体功能介绍

Proteus是一个基于ProSPICE混合模型仿真器的、完整的嵌入式系统软硬

件计仿真平台。

它包含ISIS和ARES应用软件,具体功能分布如图1-1所示

 

图1-1Proteus的功能分布图

ISIS——智能原理图输入系统,系统设计与仿真的基本平台。

ARES——高级PCB布线编辑软件。

在Proteus中,从原理图设计、单片机编程、系统仿真到PCB设计一气呵成,真正实现了从概念到产品的完整设计。

Proteus从原理图设计到PCB设计,再到电路板完成的流程如图1-2所示

 

(1-2)

2)protues基本安装与运行

Proteus软件目前的最新版本为7.5,先按要求把软件安装到计算机上,安装结束后,在桌面的“开始”程序菜单中,单击运行原理图(ISIS7Professional)或PCB(ARE7Professional)设计界面。

ISIS7Professional在程序中的位置如图1-12所示。

 

图1-13为ISIS7Professional运行时的界面

 

3)运用前的准备工作

元件的拾取

在桌面上选择【开始】→【程序】→“Proteus7Professional”,单击蓝色图标“ISIS7Professional”打开应用程序

用鼠标左键单击界面左侧预览窗口下面的“P”按钮,如图1-14所示,弹出“PickDevices”(元件拾取)对话框

编辑窗口视野控制

学会合理控制编辑区的视野是元件编辑和电路连接进行前的首要工作。

编辑窗口的视野平移可用以下方法:

在原理图编辑区的蓝色方框内,把鼠标指针放置在一个地方后,按下“F5”,则以鼠标指针为中心显示图形。

当图形不能全部显示出来时,按住“Shift”键,移动鼠标指针到上、下、左、右边界,则图形自动平移。

快速显示想要显示的图形部分时,把鼠标指向左上预览窗口中某处,并单击鼠标左键,则编辑窗口内图形自动移动到指定位置。

2系统总体方案及硬件设计

2.1系统总体方案

(1)硬件设计部分

为实现所要求的功能,首先参考多种参考资料,选用89ATC51单片机为硬件设计的核心器件。

它具有128*8位内部RAM,有32根可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。

其次采用74LS245驱动电路驱动LED晶体管显示部分,由89ATC51的P2.1口控制北边和东边剩余时间的十位数的显示,P2.0控制北边和东边剩余时间的个位数的显示。

用P1端口作为输出端口,用P1.2到P1.7端口分别控制东和北两组灯的状态,低电平点亮,用数码管显示黄、红、绿灯。

通过中断扩展实现交通灯系统特殊情况的转换。

(2)软件设计部分

软件设计部分,分为一个主程序和两个中断子程序,一个用于有紧急车辆通过时,系统要能禁止普通车辆通行,实行中断可使A、B两道均亮红灯;另一个用于一道有车而另一道无车时,通过控制交通灯系统能立即让有车道放行,假如A道有车B道无车,长按K0可以控制交通灯系统能立即A道放行,假如B道有车A道无车,长按K1可以控制交通灯系统能立即B道放行。

2.2硬件设计

(1)AT89C51简介

功能:

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。

具有128*8位内部RAM,有32根可编程I/O线、两个16位定时器/计数器·5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。

管脚说明:

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

口管脚备选功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(记时器0外部输入)

P3.5T1(记时器1外部输入)

P3.6/WR(外部数据存储器写选通)

P3.7/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节

PSEN:

外部程序存储器的选通信号。

EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

当/EA端保持高电平时,此间内部程序存储器。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。

在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。

在闲置模式下,CPU停止工作。

但RAM,定时器,计数器,串口和中断系统仍在工作。

在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

(2)复位部分:

采用上电+按钮电平复位,复位电容采用

电阻

,连接如图:

(3)显示部分:

数码管显示部分

采用四位一体共阴数码管,分别显示西和北的剩余时间,A到G为码段控制端口,1到4为片选端口。

数码段显示部分通过RESPACK-8接单片机管脚的P0口,片选部分由P2.0到P2.1提供,具体的共阴数码管见图。

其中P2.1控制北边和西边剩余时间的十位数的显示;P2.0控制北边和西边剩余时间的个位数的显示。

 

晶体管显示部分

由于对称性,设计时主要设计了西北两个方向。

由红黄绿按要求显示。

用P1端口作为输出端口,用P1.2到P1.7端口分别控制西和北两组灯的状态,低电平点亮,其余两方向分别串接在西北两个方向,具体端口功能如下:

P1.2控制北边红灯的亮灭;

P1.3控制北边黄灯的亮灭;

P1.4控制北边绿灯的亮灭;

P1.5控制东边红灯的亮灭;

P1.6控制东边黄灯的亮灭;

P1.7控制东边绿灯的亮灭。

(4)驱动部分:

使用RESPACK_8来使共阴极数码显示读数,由于P0口内部无上拉电阻,所以要使其工作必须外接上拉电阻,此处的用了一个排阻。

 

 

3软件设计

3.1程序流程图

(1)T0中断服务程序

 

(2)外部中断零服务程序

3.2软件系统设计

(1)主程序

P0口作为字形码输出口P2口输出为选信号用P1口控制交通灯的亮灭

23H为标示位,当23H为0时南北红灯亮东西绿灯亮,并进入计时;当23H为1时东西南北黄灯亮,并进入计时;当32H为2时南北绿灯亮东西红灯亮,并进入计时;当23H为1时东西南北黄灯亮,并进入计时。

27H为特殊情况标示位,当27H为0时南北红灯东西绿灯亮。

当27H为2时南北绿灯东西红灯亮。

还有通过标示位2FH.0来判断是否进入东西南北都红的紧急状态。

4Proteus软件仿真

4.1初始状态0仿真图

东边绿灯亮,北边红灯亮。

4.2状态1

北边和东边黄灯闪烁。

4.3状态2

东边由黄灯闪烁转亮为红灯,同时北边由黄灯闪烁转亮为绿灯。

4.4状态3

东边和北边均黄灯闪烁。

4.5状态4

东西道有车而南北道无车时,按K0键,北边转亮红灯同时东边转亮绿灯。

 

4.6状态5

东西道无车而南北道有车时,按K1键,东边转亮红灯同时北边转亮绿灯。

 

 

4.7状态6

紧急车通过时,按K2键,北边和东边均转亮红灯。

 

参考文献

期刊论文:

[1]刘心红、郭福田、孙振兴、曾丽丽,Proteus仿真技术在单片机教学中的应用(大庆石油学院应用技术学院,河北秦皇岛),实验技术与管理(ExperimentalTechnologyandManagement)2007,24(3):

96-102

[2]蔡军、曹慧英,智能交通灯控制系统的设计与实现,(重庆邮电学院,重庆400065)

重庆邮电学院学报(JournalofChongqingUniversityofPostsandTelecommunicationsJun),200416(3):

128-132

[3]杨汉祥、刘良福、邬喜辉,利用单片机改进交通灯控制系统(北京电子科技学院学报),北京电子科技学院学报(JournalofBeijingElectronicScienceandTechnologyinstitute)2005,13(4):

68-72

书、专著:

[1]余发山主编《单片机原理与应用技术》北京:

中国矿大出版社2004

[2]赖寿宏主编《微型计算机控制技术》北京:

机械工业出版社2002

[3]李朝青.单片机原理及接口技术[M].北京:

北京航空航天大学出版社,1999.87—90

[4]李广第等.单片机基础[M].北京:

北京航空航天大学出版社,2001.147-151

[5]栾桂冬,张金铎,金欢阳.传感器及其应用[M].西安:

西安电子科技大学出版社,2002.255-261

5课程设计体会

通过这次做交通灯的课程设计,自己再次学习了微机原理,并认真复习单片机,查阅和浏览了很多的相关资料,并且对wave和proteus软件的使用有了一定的了解。

虽然提前做了一些准备工作,但完成初次编程用wave进行编译时,确也出现了一系列的问题。

例如:

有的符号未定义,源程序起始地址重复,标点符号漏写等,最终还是利用wave中的单步跟踪功能将问题一一解决。

软件模拟时,我们用proteus仿真软件运行,发现有时两个绿灯同时亮,当有紧急车辆通过时,两个红灯不受按键控制,出现抖动现象等等一系列的问题。

但是最后在同学的帮助下终于完成任务。

通过这次学习,发现自己对书本的掌握只是很表层的一部分,离实际应用还有很大一段距离。

真是不用不知道,一用吓一跳。

做课程设计期间,自己进一步学习了单片机书上的例子,而且学习了许多书本之外的东西。

尤其是,和几个同学一起进行编程调试进而运行时期间,发现自己还算比较喜欢编程。

这次做单片机课程设计也对自己以后的学习方向有很大的影响。

主电路原理图

 

6元件清单

 

CompactCSVoutput

附录程序

ORG0000H

LJMPMAIN

ORG0003H

LJMPSECTION1

ORG000BH

LJMPTIME

ORG0013H

LJMPSECTION2

************MAINPROGRAM***************

ORG0100H

MAIN:

MOVSP,#50H

MOVTCON,#05H;定义中断方式

MOV20H,#24H;时间计数单元,A道放行时间

MOV21H,#0AH;黄灯亮时间

MOV22H,#24H;B道放行时间

MOV23H,#00H;交通灯转换标示位

MOV24H,#0AH;时间欲存区,A道放行时间

MOV25H,#0EH;黄灯亮时间

MOV26H,#15H;B道放行时间

MOV27H,#0FFH;特殊情况下转换标示位

MOV28H,#01H;

MOV30H,#0AH;显示缓存区

MOV31H,#00H

MOVTMOD,#01H;16位计数器

MOVH0,#03CH

MOVTL0,#0B0H

MOVIE,#10000111B

SETBTR0;T0启动计数

MOVR2,#13H

MOVP2,#0FFH

ML1:

ACALLDISP

MOVA,23H

CJNEA,#00H,X1

SETBP1.2

CLRP1.3

CLRP1.4

CLRP1.5

CLRP1.6

SETBP1.7

X1:

CJNEA,#01H,X2

CLRP1.2

SETBP1.3

CLRP1.4

CLRP1.5

SETBP1.6

CLRP1.7

X2:

CJNEA,#02H,X3

CLRP1.2

CLRP1.3

SETBP1.4

SETBP1.5

CLRP1.6

CLRP1.7

X3:

CJNEA,#03H,X4

CLRP1.2

SETBP1.3

CLRP1.4

CLRP1.5

SETBP1.6

CLRP1.7

X4:

JNB2FH.0,ML2

SETBP1.2

CLRP1.3

CLRP1.4

SETBP1.5

CLRP1.6

CLRP1.7

AJMPX4

ML2:

JBTR0,ML1

ACALLDISP

MOVA,27H

CJNEA,#00H,X11

SETBP1.2

CLRP1.3

CLRP1.4

CLRP1.5

CLRP1.6

SETBP1.7

X11:

CJNEA,#01H,X21

CLRP1.2

SETBP1.3

CLRP1.4

CLRP1.5

SETBP1.6

CLRP1.7

X21:

CJNEA,#02H,X31

CLRP1.2

CLRP1.3

SETBP1.4

SETBP1.5

CLRP1.6

CLRP1.7

X31:

JBP1.0,M1

M1:

MOVC,P1.0;按键消振

JCM2

M2:

LCALLDELAY

MOVC,P1.0

JCML10

STOP1:

MOVC,P1.0

JNCSTOP1

LCALLDELAY

MOVC,P1.0

JNCSTOP1

MOVR0,#20H

MOVR1,#24H

MOVA,27H;加一

MOV23H,A

CLRC

ADDA,R1

MOVR1,A

CLRC

MOVA,23H

ADDA,R0

MOVR0,A

INC@R1

MOVA,@R1

CJNEA,#100,H1

MOVA,#00H

MOV@R1,A

H1:

MOV@R0,A

MOVB,#0AH

DIVAB

MOV31H,A

MOV30H,B

ACALLDISP

ML10:

JBP1.1,M3

M3:

MOVC,P1.1;按键消振

JCM4

M4:

LCALLDELAY

MOVC,P1.1

JCML2

STOP2:

MOVC,P1.1

JNCSTOP2

LCALLDELAY

MOVC,P1.1

JNCSTOP2

MOVR0,#20H

MOVR1,#24H

MOVA,27H;减一

MOV23H,A

CLRC

ADDA,R1

MOVR1,A

CLRC

ADDA,R0

MOVR0,A

DEC@R1

MOVA,@R1

CJNEA,#0FFH,H2

MOVA,#99

MOV@R1,A

H2:

MOV@R0,A

MOVB,#0AH

DIVAB

MOV31H,A

MOV30H,B

ACALLDISP

LJMPML1

DELAY:

MOVR4,#14H

DL00:

MOVR5,#0FFH

DL11:

DJNZR5,DL11

DJNZR4,DL00

RET

;***********TIMEPROCESS**************

TIME:

PUSHACC

PUSHPSW

MOVTH0,#03CH

MOVTL0,#0B0H

DJNZR2,RET0

MOVR2,#13H

MOVA,23H

CJNEA,#00H,L1

MOVA,20H

CLRC

DECA

CJNEA,#0FFH,GO11

MOVA,23H

CLRC

INCA

MOV23H,A

MOVA,24H

MOV20H,A

LJMPL1

GO11:

MOV20H,A

MOVB,#0AH

DIVAB

MOV31H,A

MOV30H,B

LJMPRET0

L1:

MOVA,23H

CJNEA,#01H,L2

MOVA,21H

CLRC

DECA

CJNEA,#0FFH,GO12

MOVA,23H

CLRC

INCA

MOV23H,A

MOVA,25H

MOV21H,A

LJMPL2

GO12:

MOV21H,A

MOVB,#0AH

DIVAB

MOV31H,A

MOV30H,B

LJMPRET0

L2:

MOVA,23H

CJNEA,#02H,L4

MOVA,22H

CLRC

DECA

CJNEA,#0FFH,GO13

MOVA,23H

CLRC

INCA

MOV23H,A

MOVA,26H

MOV22H,A

LJMPL4

GO13:

MOV22H,A

MOVB,#0AH

DIVAB

MOV31H,A

MOV30H,B

RET0:

POPPSW

POPACC

RETI

L4:

MOVA,23H

CJNEA,#03H,RET0

MOVA,21H

CLRC

DECA

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

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1