找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 32832|回復(fù): 23
打印 上一主題 下一主題
收起左側(cè)

請問,TMOD |=0x01;是什么意思?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:86913 發(fā)表于 2017-6-5 20:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
看到一個程序中設(shè)置定時器器模式:
TMOD |=0x01;
這個“|=”是位邏輯或賦值吧,用了“|=”是什么意思啊,敬請指教。

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

使用道具 舉報

沙發(fā)
ID:208050 發(fā)表于 2017-6-5 21:19 | 只看該作者
TMOD |= 0x01 等價于TMOD = TMOD | 0x01。這里|=是按位或運算并賦值。
本語句意思是,將TMOD表示成二進制數(shù),然后與0x01按位進行或運算,并把最終結(jié)果賦值給TMOD。
回復(fù)

使用道具 舉報

板凳
ID:137239 發(fā)表于 2017-6-5 21:27 | 只看該作者
TMOD|=0x01等價于TMOD=TMOD|0x01;意思是將TMOD這個寄存器的最低位置一,這樣做的好處是可以保持其他位的值不動;類似的,這樣的運算還有:
a != b  等價于  a = a | b  a &= b 等價于  a = a & b
a ^= b 等價于  a = a ^ b
回復(fù)

使用道具 舉報

地板
ID:111634 發(fā)表于 2017-6-5 21:36 | 只看該作者
本帖最后由 zl2168 于 2017-6-5 21:37 編輯

定時器T1工作方式保持不變,定時器T0工作方式設(shè)置方式1。但一般不這樣用,若定時器T0工作方式未設(shè)置或設(shè)置為方式0,則不出錯,否則會出錯。因你只提出這一句,因此,無法作出其他評論。若你是一個初學(xué)者,不要學(xué)這種寫法。
回復(fù)

使用道具 舉報

5#
ID:208197 發(fā)表于 2017-6-5 22:06 | 只看該作者
這是定義寄存器為工作1狀態(tài)
回復(fù)

使用道具 舉報

6#
ID:151348 發(fā)表于 2017-6-5 22:19 | 只看該作者
zl2168 發(fā)表于 2017-6-5 21:36
定時器T1工作方式保持不變,定時器T0工作方式設(shè)置方式1。但一般不這樣用,若定時器T0工作方式未設(shè)置或設(shè)置 ...

這樣做有益于程序穩(wěn)定,尤其是用多個定時器的時候
回復(fù)

使用道具 舉報

7#
ID:207204 發(fā)表于 2017-6-5 22:52 | 只看該作者
等價于TMOD =TMOD | 0x01;//設(shè)置定時器方式的語句
回復(fù)

使用道具 舉報

8#
ID:34643 發(fā)表于 2017-6-6 06:33 | 只看該作者
TMOD |= 0x01 等價于TMOD = TMOD | 0x01。這里|是按位或運算符。
本語句意思是,將TMOD表示成二進制數(shù),然后與0x01按位進行或運算,并把最終結(jié)果賦值給TMOD。
回復(fù)

使用道具 舉報

9#
ID:111634 發(fā)表于 2017-6-6 08:59 | 只看該作者
imxuheng 發(fā)表于 2017-6-5 22:19
這樣做有益于程序穩(wěn)定,尤其是用多個定時器的時候

1. 并非多個,TMOD控制的定時器只有2個。
2. 若定時器T0原控制碼為1110,執(zhí)行該指令后,豈非亂套?
回復(fù)

使用道具 舉報

10#
ID:208262 發(fā)表于 2017-6-6 09:11 | 只看該作者
等價于TMOD =TMOD | 0x01;就是為了設(shè)置TMOD的工作方式
回復(fù)

使用道具 舉報

11#
ID:151348 發(fā)表于 2017-6-6 09:40 | 只看該作者
zl2168 發(fā)表于 2017-6-6 08:59
1. 并非多個,TMOD控制的定時器只有2個。
2. 若定時器T0原控制碼為1110,執(zhí)行該指令后,豈非亂套?

實際上這要做確實要好些,以前做過一些板子,實現(xiàn)功能時都會用到定時器0和定時器1,要是不寫成TMOD|=0X01這種形式的話,板子就沒法用
回復(fù)

使用道具 舉報

12#
ID:208291 發(fā)表于 2017-6-6 10:22 | 只看該作者
就是在不改變TMOD原來的其他位上的值,同時使TMOD的最低位置一。也就是說例如原來TMOD的值是0x40,TMOD|=0X01后,TMOD的值就變成了0x41。
回復(fù)

使用道具 舉報

13#
ID:86913 發(fā)表于 2017-6-9 08:44 | 只看該作者
這么多的朋友為我熱心指導(dǎo),萬分感謝,祝各位快樂、健康!
回復(fù)

使用道具 舉報

14#
ID:162242 發(fā)表于 2017-6-9 13:11 | 只看該作者
TMOD|=0x01等價于TMOD=TMOD|0x01;
回復(fù)

使用道具 舉報

15#
ID:38727 發(fā)表于 2017-6-9 15:26 | 只看該作者
意思就是  TMOD =TMOD | 0x01
用來設(shè)置TMOD的工作方式的
回復(fù)

使用道具 舉報

16#
ID:209672 發(fā)表于 2017-6-9 21:11 | 只看該作者
加不加效果都一樣只是一個或運算  相當(dāng)于TMOD=TMOD|0x01
回復(fù)

使用道具 舉報

17#
ID:197788 發(fā)表于 2017-6-9 23:37 | 只看該作者
這個就是設(shè)置定時器工作方式1。
回復(fù)

使用道具 舉報

18#
ID:209712 發(fā)表于 2017-6-9 23:54 | 只看該作者
TMOD = TMOD | 0x01 ,把最低位置1,其他不變
回復(fù)

使用道具 舉報

19#
ID:209743 發(fā)表于 2017-6-10 09:38 | 只看該作者
把最低位置1
回復(fù)

使用道具 舉報

20#
ID:210264 發(fā)表于 2017-6-11 22:15 | 只看該作者
定時器T1用方式一工作
回復(fù)

使用道具 舉報

21#
ID:207302 發(fā)表于 2017-6-14 22:17 | 只看該作者
應(yīng)該是設(shè)定定時器工作方式1
回復(fù)

使用道具 舉報

22#
ID:211219 發(fā)表于 2017-6-15 10:54 | 只看該作者
設(shè)置定時器工作方式啊,TO 和T1
回復(fù)

使用道具 舉報

23#
ID:211605 發(fā)表于 2017-6-15 17:02 | 只看該作者
定義寄存器為工作1狀態(tài)
回復(fù)

使用道具 舉報

24#
ID:211611 發(fā)表于 2017-6-15 17:08 | 只看該作者
這是設(shè)置定時器的工作方式為狀態(tài)1的
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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