资源描述
目 录
一 引 言 1
二 设计任务和要求 1
2.1 设计任务 1
2.2 设计要求 1
三 方案总体设计 2
3.1 显示时间方案选择 2
3.2 总体设计 2
3.3总体设计 2
四 硬件设计 4
4.1 单片机最小系统 4
4.1.1 STC89C52单片机特征参数 4
4.1.2 STC89C52RC关键引脚功效 4
4.1.3 STC89C52RC中止源 5
4.1.4 时钟电路 5
4.1.5 复位电路 6
4.2 数码换显示电路 6
4.3 红绿灯显示电路 8
4.4 整体电路 9
五 软件设计 10
5.1 KEIL C介绍 10
5.2 程序步骤图 10
5.3 keil调试过程 11
六 系统仿真 13
6.1 proteus仿真软件介绍 13
6.2 仿真调试过程 13
七 设计总结 15
参 考 文 献 16
基于单片机交通灯设计
一 引 言
交通在大家日常生活中占相关键地位,伴随大家社会活动日益频繁,这点更是表现淋漓尽致。交通信号灯出现,使交通得以有效管制,对于疏导交通流量、提升道路通行能力,降低交通事故有显著作用。本系统采取单片机89C52为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。本设计就是采取单片机模拟十字路口交通灯多种状态显示和倒计时时间。
本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、复位电路等几大部分组成。系统除基础交通灯功效外,还含有倒计时功效,很好模拟实现了十字路口可能出现情况。
软件上采取KEILC编程,关键编写了主程序,LED数码管显示程序,中止程序延时程序等。经过整机调试,实现了对十字路口交通灯模拟。中国车辆数量不停增加,交通控制在未来交通管理中起着越来越关键作用。智能交通灯管理比重修一条马路不管在经济、交通运行速率上全部有很好效益、愈加节省资源。使交管人员有更多精力投入到管理整个城市交通控制,带来更大经济和社会效益,为发明美好城市交通形象发挥更多作用。
二 设计任务和要求
2.1 设计任务
经过单片机课程设计,熟练掌握汇编语言编程方法,将理论联络到实践中去,提升我们动脑和动手能力;经过交通信号灯控制系统设计,掌握定时/计数器使用方法,和简单程序编写,把理论知识和实践知识相结合,充足发挥个人能力,并在实践中得到锻炼。
2.2 设计要求
设计一个能够控制十二盏交通信号灯模拟系统,:利用单片机定时器定时,令十字路口红绿灯交替点亮和熄灭,并用LED灯显示倒计时间。
三 方案总体设计
此次课程设计关键任务是设计复杂十字路口交通信号灯控制系统。本模拟交通信号灯系统利用STC89C52单片机作为关键元件,实现信号灯对路面交通智能控制。从一定程度上处理了交通路口堵塞、车辆停车等候时间不合理等问题。系统含有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛应用前景。
3.1 显示时间方案选择
方案一:采取数码管显示,半导体数码管不仅含有工作电压低、体积小、寿命长、可靠性高等优点,而且响应时间短(通常不超出0.1us),亮度也比较高。
方案二:采取液晶显示,液晶显示器最大优点是功耗极小。不过,因为它本身不会发光,仅仅靠反射外界光线显示字形,所以亮度很差。
经过上述两种方案对比,显然能够发觉,对于交通灯时间显示,数码管显示愈加适合,可靠,所以选择方案一。
3.2 总体设计
总体设计图1所表示。
图1 总体设计图
3.3总体设计
首先了解实际交通灯改变情况和规律。假设一个十字路口图(2)所表示东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色指示灯,指挥车辆和行人安全通行。红灯亮严禁通行,绿灯亮许可通行。黄灯亮提醒大家注意红、绿灯状态立即切换,且黄灯燃亮时间为东西、南北两干道公共停车时间。初始状态1东西绿灯通车,南北红灯亮,严禁通车,人行道通行,行人可过。过一段时间(10秒)后,转状态2,东西方向还是绿灯亮,南北方向还是红灯亮,黄灯开始闪烁,黄灯闪几下(5秒),即提醒红绿灯状态将发生转换。再转状态3,南北方向绿灯亮通车,东西方向红灯亮,即此方向严禁通车,人行道可通行。黄灯熄灭后转状态4,南北方向还是绿灯,东西方向还是为红灯亮,闪几下黄灯(5秒),提醒红绿灯显示状态将发生转换。一段时间后,又循环至状态1。列出交通信号灯状态表如表1所表示(1表示灯亮,0表示灯灭)。
图2 十字路口示意图
表1 红绿灯状态表
状态
东
西
南
北
红 黄 绿
红 黄 绿
红 黄 绿
红 黄 绿
1
0 0 1
0 0 1
1 0 0
1 0 0
2
0 1 1
0 1 1
1 1 0
1 1 0
3
1 0 0
1 0 0
0 0 1
0 0 1
4
1 1 0
1 1 0
0 1 1
0 1 1
对于交通信号灯来说,应该有东西南北共四组灯,但因为同一道上两组信号灯显示情况是相同,而且,东西方向和南北方向显示状态相反,所以只要用一组就行了,所以,可采取单片机内部I/O口上P1口中3个引脚即可来控制3个信号灯。经过编写程序,实现对发光二极管控制,来模拟交通信号灯管理。每延时一段时间,灯显示情况全部会按交通灯显示规律进行状态转换。
四 硬件设计
4.1 单片机最小系统
单片机最小系统由一块单片机、一个时钟电路和一个复位电路组成。图3所表示。
图3 最小系统结构图
4.1.1 STC89C52单片机特征参数
STC89C52RC单片机8K字节程序存放空间;512字节数据存放空间;内带2K字节EEPROM存放空间;可直接使用串口下载;8K字节程序存放空间;256字节数据存放空间。
l 增强型8051单片机,6时钟/机器周期和12时钟/机器周期能够任意选择,指令代码完全兼容传统8051.
l 工作电压:5.5V~3.3V(5V 单片机)/3.8V~2.0V(3V 单片机)
l 工作频率范围:0~40MHz,相当于一般80510~80MHz,实际工作频率可达48MHz;
l 用户应用程序空间为8K字节;
l 片上集成512字节RAM;
l 通用I/O口(32个),复位后为:P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻,设计电路时需要注意这点。
l 共3个16位定时/计数器,分别为T0,T1,T2.
4.1.2 STC89C52RC关键引脚功效
STC89C51引脚图图4所表示,其关键芯片功效以下所表示。
图4 STC89C52引脚图
l VCC:电源电压
l GND:接地
l P0口:P0口是一组8位双向I/O口。P0口即可作地址/数据总线使用,又能够作为通用I/O口使用。
l P1口:P1是一个带内部上拉电阻8准位双向I/O口,P1作为通用I/O口使用。
l P2口:P2是一个带有内部上拉电阻8 位准双向I/O口
l P3口:P3口是一组带有内部上拉电阻8 位准双向I/0口
l RST:复位输入
l PSEN(————)程序储存许可(PSEN(————))输出是外部程序存放器读选通信号
l EA(——)/VPP:外部访问许可
l XTAL1:振荡器反相放大器及内部时钟发生器输入端
l XTAL2:振荡器反相放大器及内部时钟发生器输:出端
4.1.3 STC89C52RC中止源
89C52有6个中止源,它们是两个外中止INT0(P3.2)和INT1(P3.3)、三个片内定时/计数器溢出中止TF0,TF1,TF2、一个是片内串行口中止TI或RI,这多个中止源由TCON和SCON两个特殊功效寄存器进行控制。
4.1.4 时钟电路
此次设计时钟电路由一个12MHz晶振和两个22PF陶瓷贴片电容组成。89C52芯片内部有一个高增益反相放大器,用于组成振荡器。引线XTAL1和XTAL2分别为反向放大器输入和输出,两端跨接石英晶体及两个电容就可组成稳定自激振荡器。而电容器C1,C2起稳定振荡频率,并对振荡频率有微调作用,C1和C2可在20-100PF之间取值,这里取22PF。电路图5所表示。
图5 时钟电路
4.1.5 复位电路
手动按钮复位需要人为在复位输入端RST上加入高电平。通常采取措施是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc+5V电平就会直接加到RST端。手动按钮复位电路如所表示。因为人动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位时间要求。
通常采取手动复位和上电自动复位结合,其电路图6所表示。
图6 复位电路
4.2 数码换显示电路
显示电路既能够选择液晶显示器,也能够选择数码管显示。我采取是数码管显示电路。用1个二位共阴极数码管显示,LED是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,依据各管亮暗组合成字符。共
阴数码管码表为如表2所表示。
表2 共阴数码管码表
0
1
2
3
4
5
6
7
8
9
0x3f
0x06
0x5b
0x4f
0x66
0x6d
0x7d
0x07
0x7f
0x6f
在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,不过占用端口比较多;动态显示所使用端口比较少,能够节省单片机I/O口。
LED数码管显示原理:
数码管有段选和位选两个使能端,因为采取共阴极数码管,要把数码管点亮,就必需给位选选通,至于显示什么数字,只需给段选输入数据即可。
经过给52单片机P1口送入初始值,并用P1口来控制段选位,P3.5、P3.6口来控制位显来实现动态显示,来显示各灯所在状态显示时间。
8052单片机P3口三个端口接主干道红、绿、黄灯,显示燃亮情况,经过两个八段显示器显示每个灯燃亮时间,使灯和显示器时间同时。
在设计中,我们采取LED数码管动态显示,用P1口驱动显示。因为P1口输出级时,数码管显示亮度不够,依据以前学习知识及学长们经验,只需给P1口强势上拉1K排阻,经试验验证,P1口上拉1K排阻后,数码管显示较亮。电路图图7所表示。
图7 数码管显示电路
其中单片机P口和数码管各引脚之间连接关系分别为:
Ø P1.0------a
Ø P1.1------b
Ø P1.2------c
Ø P1.3------d
Ø P1.4------e
Ø P1.5------f
Ø P1.6------g
Ø P1.7------h
Ø P3.5------2
Ø P3.6------1
其中a,b,c,d,e,f,g,h在数码管上位置图8所表示。
图8 数码管
4.3 红绿灯显示电路
在此次交通灯设计中,主干道上东西南北四个方向各三盏灯,分别是红灯、黄灯、绿灯。因为东西方向和南北方向信号相反,红灯和绿灯信号相反,故只需3个端口即可控制这12盏灯亮灭。这些灯由三种颜色即红、黄、绿发光二极管替换,采取共阳极接法,故只需选择性给这3个端口低电平,对应二极管就被点亮。显示电路图9(当然,其中数码管不包含在内)所表示。
图9 红绿灯显示电路
4.4 整体电路
将各模块电路整合到一起就形成了系统工作电路,图10所表示。在altium designer 中画出电路原理图,检验电路没有错误后,可在proteus环境下进行仿真,就可看到整个系统工作状态,即可模拟出实际交通灯工作状态。
图10 整个电路工作原理图
五 软件设计
5.1 KEIL C介绍
KEILC51标准C编译器为8051微控制器软件开发提供C语言环境,同时保留了汇编代码高效,快速特点。C51编译器功效不停增强,使你能够愈加贴近CPU本身,及其它衍生产品。C51已被完全集成到uVision2集成开发环境中,这个集成开发环境包含:编译器,汇编 器,实时操作系统,项目管理器,调试器。uVision2IDE可为它们提供单一而灵活开发环境。C51V7版本是现在最高效、灵活8051开发平台。它能够支持全部8051衍生产品,也能够支持全部兼容仿真器,同时支持其它第三方开发工具。
5.2 程序步骤图
l 主程序步骤图
图11 主程序图
图11所表示,当整个系统电路开始正常工作时,电路运行状态将根据程序框图次序运行下去,最终进入循环状态,即可反应交通灯运行状态。
l 中止服务程序步骤图
当系统电路上电后,系统初始化话后,程序从主程序开始进入中止程序,当计数溢出时,中止产生,红绿灯状态将发生转换,接着进入下一个状态,最终进入循环。中止程序图12所表示。
图12 中止服务程序步骤图
5.3 keil调试过程
在Keil中将程序代码编完后,点击rebuild键,编译看一开始,出现了好多个错误,经过很久调试和更改后,编译时没报错,不过有些电路功效还是没弄出来,最终靠近快三天时候才将整个程序编出,最终将程序调试出来了。编译成功后,先在keil中进行调试仿真。先点击Start/Stop Debug Session 键后,显示界面图13所表示。
图13 调试第一步
再点击Peripherals键,选择I/O-Ports->Port3,再点击几下Step键,显示图14所表示。
图14 调试第二步
因为P3.5,P3.6分别控制共阴数码管十位和个位,上图显示是P3.6口改变,说明数码管个位在发生改变,最终再连续点击数下Step键,显示图15,如上显示是P3.5改变,即数码管十位数在改变。
图15 调试第三步
在keil中调试完成后,接着深入软件测试,即可进行电路仿真。
六 系统仿真和实现
6.1 proteus仿真软件介绍
Proteus是世界上著名EDA工具仿真软件,从原理图布图、代码调试到单片机和外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品完整设计。是现在世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,又增加了Cortex和DSP系列处理器,并连续增加其它系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等。
6.2 仿真调试过程
在Keil中调试完成后,再到proteus中进行仿真。首先在proteus中需要元件依次找出来,依据电路所需要实现功效画好电路原理图,当检验电路完全没有错误后,双击芯片,再将在keil中生成hex文件导入芯片,接着点击play键开始进行电路仿真。其中,此次交通灯整个中循环共有四个工作状态。
状态一:点击play键,电路开始进行仿真,此时红绿灯显示情况为:东西方向为绿灯亮,南北方向为红灯亮,即东西方向通行,南北方向严禁通行,交通灯显示状态图16所表示。
图16 状态一
状态二:在开始仿真经过10秒后,黄灯开始闪烁,红绿灯状态将发生改变,即东西方向、南北方向通行状态立即发生改变,显示情况图17。
图17 状态二
状态三:在状态二即黄灯开始闪烁5秒后,东西方向和南北方向红绿灯状态发生改变,即通行状态发生改变,显示情况图18。
图18 状态三
状态四:在状态三进行10秒种过程中,东西方向、南北方向红绿灯显示状态不变,10秒钟以后,黄灯开始闪烁,即东西方向,南北方向显示状态将发生改变,也就是说通车状态将发生转换。状态四某一时刻状态图19所表示。
图19 状态四
黄灯闪烁5秒后,现行状态立即发生改变,将进入状态一,即开始进入循环。
七 设计总结
经过努力,最终将交通灯设计出来了。立即,整个人感觉轻松多了。现在回想起来,还真是别有一番滋味。能够说,这一个星期,很辛劳,但收获也很大。
课程设计让我把以前学习到知识得到巩固和深入提升认识,对已经有知识有了更深入了解和认识,动手实践能力也有了一定提升。在此,因为本身能力有限,在课程设计中碰到了很多问题,但经过查阅相关书籍、资料和和周围同学及学长们交流后全部得以一一处理。
因为使用是单片机作为关键控制元件,使得电路可靠性比较高,功效也比较强大,而且能够随时更新系统,进行不一样状态组合。不过在我们设计和调试过程中,也发觉了部分问题,譬如红绿灯规则效率还不是很高,设计系统电路功效不是很健全等等,这全部需要在实践中深入完善。
当然,经过这次课程设计,我也发觉了本身很多不足之处,在以后学习中,我会不停完善自我,不停进取,能使自己在单片机编程这方面有一个大发展。
参 考 文 献
[1] 单片机应用系统设计[M].北京:北京航空航天大学出版社,1990:34-35.
[2] 单片微型计算机原理接口及应用[M].北京:北京邮电大学出版社,:126-129.
[3] 单片机原理和应用技术[M].北京:清华大学出版社,:138-141.
[4] MCS-51单片机原理和应用[M].天津:天津大学出版社,:55-56.
[5] 单片机基础[M].北京:北京航空航天大学出版社,:44-47.
[6] 集成化智能传感器原理和应用[J].北京:电子工业出版社,:74-81.
[7] 单片机原理及应用[M].北京:机械工业出版社,:174-180.
[8] MCS-51系列单片机原理和接口技术[M].北京:人民邮电出版社,:128-129.
[9] 单片机实用教程[M].北京:北京航空航天大学出版社,:11-12.
[10] 单片微型计算机原理和接口技术.武汉:华中理工大学出版社,1999:64-71.
[11] 单片机原理和接口技术[M] . 北京: 北京航空航天大学出版社, .5.
[12] 51系列单片机设计实例[M] . 北京. 北京航空航天出版社, .3.
[13] 单片机高级教程[M] . 北京. 北京航空航天大学出版社, .
[14] MCS-51单片机原理及应用[M]. 天津. 天津大学出版社. .3.
[15] 单片机试验和实践教程[M]. 北京. 北京航空航天大学出版社, .
[16] 单片机原理及接口技术[M] . 北京. 中国轻工业出版社, 1998.
[17] 数字电子技术基础[M]. 北京. 高等教育出版社, .
展开阅读全文