51单片机中断系统实验

一、实验内容

1.基本要求

掌握中断服务子程序设计及调用;编写一个简单功能外部中断服务子程序,通过手工设置中断位启动中断(服务子程序以本人学号后两位为正计数条件,计数达到则取反IO口P3.x引脚电压状态,其中x为本人学号后两位十进制数模8的结果);

2.扩展要求

设计扩展外部中断源数量的方法;

3.思考要求

观察中断优先关系,思考中断嵌套时的寄存器资源分配方法。

二、理论分析或算法分析中断系统实验,中断发生时,如何得到它的地址。

0000H:LJMP bgn

0003H:外部中断0,长度占了8个字节,如果程序短可以实现,默认中断返回指令

000BH:定时计数器0,占八个字节,中断返回

0013H:外部中断1,占八个字节,中断返回

001BH:定时计数器1,占八个字节,中断返回

0023H:串行通讯,占八个字节,中断返回

002BH:定时计数器2,占八个字节,中断返回

org 0030H 开始

bgn:

…….

外围部件:中断ea是允许哒,再单步

三、实现方法

四.实验结果分析

学号为27,然后模8等于33

执行过程

遇到的问题

(1)符号错误;

(2)表达语法错误;

解决办法

  1. 将,改为英文状态,
  2. 将seth改为setb;

五、结论

在本次实验中,完成了外部中断功能实验项目,掌握中断初始化的内容和中断子程序的结构,熟悉中断响应的过程和现场保护的意义,会正确运用堆栈指令作现场保护和现场恢复。

思考题:观察中断优先关系,思考中断嵌套时的寄存器资源分配方法。

中断的优先级有:查询优先级和执行优先级。当一个中断正在执行的时候,如果事先设置了中断优先级寄存器IP,那么当一个更高优先级的中断到来的时候会发生中断嵌套,如果没有设置则不会发生任何嵌套;

如果有同一个优先级的中断触发,它并不是在“不断的申请”,而是将它相应的中断标志位置即IE寄存器的某位置位,当CPU执行完当前中断之后,按照查询优先级重新去查询各个中断标志位,进入相应中断。

要记住,没有设置IP时,单片机会按照查询优先级来排队进入服务。如果要想让某个中断优先响应, 则要设置IP,更改执行优先级(或者说物理优先级)。要注意的是,当设置了IP后,当低执行优先级中断在运行时,如果有高执行优先级的中断产生,则会嵌套调用进入高执行优先级的中断。

×:无效位。

PS:串行I/O中断优先级控制位。PS=1,高优先级;PS=0,低优先级。

PTl:定时器/计数器1中断优先级控制位。PTl=1,高优先级;PTl=0,低优先级。

PXl:外部中断1中断优先级控制位。Pxl=1,高优先级;PXl=O,低优先级。

PT0:定时器/计数器o中断优先级控制位。PT0=1,高优先级;PTO=0,低优先级。

Px0:外部中断0中断优先级控制位。Px0=1,高优先级;Px0=0,低优先级。

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值