在一些使用中,我们常会遇到一些表格的创建,比如温度,电量百分比等。
因为在应广的单核单片机中,不具备那条查表指令,
lbtabh index;//取指定ROM中的高字节
lbtabl index;//取指定ROM中的低字节
所以不支持直接的表格定义了。有一些用户老问,为什么PMC232那样写可,PMS131就不可以。
这就是原因,成本做低了,一些指令不支持了。
取而代之的是利用PCADD指令来做调用返回立即数的形式,来建立表格。
比如我们要建立一个字符输出的表格:
void digital_charactor_out_table(void)
{
byte a_tamp;
a++;
if(a <= 13) //这是在防止查表超出范围,让程序跑飞。
{
pcadd a; //a = 1~n,a值等于0时不能跳出pcadd循环
{
ret ~0x3f; //00 ,所有的立即数一个个的返回,PIC他们也是这样做的,
只是他们的编译器,处理能力更强大一些
ret ~0x06; //01
ret ~0x5b; //02
ret ~0x4f; //03
ret ~0x66; //04
ret ~0x6d; //05
ret ~0x7d; //06
ret ~0x07; //07
ret ~0x7f; //08
ret ~0x6f; //09
ret ~0x40; // -
ret ~0x3e ; //u
ret ~0x37 ;//n
ret ~0x37;
}
}
else
{
.wdreset;
}
}