这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 【转】单片机,写1清0,写0清0,有什么区别?

共12条 1/2 1 2 跳转至

【转】单片机,写1清0,写0清0,有什么区别?

助工
2020-11-12 13:46:31     打赏

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

单片机内部有各种功能的寄存器,比如PIC,C51系列8位的单片机,寄存器的宽度就是八个二进制位,一般是高位在前低位在后,例如:11000011,一共是八位,高四位数据是1100,低四位数据是0011。单片机是可以进行位操作的,一个8位的寄存器我们可以只针对其中一个位或者某些位进行操作,将寄存器相应的位赋值1(高电平)为置位,相反赋值0(低电平)为清零。这是一种比较容易理解的方式,但对于写1清0有几种说法。

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

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

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

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




关键词: 单片机     寄存器    

工程师
2020-11-12 17:36:30     打赏
2楼

了解一下


工程师
2020-11-12 18:26:14     打赏
3楼

感谢分享


工程师
2020-11-12 18:29:43     打赏
4楼

谢谢分享


工程师
2020-11-12 18:35:52     打赏
5楼

学习到了


工程师
2020-11-12 18:41:53     打赏
6楼

明白了


院士
2020-11-12 18:49:46     打赏
7楼

这个帖子挺有意思的。

这种基础知识,书本上好久也没有看到了


工程师
2020-11-12 21:30:59     打赏
8楼

是0还是1,都是相对的吧!


工程师
2020-11-12 21:36:09     打赏
9楼

说这么多,我看得挺迷糊


工程师
2020-11-13 22:50:16     打赏
10楼

学到了


共12条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]