找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8605|回复: 0
打印 上一主题 下一主题
收起左侧

交通信号灯模拟控制系统设计单片机课程设计论文

[复制链接]
跳转到指定楼层
楼主
广州商学院课程论文(设计)

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

——交通信号灯模拟控制系统设计
课程名称
单片机原理及应用课程设计
姓名:
黄新程
学号:
201506100013
学院:
信息技术与工程学院
专业班级:
物联网工程1501
指导教师:
梁建军

6月1日

摘要

交通信号灯维护城市交通安全,使城市交通有序地、快速地运行的一种工具。本文采用了一种基于单片机的交通信号灯模拟控制系统的设计方案,实现模拟交通灯运行的例子。该系统模拟现实生活中十字路口的通行指示,路灯倒计时、一道有车而另一道无车时,使有车车道放行和紧急车辆通过等功能。本系统中采用STC89C52芯片为中心器件来设计交通灯控制电路,结合两位八段共阳极数码管显示倒计时时间的数码管电路,交通灯显示电路,晶振电路,复位电路以及按键电路等模块组成。通过软件编程、焊接电路与硬件调试,实现红、黄、绿灯电亮时间以及两位数码管显示倒计时,三种颜色灯交替点亮以及紧急情况下的处理功能。

下面结合上学期的单片机原理的课程知识来完成这一个课程设计。本系统是一个实际对交通信号灯模仿的案例,采用标准的软件开发过程,包括硬件系统的设计、软件系统的设计、系统调试结果等步骤。

目录

摘要
1              课程论文内容与要求:
2              硬件系统的设计
2.1              各元器件选择及其功能介绍
2.2              STC89C5X
2.3              单片机最小系统
2.4              紧急通行模块
2.5              忙等通行模块
2.6              总电路图
3              软件系统的设计
3.1              概要设计
3.1.1              程序流程图
4              系统调试
4.1              功能测试
4.1.1              正常运行模块
4.1.2              紧急通行模块
4.1.3              忙等通行模块
5              收获与体会
附录
源程序清单
参考文献

  • 软件系统的设计
    • 概要设计
      • 程序流程图

图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:元器件列表

序号
元件名称
型号
数量/个
用途
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
控制电路


  • STC89C5X

STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

STC89C52RC是STC89系列单片机中应用较为广泛的一种型号,内部的8KB存储器用于存放可编程控制器监控程序。

STC89C52RC单片机的40条引脚按功能来分,可以分为3部分,电源及时钟引脚、控制引脚和输入/输出引脚。

图2-1 89C52单片机引脚图

STC89C52单片机引脚功能介绍:

(见附件)

P3口功能表:
表2P3口功能表

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读信号


STC89C52内部结构图:

图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  交通灯总电路图

总体接线说明:

  •        交通信号灯指示电路部分,STC89C52芯片的P1.0~P1.5接6个470Ω的限流电阻,然后在依次分别接到南北方向的绿、黄、红色的LED指示灯,东西方向的绿、黄、红色的LED指示灯(共阳级接法);
  •        STC89C52芯片的RST接复位电路;
  •        按键电路部分,STC89C52芯片的P3.0(RXD)、P3.1(TXD)、P3.2、P3.3分别接4个微动开关;
  •        STC89C52芯片的XTAL2、XTAL1、VSS0接晶振电路;
  •        STC89C52芯片的P2.0~P2.3接4个1KΩ的电阻,然后分别接到4个三极管的基极,发射极接Vcc,均接地,4个集电极分别依次接到南北方向数码管显示D1和东西方向的数码管显示的D2;
  •        STC89C52芯片的(引脚31)和复位电路的VCC相连;
  •        倒计时显示部分,STC89C52芯片的P0.0~P0.6接7个470Ω的电阻,然后均接到VCC电源端,同时STC89C52芯片的P0.0~P0.6分别依次直接接到所有数码显示器的a、b、c、d、e、f、g,DP置空;
  •        STC89C52芯片的Vcc接电源正极,GND接地。

[1]李正安,李登啸. MCS-51单片机程序设计技巧举例[J]. 自动化仪表,1991,(08):30-32.

[2]胡汉才. 单片机原理及其接口技术[M]. 清华大学出版社, 2010.

[3]楼然苗 ,李光飞. MCS-51系列单片机设计实例[J]. 单片机与嵌入式系统应用,2003,(02):82.


广州商学院课程论文(设计)答辩记录表

学院: 信息技术与工程学院       专业:物联网工程
答辩时间
2017年6月1日
答辩地点
六教202
学生姓名
黄新程
指导教师
梁建军
题  目
交通信号灯模拟控制系统设计
字数

指导老师对学生课程论文(设计)的陈述提出的问题及学生的回答情况:
  • 问:交通灯在忙等按钮按下之后是怎么变化的?
答:忙等按钮按下之后,交通灯通行方向会立即转变,转变后的时间和自然转变的时间一样。
  • 问:你的定时器定时的是多少毫秒?
答:50ms。
  • 问:你知道加1所花的时间是多少吗,怎么算的?
答:是晶振的频率分之一,就是通过晶振的频率算的。
  • 问:你程序的count++的作用是什么?
答:count++的作用只是作为一个开关来用的,当count%2=1时是紧急通车状态,当count%2=0时是正常运行状态。

指导老师签名:


记录员:姚锦晟                                            2017年 6 月 1 日


课程论文成绩评定表
指导老师评语:(评语50字左右,对论文选题、资料收集与处理、论证水平、写作能力和规范等进行评定。)

成绩评定:         


指导教师签名:
年     月     日



全部资料51hei下载地址:
http://www.51hei.com/bbs/dpj-101399-1.html


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶顶 踩踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表