51中断函数学习笔记

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51中断函数学习笔记

释疑:void Timer0() interrupt 1 using 1Timer0 是函数名,随便取的interrupt xx using y

跟在interrupt 后面的xx 值得是中断号,就是说这个函数对应第几个中断端口,一般在51 中

0 外部中断0

1 定时器0

2 外部中断1

3 定时器1

4 串行中断

实际上编译的时候就是把你这个函数的入口地址方到这个对应中断的跳转地址

using y 这个y 是说这个中断函数使用的那个寄存器组,51 里面一般有4 组r0 -- r7 寄存器,一共有32 个,如果你的终端函数和别的程序用的不是同一个寄存器组则进入中断的时候就不会将寄存器组压入堆栈返回时也不会谈出来节省代码和时间

MCS-51 中断函数注意如下:(1)中断函数不能进行参数传递,如果中断函数中包含任何参数声明都将导致编译出错。(2)中断函数没有返回值,如果企图定义一个返回值将得不到正确的结果,建议在定义中断函数时将其定义为void 类型,以明确说明没有返回值。(3)在任何情况下都不能直接调用中断函数,否则会产生编译错误。因为中断函数的返回是由8051 单片机的RETI 指令完成的,RETI 指令影响8051 单片机的硬件中断系统。如果在没有实际中断情况下直接调用中断函数,RETI 指令的操作结果会产生一个致命的错误。(4)

相关文档
最新文档