本帖最后由 rechan886 于 2013-3-15 12:41 编辑
由于这个单片机只能用汇编写程序。而且汇编里面需要用到查表的方式来实现对温度的处理
所以我就想到用 DB,或者是DW 去处理。由于DB或DW的数据是放在代码的区间内的(查资料的时候看到的,不知道对不对)我用软件模拟也发现它是存在代码区内的。因为RAM中没有出现我所定义的这些数据。
但是问题是我知道他们是放在代码区中
org: 0400H
TEMP: DB FFH, FFH, FFH, FFH, 06H, 07H, 08H, 09H
类似于这样子。我如何才能通过调用寄存器获得代码区这些数据???
我看过51的调用似乎是直接就用DPTR+A,将#TEMP直接赋值给DPTR就可以完成。
不过我这款单片机没有DPTR寄存器。它是用FSR来定义
数据内存中的地址。值从IND中获取。但是它上面写的是 数据内存中值。而且我也用FSR试过,没有作用
movlw TEMP
movwf FSR1
movfw IND1
movwf 020h
movlw是将值赋值W寄存器
movwf是将W的值赋值给指定地址
在20H的地方的值未发生改变,我用软件模拟试过。
更多的命令可以看下数据手册
现在不知道如何从代码中读取数据。手册里出了FSR好像也没有别的寄存器来读数据了。。求大神帮忙啊。。。。
数据手册在这里下载
http://www.ic-fortune.com.cn/upload/Download/FS98O21-DS-15_EN.pdf
FS9821~23 查表只能用retlw
如果两个字节 可以用伪指令HIGH LOW 例如
data_high:
addpcw
retlw high 1234
retlw high 2345
data_low:
addpcw
retlw low 1234
retlw low 2345
数据最好不要超过128个,因为work>= 0x80时,addpcw会跳到前面的地址 相当于负值.
FS98O01 FS98O02 可以直接DW xxx 然后用MOVP 查表
带24位AD的没有,MSP430 C8051F好像AD位数挺高的,没有用过,可以参考
万用表富晶主要做到2000 4000 6000, 没有4位半(20000),
市场上的4位半应该主要是7135做的
开发方面,富晶有编译软件,仿真器
有什么问题,欢迎咨询, QQ:9491431
一周热门 更多>