题目: | 单片机原理及应用课程设计 |
——交通信号灯模拟控制系统设计 |
课程名称 | 单片机原理及应用课程设计 |
姓名: | 黄新程 |
学号: | 201506100013 |
学院: | 信息技术与工程学院 |
专业班级: | 物联网工程1501 |
指导教师: | 梁建军 |
6月1日
交通信号灯维护城市交通安全,使城市交通有序地、快速地运行的一种工具。本文采用了一种基于单片机的交通信号灯模拟控制系统的设计方案,实现模拟交通灯运行的例子。该系统模拟现实生活中十字路口的通行指示,路灯倒计时、一道有车而另一道无车时,使有车车道放行和紧急车辆通过等功能。本系统中采用STC89C52芯片为中心器件来设计交通灯控制电路,结合两位八段共阳极数码管显示倒计时时间的数码管电路,交通灯显示电路,晶振电路,复位电路以及按键电路等模块组成。通过软件编程、焊接电路与硬件调试,实现红、黄、绿灯电亮时间以及两位数码管显示倒计时,三种颜色灯交替点亮以及紧急情况下的处理功能。
下面结合上学期的单片机原理的课程知识来完成这一个课程设计。本系统是一个实际对交通信号灯模仿的案例,采用标准的软件开发过程,包括硬件系统的设计、软件系统的设计、系统调试结果等步骤。
目录
图3-1 交通灯程序总流程图
本设计采用C语言进行软件编程。文件中包含了定时器初始化函数Timer1Init()、方向切换函数changeEWpass()和changeNSpass()、紧急通行函数TrafficStop()等子程序块;主函数通过直接或间接的调用各个子程序块,使整个交通信号灯控制系统实现点亮红、黄、绿灯以及双位数码管显示倒计时,紧急情况下的交通紧急处理功能。
图4-1 南北通行图
图4-2 东西通行图
图4-3 紧急通行状态图
轻按【紧急】按钮后,表示发生紧急情况需进行应急处理,交通信号灯南北方向与东西方向强制禁止行使(红灯亮),每个方向的数码管倒计时一直显示--,直到再次按下【紧急】按钮取消紧急情况。
图4-4 转换后南北通车图
图4-5 转换后东西通车图
轻按【交换】按钮后,表示发生忙等情况需进行处理,交通信号灯原为南北方向通行的将会转换成东西方向通行,南北方向将会被禁止行使,数码管倒计时将会转换成自然转变的倒计时时间,再次按下【交换】按钮将会再次进行忙等情况处理。
通过这次课程设计,让我对单片机的应用有了更为深刻的了解。单片机最大的优势是体积小,低功耗,控制能力强,扩展灵活,微型化。本论文对用51单片机实现的交通信号灯模拟控制系统设计作了详细的介绍。
一开始的我,对51单片机只是一知半解,而对于自己能够自己焊出一个单片机系统的能力来说,自己一开始更是不敢相信,通过在网上搜索的大量的资料,以及自己在之前已经接触过焊接的事物来说,这门交通信号灯模拟控制系统设计更是让我跃跃欲试,根据自己的经验,自己买原件,自己焊接,自己写程序,从头到位,一气呵成。虽然一开始自己写的代码有很多漏洞,但是经过自己的慢慢调试与完善,一个较为可观的成品出炉了。
对于一个课程,不能只是单调的听课完成作业,还要主动去学习课外的专业知识,到网上阅览大量的资料,以帮助学习和扩充自己的知识面。作为一个学计算机的学生,我们更加需要通过大量的实践,使自己得到更多的提升,此次实验不但提高了我们实践的能力和理论水平,而且对于我们认识掌握各种操作技巧具有重大意义,使我们的综合素质得到了很大的提高,它对我在以后的学习和生活中将会起到不可估量的作用。
交通信号灯模拟控制系统设计
设计要求:用51单片机设计一个交通信号灯模拟控制系统,晶振采用12MHz。
具体要求如下:
(1)正常情况下,A、B道(A、B道交叉组成十字路口,A是主道,B是支道)轮流放行,A道绿灯1min(其中10s用于黄灯),B道绿灯放行30s(其中5s用于黄灯)。
(2)一道有车而另一道无车时,使有车车道放行(用两个按键开关控制)。
(3)有紧急车辆通过时,A、B道均为红灯(用按键开关控制)。
(4)要求由数码管显示红绿灯倒计时时间。
序号 | 元件名称 | 型号 | 数量/个 | 用途 |
1 | 单片机 | 89C52 | 1 | 控制核心 |
2 | 晶振 | 12MHZ | 1 | 晶振电路 |
3 | 电容 | 30pF | 2 | 晶振电路 |
4 | 电解电容 | 10uF | 1 | 复位电路 |
5 | 电阻 | 10K | 1 | 复位电路 |
6 | 发光二极管 | LED | 12 | 红、黄、绿灯 |
7 | USB转TTL | 1 | 接入电源 | |
8 | 电阻 | 470Ω | 6 | LED |
9 | 电阻 | 470Ω | 7 | 数码管电路 |
10 | 电阻 | 1KΩ | 4 | 数码管驱动 |
11 | 数码管 | GC-3261BS | 2 | 显示电路 |
12 | 按键 | 4 | 按键电路 | |
13 | 三极管PNP | 8550 | 4 | 数码管驱动电路 |
14 | 自锁开关 | 1 | 控制电路 |
STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52RC是STC89系列单片机中应用较为广泛的一种型号,内部的8KB存储器用于存放可编程控制器监控程序。
STC89C52RC单片机的40条引脚按功能来分,可以分为3部分,电源及时钟引脚、控制引脚和输入/输出引脚。
STC89C52单片机引脚功能介绍:
(见附件)
P3口各个位的第二功能 | ||
P3口的位 | 第二功能 | 说明 |
P3.0 | RXD | 串行数据接收口 |
P3.1 | TXD | 串行数据发射口 |
P3.2 | INT0 | 外部中断0输入 |
P3.3 | INT1 | 外部中断1输入 |
P3.4 | T0 | 计数器0计数输入 |
P3.5 | T1 | 计数器1计数输入 |
P3.6 | WR | 外部RAM写信号 |
P3.7 | RD | 外部RAM读信号 |
图2-2 STC89C52内部结构图
复位电路的作用
在复位过程中,控制CPU的复位状态:这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。
基本的复位方式
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。本系统中单片机系统的复位方式为手动按钮复位。
手动按钮复位
手动按钮复位需要人为在复位输入端RST上加入高电平(图1)。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如图所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
图2-3 复位电路图
在MCS - 51单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。
在内部方式时钟电路中,必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30pF,晶振的频率取值在1.2MHz~12MHz之间。对于外接时钟电路,要求XTAL1接地,XTAL2脚接外部时钟,对于外部时钟信号并无特殊要求,只要保证一定的脉冲宽度,时钟频率低于12MHz即可。本系统采用的是12MHz石英晶振。
晶体振荡器的振荡信号从XTAL2端送入内部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号P1和P2供单片机使用。时钟信号的周期称为状态时间S,它是振荡周期的2倍,P1信号在每个状态的前半周期有效,在每个状态的后半周期P2信号有效。CPU就是以两相时钟P1和P2为基本节拍协调单片机各部分有效工作的。
图2-4 时钟电路图
LED灯显示电路:
LED灯电路由6个LED灯(2个红LED灯,两个黄LED灯,两个绿LED灯)与6个阻值为470欧姆的电阻组成,LED的正极与Vcc+相连,LED的负极分别与电阻串联再连接到STC89C52芯片的P1端口(P0.0—P0.5)。
2-5 LED灯显示电路图
数码管显示电路:
数码管普遍地用于直观地显示数字系统的运行状态和工作数据,点亮数码管的方法有静态和动态两种,本系统中采用的是动态数码管显示。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效.这样一来,就没有必要每一位数码管配上一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示,所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用数码管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
2-6 数码管引脚图
本系统中采用的数码是二位八段共阳数码管,数码管a~f引脚与分别于阻值为470欧姆的上拉电阻串联,再连接到P0端口(P0.0—P0.6),其中dp引脚不作连线(不需要用到dp)。两个位选引脚1,引脚2分别与集电极相连,P2端口(P2.0—P2.3)串联一个阻值为1k的电阻再连接到8550三极管基极端,4个8550三极管的发射端接在电源Vcc上,组成两个方向的二位数码管显示电路。
2-7 数码管显示电路图
为了实现此功能,本系统利用到了51单片机中的P3.1端口。利用一个手动按钮开关接至单片机的P3.1端口,同时在软件设计时将其设定为每次都进行按键扫描,当其按下时,四方全为红灯,数码管只亮一根横线,当紧急情况过了之后,再次按下该按键回到原来的位置继续执行未完成的程序。
为了实现此功能,本系统再利用一个手动按钮接至单片机中的P3.2端口。当其按下时,如果是东西方向道路是红灯,而南北方向道路是绿灯,则将其置为东西是绿灯,南北是红灯;如果是东西方向道路是绿灯,而南北方向道路是红灯,则将其置为东西是红灯,南北是绿灯。两种情况都是执行完后,回到正常状态继续执行。
2-8 交通灯总电路图
总体接线说明:
[1]李正安,李登啸. MCS-51单片机程序设计技巧举例[J]. 自动化仪表,1991,(08):30-32.
[2]胡汉才. 单片机原理及其接口技术[M]. 清华大学出版社, 2010.
[3]楼然苗 ,李光飞. MCS-51系列单片机设计实例[J]. 单片机与嵌入式系统应用,2003,(02):82.
广州商学院课程论文(设计)答辩记录表
答辩时间 | 2017年6月1日 | 答辩地点 | 六教202 | |
学生姓名 | 黄新程 | 指导教师 | 梁建军 | |
题 目 | 交通信号灯模拟控制系统设计 | 字数 | ||
指导老师对学生课程论文(设计)的陈述提出的问题及学生的回答情况:
答:忙等按钮按下之后,交通灯通行方向会立即转变,转变后的时间和自然转变的时间一样。 | ||||
答:50ms。
答:是晶振的频率分之一,就是通过晶振的频率算的。 | ||||
答:count++的作用只是作为一个开关来用的,当count%2=1时是紧急通车状态,当count%2=0时是正常运行状态。 | ||||
指导老师签名: | ||||
指导老师评语:(评语50字左右,对论文选题、资料收集与处理、论证水平、写作能力和规范等进行评定。) 成绩评定: 指导教师签名: 年 月 日 |
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |