TMOD|= 0x20和TMOD= 0x20有什么区别啊,为什么很多时候都使用前者呢??请教高手!

如题所述

后者执行之后,TMOD的值就是0x20, 那么前者就不一定了,但是前者的TOMD的bit5位肯定为1; 初学者都会用后者,这样有个坏处,就是 bit5被你置为1了,但是其他位通通被置0了,假如以前bit0=1,那么TMOD=0x20之后,bit0就被你改成0了!!! 而前者不会出现这种情况, 前者只将 程序关心的位置1,程序不关心的位保持原样。 建议以后多用前者的方式
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-21
TMOD|= 0x20等价于
TMOD= TMOD|0x20
表示将TMOD的第5位置1,而后者表示直接赋值。
第2个回答  2011-09-21
TMOD|= TMOD|0x20 将高二位置一其他位不变,而后者第二位是一,其他位都变成了零

TMOD|= 0x20和TMOD= 0x20有什么区别啊,为什么很多时候都使用前者呢...
后者执行之后,TMOD的值就是0x20, 那么前者就不一定了,但是前者的TOMD的bit5位肯定为1; 初学者都会用后者,这样有个坏处,就是 bit5被你置为1了,但是其他位通通被置0了,假如以前bit0=1,那么TMOD=0x20之后,bit0就被你改成0了!!! 而前者不会出现这种情况, 前者只将 程序关心的...

TMOD|= 0x20和TMOD= 0x20有什么区别啊,为什么很多时候都使用前者呢...
后者执行之后,TMOD的值就是0x20,那么前者就不一定了,但是前者的TOMD的bit5位肯定为1;初学者都会用后者,这样有个坏处,就是 bit5被你置为1了,但是其他位通通被置0了,假如以前bit0=1,那么TMOD=0x20之后,bit0就被你改成0了!!!而前者不会出现这种情况,前者只将 程序关心的位置1,程序...

TMOD |= 0x20是什么意思?和TMOD = 0x20有区别吗
TMOD是单片机定时器方式控制寄存器 这8位控制着单片机中的两个定时器\/计数器,如下 GATE C\/T M1 M0 GATE C\/T M1 M0 前四位是控制定时器1;后四位是控制定时器0 现在我就说下定时器1吧,也就是高四位:M1 M0:有四种组合,是指工作方式 C\/T:通过设置可以控制它是作定时器用,还是作计数...

TMOD |= 0x20; 什么意思,为什么用竖杠?
TMOD|=0x20 就是TMOD=TMOD|0x20,即TMOD或0x20,然后再把值赋给TMOD

TMOD |= 0x20;为什么会有竖线?
MODE CONTROL REGISTER) 位址:89H (不可位元定址) GATE C \/ T M1 M0 GATE C \/ T M1 M0 Timer 1 Timer 0...当TRx(在TCON)=1且GATE=1,则计时器只在INTx接脚为高电位时 才会计时,当GATE=0,则计时器只在TRx=1时才会计时

单片机 串口通信时,TMOD = 0x20,为什么开启TIMER1就可以产出波特率了...
TMOD=0x20,是设置T1为工作模式2,即8位自动重装载模式,此时当TL1溢出时,TH1的值将自动装入TL1,TH1和TL1当然都要赋值,如TH1=0xfd,TL1=0xfd,波特率为9600.

SCON=0x50 TMOD=0x20 TH1=0xE8 TL1=0xE8 TI=1 TR=1 上面每句的含义是...
二、TMOD=0x20:TMOD是定时\/计数器方式控制寄存器,所以TMOD=0x20是将定时\/计数器1设置为工作方式2.三、TH1=0xE8,TL1=0xE8:给定时\/计数器1装初值,即确定定时时长,具体时间与晶振有关.四、TI=1,TR=1:由上附表可得,TI和RI是SCON寄存器的最低两位.TI:发送中断标志位 ,RI:接收中断标志位.TI=...

定时器计数器中,C程序不懂,求指导。TMOD=0x01;\/\/使用定时器T0的方式1...
TMOD是8位寄存器,前4位控制T1,后4位控制T0,4位的意义分别是门控制1位,功能选择位1位,方式选择位2位 T1方式2:TMOD=0x20

单片机c语言中tmod是什么意思
分别为0,1,2,3 T0方式几,低四位就是几,T1方式几,高四位就是几。例:T0设置为方式1,则TMOD=0x01,即01H T1设置为方式2,则TMOD=0x20,即02H 如果T1,T0同时使用,就同时设置,T1方式2,T0方式1,则TMOD=0x21,即21H。你说的00H,是不用设置的,因为默认的就是00H。

复合赋值运算符讲解
TMOD = 0x20; \/\/定时器1定时方式2 TH1 = 0xE8; \/\/11.0592MHz 1200波特率 TL1 = 0xE8; TI = 1; TR1 = 1; \/\/启动定时器 ABC = 10; \/\/设初值 CBA = 20; Port = &CBA; \/\/取CBA的地址放到指针变量Port *Port = 100; \/\/更改指针变量Port所指向的地址的内容 printf("1: CBA=%d\\n",CBA);...

相似回答