微控制器暫存器的位操作

2021-09-12 07:37:09 字數 597 閱讀 4079

假如需要將b16的d8~d10位改為0001,但是更改d8~d10位時又不能改變其它位狀態:所以需要先將d8~d10位 清0,再改為0001

portb->pcr[16] &= 0xfffff8ff; //需要修改d8~d10位,確保d8~d10位為0,其他位不變(只有為0才能確保能正確修改該位的值)
portb->pcr[16] |= 0x00000100; //更改d8~d10狀態 d8~d10寫為001配置為gpio功能
假如需要將暫存器的d4位置0先將d4位置1後,整體取反,這樣就變成了d4位為0,其它位都為1,然後再按位與。

ptd->pddr &= ~(1<<4);	//d4位 置1 取反 相當於置0(這樣做的目的是為了保證別的位不受影響,只改變需要改變的位)
假如需要將暫存器的d4位置1將d4位置1後,再按位或。

ptd->pddr |= (1<<4);

微控制器暫存器

微控制器暫存器其實就相當於乙個變數,只不過這個變數在固定的位址,有乙個特殊的名稱 當然也不強制 初學者對暫存器的操作比較困難的原因不是組合語言或c語言使用的不熟,而是對暫存器的陌生。微控制器中儲存器的資源是非常寶貴和有限的,所以要盡可能充分的使用這些儲存資源,有多充分呢?就是把每一bit都用上。這就...

51微控制器auxr暫存器 51微控制器各暫存器位址

自然優先順序 int0 高tf0 int1 tf1ri ti tf2 exf2 低定時器 計數器控制暫存器 tcon tcon.7 tcon.6 tcon.5 tcon.4 tcon.3 tcon.2 tcon.1 tcon.0 tf1tr1 tf0tr0 ie1it1 ie0it0 timer1 ...

52微控制器之暫存器

定時器 計數器工作方式暫存器 tmod 47頁 位序號 d7 d6 d5 d4 d4 d4 d4 d4 位符號 gate c t m1 m0 gate c t m1 m0 gate 門控制位 gate 0,定時器啟動與停止僅受 tcon 暫存器中 trx x 0,1 來控制 gate 1,定時器啟動...