专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
元器件
74hc595 有位带功能吗?
2019-07-17 11:29
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
电子元器件
18220
8
1038
什么是位带功能?之前没听说过呢?
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
954863658
1楼-- · 2019-07-17 22:06
chenwei6991627 发表于 2016-8-14 12:41
找到32的你就可以参考了啊,先了解下寄存器的使用情况
K64有位带功能吗?一直没用过这个功能?
加载中...
951414
2楼-- · 2019-07-18 03:36
单片机的一个地址(如:0x20000000)是一个字节,即8bit。 位带操作简单的说就是把一个地址A的8个位,分别单独的重新定义8个地址, 操作一个地址等同于操作一个位,形象的理解即为取别名。 位带区中的地址除了可以同RAM一样使用外,还带有自己的“位带别名”。 将每个位拓展为32位的字,既成了位带别名。 如:0x20000000(一个字节)拓展到32位可得8个32位的字分别是: 0x220000000 x220000040 x220000080 x2200000c 0x220000100 x220000140 x220000180 x2200001c 由此可得“位带区” 上任意地址的 “位带别名地址” SRAM :0x22000000 +((A‐0x20000000)*8+n)*4 FLASH :0x42000000 +((A‐0x40000000)*8+n)*4 既:0x22000000+ (A‐0x20000000)*32 + n*4 0x42000000+ (A‐0x40000000)*32 + n*4 别名区地址 = 位带别名区起始地址+偏移量 备注 :字节的地址: A位序号 :n(0<n<7) 例 :0x22000000 + ((0x20000000 - 0x20000000 )*8+4)*4 = 0x22000010 既 :0x20000000第4位带别名区地址 "位带地址+位序号" 转换别名地址 #define GPIOA_ODR_Addr (GPIOA_BASE+12) //0x4001080C #define GPIOA_IDR_Addr (GPIOA_BASE+8) //0x40010808 #define GPIOB_ODR_Addr (GPIOB_BASE+12) //0x40010C0C #define GPIOB_IDR_Addr (GPIOB_BASE+8) //0x40010C08 #define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)) #define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)) //计算bit区地址偏移 #define MEM_ADDR(addr) (*((vu32 *)(addr) )) //强制转换为指针 #define BIT_ADDR(addr, bitnum) MEM_ADDR( BITBAND(addr, bitnum) ) 再来一个宏重命名一下 #define PA0 BIT_ADDR(GPIOA_ODR_Addr, 0)
有什么好处呢? 是这样的,记得MCS51吗? MCS51就是有位操作,以一位(BIT)为数据对象的操作, MCS51可以简单的将P1口的第2位独立操作: P1.2=0;P1.2=1 就是这样把P1口的第三个脚(BIT2)置0置。 对象可以是SRAM,I/O外设空间。实现对这些地方的某一位的操作。 它是这样的。在寻址空间(32位地址是 4GB )另一地方,取个别名区空间,从这地址开始处,每一个字(32BIT) 就对应SRAM或I/O的一位。 这样呢,1MB SRAM就 可以有32MB的对应别名区空间,就是1位膨胀到32位(1BIT 变为1个字) 我们对这个别名区空间开始的某一字操作,置0或置1,就等于它映射的SRAM或I/O相应的某地址的某一位的操作
加载中...
上一页
1
2
一周热门
更多
>
相关问题
LM317芯片PWM 不能输出较高幅度的 PWM 信号
7 个回答
请教:两根线,实现4种状态输入,用那种IC?
12 个回答
16脚的IC被字被磨掉了只知道是4脚负电源11脚接正电源的,这样的ic有哪些呢
1 个回答
请问磁珠的等效电路如何解释?
2 个回答
加载电流时磁珠阻抗及其频谱如何变化?
1 个回答
有谁知道7W14F IC 是起什么作用吗?
2 个回答
这是EPM240的引脚说明 请问tri-states怎么翻译啊
2 个回答
紧急求助,哪位知道的
11 个回答
相关文章
初学者如何轻松学习元器件的焊接
0个评论
电子基本技能之如何轻松识别色环电阻阻值
0个评论
ST推出超高性价比单片机,只有8个引脚,功能强大,价格便宜
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
元器件
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
K64有位带功能吗?一直没用过这个功能?
有什么好处呢? 是这样的,记得MCS51吗? MCS51就是有位操作,以一位(BIT)为数据对象的操作, MCS51可以简单的将P1口的第2位独立操作: P1.2=0;P1.2=1 就是这样把P1口的第三个脚(BIT2)置0置。 对象可以是SRAM,I/O外设空间。实现对这些地方的某一位的操作。 它是这样的。在寻址空间(32位地址是 4GB )另一地方,取个别名区空间,从这地址开始处,每一个字(32BIT) 就对应SRAM或I/O的一位。 这样呢,1MB SRAM就 可以有32MB的对应别名区空间,就是1位膨胀到32位(1BIT 变为1个字) 我们对这个别名区空间开始的某一字操作,置0或置1,就等于它映射的SRAM或I/O相应的某地址的某一位的操作
一周热门 更多>