今天,將兩個(gè)單片機(jī)里用的比較多的位運(yùn)算。
&運(yùn)算(與運(yùn)算)和|運(yùn)算(或運(yùn)算)
一般來說,定時(shí)器用的比較多。
比如,定時(shí)器的TMOD(定時(shí)器模式寄存器),這個(gè)寄存器是不可位尋址的,也就是不能單獨(dú)的用sbit來操作這個(gè)寄存器的每一位。
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
符號(hào) | GATE (T1) | C/T (T1) | M1 (T1) | M0 (T1) | GATE (T0) | C/T (T0) | M1 (T0) | M0 (T0) |
復(fù)位值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
如果想要選擇定時(shí)器T0的模式1,怎么做呢?
我們假設(shè),這8位數(shù)為yyyyxxxx
1、我們先清零低4位,同時(shí),不能影響到高4位yyyy。即(yyyy0000),我們的做法是這樣的:
(yyyyxxxx) & 0xf0
寫作:TMOD &= 0xf0;
2、我們選擇定時(shí)器0的模式一,即(yyyy0001)。我們的做法是這樣的:
(yyyy0000) |= 0x01
寫作:TMOD |= 0x01;
總結(jié)一下:
1、如果要保留一些位不變的同時(shí),其他位清零,用 & 運(yùn)算
2、如果要保留一些位不變的同時(shí),其他位置1,用 | 運(yùn)算
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |