您好,欢迎来到微智科技网。
搜索
您的当前位置:首页基于单片机的红绿灯

基于单片机的红绿灯

来源:微智科技网
目录

第一章 概述 ..................................................................................................................................... 1

1.1 设计交通指示灯的必要性 ................................................................................................ 1 1.2 交通指示灯的国外发展现状 ............................................................................................ 1 1.3 本组交通灯要实现的功能 ............................................................................................... 2 第二章 方案设计 ............................................................................................................................. 3

2.1系统方案设计 ..................................................................................................................... 3 第三章 系统硬件器件 ..................................................................................................................... 4

3.1 STCC52单片机 ........................................................................................................... 4 3.2 proteus仿真 ........................................................................................................................ 5 3.3 元件清单 ............................................................................................................................ 6 第四章 程序设计 ............................................................................................................................. 7

4.1流程图 ................................................................................................................................. 7 4.2程序清单 ............................................................................................................................. 9 第五章 系统调试 ........................................................................................................................... 13

5.1 硬件调试 .......................................................................................................................... 13 5.2 软件调试 .......................................................................................................................... 13 小结与展望..................................................................................................................................... 17 参考文献......................................................................................................................................... 18 附录 ................................................................................................................................................ 19

第一章 概述

1.1 设计交通指示灯的必要性

由于我国经济的快速发展从而导致了汽车数量的猛增,大中型城市的城市交通,正面临着严峻的考验,从而导致交通问题日益严重,其主要表现如下:交通事故频发,对人类生命安全造成极大威胁;交通拥堵严重,导致出行时间增加,能源消耗加大;空气污染和噪声污染程度日益加深等。日常的交通堵塞成为人们司空见惯而又不得不忍受的问题。在这种背景下,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前的主要任务。

对交叉口实行科学的管理与控制是交通控制工程的重要研究课题,是保障交叉口的交通安全和充分发挥交叉口的通行能力的重要措施,是解决城市交通问题的有效途径。所以,改变和完善我国现有的交通系统已成为当务之急。

交通灯信号灯的出现是人类历史上的一次重大改革,使人类的聚居生活,产生了深远的影响。使交通得以有效管制,对于疏导交通流量,提高道路通行能力,减少交通事故有明显效果。如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。

1.2 交通指示灯的国外发展现状

当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。我国的交通灯发展从简单到复杂,实现的功能越来越多,目前,国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。加上一个倒计时的显示计时器来控制行车。使交通能够井然有序地运行。在十字路口安装交通灯已经成为控制交通运行的主要手段,根据不

1

停地点不同道路的车流运行量设置不同的时间,现在交通灯信号指示已经成了人们必不可少的工具。

1.3 本组交通灯要实现的功能

本课题的主要任务是设计采用单片机控制的交通指示灯,要求使用定时器完成交通指示灯的设计,这里采用定时器0的方式一来完成定时操作,交通指示灯的具体动作要求如下:东西向绿灯亮5秒后,黄灯闪烁,闪烁5次亮红灯,红灯亮后,南北向由红灯变成绿灯,5秒后南北向黄灯闪烁,闪烁5次后亮红灯,东西向绿灯亮,如此往复。

2

第二章 方案设计

2.1系统方案设计

(1)系统方案

采用40脚,片内带8kB Flash ROM 的STCC52单片机作为控制核心,信号灯模块接P0口,按以上系统构架设计,单片机端口资源刚好满足要求。设计框图如图2.1所示。

电源 P0 交通信号灯电路 STCC52 复位电路 时钟电路 RST EA存储器选择电路 XTAL1 XTAL2

图2.1 定时器控制交通指示灯系统结构图

(2)系统硬件

基于单片机的定时器控制交通指示灯系统的电路原理图如图3所示。系统由时钟电路、复位电路、存储器选择电路、电源和交通信号灯电路五部分组成。 (3)工作原理

12个LED灯与P0口连接,每两个相同颜色的LED灯接一个P0端口,总共用到6个端口。当接通电源时,12个发光二极管中东西向绿色LED灯亮5秒后,黄色的LED灯闪烁,闪烁5次亮红红色LED灯,红色LED灯亮后,南北向红色LED灯灭,绿色LED灯亮,5秒后南北向黄色LED灯闪烁,闪烁5次后亮红色LED灯,东西向绿色LED灯亮,如此往复。

3

第三章 系统硬件器件

3.1 STCC52单片机

STC系列单片机是MCS-51系列单片机的派生产品。它们在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,DIP40封装系列与8051为pin-to-pin兼容。STC系列单片机高速(最高时钟频率90MHz),低功耗,在系统/在应用可编程(ISP,IAP),不占用户资源。 a. 主电源引脚(2根)

VCC(Pin40):电源输入,接+5V电源 GND(Pin20):接地线 b.外接晶振引脚(2根)

XTAL1(Pin19):片内振荡电路的输入端 XTAL2(Pin20):片内振荡电路的输出端 c.控制引脚(4根)

RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。

ALE/PROG(Pin30):地址锁存允许信号。 PSEN(Pin29):外部存储器读选通信号。

EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。 d.可编程输入/输出引脚(32根)

STCC52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。

*********************************************

P0口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7 P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7 P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7 P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7

*********************************************

4

STCC52RC的管脚图(图3.1)如下:

图3.1 STCC52引脚图

3.2 proteus仿真

proteus原理及仿真电路

5

3.3 元件清单

元件型号 STCC52RC 10K电阻 470Ω电阻 四脚轻触开关 普通电容30uf 电解电容10uf 111.0592MHZ晶振 红色发光二极管 黄色发光二极管 绿色发光二极管 开关电源 插头 210电阻排 导线

6

原件数量 1 2 1 1 2 2 1 4 4 4 1 1 1 若干

第四章 程序设计

4.1流程图

利用12个LED灯与P0口连接,每两个相同颜色的LED灯接一个P0端口,总共用到6个端口。当接通电源时,12个发光二极管中东西向绿色LED灯亮5秒后,黄色的LED灯闪烁,闪烁5次亮红红色LED灯,红色LED灯亮后,南北向红色LED灯灭,绿色LED灯亮,5秒后南北向黄色LED灯闪烁,闪烁5次后亮红色LED灯,东西向绿色LED灯亮,如此往复。

(1)主程序

开始 设置T0为模式1 允许定时器T0溢出时提出中断请求 启动定时器0 等待定时中断 7

⑵中断程序

开始 设置计数初值 操作类型=1? Y N 东西向绿灯亮,南北向红灯亮 延时倍数+1 延时倍数=100? N Y 延时倍数清零,操作类型转换为2 操作类型=2? Y N 东西向黄灯闪烁,绿灯关闭 闪烁次数+1 闪烁次数=10? N Y 闪烁次数清零,操作类型转换为3 操作类型=3? Y N 东西向红灯亮,南北向绿灯亮 延时倍数+1 延时倍数=100? N Y 延时倍数清零,操作类型转换为4

8

N 操作类型=4? Y 南北黄灯闪烁,绿灯关闭 闪烁次数+1 闪烁次数=10? Y 闪烁次数清零,操作类型转换为1

N 4.2程序清单 (1)主程序: void main() {

TMOD=0x01; IE=0x82; TR0=1; while(1); }

(2)定时器中断程序: void t0_int ()interrupt 1

9

{

TH0=-50000/256; TL0=-50000%256; switch (operation_type) {

case 1:

red_a=0; red_b=1; yellow_a=0; yellow_b=0; green_a=1; green_b=0;

if(++time_count !=100)

return;

time_count=0; operation_type=2; break;

case 2:

if(++time_count !=8)

return;

time_count=0; yellow_a=!yellow_a;

10

green_a=0; if (++flash_count!=10)

return;

flash_count=0; operation_type=3; break;

case 3:

red_a=1; red_b=0; yellow_a=0; yellow_b=0; green_a=0; green_b=1;

if(++time_count !=100)

return;

time_count=0; operation_type=4; break;

case 4:

if(++time_count !=8)

return;

time_count=0;

11

yellow_b=!yellow_b; green_b=0; if (++flash_count!=10)

return;

flash_count=0; operation_type=1;

break;

} }

12

第五章 系统调试

5.1 硬件调试

(1)静态检查

根据硬件电路图核对了元器件的型号、极性,安装是否正确,检查硬件电路连线是否与电路原理图一致,检查电路元器件是否都已经连接好,用万用表一一测试。

(2)通电检查

先调试电源部分,整个电路只需要+5V的电压,将插头插入插座通过开关电源取+5V电。再用示波器检测单片机的复位和晶振电路是否有复位信号和振荡信号。

5.2 软件调试

操作步骤

1、添加元件到元件列表中:

本例要用到的器件有:元件中的单片机芯片ATC51、发光二极管LED、交通指示灯trafficlight、电阻Resistor。

具体为:STCC52RC、10K电阻、470Ω电阻、四脚轻触开关、普通电容30uf、电解电容10uf、111.0592MHZ晶振、红色发光二极管、黄色发光二极管、绿色发光二极管、开关电源、插头、210 电阻排、导线。

如图为模型选择工具栏:

在模型选择工具栏中选元件

,单击P按钮,出现挑选元件窗口,

通过下面介绍的两种方法筛选出所需的单片机芯片,双击将其放入元件列表;

方法1:如果知道器件的名称或名称中的一部分,可以在左上角的关键字搜索栏Keywords中输入,例如输入ATC51或C51,即可在Results栏中筛选出该名称或包含该名称的器件,双击Results栏中的名称“ATC51”即可将其添加到对象选择器。

如果不知道器件的名称,可逐步分类检索。在Category(器件种类)下面,找到该器件所在的类别,如对于单片机,我们应左击鼠标选择MicoprocessorIC类

13

别,在对话框的右侧Results栏中,我们会发现这里有大量常见的各种型号的单片机。如果器件太多,可进一步在下方子类Subcategory找到该单片机所在的子系列(如8051Family),然后在Results栏中双击所需要的器件将其添加到对象选择器,如ATC51。

同样的方法放入交通指示灯trafficlight、从类别Resistor电阻中利用关键字470R找出并放入470欧姆的电阻,Optoelectrics(光电器件)中挑选出不同颜色的发光二极管:LED-RED、LED -YELLOW、LED-GTEEN。

2、将元件放入原理图编辑窗口:

在元件列表中左键选取ATC51,在原理图编辑窗口中单击左键,这样ATC51就被放到原理图编辑窗口中了。同样放置其它各元件。如果元件的方向不对,可以在放置以前用方向工具转动或翻转后再放入;如果已放入图纸,可以选定后,再用方向工具或块旋转工具转动。

左键选择模型选择工具栏中的终端接口图标:

从模型中挑选出地线

-GROUND和电源-POWER,并在原理图编辑窗口中左击放置到原理图编辑窗口中。

14

3、连线

a)在工具栏中可选择自动连线按样图绘制电路连线,也可自己连线。

4、仿真

对于纯硬件电路可以直接通过仿真按钮进行仿真。而单片机需要下载程序后才能运行,所以要将事先准备好的仿真程序调试文件或目标文件下载到单片机芯片中。本例用的是:LED1.hex。

先右击ATC51再左击,出现EditComponet对话框,在ProgramFile中单击

出现文件浏览对话框,找到LED1.hex文件,单击“确定”即将仿真程序装入单片机,单击OK退出。然后单击单击

开始仿真,此时可以看到程序的运行结果。

分别可以暂停/终止仿真的运行。

15

说明:仿真时,元件引脚上的红色代表高电平,兰色代表低电平,灰色代表悬空。

(2) 硬件调试

用Proteus仿真成功后,将设计程序烧写到STCC52中去,通电后发现交通灯没有一个是亮的,于是我再次检查电路,最后发现是少接了一个电源,在接上那个线以后,我的单片机就能够正常工作了。说明焊接电路的时候细心是很关键的。

16

小结与展望

本次课程设计,我们都自己动手做了一个单片机,我们充分得体验了一下单片机的制作全过程。单片机对我们的要求不仅仅是以前的单纯的焊接电路,而是要求对电路十分的熟悉,对程序也必须非常的了解,只有这样我们的单片机才会正常工作起来。然而在具体的制作过程中,我发现,原理图对于辅助连接硬件来说完全是不够的,因为在连接实物的时候,我们电路图的不能完全按照原理图连,我们必须重新布线才能保证背面连线没有太多的交叉重叠,使得背面电路图变得清晰明了。在焊接电路的时候我也碰到许多问题,最严重的一次是因为焊错一个元件,导致整块板都作废。后来再次做的时候,我知道应该要细心,不能有一点点马虎。在重新做第二块板的时候,我还去了电子市场,我发现其实这种电子市场对于我们专业的学生来说是非常有必要知道在什么地方的,这对于我们来说今后如果从事本专业的话,还是比较非常有用的一个地方。在焊接的时候我发现我的焊接水平还是太差,焊点焊得不够好。

不过这次课程设计收获还是非常大的,平时我们都只会编程,最多就是仿真,根本不知道实物是如何制作出来的,本以为实物会和仿真一样,连好线就会出结果,但是实际制作过程中,我发现有的时候连好电路图以后,未必会出结果。因为这里面有很多不确定因素,比如说焊点的漏焊,虚焊。都会导致单片机无法正常工作。所以总的来说,要想做出一件合格的产品,我们一定要抱有严谨的态度,认真细心地去完成。

17

参考文献

[1]李明 毕万新主编 单片机原理与接口技术,大连理工大学出版社 [2]张毅坤主编. 单片微型计算机原理及应用.西安电子科技大学出版社 [3] 余锡存 曹国华.单片机原理及接口技术[M].陕西:西安电子科技大学出版社,2000.7

[4] 雷丽文 等.微机原理与接口技术[M].北京:电子工业出版社,1997.2 [5] 范风强 兰婵丽,《单片机语言C51应用实战集锦(修订版)》,电子工业出版社

[6] 李光飞 楼苗然, 《51系列单片机

》,北京航空航天大学出版社

[7] 潭浩强 ,《MCS-51单片机应用教程》,清华大学出版社 [8] 梁廷贵 , 《现代集成电路手册》, 科学技术文献出版社

18

附录

(1)原理图:

(2)程序:

#include #define uchar unsigned char #define uint unsigned int sbit red_a=P0^0; sbit yellow_a=P0^1; sbit green_a=P0^2; sbit red_b=P0^3; sbit yellow_b=P0^4; sbit green_b=P0^5;

uchar time_count=0,flash_count=0,operation_type=1; void t0_int ()interrupt 1

19

{

TH0=-50000/256; TL0=-50000%256; switch (operation_type) {

case 1:

red_a=0; red_b=1; yellow_a=0; yellow_b=0; green_a=1; green_b=0;

if(++time_count !=100)

return; time_count=0; operation_type=2; break;

if(++time_count !=8)

return; time_count=0; yellow_a=!yellow_a; green_a=0;

if (++flash_count!=10)

return; flash_count=0; operation_type=3; break; red_a=1; red_b=0;

20

case 2:

case 3:

yellow_a=0; yellow_b=0; green_a=0; green_b=1;

if(++time_count !=100)

return; time_count=0; operation_type=4; break;

case 4:

if(++time_count !=8)

return; time_count=0; yellow_b=!yellow_b; green_b=0;

if (++flash_count!=10)

return; flash_count=0; operation_type=1;

break;

}

}

void main() { TMOD=0x01; IE=0x82; TR0=1; while(1);

}

21

22

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务