直接写hive和写sparksql区别_单片机:写1清零,写0清零,有什么区别?

e909d93707df3d01ed7bb1bfe72204e4.gif

单片机文档的时候一般寄存器是rw类型,还有一些是r或者w。对于一些特殊寄存器的置1是由硬件自动实现的,比如标志位flag、中断int;但清0还是需要通过软件进行操作。清0方式有两种,写1清0、写0清0。这两种方式有什么区别呢?在硬件实现上有什么不同?

单片机内部有各种功能的寄存器,比如PIC、C51系列8位的单片机,寄存器的宽度就是八个二进制位,一般是高位在前低位在后,例如:11000011,一共是八位,高四位数据是1100,低四位数据是0011。

863043ea3f7ab2ed424d5f12257b9e1c.png

单片机是可以进行位操作的,一个8位的寄存器,我们可以只针对其中一个位或者某些位进行操作,将寄存器相应的位赋值1(高电平)为置位,相反赋值0(低电平)为清零。这是一种比较容易理解的方式。

但对于写1清0有几种说法:

  • 1)从电路角度去看,对某位写1,即输入一个高电平,使内部的一个三极管导通接地,电容放电进行清0。

  • 2)写1是在硬件上产生一个复位脉冲。能写0清除就很可能也可以写1进去,而这与功能要求不符。如要控制只能写0而不能写1,则硬件比较复杂。

  • 3)从应用便捷性角度来说,读了寄存器数据以后,照着写回去就可以清0,不用再更改一次数据。

97b9def84633ba1d1f632d7dcd12ed36.png

还有寄存器一般支持的是byte、half word、word操作,对于寄存器上有几个标志位的情况下,完成对单一标志位的清0,又不影响其他标志位,但又必须对其他位进行写,因此也就只能是写1或者写0清0才有效,只能一种方式。

‧  END   没看过瘾? ▼ 关注这个公众号试试 ▼

e21385e01ae88ee58aa9c320d55a9238.png

硬件货合集关注它

756ae4354ded374fc34264a0c05c5de2.gif 关注公众号『 翻滚吧工程师 』,专注于运营嵌入式技术交流学习社群,倾力引入打造嵌入式实战课程,旨在赋能在读大学生、应届毕业生、初入社会就业者、初中级嵌入式工程师及电子爱好者的高端电子技术学习生态圈。 756ae4354ded374fc34264a0c05c5de2.gif

dc8039d9ea95b2cca5405a0bea932d3a.png

觉得内容不错的话,点个在看呗

701ba4aa3b29aca7bc1c2a09139bf717.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值