打印

pic中档单片机程序存储器如何访问

[复制链接]
3451|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
loveme99|  楼主 | 2011-4-7 15:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何把程序存储器中的数据读到RAM中,目的是做整个程序存储器的CRC校验
沙发
NE5532| | 2011-4-7 16:17 | 只看该作者
RETLW查表,像16F690这样的新机型,那个访问E2的寄存器可以指向FLASH寻址的。

使用特权

评论回复
板凳
loveme99|  楼主 | 2011-4-7 17:00 | 只看该作者
谢谢,我用了,又发现个问题,怎么只返回8位,正常看program memory里是16位的啊!前八位怎么读不出来

使用特权

评论回复
地板
NE5532| | 2011-4-7 17:24 | 只看该作者
PIC的特性,PIC的程序字长是13bit宽,建表只能建8bit宽度,剩下的bit浪费掉。

使用特权

评论回复
5
loveme99|  楼主 | 2011-4-7 17:33 | 只看该作者
Line  Address  Opcode               Disassembly              
    11   000A   280C  GOTO 0xc                              
    12   000B   280D  GOTO 0xd                              
    13   000C   2845  GOTO 0x45                              
    14   000D   108B  BCF 0xb, 0x1                           
    15   000E   0020  MOVLB 0                              
看其中的opcode是280c等16位

使用特权

评论回复
6
NE5532| | 2011-4-7 17:41 | 只看该作者
你用的哪种PIC芯片?

使用特权

评论回复
7
loveme99|  楼主 | 2011-4-7 21:19 | 只看该作者
16f1936

使用特权

评论回复
8
skygrow| | 2011-4-8 13:53 | 只看该作者
详看数据手册
这个型号读程序存储器有两个方法:
1.如上所说的RETLW
2.FSR间接寻址

使用特权

评论回复
9
loveme99|  楼主 | 2011-4-8 20:51 | 只看该作者
11   000A   280C  GOTO 0xc                              
    12   000B   280D  GOTO 0xd                              
    13   000C   2845  GOTO 0x45                              
    14   000D   108B  BCF 0xb, 0x1                           
    15   000E   0020  MOVLB 0   
用那两种方法只能返回0c 0d 45 8b 20前面的28 10 00 返回不了

使用特权

评论回复
10
yewuyi| | 2011-4-8 21:24 | 只看该作者
支持FLASH读写的PIC MCU,都可以通过读FLASH操作得到FLASH数据的吧!

使用特权

评论回复
11
loveme99|  楼主 | 2011-4-10 17:29 | 只看该作者
莫非前面的8位是固定的,不允许访问?

使用特权

评论回复
12
yewuyi| | 2011-4-11 08:12 | 只看该作者
前面的位是指令码

使用特权

评论回复
13
251566208| | 2011-4-11 17:24 | 只看该作者
有数据手册吗?没有我可以提供中文的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

119

帖子

1

粉丝