请问一下 PIC 单片机的 存储体 bank0 bank1...

[复制链接]
9083|13
 楼主| 杜专 发表于 2009-9-24 21:35 | 显示全部楼层 |阅读模式
bank1 uchar count_pwr=0;

           uchar count_pwr=0;

请问一下 有bank1  和没有bank1  的区别是什么啊  

还要 这个

存储体应该怎么样去理解它的用法,

麻烦大家告诉我 ,谢谢
 楼主| 杜专 发表于 2009-9-24 21:46 | 显示全部楼层
请问一下 有bank0  和没有bank1  的区别是什么啊  

还要 这个

存储体应该怎么样去理解它的用法,

麻烦大家告诉我 ,谢谢
machunshui 发表于 2009-9-24 23:15 | 显示全部楼层
无bank前缀,
默认bank0.

因为PIC绝大部分都是单字指令,
所以一条指令中表示的寻址范围有限,
所以为了扩大寻址范围,设置了存储体寄存器,
即使指令中的内存编址相同,
但是在存储体寄存器的值不同的时候,寻址不同的物理存贮器.


可以说,MICRCOHIP用存储体的方法,扩大了单字指令的寻址范围.
NE5532 发表于 2009-9-25 21:13 | 显示全部楼层
简单说就是,不同单元的同一楼层的住户不同,有的用户霸道,就占了各单元的同一楼层(映射)。说白了是MICROCHIP早期省钱的一种手段,结果把自己套进去了,现在弄得写程序的怨声载道。
 楼主| 杜专 发表于 2009-9-25 22:49 | 显示全部楼层
还是不明白

我是这样理解的对嘛

我的理解是  把寄存器放到 片内程序存储器中的 页0   页1   页2   页3
页0 就是bank0
页1 就是bank1
页2 就是bank2
页3就是bank3

这样对嘛
machunshui 发表于 2009-9-26 08:05 | 显示全部楼层
简单说就是,不同单元的同一楼层的住户不同,有的用户霸道,就占了各单元的同一楼层(映射)。说白了是MICROCHIP早期省钱的一种手段,结果把自己套进去了,现在弄得写程序的怨声载道。 ...
NE5532 发表于 2009-9-25 21:13


对有成见的人来说当然是怨声载道。

可是MICRCOHIP靠这个产品成了8 bit mcu的NO。1
machunshui 发表于 2009-9-26 08:13 | 显示全部楼层
还是不明白

我是这样理解的对嘛

我的理解是  把寄存器放到 片内程序存储器中的 页0   页1   页2   页3
页0 就是bank0
页1 就是bank1
页2 就是bank2
页3就是bank3

这样对嘛 ...
杜专 发表于 2009-9-25 22:49


PIC16 的指令字长14位,其中用于寻址的位数只有7位,只能寻址128字节范围。
那么可以把实际芯片的物理内存分成若干区,
bank寄存器的值指定了当前指令寻址到底是哪一个内存区。
machunshui 发表于 2009-9-26 08:14 | 显示全部楼层
分区作为一种扩充寻址范围的手段,不光MICROCHIP用,

TI的某些dsp也采用了类似的办法。
zhaiweilei 发表于 2009-9-26 09:04 | 显示全部楼层
还是不明白

我是这样理解的对嘛

我的理解是  把寄存器放到 片内程序存储器中的 页0   页1   页2   页3
页0 就是bank0
页1 就是bank1
页2 就是bank2
页3就是bank3

这样对嘛 ...
杜专 发表于 2009-9-25 22:49

寄存器是硬件已经定死的,不能人为的改变。
临时变量都在bank0中,所以编程序时,给bank0中留一定的空间,供仿真用,因为仿真是也会产生一些临时变量。
tx007007 发表于 2009-9-27 10:00 | 显示全部楼层
其实一直没弄透这个东西,反正变量朝后面的页面放呗
xiao3han10 发表于 2009-9-28 00:32 | 显示全部楼层
多看看 芯片 spec
maxking 发表于 2009-10-5 10:18 | 显示全部楼层
7楼讲的不错!
用于寻址的7位最大就是7Fh,4个bank就是1FFH
dongqingyu0927 发表于 2009-10-5 16:49 | 显示全部楼层
21ID 发表于 2009-10-8 13:31 | 显示全部楼层
已经说的很明白了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:在通往牛X的道路上,我们一路狂奔! 本人所有发言均为个人观点。由此帖带来的后果,本人一般不予负责。论坛是论坛!

116

主题

1278

帖子

3

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