找回密码
 立即注册
楼主: 飞捷

单片机可以定义多少个BIT变量?

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:478
  • 最近打卡:2025-06-28 23:52:37
已绑定手机

40

主题

370

回帖

1012

积分

金牌会员

积分
1012
发表于 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位加减指令,方便提高计算效率。   
以上是个人的目前看法,不知是不是这样的。
纸上得到终觉浅,绝知此事要躬行。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:112
  • 最近打卡:2025-06-29 00:35:48

741

主题

1万

回帖

1万

积分

管理员

积分
17207
发表于 2023-10-13 09:08:44 | 显示全部楼层
STC32对 RAM 的操作是 32位操作:
===即使指令是要求只需要读8位,他也是读32位,扔掉多余的24位
===即使指令是要求只需要读8位,他也是读32位,扔掉多余的16位


截图202310130907508648.jpg

截图202310130908173734.jpg

截图202310130908392473.jpg


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:478
  • 最近打卡:2025-06-28 23:52:37
已绑定手机

40

主题

370

回帖

1012

积分

金牌会员

积分
1012
发表于 2023-10-13 09:34:02 | 显示全部楼层
神*** 发表于 2023-10-13 09:08
STC32对 RAM 的操作是 32位操作:
===即使指令是要求只需要读8位,他也是读32位,扔掉多余的24位
===即使指 ...

STC32G12K128     12K是指12K的8位寄存器还是12K的32位寄存器?
纸上得到终觉浅,绝知此事要躬行。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:112
  • 最近打卡:2025-06-29 00:35:48

741

主题

1万

回帖

1万

积分

管理员

积分
17207
发表于 2023-10-13 10:24:40 | 显示全部楼层
12k 字节的 SRAM, 不是寄存器
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:526
  • 最近打卡:2025-06-29 18:40:17
已绑定手机

21

主题

118

回帖

1084

积分

金牌会员

积分
1084
发表于 2023-10-23 20:07:48 | 显示全部楼层
  1. #define u8 unsigned char
  2. u8 BitArray[32];                //位数组 32*8=256位 相当于 bit BitArray[256];
  3. bit ReadBitArray(u8 pc) {                //读位数组 参数1:位地址 返回位值
  4.         return 1 << (pc & 7) & BitArray[pc >> 3];
  5. }
  6. void WriteBitArray(u8 pc,bit dat) {                //写位数组 参数1:位地址 参数2:位值
  7.         u8 a = pc >> 3;
  8.         u8 b = 1 << (pc & 7);
  9.         if (dat) {
  10.                 BitArray[a] |= b;
  11.         } else {
  12.                 BitArray[a] &= ~b;
  13.         }
  14. }
复制代码

点评

这个代码太精炼了,学习了谢谢  发表于 2023-11-17 21:44
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:478
  • 最近打卡:2025-06-28 23:52:37
已绑定手机

40

主题

370

回帖

1012

积分

金牌会员

积分
1012
发表于 2023-10-24 08:23:56 | 显示全部楼层

我现在另定义了用200个CHAR,定义了1600个位,就是使用起来感觉有点别扭。而且有花费时间,每读取一个位都要进行移位读取
纸上得到终觉浅,绝知此事要躬行。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-30 02:34 , Processed in 0.110360 second(s), 79 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表