- 1
- 0
- 约7.3千字
- 约 52页
- 2018-03-04 发布于浙江
- 举报
[计算机软件及应用]第5章_中断系统
?中断服务程序部分 ?在相应的中断入口地址设置一条跳转指令,转移到中断服务程序的实际入口处; ?根据需要保护现场; ?若是串行口中断,对TI、RI清0; ?安排中断服务所做的操作(中断服务程序的主体); ?恢复现场; ?中断返回(RETI)。 2. 中断系统应用举例 把一个外部中断(设为INT0)设置为电平激活方式。其中断服务程序的末尾写上如下几条指令: JNB P3.2, $ ; 在INT0变高前原地等待(死循环) JB P3.2, $ ; 在 INT0变低前原地等待(死循环) RETI ; 返回并执行一条指令 例1 单步操作的中断实现 条件:INT0保持低电平, 且允许INT0中断 原理:CPU就进入外部中断0服务程序, 由于有上述几条指令, 它就会停在JNB处, 原地等待。当INT0 端出现一个正脉冲(由低到高, 再到低)时, 程序就会往下执行, 执行RETI后, 将返回主程序, 往下执行一条指令, 然后又立即响应中断,以等待INT0端出现的下一个正脉冲。 这样在INT0端每出现一个正脉冲, 主程序就执行一条指令, 实现了单步执行的目的 问题:MCS-51单片机有两个外部中断输入端, 当有2个以上中断源时, 它的中断输入端就不够了 解决方法: 可以采用中断与查询相结合的方法来实现 内容:每个中断源都接在同一个外部中断输入端上, 同时利用输入口线作为多中断源情况下各中断源的识别线 例2 多中断源 图 5.6 多中断源 ORG 0003H LJMP INT0 … INT0: PUSH PSW PUSH ACC JB P0.7, DV1 JB P0.6, DV2 JB P0.5, DV3 JB P0.4, DV4 GOBACK: POP ACC POP PSW RETI DV1: … ; 装置1中断服务程序 AJMP GOBACK DV2: … ; 装置2中断服务程序 … AJMP GOBACK DV3: … ; 装置3中断服务程序 … AJMP GOBACK DV4: … ; 装置4中断服务程序 … AJMP GOBACK 定时器/计数器应用举例 (P90,NP94) 例 利用定时器输出周期为2 ms的方波, 设单片机晶振频率为 6 MHz 选用T0作定时器, 输出为P1.0引脚, 2ms 的方波可由间隔1ms的高低电平相间而成, 因而只要每隔1ms对P1.0取反一次即可得到这个方波 定时1ms的初值: 因为机器周期=12÷6 MHz= 2 μs 所以1ms内T0 需要计数N次: N= 1 ms÷2 μs = 500 由此可知: 使用方式 0 的 13 位计数器即可, T0初值X为: X=M-N=8192-500=7 692=1E0CH 但是, 因为13位计数器中, 低8位TL0只使用了5位, 其余码均计入高8位TH0的初值, 则T0的初值调整为 TH0=0F0H, TL0=0CH TMOD初始化: TMOD=00H (GATE=0, C/T=0, M1=0, M0=0) TCON初始化: 启动TR0=1 程序清单如下: ORG 0000H AJMP START; 复位入口 ORG 000BH AJMP TOINT ; T0中断入口 ORG 0030H START: MOV SP, #60H; 初始化程序 MOV TH0, #0F0H ; T0赋初值 MOV TL0, #0CH MOV TMOD, #00H SETB TR0 ; 启动T0 SETB ET0 ; 开T0中断 SETB EA ; 开总允许中断 MAIN: AJMP MAIN ; 主程序 TOINT: CPL P1.0 MOV TL0, #0CH MOV TH0, #0F0H RETI 例3 设计一个外部中断应用系统。主程序将P1的8个LED作
您可能关注的文档
最近下载
- 2025-2026学年小学综合实践活动二年级下册浙科技版教学设计合集.docx
- 2025中考数学压轴题每日一题(130题)答案.pdf VIP
- 2026中考数学压轴题选择+填空275题答案.pdf VIP
- 文化产业概论完整版电子课件.pptx
- 2025中考数学压轴题每日一题(130题).docx VIP
- 2026中考数学压轴题选择+填空275题.docx VIP
- 【三年级数学】每日口算 30 天.pdf VIP
- 六年级上册数学复习练习:寻找单位“1”和列出等量关系式专项练习.docx VIP
- T_CAS ES101102002-2022 工业品质量分级评价规则 钻井液用磺甲基酚醛树脂SMP .docx VIP
- 第四版国际压力性损伤溃疡预防和治疗临床指南解读PPT课件.pptx VIP
原创力文档

文档评论(0)