PIC16系列若对没有定义的寄存器进行操作会有后果??

[复制链接]
3120|10
 楼主| Ryanhsiung 发表于 2012-5-3 17:31 | 显示全部楼层 |阅读模式
本帖最后由 Ryanhsiung 于 2012-5-3 17:46 编辑

我最近准备将877A的程序移植到887上,查看了看有不同的寄存器及定义,修改了程序。
我想要减少版本,想要将改完的887程序直接烧进877A中(使用BOOTLOADER 只烧写HEX,我有看过其中的HEX执行文件基本一样)。
程序不同 ANSEL ANSELH两个寄存。


877A操作自己没有的寄存器,单片机内部会操作什么,会怎么运行,会不会触发陷阱??

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
yewuyi 发表于 2012-5-3 17:46 | 显示全部楼层
1、编译的时候通不过,因为编译器的头文件限制了编译完成。
2、如果直接是原来的HEX文件烧入的,只要和别的寄存器没有冲突,并且操作这些寄存器没有什么作用的话,一般不会有什么问题,多数是可以直接烧入的
NE5532 发表于 2012-5-4 16:47 | 显示全部楼层
一般厂家的官方说法是——请尽量不要操作他们,没有人给你打保票。
Light_David 发表于 2012-5-4 18:47 | 显示全部楼层
既然887有操作这两寄存器,那这个代码在877A中AD模块能正确执行吗?
 楼主| Ryanhsiung 发表于 2012-5-5 11:43 | 显示全部楼层
既然887有操作这两寄存器,那这个代码在877A中AD模块能正确执行吗?
Light_David 发表于 2012-5-4 18:47

这两个是模拟 数字设置口,877A中有另一个(887无有),可以正常使用
 楼主| Ryanhsiung 发表于 2012-5-18 21:17 | 显示全部楼层
已经试过了,可以正常运行!
XIEYUANBIN 发表于 2012-5-18 22:10 | 显示全部楼层
有一些是映射到别的寄存器,有一些则没有反应。灰色的代表没有,如果标明ACCESSES.....,那就是映射到某寄存器了。一般BANK1及以后的页面总有一些寄存器可以映射到BANK0,对于汇编来讲,我们可以定义一些类似STATUS这样在每个页面都可以访问的变量以加快运算速度。
XIEYUANBIN 发表于 2012-5-18 22:14 | 显示全部楼层
已经试过了,可以正常运行!
Ryanhsiung 发表于 2012-5-18 21:17

虽然可以正常运行,但要注意的是,也许某些寄存器在这个型号上没用,但在另一个配置高一些的型号上又有用了,所以还是不要操作他们为好。有些无用的位,数据手册明确标明你必须写零或者置一,都是为了兼容别的型号以免误操作。
兰天白云 发表于 2012-5-21 11:30 | 显示全部楼层
实验可以就可以

本人2002年以前经常这么干,前提是把数据手册倒背如流
ayb_ice 发表于 2012-5-28 14:20 | 显示全部楼层
典型的非法操作
 楼主| Ryanhsiung 发表于 2012-5-29 20:11 | 显示全部楼层
本帖最后由 Ryanhsiung 于 2012-5-29 20:32 编辑
典型的非法操作
ayb_ice 发表于 2012-5-28 14:20

嘻嘻,非法操作有时也是一个很好的操作!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:嵌入式技术专家
简介:道阻且长,行则将至!

64

主题

4653

帖子

14

粉丝
快速回复 在线客服 返回列表 返回顶部