打印

新手请教

[复制链接]
1672|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xuyan8401|  楼主 | 2008-3-30 17:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大师,请看下面的程序:

bcf status,rp1
bcf status,rp0
bcf status,irp
MOVLW TRISB
movwf fsr
movlw 0xff
movwf indf
nop 
movf portb,w
clrf indf
书上说,除了全局特殊寄存器及快速存储区外,对其它任何数据寄存器所做的任何操作都必须设定正确的BANK位,可程序中MOVLW TRISB这条语句前为什么没把BANK设为1呢?
还有,movf portb,w语句中能不能把PORTB改为TRISB啊?为什么有些地方用PORTX,而有些地方则用TRISX呢?谢谢各位大师的详细指点.
沙发
xuyan8401|  楼主 | 2008-3-30 19:53 | 只看该作者

RE

我自己顶,顶,顶..

使用特权

评论回复
板凳
xieyuanbin| | 2008-3-31 08:21 | 只看该作者

哦,不晓得你在那本书上看来的?

是不是葵花宝典啊?你看看内存图,上面标在哪个BANK的你就要到哪个BANK去操作.除非有映射的寄存器.

使用特权

评论回复
地板
lifengtao| | 2008-3-31 10:59 | 只看该作者

PORTX和TRISX

PORTX和TRISX,他两有区别也有联系。这样的基础知识要自己看书,别人给你讲有时不免遗漏。

使用特权

评论回复
5
xuyan8401|  楼主 | 2008-3-31 11:10 | 只看该作者

RE

嗯,谢谢两位大师!
xieyuanbin大师,什么葵花宝典啊?
我是从张时峰老师写的书上看的,我是看了那内存图才有疑问的:
因为内存图上面TRISB是在BANK1区的,而程序却是在BANK0的前提下就去访问TRISB了,所以不懂了...谢谢哦.

使用特权

评论回复
6
xieyuanbin| | 2008-3-31 12:06 | 只看该作者

你要看清楚了,是MOVLW而不是MOVWF

MOVLW TRISB只不过是将代表TRISB的立即数,即TRISB的地址装载到W中,上面的程序是利用FSR间接寻址TRISB,所以上面要BCF STATUS,IRP

使用特权

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

本版积分规则

24

主题

102

帖子

0

粉丝