单片机课程报告设计-交通信号灯模拟控制系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程报告设计题目:交通信号灯模拟控制系统设计专业:电子信息科学与技术
※※※※※※前言※※※※※※
本课程设计的目的和意义
本课程设计是在学完单片机原理及课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现。该课程设计的主要任务是通过解决一、两个实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。
*******目录*******
一、设计要求
二、设计内容
三、交通信号灯模拟控制系统设计程序流程图
四、交通信号灯模拟控制系统原理图
五、交通信号灯模拟控制系统主程序
六、运行步骤
七、检测与调试
八、课程设计体会
九、参考文献
十、说明
一、设计要求:交通信号灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用LED数码管显示时间。用8051做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
二、设计内容:因为本课程设计是交通灯的控制设计,所以要了解实际交通灯的变化情况和规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1东西红灯,南北绿灯通车,。过一段时间转状态2南北绿灯灭,黄灯闪烁几次,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯灭,闪几次黄灯,南北仍然红灯。最后循环至状态1。
注意:.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
三、交通信号灯模拟控制系统设计程序流程图
四、交通信号灯模拟控制系统主程序
ORG 0000H
SJMP A3
ORG 0030H
A3: MOV SP,#60H ;设栈指针初值
MOV A, #24H
MOV P1, A
SETB P3.2
CLR P3.3
CLR P3.4
SETB P3.5 ;全部红灯亮
MOV R4,#00H ;显示0秒
MOV R7,#00H ;显示0秒
MOV R2,#03H
LCALL XI ;调用子程序
A2 : MOV A,#0CH
MOV P1,A
SETB P3.2
SETB P3.3
CLR P3.4
CLR P3.5 ;东西红灯,南北绿灯
MOV R4,#14H ; 显示20秒
LOOP2 : MOV R2,#03H
LCALL XI
DJNZ R4,LOOP2 ;判断20秒显示时间到否
MOV R2,#03H
LCALL XI
LOOP8: MOV R2,#03H ;南北黄灯闪3次
LCALL XI
MOV R4,#05H ;设南北黄灯亮长显示5秒
SETB P3.2
CLR P3.3
A1: MOV A,#14H
MOV P1 ,A
SETB P3.4
CLR P3.5 ;东西红灯,南北黄灯
MOV R2,#01H ;定时
LCALL DELAY ;调用延时子程序
MOV A ,#04H
MOV P1 ,A
CLR P3.4
CLR P3.5 ;东西红灯,南北不亮即意思要南北黄灯闪烁MOV R2 ,#01H ;定时
LCALL DELAY
DJNZ R4,LOOP8 ;判断南北黄灯闪烁,显示5秒到否?
MOV A, #61H
MOV P1,A
CLR P3.2
CLR P3.3
CLR P3.4
SETB P3.5 ;东西绿灯,南北红灯
MOV R4,#14H ;显示20秒
LOOP3:
MOV R2,#03H
LCALL XI
DJNZ R4,LOOP3 ;判断20秒显示时间到否
MOV R7,#05H ;设东西黄灯亮长显示5秒
SETB P3.5
A0: MOV A,#0A2H
MOV P1,A
CLR P3.2
CLR P3.3
CLR P3.4 ;东西黄灯,南北红灯
MOV R2,#01H ;定时
LCALL DELAY
MOV A,#20H ;
MOV P1,A
CLR P3.2
CLR P3.3
CLR P3.4 ;南北红灯,东西不亮即意思要东西黄灯闪烁MOV R2,#01H ;定时
LCALL DELAY
DJNZ R7,A0 ;判断东西黄灯闪烁,显示5秒到否?
LJMP A2 ;循环回状态1,即东西红灯,南北黄灯
DELAY: PUSH 2
PUSH 1
PUSH 0 ;进栈
DELAY1: MOV 1,#00H
DELAY2:MOV 0,#0B2H
DJNZ 0,$ ;判断是否运行完0B2H
DJNZ 1,DELAY2
DJNZ 2,DELAY1
POP 0
POP 1
POP 2 ;出栈
DJNZ R2 ,DELAY ;判断R2是否运行完
RET ;返回主程序
XI: MOV A,R4
MOV B,#10
DIV AB
MOV R6,A
MOV DPTR,#TAB
MOV A,B
MOVC A,@A+DPTR
MOV SBUF,A
MOV R7,#0FH
H55S: DJNZ R7,H55S
MOV A,R6
MOVC A,@A+DPTR
MOV SBUF,A