單片機文檔的時候一般寄存器是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才有效,只能一種方式。
責任編輯:haq
-
單片機
+關注
關注
6076文章
45495瀏覽量
670402 -
寄存器
+關注
關注
31文章
5608瀏覽量
129998
發布評論請先 登錄
安裝應力清零:核級石英壓力傳感器的 “懸浮式安裝方案”
單片機引腳中的VCC和VDD有什么區別
待機零功耗電路分析
使用位操作精準配置單片機寄存器
C語言和單片機C語言有什么差異
怎樣學會單片機?
PLC與單片機有什么區別
單片機和伺服有什么區別
PLC和單片機到底有什么區別?
單片機的寫1清零和寫0清零有什么區別?
評論