找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3619|回复: 2
收起左侧

STC8H系列单片机中断号大于31在keil编译出错的处理

[复制链接]
ID:351097 发表于 2020-4-2 22:54 | 显示全部楼层 |阅读模式
本帖最后由 没有你 于 2020-4-2 22:57 编辑

    今天浏览了STC官方的STC8H系列单片机的数据手册。在附录J说明了在keil中编译中断号大于31需要特殊处理。原因是STC8H系列单片机新增了不少中断向量入口,比如RTC中断、P0端口中断和P1端口中断等入口地址,如下图所示。
中断.JPG

中断2.JPG

    如果用户用到中断号大于31,则需要特殊处理。STC官方给出的了三种比较折中的解决方法:第一种是借用keil保留的中断号13,需要嵌入汇编代码,在中断号13入口地址处增加一条跳转到对应中断入口的语句;第二种方法和第一种类似,借用其他未使用的0-31之间的中断号,需要嵌入汇编代码,在中断号入口地址处增加一条跳转到对应中断入口的语句;
第三种方法则是不使用中断号,而是用一个普通函数代替,只不过在普通函数里添加一条跳转到对应中断入口的语句。
    如果在IAR for 8051平台编译,则没有中断号数量的限制,直接在头文件中定义中断号和地址就行,比如下图所示:
IAR中断.JPG




回复

使用道具 举报

ID:351097 发表于 2020-4-3 10:40 | 显示全部楼层
aking991 发表于 2020-4-3 08:47
注意看手册,有那么多中断功能也就只有那么一二种,要选对才可以吧,我还没有用过,只是友情提醒

你说的对,一般情况下用到中断功能不会多。不过,STC8H可有46个中断功能,不像普通的STC89C52。如果用到大于31中断号,还是要参照STC官方的做法。或者你有自己独特的解决方法也可以分享出来。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表