电子教案-任务3.3单片机交通灯控制系统
《单片机接口及其应用》授课教案
学习情境三 交通灯控制系统 学时 26 单片机接口及其应用
工作任务3.3 单片机交通灯控制系统 学时 8 授课教师 授课班级 授课日期
, 能够编写单片机的定时器/计数器以及中断综合应用程序;
专业能力 , 利用单片机的定时器/计数器实现交通红绿灯定时交替切换;同时利用按键实
现紧急情况下的强行变灯。 教学目标
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
能力 独立进行系统分析、
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
、实施、评估的能力;合理利用与支配资源的能力。
社会能力 协作能力、交流沟通能力、组织能力。
1. 教学地点:单片机实训基地。
教学条件 2. 教学资源:PC机、单片机开发软件、单片机试验箱、单片机仿真器、单片机最小系统、
单片机实验及实训指导
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
等。
教学方法
1
一、单片机交通灯控制系统分析
1、项目目标
通过交通灯模拟控制系统,学习MCS-51单片机的定时器/计数器以及中断综合应用技术,掌握其结构及编程方法,能够分析并编写控制程序。
交通指示灯显示状态表
信号灯显示状态信号灯显示状态
东西方向(简称东西方向(简称AA方向)状态说明方向)状态说明南北方向(简称南北方向(简称BB方向)方向)
红灯红灯黄灯黄灯绿灯绿灯红灯红灯黄灯黄灯绿灯绿灯
灭灭灭灭亮亮亮亮灭灭灭灭AA方向通行,方向通行,BB方向禁行方向禁行
灭灭灭灭闪烁闪烁亮亮灭灭灭灭AA方向警告,方向警告,BB方向禁行方向禁行
灭灭亮亮灭灭亮亮灭灭灭灭AA方向警告,方向警告,BB方向禁行方向禁行
亮亮灭灭灭灭灭灭灭灭亮亮AA方向禁行,方向禁行,BB方向通行方向通行
亮亮灭灭灭灭灭灭灭灭闪烁闪烁AA方向禁行,方向禁行,BB方向警告方向警告
亮亮灭灭灭灭灭灭亮亮灭灭AA方向禁行,方向禁行,BB方向警告方向警告
亮亮灭灭灭灭亮亮灭灭灭灭紧急情况紧急情况
2、项目任务
应用AT89C51芯片,模拟城市交通信号灯的控制过程,紧急情况下禁止所有方向的车辆
通行。设计电路并编程实现。
二、单片机交通灯控制系统电路设计
1、电路分析
选用12只发光二极管模拟信号灯,分别有红、黄、绿三种颜色。利用单片机分别对12只发光二极管进行亮灭的控制。
EA /VPP引脚----本设计选用AT89C51单片机芯片,使用片内程序存储器,因此 EA/VPP引脚接高电位。
2、电路图
2
3
交通指示灯模拟控制电路元器件清单
元器件名元器件名参数参数数量数量参数参数数量数量元器件名称元器件名称
称称
10k10kICICDIP40DIP401122插座插座,,电阻电阻
89518951112222µµFF11单片机单片机电解电容电解电容
12MHz12MHz1122晶体振荡器晶体振荡器按钮开关按钮开关
30030022pF22pF221212,,瓷片电容瓷片电容电阻电阻
1212发光二极管发光二极管
交通指示灯控制口线分配及控制状态表 P1.5P1.5P1.4P1.4P1.3P1.3P1.2P1.2P1.1P1.1P1.0P1.0P1P1端口端口
AAAAAABBBBBB状态说明状态说明持续时间持续时间数据数据
红灯红灯黄灯黄灯绿灯绿灯红灯红灯黄灯黄灯绿灯绿灯
11AA状态状态::通通111100001111F3HF3H55s55sBB行,行,禁行禁行
001122AA33、、交交状态状态::绿灯绿灯闪烁闪烁次,次,1111001111P1.3P1.3取反取反BB3s3s闪,闪,禁行禁行共共替变换替变换
33AA状态状态::警警110011001111EBHEBH2s2sBB告,告,禁行禁行
44AA状态状态::禁禁001111111100DEHDEH25s25sBB行,行,通行通行
0011、、
55AA33状态状态::禁禁闪烁闪烁次,次,交交0011111111P1.0P1.0取反取反BB3s3s行,行,绿灯闪绿灯闪共共替变替变
换换
66AA状态状态::禁禁001111110011DDHDDH2s2sBB行,行,警告警告
77状态状态:紧急情:紧急情001111001111DBHDBH1s1sA/BA/B况况禁行禁行
三、程序设计及分析
1、控制程序
流程图
破产流程图 免费下载数据库流程图下载数据库流程图下载研究框架流程图下载流程图下载word
交通指示灯模拟控制主程序的流程图
4
交通指示灯模拟控制的延时子程序流程图
5
交通指示灯模拟控制的紧急情况是通过按键S1触发外部中断0来模拟的,需要在编写中断初始化
程序开中断的基础上,编写中断服务子程序来处理紧急情况的中断,流程图如下图。
6
2、控制程序
源程序如下:
;************ 交通指示灯模拟控制程序 ********* ;程序名:交通指示灯模拟控制程序PM3_2.asm ;程序功能:交通指示灯模拟显示(含紧急情况禁行处理)
ORG 0000H
AJMP MAIN
ORG 0003H ;外部中断0入口地址
AJMP EMER ;指向中断子程序
ORG 0100H
MAIN:MOV TCON,#00H ;置外部中断0为电平触发
MOV IE,#81H ;开CPU中断,开外中断0
MOV P1,#0F3H ;A绿灯放行,B红灯禁止
MOV R2,#6EH ;置0.5s循环次数110次 DISP1:ACALL DELAY_500ms ;调用0.5s延时子程序
DJNZ R2,DISP1 ;55s延时
MOV R2,#06 ;置A绿灯闪烁循环次数
7
WARN1: CPL P1.3 ;A绿灯闪烁
ACALL DELAY_500ms
DJNZ R2,WARN1 ;A绿灯闪烁3次
MOV P1,#0EBH ;A黄灯警告,B红灯禁止
MOV R2,#04H ;置0.5s循环次数 YEL1:ACALL DELAY_500ms
DJNZ R2,YEL1 ;延时2s
MOV P1,#0DEH ;A红灯,B绿灯
MOV R2,#32H ;置0.5s循环次数 DISP2:ACALL DELAY_500ms
DJNZ R2,DISP2 ;延时25s
MOV R2,#06H ;置A绿灯闪烁循环次数 WARN2:CPL P1.0 ;B绿灯闪烁
ACALL DELAY_500ms
DJNZ R2,WARN2 ;B绿灯闪烁3次
MOV P1,#0DDH ;A红灯,B黄灯
MOV R2,#04H ;置0.5s循环次数 YEL2:ACALL DELAY_500ms
DJNZ R2,YEL2 ;延时2s
AJMP MAIN ;交通指示灯循环显示
;********** 延时子程序DELAY_500ms ************
;子程序名: 延时子程序DELAY_500ms ;子程序功能: 定时器T1,方式1,当时钟频率为12MHz时,延时0.5s
DELAY_500ms:MOV R3,#0AH
MOV TMOD,#10H
MOV TH1,#3CH
MOV TL1,#0B0H
SETB TR1
LP1: JBC TF1,LP2
8
SJMP LP1
LP2: MOV TH1,#3CH
MOV TL1,#0B0H
DJNZ R3,LP1
RET
;************* 中断服务子程序 EMER *************
;中断服务子程序名:EMER
;程序功能:使A、B方向交通指示灯均变为红灯 EMER: PUSH P1 ;P1口数据压栈保护
PUSH 03H ;入栈保护寄存器R3的内容
PUSH TH1 ;TH1压栈保护
PUSH TL1 ;TL1压栈保护
MOV P1,#0DBH ;A、B道均为红灯1s
ACALL DELAY_500ms
ACALL DELAY_500ms
POP TL1 ;弹栈恢复现场
POP TH1
POP 03H
POP P1
RETI ;返回主程序
END
四、系统调试
将硬件电路板和单片机开发系统连接好,进行以下操作。
? 输入源程序。
? 汇编源程序。
? 运行程序,观察发光二极管是否按预定交通信号灯变化规律显示。
? 若显示状态不正确,可以用断点运行方式查看问题具体出在哪里。
? 为更快地调试程序,可将各种状态的显示延时时间参数设得短一些。待程序运行无误后,再
9
将参数值恢复原状态。
? 按下S1检测是否进入紧急状态,释放S1回到正常交通指示灯控制状态。
思考题
1. 在中断服务子程序EMER中 PUSH 03H指令是保护哪个寄存器的,为什么要保护, 2. 在中断服务子程序EMER中,指令MOV IE,#81H中的81H是如何确定出来的,
10