单片机课程设计任务书Proteus及KEIL仿真软件基于单片机的城市交通灯控制系统设计.docx
- 文档编号:9815742
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:30
- 大小:251.69KB
单片机课程设计任务书Proteus及KEIL仿真软件基于单片机的城市交通灯控制系统设计.docx
《单片机课程设计任务书Proteus及KEIL仿真软件基于单片机的城市交通灯控制系统设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计任务书Proteus及KEIL仿真软件基于单片机的城市交通灯控制系统设计.docx(30页珍藏版)》请在冰豆网上搜索。
单片机课程设计任务书Proteus及KEIL仿真软件基于单片机的城市交通灯控制系统设计
单片机原理及应用课程设计
题目基于单片机的城市交通灯控制系统设计
系(部)
班级
姓名
学号
指导教师
《单片机原理及应用》课程设计任务书
一、设计题目、内容及要求
设计题目:
基于单片机的城市交通灯控制系统设计
设计内容:
要求用51单片机设计一个智能交通灯控制系统,使其能模仿城市十字路口交通灯的功能,并对满足特殊的控制要求。
该系统的具体功能要求如下:
1.该控制系统能控制东西南北四个路口的红黄绿灯正常工作。
东西和南北方向分时准行和禁行。
2.两垂直方向的准行时间均为60s或120s,可以进行控制转换。
3.准行方向亮绿灯与禁行方向亮红灯最后5秒时,四个路口同时加亮一黄灯进行闪烁,以警告车辆及行人,准行方向与禁行方向即将改变。
4.四个道口均用数码管显示准行或禁行的剩余时间。
5.在出现特殊交通情况时可以通过K1、K2、K3按键对交通灯进行控制。
实现:
1)当有紧急情况发生时按下K1四个路口同时加亮黄灯进行闪灯(闪灯时间为5s)且倒计时显示关闭。
黄灯闪烁完毕后四路口全变红灯禁行,处理紧急情况。
2)有某方向上车辆过多,可以使用K2、K3键控制东西或南北方向通行,另一方向禁行。
按下控制键后先在四个路口加5s的黄灯闪烁。
设计要求:
1.进行系统总体设计。
2.完成系统硬件电路设计。
3.完成系统软件设计。
4.撰写设计说明书。
二、设计原始资料
Proteus及KEIL仿真软件。
三、要求的设计成果(课程设计说明书、设计实物、图纸等)
设计结果能正确仿真演示,设计说明书一份(要求有硬件设计原理图,仿真结果图,源程序代码)
四、进程安排
第十九周周一:
查阅资料,设计电路图;
周二至周三:
编写程序及调试;
周四:
撰写课程设计说明书;
周五:
课程设计答辩。
五、主要参考资料
[1]彭为等.单片机典型系统设计实例精讲[M].北京:
电子工业出版社,2006
[2]李群芳.单片机原理、接口及应用[M].北京:
清华大学出版社,2005
指导教师(签名):
教研室主任(签名):
1引言
交通灯是现代交通非常重要的一个组成部分,,一套好的交通灯系统往往对提升城市交通运输效率,降低事故发生率有至关重要的影响。
本系统由单片机系统、交通灯演示系统、按键系统、中断系统以及时钟电路、复位电路组成。
本文设计的智能交通灯系统采用Proteus设计与仿真,程序的编译与调试采用KeilC51来实现。
本文所设计的智能交通灯采用了单片机AT89C51,选用了LED灯和多位数码管来模拟显示的交通灯切换状态。
本系统除了实现最基本的交通灯功能以外,还有用来应对紧急情况的功能,这就是中断系统所实现的在有特定需要的情况下实现对交通灯状态的控制。
对于提高城市交通效率有非常重要的作用。
1.1课程设计任务
本课程设计的任务就是设计一个交通灯的控制系统,具体设计任务如下:
1.进行系统总体设计。
2.完成系统硬件电路设计。
3.完成系统软件设计。
4.撰写设计说明书。
1.2设计要求:
1.该控制系统能控制东西南北四个路口的红黄绿灯正常工作。
东西和南北方向分时准行和禁行。
2.两垂直方向的准行时间均为60s或120s,可以进行控制转换。
3.准行方向亮绿灯与禁行方向亮绿灯55s后,四个产品同时加亮一黄灯进行闪烁,以警告车辆及行人,准行方向与禁行方向即将改变。
4.四个道口无用数码管显示六人行或禁行的剩余时间
5.在交通情况特殊情况下可以通过K1、K2、K3按键对交通灯进行控制。
2设计方案简述
2.1总体思路
根据智能交通灯的具有的功能,将它主要分为三部分,包括数码管显示剩余时间部分、交通灯显示部分和按键实现中断部分。
总体设计思路和总体的电路分配如下所示:
图2-1总体设计思路
图2-2总体的电路分配图
2.2主要实现功能
1.该控制系统能控制东西南北四个路口的红黄绿灯正常工作。
东西和南北方向分时准行和禁行。
2.两垂直方向的准行时间均为60s或120s,可以进行控制转换。
3.准行方向亮绿灯与禁行方向亮红灯最后5秒时,四个路口同时加亮一黄灯进行闪烁,以警告车辆及行人,准行方向与禁行方向即将改变。
4.四个道口均用数码管显示准行或禁行的剩余时间。
5.在出现紧急状况时,可以通过人为操作进入特殊情况。
在此包含了4种特殊情况,包括加长东西南北方向的通行时间,四个方向均禁行,东西方向保持通行南北方向禁行,南北方向保持通行东西方向禁行。
当特殊情况结束时,人为操作进入正常状态。
2.3设计方案与意义
根据实际生活中使用的交通灯,在此次的智能交通灯的设计中也将具有显示时间的功能,使我们的设计与实际结合起来,在此部分LED灯将配合红黄绿灯的发光时间显示数据,对于每个数据将使用定时器来实现定时1秒,当1秒时间到达,LED上显示的时间自动减1,当时间减至为0,交通灯变换红黄绿灯。
基于传统交通灯控制系统设计过于死板,红绿灯交替是间过于程式化的缺点,智能交通灯控制系统的设计就更显示出了它的研究意义,它能根据道路交通拥护,交叉路口经常出现拥堵的情况。
利用单片机控制技术.提出了软件和硬件设计方案,能够实现道路的最大通行效率,使其满足交通需要。
3详细设计
3.1系统硬件电路设计
硬件电路由AT89C51单片机、4个4位共阳极的数码显示管、复位电路、时钟电路、按键电路以及交通灯演示系统组成。
框图如下:
图3-1总体硬件连接框图
3.2AT89C51芯片简介
芯片AT89C51的外形结构和引脚图如图3-1所示。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MC-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图3-2AT89C51引脚图
3.2.1主要特性
8051CPU与MCS-51兼容
4K字节可编程FLASH存储器(寿命:
1000写/擦循环)
全静态工作:
0HZ-24KHZ
三级程序存储器保密锁定
128*8位内部RAM
32位可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
3.2.2管脚说明
VCC:
供电电压
GND:
接地。
P0口:
P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,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口输出地址的高8位。
在给出地址“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:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地址字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定是目的。
然而它可用作对外部输出的脉冲或用于定是目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次
有效。
但在访问外部数据存储器时,这两次有效的
信号将不出现。
/VPP:
当
保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,
将内部锁定为RESET;当
端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出引脚。
3.374LS273芯片
74LS273是8位数据/地址锁存器,如图3-3所示,它是一种带清除功能的8D触发器,下面介绍一下它的管脚图功能资料。
1脚是复位CLR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位;
当1脚为高电平时,11(CLK)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上.
图3-374LS273引脚图
3.4单元电路设计
3.4.1多位数码显示管
LED显示器由共阳极七段发光二极管组成,排列成8字形状,因此也称为七段LED显示器。
为了显示数字或符号,要为LED显示器提供代码,即字形代码。
其段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。
智能交通灯用到的数字0—9的共阳极字形代码如下表。
图3-4多位数码管引脚图
表3-1驱动代码表
显示数值
驱动代码(16进制)
0
1
2
3
4
5
6
7
8
9
C0H
F9H
A4H
B0H
99H
92H
82H
F8H
80H
90H
3.4.2时钟电路
MCS-51单片机芯片内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
当使用内部振荡电路时,XTAL1和XTAL2引脚外接石英晶体和微调电容,如图所示,图中C2、C3大小一般为30pF。
还加了复位/备用电源引脚的接线方法,任何单片机在工作之前都要进行复位,以便CPU以及其他功能部件都处于一个确定的初始化状态,并从这个状态开始工作,也就是程序开始执行之前,单片机做好准备工作。
如何进行复位呢?
只能在单片机的RST引脚上保持两个机器周期(24个时钟周期)的高电平即可对单片机实现复位操作。
当主电源VCC发生掉电或者是电压降低到电平规定值时,VPD上外接的备用电源自动启用,为单片机内部RAM提供电源,以保护片内RAM中的信息不丢失,使系统在恢复上电后能正常运行。
图3-5时钟电路
3.4.3复位电路
AT89C51的复位是由外部的复位电路实现的。
复位电路通常采用上电复位和按钮复位两种方式。
在此次设计中,我使用了上电复位方式。
上电复位是通过外部复位电路的电容充电来实现的。
图3-6复位电路
3.5系统整体设计电路
结合各部分设计电路,得到交通灯硬件线路如下图所示:
图3-7硬件线路图
3.6系统软件功能设计
3.6.1程序设计思路
在这部分我使用了数码管动态显示方式来显示数据。
所谓动态显示方式,就是在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输出相应为要显示的字符的段码。
这样,在同一时刻,LED中只有选通的那位显示出字符,而其他位则是熄灭的。
如此循环下去,就可以使各位显示出将要显示的字符。
设计思路如3-8所示:
图3-8LED显示流程图
3.6.2交通灯程序及设计思路
在这部分我设置南北方向通行,东西方向禁行为初始状态,持续时间为55s。
接下来黄灯闪烁5s,然后南北方向禁行,东西方向通行,持续时间仍为55s,最后黄灯闪烁5s,回到初始状态。
如此循环,程序流程图如图3-9所示。
图3-9交通灯程序流程图
3.6.3紧急情况程序及设计思路
当需要应对特殊情况时,在人为控制下,程序由中断入口地址切换到中断程序,根据实际情况的不同切换到不同的中断子程序,当紧急情况处理完,由人为控制返回原程序。
程序流程图如图3-10所示。
图3-10紧急情况程序设计流程图
4Proteus与KeilC51的操作
4.1KeilC51单片机软件开发系统
KeilC51工具包的整体结构中,其中uVision与Ishel1分别是C51forWindows和forDOS的集成开发软件(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编译器编译C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.obj)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由0H51转换成标准的Hex文件,以供调试器dScope51和tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存储器如EPROM中。
采用KEIL开发的89C51单片机应用程序步骤:
1.在uVision集成开发环境中创建新项目(Project),扩展文件名.UV2并为该项目选定合适的单片机CPU器件(本设计采用ATMEL公司下的AT89C51)
2.用uVision的文本编辑器编写源文件,可以是汇编文件(.ASM),也可以使C语言文件(扩展名.C),并将该文件添加到项目中去。
一个项目文件可以包括多个文件,除了源程序文件外,还可以是库文件、头文件或文本说明文件。
3.通过uVision2的相关选择项,配置编译环境、连接定位器以及Debug调试器的功能。
4.对项目中的源文件进行编译连接,生成绝对目标代码和可选的HEX文件,如果出现编译连接错误则返回到第2步,修改源文件中的错误后重构整个项目。
5.对没有语法错误的程序进行仿真调试,调试成功后将HEX文件写入到单片机应用系统的ROM中。
4.2单片机系统PROTEUS设计与仿真过程
Proteus强大的单片机系统设计与仿真功能,使它可成为单片机系统应用开发和改进手段之一。
全部过程都是在计算机上通过Proteus来完成的。
其过程一般也可分为三步:
1.在ISIS平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气检测等。
简称Proteus电路设计。
2.在Keil平台上进行单片机系统程序设计、编译、汇编编译、代码级调试,最后生成目标代码文件(*.hex)。
简称Proteus源程序设计和生成目标代码文件。
3.在ISIS平台上将目标代码文件加载到单片机系统中,并实现单片机系统的实时交互、协同仿真。
它在相当程度上反映了实际单片机系统的运行情况。
简称Proteus仿真。
4.3仿真结果
将在Keil平台上生成目标代码文件(*.hex)加载到单片机系统中,点击运行按钮,运行结果显示如图4-1所示。
图4-1仿真图
开始运行后,南北方向通行,东西方向禁行,同时数码管从60显示,每隔一秒数码管减一,当减到0时,四路的黄灯开始闪烁,数码管同时从5开始减一,减到0时,南北方向禁行,东西方向通行,同时数码管从60显示,每隔一秒数码管减一,当减到0时,四路的黄灯开始闪烁,数码管同时从5开始减一,减到0时,返回初始状态,再没有外部中断的情况下如此循环下去。
图4-2四个方向禁行
K1为外部中断按钮,当按下K1时,数码管不再显示数,黄灯闪烁五秒后,四路灯都为红色。
当按下复位开关后,返回到初始状态。
图4-3南北通行东西禁行
K2为外部中断按钮,当按下K2时,数码管不再显示数,黄灯闪烁五秒后,南北方向保持通行,东西方向保持禁行。
当按下复位开关后,返回到初始状态。
图4-4南北禁行东西通行
K3为外部中断按钮,当按下K3时,数码管不再显示数,黄灯闪烁五秒后南北方向保持禁行,东西方向保持通行。
当按下复位开关后,返回到初始状态。
图4-5延长四个方向通行时间
K4为外部中断按钮,当按下K4时,南北东西方向的通行时间均延长至120s。
当按下复位开关后,返回到初始状态。
5总结
这次实习让我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。
让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。
通过这次课程设计我感觉到要想做成功,必须花时间多做准备,查阅大量资料,每个过程都很繁琐,都要认真地分析每一步每一个模块要实现大的功能,然后分步进行编写调试,最后整合成在一起。
这次完成了对单片机的整体设计,更加了解到单片机的各项功能和需要注意的问题,加深了对单片机的了解。
这次实习虽然时间不长但是我学到了很多东西,让我明白了无论做任何事情首先态度要端正,拥有一个好的态度就有一个好的开始。
在实习的过程中我也懂得耐心和细心的重要性,理论与实践结合的意义。
6参考文献
[1]彭为等。
单片机典型系统设计实例精讲[M]。
北京:
电子工业出版社,2006
[2]张毅刚等。
单片机原理与应用设计[M]。
北京:
电子工业出版社,2008
[3]王义军。
单片机原理及应用习题与实验指导书[M]。
北京:
中国电力出版社,2006
[4]刘乐善。
微型计算机接口技术及应用[M].武汉:
华中科技大学出版社,2000
[5]陈明荧。
8051单片机课程设计实训教材[M]。
北京:
清华大学出版社,2004
[6]杨莉。
基于单片机控制的步进电机转速控制系统[J]。
南昌工程学院学报,2005
7附录
汇编程序如下:
ORG0000H
LJMPMAIN
ORG0003H
LJMPDIP0
ORG000BH
LJMPTT0
MAIN:
MOVR4,#20
MOV40H,#00H
MOV44H,#00H
MOV45H,#00H
MOV46H,#00H
MOV47H,#00H
MOVR0,46H
CJNER0,#01H,XX
MOV41H,#04H
MOV42H,#08H
MOV43H,#08H
XX:
MOV41H,#09H
MOV42H,#03H
MOV43H,#09H
MOVTH0,#3CH
MOVTL0,#0B0H
MOVTMOD,#01H
SETBET0
SETBEX0
SETBIT0
SETBEA
SETBTR0
MOVP1,#00H
SETBP1.3
SETBP1.7
PLY:
MOVR0,45H
CJNER0,#01H,YY
CLRP1.1
CLRP1.2
CLRP1.0
AJMPPLY
YY:
CLRP1.1
CLRP1.2
SETBP1.0
MOVDPTR,#TAB
MOVA,41H
MOVCA,@A+DPTR
MOVDPTR,#7FFFH
MOVX@DPTR,A
LCALLDEL2MS
CLRP1.0
SETBP1.1
CLRP1.2
MOVDPTR,#TAB
MOVA,42H
MOVCA,@A+DPTR
MOVDPTR,#7FFFH
MOVX@DPTR,A
LCALLDEL2MS
CLRP1.0
CLRP1.1
SETBP1.2
MOVDPTR,#TAB
MOVA,43H
MOVCA,@A+DPTR
MOVDPTR,#7FFFH
MOVX@DPTR,A
LCALLDEL2MS
AJMPPLY
TT0:
CLREA
PUSHAcc
SETBEA
MOVTL0,#0B0H
MOVTH0,#3CH
DJNZR4,RET1
MOVR4,#20
MOVR0,43H
CJNER0,#09H,L0
MOVR0,42H
CJNER0,#09H,L0
MOVR0,41H
CJNER0,#09H,L0
MOVR0,40H
CJNER0,#00H,L1
LCALLS0
INC40H
LJMPL0
L1:
MOVR0,40H
CJNER0,#01H,L2
LCALLS1
INC40H
LJMPL0
L2:
MOVR0,40H
CJNER0,#02H,L3
LCALLS0
INC40H
LJMPL0
L3:
LCALLS2
MOV40H,#00H
L0:
INC41H
MOVR0,44H
CJNER0,#01H,L4
CPLP1.5
L4:
MOVR0,41H
CJNER0,#0AH,RET1
MOV41H,#00H
INC42H
MOVR0,42H
CJNER0,#0AH,RET1
MOV42H,#00H
INC43H
MOVR0,43H
CJNER0,#0AH,RET1
MOV43H,#0AH
RET1:
CLREA
POPAcc
SETBEA
RETI
DIP0:
CLREA
PUSHPSW
PUSH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机课程设计任务书Proteus 及KEIL仿真软件基于单片机的城市交通灯控制系统设计 单片机 课程设计 任务书 Proteus KEIL 仿真 软件 基于 城市 交通灯 控制系统 设计