標題: 請問,TMOD |=0x01;是什么意思? [打印本頁]

作者: tmxk0574    時間: 2017-6-5 20:21
標題: 請問,TMOD |=0x01;是什么意思?
看到一個程序中設置定時器器模式:
TMOD |=0x01;
這個“|=”是位邏輯或賦值吧,用了“|=”是什么意思啊,敬請指教。


作者: zengcym    時間: 2017-6-5 21:19
TMOD |= 0x01 等價于TMOD = TMOD | 0x01。這里|=是按位或運算并賦值。
本語句意思是,將TMOD表示成二進制數(shù),然后與0x01按位進行或運算,并把最終結果賦值給TMOD。
作者: STC89C51    時間: 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

作者: zl2168    時間: 2017-6-5 21:36
本帖最后由 zl2168 于 2017-6-5 21:37 編輯

定時器T1工作方式保持不變,定時器T0工作方式設置方式1。但一般不這樣用,若定時器T0工作方式未設置或設置為方式0,則不出錯,否則會出錯。因你只提出這一句,因此,無法作出其他評論。若你是一個初學者,不要學這種寫法。
作者: txj    時間: 2017-6-5 22:06
這是定義寄存器為工作1狀態(tài)
作者: imxuheng    時間: 2017-6-5 22:19
zl2168 發(fā)表于 2017-6-5 21:36
定時器T1工作方式保持不變,定時器T0工作方式設置方式1。但一般不這樣用,若定時器T0工作方式未設置或設置 ...

這樣做有益于程序穩(wěn)定,尤其是用多個定時器的時候
作者: caozhaokun    時間: 2017-6-5 22:52
等價于TMOD =TMOD | 0x01;//設置定時器方式的語句
作者: 51mcu    時間: 2017-6-6 06:33
TMOD |= 0x01 等價于TMOD = TMOD | 0x01。這里|是按位或運算符。
本語句意思是,將TMOD表示成二進制數(shù),然后與0x01按位進行或運算,并把最終結果賦值給TMOD。
作者: zl2168    時間: 2017-6-6 08:59
imxuheng 發(fā)表于 2017-6-5 22:19
這樣做有益于程序穩(wěn)定,尤其是用多個定時器的時候

1. 并非多個,TMOD控制的定時器只有2個。
2. 若定時器T0原控制碼為1110,執(zhí)行該指令后,豈非亂套?
作者: loseman    時間: 2017-6-6 09:11
等價于TMOD =TMOD | 0x01;就是為了設置TMOD的工作方式
作者: imxuheng    時間: 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這種形式的話,板子就沒法用
作者: 李雄    時間: 2017-6-6 10:22
就是在不改變TMOD原來的其他位上的值,同時使TMOD的最低位置一。也就是說例如原來TMOD的值是0x40,TMOD|=0X01后,TMOD的值就變成了0x41。
作者: tmxk0574    時間: 2017-6-9 08:44
這么多的朋友為我熱心指導,萬分感謝,祝各位快樂、健康!
作者: cam226390674    時間: 2017-6-9 13:11
TMOD|=0x01等價于TMOD=TMOD|0x01;
作者: monkeygggg    時間: 2017-6-9 15:26
意思就是  TMOD =TMOD | 0x01
用來設置TMOD的工作方式的
作者: pwmled    時間: 2017-6-9 21:11
加不加效果都一樣只是一個或運算  相當于TMOD=TMOD|0x01
作者: cj菜菜    時間: 2017-6-9 23:37
這個就是設置定時器工作方式1。
作者: 詹科聯(lián)手走天下    時間: 2017-6-9 23:54
TMOD = TMOD | 0x01 ,把最低位置1,其他不變
作者: 嚴寒    時間: 2017-6-10 09:38
把最低位置1
作者: uiko    時間: 2017-6-11 22:15
定時器T1用方式一工作
作者: tu1905    時間: 2017-6-14 22:17
應該是設定定時器工作方式1
作者: hhy961228    時間: 2017-6-15 10:54
設置定時器工作方式啊,TO 和T1
作者: 廁所老張    時間: 2017-6-15 17:02
定義寄存器為工作1狀態(tài)
作者: 白露濕青苔    時間: 2017-6-15 17:08
這是設置定時器的工作方式為狀態(tài)1的




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1