huanghuac 发表于 2021-12-6 22:16

不支持2进制

SH79F166 ,SH88F54,都实验过了都不支持2进制,为什么啊

yszong 发表于 2021-12-6 22:18

何以见得

jlyuan 发表于 2021-12-6 22:23


#define Bat_Seg0 (disbuff&=~0b11111000)这个就报错了,
         #define Bat_Seg0 (disbuff&=~0xF8)要这样才行
请问是什么原因,为什么不支持2进制了

huanghuac 发表于 2021-12-6 22:26

难到是那里还要什么设置吗

xxrs 发表于 2021-12-6 22:28

8051指令集,怎么会不支持二进制。

huangchui 发表于 2021-12-6 22:30

8051指令集,怎么会不支持二进制。

yszong 发表于 2021-12-6 22:32

要将中断使能寄存器设置为 01011010B
      IE = Bin(01011010);
注:头文件中加入下面两段定义
#define LongToBin(n) \
(                  \
((n >> 21) & 0x80) | \
((n >> 18) & 0x40) | \
((n >> 15) & 0x20) | \
((n >> 12) & 0x10) | \
((n >>9) & 0x08) | \
((n >>6) & 0x04) | \
((n >>3) & 0x02) | \
((n      ) & 0x01)   \
)
#define   Bin(n) LongToBin(0x##n##l)//write binary charactor set            0xexsample : Bin(11111111) = 0xff

juventus9554 发表于 2021-12-6 22:34

是KEIL 对0b11111000 不支持,所以LS的方法比较好。

songqian17 发表于 2021-12-6 22:36

6楼的宏定义是常用之方法

huanghuac 发表于 2021-12-6 22:41

嗯,我了解了,多谢啊

dengdc 发表于 2021-12-6 22:43


4位机使用ram超过7fh时需要注意些什么问题

jlyuan 发表于 2021-12-6 22:45

什么片子,详细点

llljh 发表于 2021-12-6 22:47


我现在做的一款程序ram的使用超过了7fh,
SH69P24的自定义RAM区为:30h ~ 12fh,当使用的ram超过7fh时,就是使用80h~12fh的RAM时有些指令有限制吗?

heweibig 发表于 2021-12-6 22:49

不懂,帮顶了

shimx 发表于 2021-12-6 22:50


BANK0: 7F以下
BANK1:80H~FFH
.........以此类推

BANK1和BANK1以上的RAM,在使用的时候,不能进行立即数寻址,只能进行直接数寻址。

huangchui 发表于 2021-12-6 22:53

没遇到过这个问题

jlyuan 发表于 2021-12-6 22:55

要使用BANK1中的RAM进行立即数寻址,可以先将该立即数保存到BANK0中的临时寄存器,然后使用直接数寻址的方式保存到BANK1的目标RAM中。

llljh 发表于 2021-12-6 22:58

能举个例子吗?

songqian17 发表于 2021-12-6 23:00


临时寄存器:   TEMP1(30H)
       目标寄存器:   TARGET_RAM(80H)
       目标:将TARGET_RAM赋值为05H

       LDI    TEMP1    ,05H
       STA    TARGET_RAM
       如果写成LDI   TARGET_RAM    ,05H错误

huangchui 发表于 2021-12-6 23:04

sh88f54如何设计复位
页: [1] 2
查看完整版本: 不支持2进制