资源描述
单片机课程设计
——交通灯
姓名:
学院:
专业:
班级:
学号:
第一章 绪论
伴随中国社会经济发展,城市化、城镇化进程加紧,道路交通堵塞问题日趋严重,怎样对交通进行合理管理和调度而尽可能降低堵车现象成为现在中国很多地方尤其是特大城市急需处理问题,显然交通灯在其中起着不可或缺作用。本文就控制交通灯方法进行了讨论,分析了多种方案性价比,并用软、硬件加以实现。以后,对六车道以上道路“十字交叉路口交通灯控制”进行了分析。最终,还对城市交通灯网控制进行了展望。期望能给相关政府部门部分参考,愈加好地改善我们城市交通。现今交通发展快速,车辆极具增加,马路不停扩宽,人行横道相对较少。在车流量较大地段即便有些人行横道,行人也极难经过马路。行人自控指示灯系统能够有效改善这种情况。尤其是像北京这么大城市,经济飞速发展,车辆繁多,人口密集。缓解交通已成为当务之急.比如在我们新校区西门口(塔南路)就是这种情况,天天进出校门学生尤其多,大多还需要穿过这条繁忙高速公路,这为学校师生带来大大不便.该系统关键应用于交通领域,含有较高实用价值。该系统利用红灯,黄灯,绿灯来指挥车辆和行人,以达成车辆停止,行人通行目标,降低了交通拥挤现象,为行人节省了时间,即确保行人过马路时安全,也减轻了交管部门负担。本产品面对公共交通设施,并不重视经济收益,而是重视以后潜在发展,从而带动相关产业。用户能够完全掌握行人自控指示灯系统操作方法,和各个按键作用科学技术突飞猛进直接把我们带进了信息化社会,计算机应用已普及到经济和社会生活各个领域.
第二章 设计要求和任务
第一节 目标和要求:
1、试验要求:
编写程序,以89c52端口作为输出口,控制4个双色LED灯(可发红、绿、黄光),模拟十字路口交通灯管理。
2、试验目标:
(1)学习I/0口扩展方法;掌握89c52工作原理和编程方法,了解软件和硬件调试技术。
(2)学习模拟交通灯控制方法;
(3)学习双色LED灯使用;
第二节 设计任务和设计内容: (CPU均采取89c52)
1. 软件延时实现模拟路口交通灯控制: (图1)
试验效果: 软件延时控制A﹑C路口红灯,B﹑D路口绿灯亮60秒;然后A﹑C路口不变,B﹑D路口绿灯闪5下,然后B﹑D路口黄灯亮;再变为A﹑C路口绿灯,B﹑D红灯延时3秒;然后A﹑C路口绿灯闪5下, 再黄灯亮,B﹑D不变。再循环······ 。并将绿灯剩下时间显示在LED上 (该项编程可将其结果显示在计算机屏幕上替换)。
初始化
设置89c52
为输出
C口为输出
清LED
BD,AC四个方向全为红短延时
BD方向亮绿灯60秒
AC方向亮红灯
BD方向绿灯闪五次,AC方向灯不变
BD方向为黄灯延时
AC方向灯不变
有键按下?
有键按下?
BD方向亮红灯并延时3秒,AC方向亮绿灯
有键按下?
有键按下?
状态0
状态1
状态2
状态3
有键按下?
BD方向灯不变,
AC方向绿灯闪五次
状态4
BD方向灯不变,
AC方向黄灯延时
状态4
返回DOS
状态1
状态3
状态4
状态2
循环
运行
(图2 步骤图)
2. 89c52定时器控制模拟交通灯:
试验效果: 软件延时控制A﹑C路口红灯,B﹑D路口绿灯亮50秒;其它要求和第1点中相同。
第三章 设计方案及评定论证
第一节 题意分析:
即使题目是四个路口,其实这是用于人行横道处
交通灯,也可用于不许可拐弯主﹑副街道交叉口处。
图1所表示,B、D方向是双向车道;A、C方向是人行横道。或将BD看作主街道,而AC看作副街道,也是能够。
第二节 工作原理说明:
1.工作原理说明:
此方案是经过并行接口芯片89c52A和计
算机硬件连接,和经过软件延时方法进行软件
编程,来实现十字路口交通灯模拟控制。图2(89c52A芯片)所表示,1.主控制单片机
主控单片机采取一片AT89C52。依据题目要求,充足利用了单片灵巧活控制优点,发挥其优势功效,采取单片机控制信号灯和数码管显示,提升了系统灵活性,设置方便。利用单片机产生时钟信号控制交通信号灯达成控制路口通行时间效果。
AT89C52提供以下标准功效:8K字节Flash闪速存放器,256字节内部RAM,40个I/O口线,3个16位定时/计数器,一个6向量两极中止结构,一个全双工串行通信口,片内振荡器立即钟电路。同时,AT89C52可降至0Hz静态逻辑操作,并支持两种软件可选节电工作模式。空闲方法停止CPU工作,但许可RAM,定时/计数器,串行通信口及中止系统继续工作,掉电方法保留RAM中内容,但振荡器停止工作并严禁其它全部部件工作直到下一个硬件复位。AT89C52单片机引脚配置图2所表示:
(图2 89c52A芯片)
图2
2.LED显示器件工作原理
LED显示器件是经过发光二极管显示字段器件。在单片机控制系统中常见是由7段LED数码管,它显示块中有8个发光二极管,7个发光二极管组成字符“8”,1个发光二极管组成小数点,所以有些人称7段LED数码管为8段显示器。LED数码管管脚配置图3所表示。
LED数码管有共阴极和共阳极两类,图4所表示。共阴极LED数码管发光二极管阴极共地,图4(a),当某个发光二极管阳极电压为高电平时,二极管发光;而共阳极LED数码管是发光二极管阳极共接,图4(b),当某个二极管阴极电压为低电平时,二极管发光。
图3 LED数码管管脚配置图 (a) 共阴极 (b) 共阳极
图4 两类LED数码管
第三节、组装及调试
依据所设计电路原理图焊接电路板,并用万用表检测接线是否有错误。当焊接电路板正确时,应用伟福(WAVE)仿真器进行调试,检验该交通灯控制系统是否和设计思想一致,并测试程序运行结果正确性和各个按键功效是否符合预定要求。
七、元器件列表
名称
型号
数量
电阻
510Ω
23
电阻
5.1KΩ
7
电容
30PF/22PF
2/1
二极管
12
数码管
4
开关
8
三极管
4
晶振
1
第四章 软件支持和编程
第一节 程序设计
①步骤图:
图2所表示,有书上直到最终一步才有“是否有键按下?”选择语句,而我认为应该是每个状态后全部有这么判定,这么便于处理特殊紧急情况,正如后面源程序中所表示。
第二节 调试统计及结果分析:
调试结果图7所表示:
图(7)
(1) 在上机调试中发觉,因为此软件延时时间均为估算时间,不是尤其正确,对于交通要求尤其高地方不宜采取。假如是放到一个大交通灯系统中,会影响到各个交通灯运行时间,可能整个系统对交通指挥调度会大大偏离理论计算,不能有效地预防和消除交通堵塞现象;
(2) 当出现紧急情况,在特种车(如消防车、救护车)正要经过时,这种软件延时方法就不能完成;
(3) 能够看到,此方案用了12个发光LED,若是六车道以上交通路口,就要36个灯,成本不合算不说,更是让司机、行人眼花缭乱。
(4) 这不是一个十字路口,不能拐弯。
不过,能够看到以上方案通常性,只要将程序里数据排列或规律稍加修改就可应用到任何一个路口某一个方向上交通灯上了,这就是用软件实现好处,可移植性很强。
第五章 总结
经过这一周课程设计,我确定一个方向----相关交通灯系统设计,我认真查阅资料,学习相关这方面知识,比如说要了解89c52芯片中各个引角功效,怎么样去使用89c52这个可编程并行接口芯片,怎么样用89c52这个地址锁存器来存放高位地址和低位地址和交通有哪些规则.在上学期理论学习基础上,又下了一次苦工夫,算是明白了设计一个系统过程;也让我体会到要想成功地设计某个东西,光学好专业知识是不够,必需要系统知识,不管在哪方面全部要有个明白概念,只有这么才不至于在设计过程中摸不着头脑,知道去哪些是需要查资料,还有一点,我认为我在芯片编程方面,尤其是在初始化方面是我最大困难,或许是我汇编语言学得不够呛好,我只能借助参考资料,查每一条指令作用和功效,这么一来又巩固了我对汇编语言了解.
如此,我体会到学习理论知识当然关键,但在你学完了以后,你不在实践中利用你所学知识,我想学是白学了,过一段时间后,你可能什么全部记不起来了,或许在学心里只有一个概念,认为这个知识我曾经学得不错,我现在怎么想不起来了,一心想依靠书本;假如我们用实践来学习知识,你会努力地去搜索你想要需要东西,即使是过了一段时间后,你也会记得你曾经对这点不明白认真地查阅过,你不会忘记!一句话,课程设计对我们很关键!.
第六章 参考文件:
余发山编著. 单片机原理及应用技术. 徐州:中国矿业大学出版社,.12
蔡美琴,张为民编. MCS—51系列单片机系统及其应用. 北京:高等教育出版社,1994
陈奥初,窦振中编著. 单片机应用系统设计和实践. 北京:北京航空航天大学出版社,1991
顾滨等编著. 单片微型计算机原理、开发及应用. 北京:高等教育出版社,.8(重印)
付程序:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP TIME1
ORG 000BH
LJMP TIME2
ORG 0013H
LJMP TSH
ORG 0030H
MAIN:MOV SP,#40H
MOV P2,#00H
MOV P1,#0FFH
MOV 20H,#08H
MOV 21H,#02H
MOV 22H,#00H
MOV 23H,#12H
MOV 24H,#02H
MOV 25H,#00H
CLR C
MOV A,20H
SUBB A,24H
MOV 25H,A
CLR C
MOV A,23H
SUBB A,21H
MOV 22H,A
MOV 26H,#00H
MOV 27H,#00H
MOV 28H,#00H
MOV 29H,#00H
MOV 2AH,#00H
MOV 2BH,#00H
MOV 2CH,#00H
MOV 2DH,#00H
MOV 2EH,#00H
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV 33H,#00H
MOV TCON,#00H
MOV IE,#87H
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV R7,#20
SETB TR0
HHF0:MOV 26H,20H
MOV 2BH,25H
MOV P1,#9EH
HHF1:ACALL DISP1
MOV A,2BH
CJNE A,#0,HHF1
MOV 2AH,24H
MOV P1,#0AEH
HHF2:ACALL DISP2
MOV A,2AH
CJNE A,#0,HHF2
MOV 28H,22H
MOV 29H,23H
MOV P1,#0B3H
HHF3:ACALL DISP3
MOV A,28H
CJNE A,#0,HHF3
MOV 27H,21H
MOV P1,#0B5H
HHF4:ACALL DISP4
MOV A,27H
CJNE A,#0,HHF4
LJMP HHF0
DISP1:MOV A,2BH
MOV B,#10
DIV AB
MOV 30H,B
MOV 31H,A
MOV A,26H
MOV B,#10
DIV AB
MOV 32H,B
MOV 33H,A
ACALL DISP
RET
DISP2:MOV A,2AH
MOV B,#10
DIV AB
MOV 30H,B
MOV 31H,A
MOV A,26H
MOV B,#10
DIV AB
MOV 32H,B
MOV 33H,A
ACALL DISP
RET
DISP3:MOV A,29H
MOV B,#10
DIV AB
MOV 30H,B
MOV 31H,A
MOV A,28H
MOV B,#10
DIV AB
MOV 32H,B
MOV 33H,A
ACALL DISP
RET
DISP4:MOV A,29H
MOV B,#10
DIV AB
MOV 30H,B
MOV 31H,A
MOV A,27H
MOV B,#10
DIV AB
MOV 32H,B
MOV 33H,A
ACALL DISP
RET
DISP5:MOV 2BH,21H
MOV 26H,20H
ACALL DISP1
RET
DISP6:MOV 2AH,24H
MOV 26H,23H
ACALL DISP2
RET
DISP:MOV R2,#4
MOV R0,#30H
MOV R3,#08H
HHF5:MOV A,R3
MOV P2,A
MOV DPTR,#TABLE
MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV A,R3
RR A
MOV R3,A
INC R0
DJNZ R2,HHF5
RET
TABLE:DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
DELAY:MOV R4,#2FH
HHF32:MOV R5,#0AH
HHF6:DJNZ R5,HHF6
DJNZ R4,HHF32
RET
TIME1:PUSH ACC
PUSH PSW
INC 2DH
INC 2EH
HHF33:JB P2.4,HHF15
HHF16:JNB P2.4,HHF16
INC 2DH
HHF15:JB P2.5,HHF17
HHF18:JNB P2.5,HHF18
INC 2EH
HHF17:MOV A,2DH
CJNE A,#1,HHF19
HHF23:ACALL DISP5
JB P2.6,HHF20
HHF21:JNB P2.6,HHF21
MOV A,2EH
CJNE A,#1,HHF22
INC 20H
SJMP HHF23
HHF22:MOV 2EH,#00H
INC 21H
SJMP HHF23
HHF20:JB P2.7,HHF24
HHF25:JNB P2.7,HHF25
MOV A,2EH
CJNE A,#1,HHF26
DEC 20H
SJMP HHF23
HHF26:MOV 2EH,#00H
DEC 21H
SJMP HHF23
HHF19:MOV 2DH,#00H
ACALL DISP6
JB P2.6,HHF27
HHF28:JNB P2.6,HHF28
MOV A,2EH
CJNE A,#1,HHF29
INC 23H
SJMP HHF19
HHF29:MOV 2EH,#00H
INC 24H
SJMP HHF19
HHF27:JB P2.7,HHF24
HHF30:JNB P2.7,HHF30
MOV A,2EH
CJNE A,#1,HHF31
DEC 23H
SJMP HHF19
HHF31:MOV 2EH,#00H
DEC 24H
SJMP HHF19
HHF24:JB P1.7,HHF33
HHF34:JNB P1.7,HHF34
CLR C
MOV A,20H
SUBB A,24H
MOV 25H,A
CLR C
MOV A,23H
SUBB A,21H
MOV 22H,A
MOV 26H,20H
MOV 27H,21H
MOV 28H,22H
MOV 29H,23H
MOV 2AH,24H
MOV 2BH,25H
MOV 2DH,#00H
MOV 2EH,#00H
POP PSW
POP ACC
RETI
TIME2:PUSH ACC
PUSH PSW
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R7,HHF7
MOV R7,#20
DEC 26H
DEC 27H
DEC 28H
DEC 29H
DEC 2AH
DEC 2BH
HHF7:POP PSW
POP ACC
RETI
TSH:PUSH ACC
PUSH PSW
MOV P2,#00H
HHF14:INC 2CH
MOV A,2CH
CJNE A,#1,HHF8
MOV P1,#0B3H
SJMP HHF11
HHF8:CJNE A,#2,HHF9
MOV P1,#0B6H
SJMP HHF11
HHF9:CJNE A,#3,HHF10
MOV P1,#9BH
HHF10:MOV 2CH,#00H
HHF11:JNB P3.3,HHF13
SJMP HHF12
HHF13:JB P3.3,HHF14
SJMP HHF13
HHF12:JB P1.7,HHF11
HHF35:JNB P1.7,HHF35
MOV 2CH,#00H
POP PSW
POP ACC
RETI
END
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP TIME1
ORG 000BH
LJMP TIME2
ORG 0013H
LJMP TSH
ORG 0030H
MAIN:MOV SP,#40H
MOV P2,#00H
MOV P1,#0FFH
MOV 20H,#08H
MOV 21H,#02H
MOV 22H,#00H
MOV 23H,#12H
MOV 24H,#02H
MOV 25H,#00H
CLR C
MOV A,20H
SUBB A,24H
MOV 25H,A
CLR C
MOV A,23H
SUBB A,21H
MOV 22H,A
MOV 26H,#00H
MOV 27H,#00H
MOV 28H,#00H
MOV 29H,#00H
MOV 2AH,#00H
MOV 2BH,#00H
MOV 2CH,#00H
MOV 2DH,#00H
MOV 2EH,#00H
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV 33H,#00H
MOV TCON,#00H
MOV IE,#87H
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV R7,#20
SETB TR0
HHF0:MOV 26H,20H
MOV 2BH,25H
MOV P1,#9EH
HHF1:ACALL DISP1
MOV A,2BH
CJNE A,#0,HHF1
MOV 2AH,24H
MOV P1,#0AEH
HHF2:ACALL DISP2
MOV A,2AH
CJNE A,#0,HHF2
MOV 28H,22H
MOV 29H,23H
MOV P1,#0B3H
HHF3:ACALL DISP3
MOV A,28H
CJNE A,#0,HHF3
MOV 27H,21H
MOV P1,#0B5H
HHF4:ACALL DISP4
MOV A,27H
CJNE A,#0,HHF4
LJMP HHF0
DISP1:MOV A,2BH
MOV B,#10
DIV AB
MOV 30H,B
MOV 31H,A
MOV A,26H
MOV B,#10
DIV AB
MOV 32H,B
MOV 33H,A
ACALL DISP
RET
DISP2:MOV A,2AH
MOV B,#10
DIV AB
MOV 30H,B
MOV 31H,A
MOV A,26H
MOV B,#10
DIV AB
MOV 32H,B
MOV 33H,A
ACALL DISP
RET
DISP3:MOV A,29H
MOV B,#10
DIV AB
MOV 30H,B
MOV 31H,A
MOV A,28H
MOV B,#10
DIV AB
MOV 32H,B
MOV 33H,A
ACALL DISP
RET
DISP4:MOV A,29H
MOV B,#10
DIV AB
MOV 30H,B
MOV 31H,A
MOV A,27H
MOV B,#10
DIV AB
MOV 32H,B
MOV 33H,A
ACALL DISP
RET
DISP5:MOV 2BH,21H
MOV 26H,20H
ACALL DISP1
RET
DISP6:MOV 2AH,24H
MOV 26H,23H
ACALL DISP2
RET
DISP:MOV R2,#4
MOV R0,#30H
MOV R3,#08H
HHF5:MOV A,R3
MOV P2,A
MOV DPTR,#TABLE
MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV A,R3
RR A
MOV R3,A
INC R0
DJNZ R2,HHF5
RET
TABLE:DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
DELAY:MOV R4,#2FH
HHF32:MOV R5,#0AH
HHF6:DJNZ R5,HHF6
DJNZ R4,HHF32
RET
TIME1:PUSH ACC
PUSH PSW
INC 2DH
INC 2EH
HHF33:JB P2.4,HHF15
HHF16:JNB P2.4,HHF16
INC 2DH
HHF15:JB P2.5,HHF17
HHF18:JNB P2.5,HHF18
INC 2EH
HHF17:MOV A,2DH
CJNE A,#1,HHF19
HHF23:ACALL DISP5
JB P2.6,HHF20
HHF21:JNB P2.6,HHF21
MOV A,2EH
CJNE A,#1,HHF22
INC 20H
SJMP HHF23
HHF22:MOV 2EH,#00H
INC 21H
SJMP HHF23
HHF20:JB P2.7,HHF24
HHF25:JNB P2.7,HHF25
MOV A,2EH
CJNE A,#1,HHF26
DEC 20H
SJMP HHF23
HHF26:MOV 2EH,#00H
DEC 21H
SJMP HHF23
HHF19:MOV 2DH,#00H
ACALL DISP6
JB P2.6,HHF27
HHF28:JNB P2.6,HHF28
MOV A,2EH
CJNE A,#1,HHF29
INC 23H
SJMP HHF19
HHF29:MOV 2EH,#00H
INC 24H
SJMP HHF19
HHF27:JB P2.7,HHF24
HHF30:JNB P2.7,HHF30
MOV A,2EH
CJNE A,#1,HHF31
DEC 23H
SJMP HHF19
HHF31:MOV 2EH,#00H
DEC 24H
SJMP HHF19
HHF24:JB P1.7,HHF33
HHF34:JNB P1.7,HHF34
CLR C
MOV A,20H
SUBB A,24H
MOV 25H,A
CLR C
MOV A,23H
SUBB A,21H
MOV 22H,A
MOV 26H,20H
MOV 27H,21H
MOV 28H,22H
MOV 29H,23H
MOV 2AH,24H
MOV 2BH,25H
MOV 2DH,#00H
MOV 2EH,#00H
POP PSW
POP ACC
RETI
TIME2:PUSH ACC
PUSH PSW
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R7,HHF7
MOV R7,#20
DEC 26H
DEC 27H
DEC 28H
DEC 29H
DEC 2AH
DEC 2BH
HHF7:POP PSW
POP ACC
RETI
TSH:PUSH ACC
PUSH PSW
MOV P2,#00H
HHF14:INC 2CH
MOV A,2CH
CJNE A,#1,HHF8
MOV P1,#0B3H
SJMP HHF11
HHF8:CJNE A,#2,HHF9
MOV P1,#0B6H
SJMP HHF11
HHF9:CJNE A,#3,HHF10
MOV P1,#9BH
HHF10:MOV 2CH,#00H
HHF11:JNB P3.3,HHF13
SJMP HHF12
HHF13:JB P3.3,HHF14
SJMP HHF13
HHF12:JB P1.7,HHF11
HHF35:JNB P1.7,HHF35
MOV 2CH,#00H
POP PSW
POP ACC
RETI
END
付系统总图:
展开阅读全文