单片机c51编程中断服务函数地址转移指令怎么写?

lookaroundd 2018-04-07 08:26:25
在c51单片机中每一个中断的存储单元只有8个字节的存储单元,比如用汇编语言编程的时候可以在中断入口地址中放一条转移指令(如LJMP xxxH)可以实现地址转移,解决存储空间小的问题,但是在用c51语言编程的时候怎么表示这个(LJMP xxxh)指令呢?
...全文
435 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_25453927 2018-04-12
  • 打赏
  • 举报
回复
你只要写好你的中断函数,比如外部中断0的中断 void int0(void) interrupt 0 { } 比如这个函数的地址编译链接后的地址是2000H,那么在中断入口编译器会自己加入一个长跳转指令,跳到到2000H
worldy 2018-04-11
  • 打赏
  • 举报
回复
c51语言编程你根本不需要关心地址是怎么转移的,你只要加上 interrupt n 关键字,编译器会帮你编译出相关的代码
tianxj001 2018-04-09
  • 打赏
  • 举报
回复
C编写51是不需要你自己关心这个指令的,编译器会自动给你准备中断入口命令,前提是你必须在程序里面,提供正确的中断函数的入口写法。 比如: void Time1_INT() interrupt 3 {:} 这里 Time1_INT()是你自己给中断函数起的名字,为了好读,一般我们都用功能单元名字变化后定义,这里很直观的, Time1的中断函数。后面 interrupt 3,是告诉编译器,中断号是3。 在编译器里面,中断3就是time1中断,这样,你的中断函数就写好了。
zgl7903 2018-04-07
  • 打赏
  • 举报
回复
http://www.keil.com/support/man/docs/c51/c51_le_interruptfuncs.htm
zgl7903 2018-04-07
  • 打赏
  • 举报
回复
https://wenku.baidu.com/view/62564bf7ba0d4a7302763abc.html
zgl7903 2018-04-07
  • 打赏
  • 举报
回复
有关键字 interrup N (N中断号), 如 void int_0() interrupt 0,C51帮助文档中检索 interrup 就有详细说明

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧