当前位置:首页 >> 信息与通信 >>

基于单片机的交通灯的设计报告(汇编语言) (1)


交通灯的设计报告
摘要: 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控 制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往 作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构 软硬件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什 么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。 交通信号灯控制 方式很多。 本系统采用 MSC-51 系列单片机 AT89C51 和 74LS47 来设计交通灯控制 器,实现了能根据实际车流量通过 AT89C51 芯片的 P1 口设置红、绿灯熄亮时间 的功能;红绿灯循环点亮,绿灯熄灭时黄灯闪烁 3 秒(交通灯信号通过 P1 口输 出,显示时间直接通过 P0、P2 口输出至二个对应的双位数码管) 。本系统实用性 强、操作简单、扩展功能强。 关键词: 单片机 交通灯 时间 一、课题设计需要实现的系统功能: 1.AB 方向亮绿灯 60s,然后黄灯闪烁 3 次,每次一秒(亮灭各 40ms) ,红灯 40s, 同时 CD 方向红灯 65s,绿灯 35s,黄灯闪烁 3s 2.各路灯用 LED 模拟显示,同时用七段数码管显示两路的倒计时时间 3.利用键盘可修改灯亮时间 4.PC 机设置灯亮时间,利用 PC 与单片机串口通信实现 二、单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。 单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常, 单片机由单块集成电路芯片构成, 内部包含有计算机的基本功能部件: 中央处理器、存储器和 I/O 接口电路等。因此,单片机只需要和适当的软件及外 部设备相结合,便可成为一个单片机控制系统。 单片机经过 1、2、3、3 代的发展,目前单片机正朝着高性能和多品种方向 发展,它们的 CPU 功能在增强,内部资源在增多,引角的多功能化,以及低电压 底功耗。 三、芯片简介 3.1、AT89C51 芯片简介 AT89C51 单片机内部结构 AT89C51 单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、 定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总 线和控制总线等三大总线。 MCS-51 的引脚说明:
1

MCS-51 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接 DIP 结构,右图是它们的引脚配置,40 个引脚中,正电源和地线两根,外置石英 振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中断口线与 P3 口线复用 下图是 MCS-51 系列单片机的内部结构示意图 1。

图1 单片机的复位及初始化如图 2:

图2 3.2、74LS47 芯片简介 74LS47 的端子功能图如下图 3:

图3

74LS47 的主要功能端如下: BI 为熄灭输入端,低电平有效,当 BI=0 时,无论其他输入端状态如何,译 码器输出七段同时熄灭;BI=1 时,不影响译码器正常译码。 LT 为测试输入端,低电平有效,用于检查数码管的七段是否正常发光。当 LT=0,同时 BI=1 时,不管输入的 BCD 码是什么状态,都可使驱动数码管的七段 同时点亮。译码器要正常译码,必须 LT 输入无效电平。 RBI 为灭零输入端,低电平有效。设置灭零输入端的目的是为了能将不希望 显示的 0 熄灭,例如一个四位数码显示电路,整数部分两位,小数部分两位,在 显示 6.4 时,将出现 06.40 的字样,如果将前、后多余的 0 熄灭,显示的结果更 醒目一些。灭零输入端只能对显示的 0 进行熄灭,而对其他数字没有影响。 在原理图中,译码器与数码管的连接如图 4:
2

图4 四、系统硬件设计 4.1、交通管理的方案论证 AB、CD 两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯, 指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们 注意红、绿灯的状态即将切换,且黄灯燃亮时间为 AB、CD 两干道的公共停车时 间。设 AB 道比 CD 道的车流量大,指示灯燃亮的方案如表 1: 车道\时间 60s 3s 2s 35s 3s AB 道 绿灯 黄灯 红灯 红灯 红灯 CD 道 红灯 红灯 红灯 绿灯 黄灯 表1 表 1 说明:(1)当 AB 道为绿灯,此道车辆通过,行人禁止通行。时间为 60 秒;CD 方向为红灯,此道车辆禁止通行,CD 道行人可通过。 (2)当 AB 方向为黄灯闪烁 3 秒,警示车辆和行人红、绿灯的状态即将切 换;CD 方向为红灯,此道车辆禁止通行,CD 道行人可通过。 (3)当 AB 方向为红灯,此道车辆禁止通行,AB 道行人可通过;当 CD 方 向为红灯,此道车辆禁止通行,CD 道行人可通过。 (4)当 AB 方向为红灯,此道车辆禁止通行,AB 道行人可通过;AB 道为绿 灯,此道车辆通过,行人禁止通行。时间为 35 秒。 (5)当 AB 方向为红灯,此道车辆禁止通行,AB 道行人可通过;CD 方向为 黄灯闪烁 3 秒,警示车辆和行人红、绿灯的状态即将切换。 (6)此表可根据车流量动态设定红绿灯初始值。 4.2、系统硬件设计 选用设备: AT89C51 弹片机一片, 74LS47 芯片二片, 电阻排 RESPACK-7 三个, 共阴极的七段数码管 7SEG-MPX2-CA 两个,红、黄、绿交通灯各四个,开关键盘、 连线、电阻、电容若干。 4.2.1、系统总框图如下:
3

键盘设置 时间参数

AB 和 CD 方向红绿 黄三种灯 的显示情 况

89C51 系 统 处 理

74LS4 7 七段 驱 动 器 数 据口

数 管 示 方 时

码 显 AB 向 间

74LS4 7 七段 驱 动 器 数 据口

数 管 示 方 时

码 显 CD 向 间

4.2.2、交通灯硬件线路图:见附录Ⅰ 4.2.3、系统工作原理 (1)开关键盘 a、改变数码管显示的时间;b、开关控制十字路口十个方向的 灯同时显示红灯且数码管显示 00。 (2) 由 AT89C51 单片机每秒钟通过 P0、P2 口向 74LS47 的数据口送信息,由 P1 口显示红、绿、黄灯的燃亮情况;由 7SEG-MPX2-CA 显示每个灯的燃亮时间。 (3)AT89C51 P3.3 为低电平时,P1 口对应的红灯即四个方向的红灯亮,数码 显示为 00. (4 AT89C51 P3.2 有下降沿触发时,时间暂停,进入时间显示状态,当 P3.6 为低电平时,时间显示以 240ms 的速度进行加 1;当 P3.7 为低电平时,时间显示 以 240ms 的速度进行减 1;当 P1.0 为低电平时,时间暂停消除,恢复正常。 (5)初始状态 AB 方向绿灯 60 秒 CD 方向红灯 65 秒。 (6)当 AB 方向绿灯 60 秒倒计时完了。进入下一阶段,AB 方向黄灯 3 秒, 且黄灯以 40ms 的速度闪烁;CD 方向红灯 5 秒。 (7)当 AB 方向黄灯 3 秒倒计时完。进入第三阶段,AB 方向红灯 40 秒;CD 方 向红灯 2 秒。 (8)当 CD 方向红灯 2 秒倒计时完。进入第四阶段,AB 方向红灯 38 秒;CD 方 向绿灯 35 秒。 (9)当 CD 方向绿灯 35 秒倒计时完。进入第五阶段,AB 方向红灯 3 秒;CD 方 向黄灯 3 秒,且黄灯以 40ms 的速度闪烁。 (10)AB 方向红灯和 CD 方向黄灯 3 秒同时倒计时完毕,重新循环。 五、软件设计 5.1、每秒钟的设定 延时方法可以有两种一中是利用 AT89C51 内部定时器才生溢出中断来确定 1 秒的时间,另一种是采用软延时的方法。 5.2、1秒的方法 我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50 毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中 断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它
4

是否为零。为零表示1秒已到可以返回到输出时间显示程序. 5.3、相应程序代码 (1)主程序 定时器需定时 10 毫秒,故T0工作于方式1。 初值: T0 初值=216-fose/12Xt=216-(12X106X0.01)/12=55536D=D8F0H ORG 0000H MAIN: MOV TMOD,#01H MOV TL0,#0F0H MOV TH0,#0D8H SETB EA SETB ET0 SETB TR0 SETB EX0 SETB EX1 SETB IT0 CLR IT1 SETB PT0 (2)中断服务子程序 ORG 000BH ZHD2: MOV TL0,#0F0H ;重先赋值 MOV TH0,#0D8H CLR P3.4 RETI 5.4、键盘显示流程图
主程序 “加” 键 按下 键盘“设 置”按下 “ 加 ”数 字 显示程序 “ 减 ”数 字 显示程序 “减” 键 按下 主 程 序

程 序 设 置

5.5、 软件延时 MCS-51 的工作频率为 2-12MHZ,我们选用的 AT89C51 单片机的工作频率为 12MHZ。机器周期与主频有关,机器周期是主频的 12 倍,所以一个机器周期的时 间为 12*(1/12M)=1us。我们可以知道具体每条指令的周期数,这样我们就可 以通过指令的执行条数来确定 1 秒的时间。 具体的延时程序分析: DEL: MOV R7,#40 ; ;延时 10ms DEL1: MOV R6,#123 NOP
5

DJNZ R6,DEL2 DJNZ R7,DEL1 RET 5.6、软件流程图:见附录Ⅱ 5.7、源程序代码 ORG 0000H ;伪指令、程序开始、中断入口地址 LJMP MAIN ORG 0003H LJMP ZHD1 ORG 000BH LJMP ZHD2 ORG 0013H LJMP ZHD3 ORG 1000H ;主程序 MAIN:MOV TMOD,#01H ;设工作方式 MOV TL0,#0F0H ;设初值 ,单片机晶振 12M,定时 10ms MOV TH0,#0D8H SETB EA ;开放总中断 SETB ET0 ;开放 T0 中断 SETB TR0 ;启动 T0 定时 SETB EX0 ;开放外中断 0 SETB EX1 ;开放外中断 1 SETB IT0 ;设外中断 0 为边沿触发 CLR IT1 ;设外中断 1 为低电平有效 SETB PT0 CYCLE:MOV R0,#60 ;AB 方向绿灯显示时间 MOV R1,#65 ;CD 方向红灯显示时间 MOV R2,#25 ;为延时 1 秒而用 ;CD 红灯 AB 绿灯 LOOP1:SETB P3.4 MOV P1,#01H SETB P1.7 ;点亮红灯 SETB P1.4 ;点亮绿灯 LCALL DISPLAY ;调用显示程序 DJNZ R2,LOOP1 MOV R2,#25 DEC R1 DJNZ R0,LOOP1 MOV R0,#3 ;AB 方向黄灯显示时间 ;CD 红灯 AB 黄灯 LOOP2:MOV P1,#01H SETB P1.7 ;点亮红灯 SETB P1.3 ;点亮黄灯
6

DEL2:

LLJ:

LCALL DISPLAY ;调用显示程序 CPL P1.3 DJNZ R2,LLJ DEC R1 MOV R2,#25 DJNZ R0,LOOP2 MOV R0,#40 ;AB 方向红灯显示时间 ;CD 红灯 AB 红灯 LOOP3:MOV P1,#01H SETB P1.7 ;点亮红灯 SETB P1.2 ;点亮红灯 LCALL DISPLAY ;调用显示程序 DJNZ R2,LOOP3 MOV R2,#25 DEC R0 DJNZ R1,LOOP3 MOV R1,#35 ;CD 方向绿灯显示时间 ;CD 绿灯 AB 红灯 LOOP4:MOV P1,#01H SETB P1.5 ;点亮绿灯 SETB P1.2 ;点亮红灯 LCALL DISPLAY ;调用显示程序 DJNZ R2,LOOP4 MOV R2,#25 DEC R0 DJNZ R1,LOOP4 MOV R1,#3 ;CD 方向黄灯显示时间 ;CD 黄灯 AB 红灯 LOOP5:MOV P1,#01H SETB P1.6 ;点亮黄灯 SETB P1.2 ;点亮红灯 LLJ1: LCALL DISPLAY ;调用显示程序 CPL P1.6 DJNZ R2,LLJ1 MOV R2,#25 DEC R0 DJNZ R1,LOOP5 LJMP CYCLE ;键盘中断程序 ZHD1: LCALL DISPLAY JB P3.6,Q2 INC R1 INC R0 CJNE R1,#99,TIAO2
7

MOV R1,#00H TIAO2:CJNE R0,#99,TIAO3 MOV R0,#00H TIAO3:LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY JNB P1.0,Z2 Q2: JB P3.7,WAIT1 DEC R1 DEC R0 CJNE R1,#00H,TIAO MOV R1,#99 TIAO: CJNE R0,#00H,TIAO1 MOV R0,#99 TIAO1:LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY WAIT1:JNB P1.0,Z2 WAIT: LJMP ZHD1 Z2: RETI ;时间中断程序 ZHD2: MOV TL0,#0F0H ;重先赋值 MOV TH0,#0D8H CLR P3.4 RETI ;应急通道中断程序 ZHD3:MOV P1,#85H MOV P0,#30H MOV P2,#30H JNB P3.3,ZHD3 RETI ;数显显示 DISPLAY:MOV A,R0 ;AB 方向时间的显示 MOV B,#10 DIV AB ;把要显示的数的十位存放在 A 中,个位存放在 B 中 ADD A,#10H ;位选通十位 MOV P0,A ;显示十位数字 TI0: JNB P3.4,TT
8

SJMP TI0 SETB P3.4 MOV A,B ADD A,#20H ;位选通个位 MOV P0,A ;显示个位数字 TI1: JNB P3.4,TT1 SJMP TI1 TT1: SETB P3.4 ;CD 方向的显示 MOV A,R1 ;CD 方向时间的显示 MOV B,#10 DIV AB ADD A,#10H ;位选通十位 MOV P2,A ;显示十位数字 TI2: JNB P3.4,TT2 SJMP TI2 TT2: SETB P3.4 MOV A,B ADD A,#20H ;位选通个位 MOV P2,A ;显示个位数字 TI3: JNB P3.4,TT3 SJMP TI3 TT3: SETB P3.4 RET 参考文献: 1、 《单片微机原理与接口技术》主编:曾一红 副主编:刘虹、李寿强 2、 《数字电子技术》蒋正萍、刘虹、张松、李小平编著 3、http://www.dz3w.com/articlescn/mcu/6162.html(来自于电子天下) TT:

后记: 在做本实验期间遇到了诸多的问题:1、从 P1 口连接出来的那一个数码管无 法显示数字,解决:通过询问老师,了解到 P1 口内部不存在上拉电阻,输出的 电流较小,无法驱动数码管显示。2、在对数码管的显示时间做设置时,进入设 置状态后,二个数码管只有一个数显亮了,经过对软硬件的多方调试,最终发现 在进入设置状态时,没有对二个数码管进行循环显示。3、黄灯无法闪烁,解决 问题:首先我对软件的显示程序进行不同的设置,对显示部分每循环一次就对黄 色对应单片机口求反,而此时出现了黄灯显示后一直无法熄灭。而最终我把显示 部分的程序改为只循环一次,而增加了主程序中的循环次数。4、这是最重要的
9

一步,也就是首先提出在做此实验时要完成的目标四。到目前为此,我就还无法 找出如何用 PC 机去控制单片机。

附录
附录Ⅰ:交通灯硬件线路图

10

附录Ⅱ:软件流程图

11

开始

初始化

AB 方向绿灯倒计时,CD 方向红灯倒计时 N AB 方向数码是否为 0 Y AB 方向黄灯倒计时,CD 方向红灯倒计时 N AB 方向数码是否为 0 Y AB 方向红灯倒计时,CD 方向红灯倒计时 N CD 方向数码是否为 0 Y AB 方向红灯倒计时,CD 方向绿灯倒计时 N CD 方向数码是否为 0 Y AB 方向红灯倒计时,CD 方向黄灯倒计时

N AB 方向数码是否为 0 自动返回 Y 结束

12


相关文章:
基于单片机的交通灯课程设计报告[1]
基于单片机的交通灯课程设计报告[1]_专业资料。68768河南理工大学本科课程设计报告...本设计将各任务进行细分包装,使各任务保持 相对独立;能有效改善程序结构,便于...
基于单片机的交通灯的设计报告(汇编语言)
单片机 交通灯 汇编语言单片机 交通灯 汇编语言隐藏>> 交通灯的设计报告摘要: ...三、芯片简介 3.1、AT89C51 芯片简介 .1、 AT89C51 单片机内部结构 AT89C...
基于单片机的交通灯的设计报告(程序为汇编语言)
基于单片机的交通灯的设计报告(程序为汇编语言)_理学_高等教育_教育专区。需要硬件...三、芯片简介 3.1、AT89C51 芯片简介 .1、 AT89C51 单片机内部结构 AT89C...
交通灯单片机(汇编)设计报告
单片机交通灯设计报告 27页 2下载券 单片机交通灯设计报告[1... 22页 免费 ...将这些事先划分好的模块用汇编语言编成不同的子程序,再将它们有机的结合起来...
用单片机设计交通灯课设报告(汇编和C语言)
单片机设计交通灯设报告(汇编和C语言)_电子/电路_工程科技_专业资料。...1.设计任务结合实际情况,基于 AT89C51 单片机设计一个人车分行交通信号指挥灯...
单片机交通灯设计报告
单片机技术及应用》课程设计任务书 单片机技术及应用》课程设计任务书课题名称 1、课题内容:以单片机为核心,设计一个简单交通灯控制系统,设 A 车道与 B 车道交叉...
单片机交通灯课程设计报告(含电路图,源程序)
基于单片机的交通灯课程... 18页 免费 单片机c语言课程设计交通... 14页 免费...设计目的 (1)加强对单片机和汇编语言的认识,充分掌握和理解设计各部分 的工作...
单片机交通灯课程设计报告[1]
单片机交通灯课程设计报告[1]_电子/电路_工程科技_专业资料。单片机交通灯课程...设计目的 (1)加强对单片机汇编语言的认识,充分掌握和理解设计各部分 的工作...
基于单片机的交通灯设计报告[1]
基于单片机的交通灯设计 基于单片机的交通灯设计 1 基于单片机的交通灯设计 摘要...程序存储器(ROM)、数据存储器(RAM)、定时/计 数器、并行接口、串行接口和中断...
单片机交通灯课程设计报告
2 设计方案 2.1 任务分析模拟交通灯控制器就是使用单片机来控制一些 LED 和...根据设计要求, 程序框图如图所示。 软件可由汇编语言完成, 也可由 C 语言完成...
更多相关标签: