51单片机实验-实验四 多级中断实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验4 多级中断
一、实验目的
1)通过实验了解定时器中门控信号的使用
2)通过实验了解多级中断的原理、编程方法
二、实验设备
PC机、星研Star16L仿真器系统+仿真头PODPH51(DIP)、EL-Ⅱ型通用接口板实验电路,PROTEUS仿真软件。
三、实验内容
用单片机控制一个路灯,天黑时路灯启动,亮2秒,灭2秒,闪闪发光,白天时路灯熄灭。用外部开关控制白天与黑夜的转换,用定时器控制路灯的闪亮
1、采用多级中断嵌套,INT0中断(低级)控制黑天白天状态;T0中断(高级)控制灯的闪亮。
四、实验电路
五、实验程序及注释
ORG 0000H
LJMP MAIN
ORG 0003H ;INT0中断入口地址
LJMP WBINT
ORG 000BH ;T0中断入口地址
LJMP TLINT
ORG 0100H
MAIN: ;主程序
MOV SP,#30H
MOV IE,#0H ;关中断
MOV TCON,#0H ;INT0低电平触发中断
MOV IP,#2H ;T0高级中断INT0低级中断MOV TMOD,#0H ;T0方式0
MOV TL0,#18H
MOV TH0,#63H ;T0赋定值
MOV R7,#0C8H ;T0中断计数值
MOV R6,#10 ;T0工作状态灯的显示时间控制CLR P1.0 ;主程序工作指示
CLR P1.1 ;INT0中断程序工作指示
CLR P1.6 ;T0中断程序工作指示
CLR P1.7 ;路灯工作指示
CLR P1.2
CLR P1.3
CLR P1.4
CLR P1.5
SETB EX0 ;开INT0中断
SETB EA ;开总中断
WAIT:
CPL P1.0 ;P1.0闪动显示
ACALL DL Y ;主程序循环
AJMP W AIT ;等待中断
DL Y: MOV R0,#01H ;闪动延时时间设定子程序1 DL Y0: MOV R5,#0FFH
DL Y1: MOV R4,#0FFH
DL Y2: DJNZ R4,DL Y2
DJNZ R5,DL Y1
DJNZ R0,DL Y0
RET
W_DL Y: MOV R1,#01H ;闪动延时时间设定子程序2
W_DL Y0:MOV R2,#0FFH
W_DL Y1:MOV R3,0FFH
W_DL Y2:DJNZ R3,W_DL Y2
DJNZ R2,W_DL Y1
DJNZ R1,W_DL Y1
RET
WBINT: CLR EX0 ;关INT0中断
SETB ET0 ;开放T0中断
SETB TR0 ;启动T0
CLR P1.0
WBW: CPL P1.1 ;INT0中断工作标志
ACALL W_DL Y
NB P3.2,WBW ;等白天信号
CLR TR0 ;关T0
CLR ET0 ;关T0中断
CLR P1.1
CLR P1.6
CLR P1.7
SETB EX0 ;开INT0中断
RETI
TLINT: MOV TL0,#18H ;t0重新置初值
MOV TH0,#63H
DJNZ R6,EXP2
MOV R6,#10
CPL P1.6 ;T0中断10次显示变化
EXP2: DJNZ R7,EXPORT
MOV R7,#0C8H ;T0中断200次
CPL P1.7 ;等于2秒,路灯变化
EXPORT:RETI
END
六、实验结果
当开关处于低电平状态,则P1.1接的LED灯L2跟P1.6接的L7会闪烁,表明INT0中断子程序跟T0中断子程序正在进入中断中,此时模拟处于黑夜的状态,则P1.7接的代表路灯的L8会以程序中设定的间隔时间2秒亮灭;当开关拨上高电平,则P1.0接的L1会闪动,表明程序正在主程序那里循环,此时L2,L7,L8均不亮。