飞捷 发表于 2023-10-13 09:03:01

神农鼎 发表于 2023-10-13 08:58
STC32G系列32位8051, 20H ~ 7FH 都可以位寻址,96个字节可以位寻址
96 * 8 = 768个 BIT RAM 可以位寻址


32位单片机好像是每个地址指向的是32位的寄存器,或者都是以32位占用一个指针地址。但是STC32好像还是8位(或者16位没有去细了解)占用一个指针地址。所以还不算是32位,只是多了个32位加减指令,方便提高计算效率。   
以上是个人的目前看法,不知是不是这样的。

神农鼎 发表于 2023-10-13 09:08:44

STC32对 RAM 的操作是 32位操作:
===即使指令是要求只需要读8位,他也是读32位,扔掉多余的24位
===即使指令是要求只需要读8位,他也是读32位,扔掉多余的16位








飞捷 发表于 2023-10-13 09:34:02

神农鼎 发表于 2023-10-13 09:08
STC32对 RAM 的操作是 32位操作:
===即使指令是要求只需要读8位,他也是读32位,扔掉多余的24位
===即使指 ...

STC32G12K128   12K是指12K的8位寄存器还是12K的32位寄存器?

神农鼎 发表于 2023-10-13 10:24:40

12k 字节的 SRAM, 不是寄存器

123 发表于 2023-10-23 20:07:48

#define u8 unsigned char
u8 BitArray;                //位数组 32*8=256位 相当于 bit BitArray;
bit ReadBitArray(u8 pc) {                //读位数组 参数1:位地址 返回位值
        return 1 << (pc & 7) & BitArray;
}

void WriteBitArray(u8 pc,bit dat) {                //写位数组 参数1:位地址 参数2:位值
        u8 a = pc >> 3;
        u8 b = 1 << (pc & 7);
        if (dat) {
                BitArray |= b;
        } else {
                BitArray &= ~b;
        }
}

飞捷 发表于 2023-10-24 08:23:56

123 发表于 2023-10-23 20:07


我现在另定义了用200个CHAR,定义了1600个位,就是使用起来感觉有点别扭。而且有花费时间,每读取一个位都要进行移位读取
页: 1 [2]
查看完整版本: 单片机可以定义多少个BIT变量?