单片机课程设计——交通灯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计报告
——交通灯
题目:单片机课程设计——交通灯
设计者1:负责任务:软硬件设计及调试专业班级/学号:
设计者2:负责任务:软硬件调试
专业班级/学号:
指导教师1:指导教师2:
答辩时间:
目录
一、选题的背景 (2)
1、选题的来源: (2)
2、选题的意义和目的: (2)
3、成员分工: (2)
二、课题总体设计说明 (2)
1、课题计划和功能目标: (2)
2、课题总体方案: (2)
三、硬件设计说明 (2)
1、硬件总体设计方案 (2)
(1)硬件设计目标: (2)
(2)硬件功能模块划分: (2)
(3)主控芯片和关键元器件的选型、接口和连接方式定义 (2)
2、硬件单元设计 (2)
1) 按键模块 (2)
2) 交通灯指示模块 (3)
3) 数码管显示模块 (3)
四、软件设计说明 (3)
1、软件总体设计方案 (3)
(1)软件设计目标: (3)
(2)软件功能模块划分: (3)
2、软件设计 (3)
1) 主程序模块 (3)
2) 交通灯分状态处理模块(以状态1为例) (4)
3) 延时定时模块 (4)
4) 动态显示模块 (4)
5) 中断处理模块 (5)
五、软硬件调试说明 (5)
1、硬件性能测试: (5)
2、软件性能测试: (6)
六、课题开发总结 (6)
七、用户操作说明 (6)
八、参考资料 (6)
九、附件 (6)
1. 元器件清单(器件名称、型号、在原理图中的编号); (6)
2. 硬件电路板外观图片、PROTEUS仿真效果图 (7)
3. 源程序代码 (7)
一、选题的背景
1、选题的来源:
教材实训实践练习
2、选题的意义和目的:
通过该实验进一步熟练掌握汇编语言以及应用
3、成员分工:
同负责软硬件设计及调试
二、课题总体设计说明
1、课题计划和功能目标:
在实现实训书上的基本要求上添加绿灯倒计时功能以及紧急情况处理功能。
2、课题总体方案:
先用编程软件验证实训书上现有的程序,再以根据添加的功能修改程序,并用protues 软件仿真硬件电路。
三、硬件设计说明
1、硬件总体设计方案
(1)硬件设计目标:
以最简单的电路实现交通灯功能
(2)硬件功能模块划分:
紧急情况按键处理模块、交通灯模块和数码管模块;
2、硬件单元设计
1)按键模块
2)交通灯指示模块
3)数码管显示模块
四、软件设计说明
1、软件总体设计方案
(1)软件设计目标:
在实现实训书上的基本功能前提下,实现相关拓展功能。
(2)软件功能模块划分:
主程序模块,分状态交通灯显示模块,定时模块,动态显示模块,中断处理模块
2、软件设计
1)主程序模块
MAIN: CLR KEY ;标志位清0
CLR B Z
MOV IE,#81H
ACALL ZT1 ;交通灯第一种状态
ACALL ZT2 ;交通灯第二种状态
ACALL ZT3 ;交通灯第三种状态
ACALL ZT4 ;交通灯第四种状态
ACALL ZT5 ;交通灯第五种状态
ACALL ZT6 ;交通灯第六种状态
AJMP MAIN ;返回循环
2)交通灯分状态处理模块(以状态1为例)
ZT1:MOV LED,#0F3H
MOV R5,#55
MOV R1,#60 ;设置东西方向显示秒数初值
MOV R2,#55 ;设置秒数
ACALL PLAY
ACALL DELAY1S
RET
3)延时定时模块
DELAY_100MS: MOV R3,#100;100MS的延时
MOV TMOD,#10H
MOV TH1,#0FCH
MOV TL1,#18H
SETB TR1
DELAY1MS:MOV R3,#250 ;1ms的延时
D0: NOP
NOP
DJNZ R3,D0
RET
4)动态显示模块
LP3: M OV R4,#00010000B;位选1有效
MOV R0,#30H ;间接寻址
LP1: J BC TF1,LP2
SJMP LP1
LP2: M OV TH1,#0FCH
MOV TL1,#18H
MOV WS,#00H
MOV DM,@R0
MOV WS,R4
MOV A,R4
RL A
MOV R4,A
INC R0
JB ACC.0,LP4
DJNZ R3,LP1
INC R3
LP4: D JNZ R3,LP3
RET
5)中断处理模块
CNT: CLR E A ;关定时器T0定时
JNB P3.2,$ ;按键松开了没?
PUSH P1 ;入栈保护
PUSH 02H
PUSH 03H
PUSH TH1
PUSH TL1
MOV P1,#1BH
ACALL DELAY1MS
ACALL DELAY1MS
ACALL DELAY1MS
ACALL DELAY1MS
ACALL DELAY1MS
ACALL DELAY1MS
JB P3.2,$ ;判断按键按下没?
JNB P3.2,$ ;按键松开没?
POP TL1 ;出栈
POP TH1
POP 03H
POP 02H
POP 30H
MOV P1,30H
SETB EA
RETI
五、软硬件调试说明
1、硬件性能测试:
在protues软件对硬件电路进行仿真,仿真结果如下:
2、软件性能测试:
通过keil软件的调试,所编程序可以编译,并成功产生HEX文件
六、课题开发总结
整个课题下来,基本达到了最初的设计目标,与预期规划基本符合,设计出来的作品性能良好,可以满足课题需求,电路设计简单,程序简洁易懂;缺点是通用性不是很大,程序相对来讲不够简洁
硬件电路的设计要点是确定好I/O接口,使相关硬件功能显示得以实现,软件上是理解交通灯各个状态的流程,以及倒计时显示处理,还要注意结合硬件接口进行编程,同时熟练使用keil进行编译并对程序进行追踪。
七、用户操作说明
此实训课题功能相对简洁,在接通电路的时候,电路会遵循预先设计好的程序实现交通灯显示,当P3.2按下时,既可进入紧急处理状态,东西,南北方向的交通灯都红灯亮八、参考资料
《单片机应用实训教程》张永枫主编实训18 交通灯控制
九、附件
1.
2. 硬件电路板外观图片、PROTEUS仿真效果图
3. 源程序代码
LED E QU P1
DM EQU P0
WS EQU P2
KEY BIT 30H
BZ BIT 31H
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP CNT
ORG 0100H
;************主程序***************
MAIN: CLR KEY ;标志位清0
CLR B Z
MOV IE,#81H
ACALL ZT1 ;交通灯第一种状态
ACALL ZT2 ;交通灯第二种状态
ACALL ZT3 ;交通灯第三种状态
ACALL ZT4 ;交通灯第四种状态
ACALL ZT5 ;交通灯第五种状态
ACALL ZT6 ;交通灯第六种状态
AJMP MAIN ;返回循环
;**************ZHT子程序***************
;ZT1功能:交通灯第一种状态,
ZT1:MOV LED,#0F3H
MOV R5,#55
MOV R1,#60
MOV R2,#55
ACALL PLAY
ACALL DELAY1S
RET
;*************ZT2子程序************ ;ZT2功能:交通灯第二种状态,
ZT2:MOV R1,#5
MOV R5,#3
MOV R2,#3
SETB KEY
ACALL PLAY
ACALL DELAY1S
CLR K EY
RET
;************ZT3子程序************** ;ZT3功能:交通灯第三种状态,
ZT3:MOV R5,#2
MOV R1,#2
MOV LED,#0EBH
MOV R2,#02
ACALL PLAY
ACALL DELAY1S
RET
;************ZT4子程序************** ;ZT4功能:交通灯第四种状态,
ZT4:MOV R1,#25
MOV R5,#30
MOV LED,#0DEH
MOV R2,#25
ACALL PLAY
ACALL DELAY1S
RET
;************ZT5子程序************** ;ZT5功能:交通灯第五种状态,
ZT5:MOV R1,#3
MOV R5,#5
MOV R2,#3
SETB BZ
ACALL PLAY
ACALL DELAY1S
CLR B Z
RET
;************ZT6子程序**************
;ZT6功能:交通灯第六种状态,
ZT6:MOV R1,#2
MOV R5,#2
MOV LED,#0DDH
MOV R2,#2
ACALL PLAY
ACALL DELAY1S
RET
;PLAY功能:显示数据的暂存
;入口参数:R1,R5
;出口参数:33H,32H,31H,30H
PLAY: DEC R1
MOV A,R1
ACALL HBCD
MOV 33H,R6
MOV 32H,R7
DEC R5
MOV A,R5
ACALL HBCD
MOV 31H,R6
MOV 30H,R7
RET
;HBCD功能:把A拆分十位和个位,十位存R6,个位存R7
;入口参数:A
;出口参数:R6,R7
HBCD: MOV B,#10
DIV AB
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV R6,A
MOV A,B
MOVC A,@A+DPTR
MOV R7,A
RET
;DELAY1S功能:延时1S,且动态显示数码管东西,南北两个方向的倒计时,在标志位成立的情况下,东西方向的绿灯或南北方向的绿灯闪烁。
DELAY1S:MOV R6,#10
JNB KEY,LP
CPL LED.3
LP: JNB BZ,DSP1
CPL LED.0
DSP1: ACALL DELAY_100MS
DJNZ R6,DSP1
ACALL PLAY
DJNZ R2,DELAY1S
RET
;DELAY_100MS功能:延时100MS,用定时器T1定时1MS,动态显示数码管东西,南北两个方向的倒计时。
DELAY_100MS: MOV R3,#100
MOV TMOD,#10H
MOV TH1,#0FCH
MOV TL1,#18H
SETB TR1
LP3: M OV R4,#00010000B
MOV R0,#30H
LP1: J BC TF1,LP2
SJMP LP1
LP2: M OV TH1,#0FCH
MOV TL1,#18H
MOV WS,#00H
MOV DM,@R0
MOV WS,R4
MOV A,R4
RL A
MOV R4,A
INC R0
JB ACC.0,LP4
DJNZ R3,LP1
INC R3
LP4: D JNZ R3,LP3
RET
;延时1MS
DELAY1MS:MOV R3,#250
D0: NOP
NOP
DJNZ R3,D0
RET
CNT: CLR E A ;关定时器T0定时
JNB P3.2,$ ;按键松开了没?
PUSH P1 ;入栈保护
PUSH 02H
PUSH 03H
PUSH TH1
PUSH TL1
MOV P1,#1BH
ACALL DELAY1MS
ACALL DELAY1MS
ACALL DELAY1MS
ACALL DELAY1MS
ACALL DELAY1MS
ACALL DELAY1MS
JB P3.2,$ ;判断按键按下没?
JNB P3.2,$ ;按键松开没?
POP TL1 ;出栈
POP TH1
POP 03H
POP 02H
POP 30H
MOV P1,30H
SETB EA
RETI
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END。