在MCU文档中,常规寄存器为rw类型,其中一些为r或w。一些特殊寄存器的设置是由硬件自动实现的,例如标志位,中断整数;等等。
但是清除仍然需要通过软件进行操作。有两种清除0的方法,写1清除0,写0清除0。
这两种方法有什么区别?硬件实现有什么区别?微控制器内部有具有各种功能的寄存器,例如PIC,C51系列8位微控制器,寄存器的宽度为8个二进制位,通常是高位在前,低位在后,例如:11000011,总共为八位,高四位数据为1100,低四位为0011。单片机可以执行位运算。
对于8位寄存器,我们只能对一个或几个位进行操作,并将寄存器的相应位分配为1(高电平),相反,分配为0(低功耗)。 (Ping)已清除。
这是一种更容易理解的方法。但是,有几种方法可以通过写入1来清除0:1)从电路的角度来看,将1写入特定位意味着输入高电平,将内部晶体管接地,并通过放电清除电容器。
2)写1是为了在硬件上生成复位脉冲。如果您可以写入0来清除它,则可以在其中写入1,这不满足功能要求。
如果要控制只能写0而不能写1,则硬件会更复杂。 3)从方便使用的角度来看,读取寄存器数据后,可以通过将其写回来清除它,而无需再次更改数据。
也有一些寄存器通常支持字节,半字和字操作。当寄存器上有多个标志位时,单个标志位被清除为0而不影响其他标志位,但是其他位必须执行写操作,因此只有通过写1或写0来清除0才有效。
仅是一种方式。结束版权归原始作者所有。
如果有任何侵权,请联系以将其删除。 ▍建议阅读飞机上通常使用什么操作系统?高速CAN,容错CAN和LIN总线有什么区别?老板终于了解了虹梦操作系统并收集了它!免责声明:本文内容经21ic授权后发布,版权归原作者所有。
该平台仅提供信息存储服务。本文仅代表作者的个人观点,并不代表该平台的立场。
如有任何疑问,请与我们联系,谢谢!。