找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 19227|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)位運(yùn)算 &運(yùn)算(與運(yùn)算)和|運(yùn)算(或運(yùn)算)詳解

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:165212 發(fā)表于 2017-2-19 17:39 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

今天,將兩個(gè)單片機(jī)里用的比較多的位運(yùn)算。

&運(yùn)算(與運(yùn)算)和|運(yùn)算(或運(yùn)算)


一般來說,定時(shí)器用的比較多。

比如,定時(shí)器的TMOD(定時(shí)器模式寄存器),這個(gè)寄存器是不可位尋址的,也就是不能單獨(dú)的用sbit來操作這個(gè)寄存器的每一位。


TMOD——定時(shí)器模式寄存器的位分配(地址 0x89、不可位尋址

76543210
符號(hào)
GATE
(T1)
C/T
(T1)
M1
(T1)
M0
(T1)
GATE
(T0)
C/T
(T0)
M1
(T0)
M0
(T0)
復(fù)位值
00000000

這里,TMOD有8位,低4位是控制T0定時(shí)器的,而高4位控制T1定時(shí)器。

如果想要選擇定時(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)算


評(píng)分

參與人數(shù) 3黑幣 +61 收起 理由
5314039 + 3 很給力!
張小帥1126 + 8 共享資料的黑幣獎(jiǎng)勵(lì)!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:99612 發(fā)表于 2017-2-19 23:06 | 只看該作者
謝謝樓主很詳細(xì)的說明!很通俗易懂。
回復(fù)

使用道具 舉報(bào)

板凳
ID:143694 發(fā)表于 2017-2-23 20:34 | 只看該作者
適合新手!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表