单片机编程中TMOD |= 0x10;TMOD &= 0xdf;是什么意思??

作者&投稿:爰蓝 (若有异议请与网页底部的电邮联系)
51单片机中TMOD|=0下TMOD=0Xdf是什么意思和作用~

你肯定是打错了
TMOD&=0Xdf
的意思是
让TMOD这个寄存器的第六位(从低往高数哈)置为0,其他位的电平保持不变。
TMOD
|=0Xdf
的意思是让第六位保持不变,其他位都置为1

TMOD &= 0x0F; 按位与,就是把 TMOD 的 最右边的 二进制 4 位 留着不变,其它位全部清 0。
即 TMOD = TMOD & 0x0f; [清 T1, 保留 T0]
TMOD |= 0x01; 则是 把 刚才留下的 4 位里 最 右 1 位 二进制 设为 1。
即 TMOD = TMOD | 0x01 [运行T0的要求,最右1位 二进制 设为 1]。

TMOD:定时器/计数器模式控制寄存器

GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。   

当INT0引脚为高电平时TR0置位,启动定时器T0;   

当INT1引脚为高电平时TR1置位,启动定时器T1。   

GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。   

Ⅱ,C/T——功能选择位   C/T=0时为定时功能,C/T=1时为计数功能。   置位时选择计数功能,清零时选择定时功能。   

Ⅲ,M0、M1——方式选择功能   由于有2位,因此有4种工作方式   ================================================================   

M1M0 工作方式 计数器模式 TMOD(设置定时器模式)   

0 0 方式0 13位计数器 TMOD=0x00   

0 1 方式1 16位计数器 TMOD=0x01   

1 0 方式2 自动重装8位计数器 TMOD=0x02   

1 1 方式3 T0分为2个8位独立计数器,T1为无中断重装8位计数器 TMOD=0x03 

void timer1_init()   //这里是定时器1初始化函数

{

 TMOD |= 0x10;          //TMOD   里 MO 置1

 TMOD &= 0xdf;        //TOOD 里  M1 清零     定时器选择为 16位定时模式

 TH1   = 0xFC;          //下面2句是 定时器的初值 也就是你定时器需要定时的时间

 TL1   = 0x67;

 TR1   = 1;               //启动定时器。

}

如果不懂 可以去我百度空间留言 。。。希望以上对你有帮助。



TMOD |= 0x10 特殊寄存器TMOD第五位置1,其它不变!
TMOD &= 0xdf特殊寄存器TMOD第六位置0,其它不变!
这两条都是在设置单片机定时器的参数!

TMOD |= 0x10;详单于TMOD=TMOD|0x10
如果有定时器0打开这样写就不影响定时器0了,如果你写成TMOD=0x10;而前面定时器0也是打开的,这么写前面的定时器就关闭了受到了影响

特殊写法Al=B是AB相或,结果写到A,与A=AlB等价,A&=B,与A=A&B等价


有谁有单片机原理的试题
http:\/\/wenku.baidu.com\/view\/1c53c27ca26925c52cc5bfe8.html 看看这里吧很多的

肥乡县13389678019: 51单片机编程写了TMOD=0x01后,TR0是不是自动等于1(即定时器0自动启动)? -
彤凯欣复: TMOD只是设置了T0的工作模式,要让定时器工作,需编程启动:TR0=1;如果需要中断,还要开启中断允许:EA=1;ET0=1;

肥乡县13389678019: 你好,定时器设置为TMOD=0x01;TH0=0; TL0=0;怎么解释??? -
彤凯欣复: 定时器工作原理:从TH和TL里的值开始向上计数直到溢出触发中断,在晶振12M,12T单片机的情况下,时钟周期为1MHz,执行一次加计数用1us,这样,从0记到两个寄存器的最大值65535就要用去65.536ms,这就是51单片机最大计数范围....

肥乡县13389678019: 在单片机用C语言编程时TMOD=0X01和TMOD=0x01 都行,大小写有区别吗,任何细节方面都算 怎么写比较好 -
彤凯欣复: 这个x的大小写没有区别,个人觉得小写的看着比较舒服一些.

肥乡县13389678019: 51单片机中设置定时器模式时,TMOD|=0x01和TMOD=0x01有什么区别
彤凯欣复: 有区别,TMOD中有8bit TMOD |= 0x01 这样第2~8bit原来是什么还是什么,不影响,第1bit赋值为1; TMOD=0x01 这样是给2~8bit赋值为0,第1bit赋值为1.

肥乡县13389678019: void Inittimer0() { TMOD=0x01; TH0=th0; TL0=tl0; EA=1; ET0=1; TR0=1; }单片机中的定时,求解释,急! -
彤凯欣复: void Inittimer0() ---------------定时器0中断初始化子程序 {TMOD=0x01; -----------------定时器0(T0)方式1 TH0=th0; -----------------------初始值TH0(变量带入) TL0=tl0;------------------------ 初始值TL0EA=1; --------------------------中断总允许位 ET0=1; -------------------------T0中断允许 TR0=1; }------------------------T0工作开始 单片机中的定时,求解释,急!

肥乡县13389678019: 单片机c语言TMOD 设置 -
彤凯欣复: 如果是TMOD=(TMOD&0xF0)|0x01,那么是楼上说的意思 如果仅仅是(TMOD&0xF0)|0x01,那么就是个表达式的运算,起不到设置定时器TMOD的作用

肥乡县13389678019: 51单片机定时器值使用T0,TMOD=0x01;两定时器T0、T1同时使用,TMOD=0x11(默认M0M1=01);那么 -
彤凯欣复: 无所谓,保证T1参数就可以了,定时器的开启靠的是TRn和ETn,所以可以这样来做: TMOD&=0x0f;//高四位清零 TMOD|=0x10;//T1设置为工作模式1,GATE=0,定时器方式 这样做可以仅设置T1,而不影响T0的参数.

肥乡县13389678019: 单片机程序 TMOD&=0x0f; TMOD|=0x01;有什么作用
彤凯欣复: TMOD &= 0x0F; 按位与,就是把 TMOD 的 最右边的 二进制 4 位 留着不变,其它位全部清 0.即 TMOD = TMOD & 0x0f; [清 T1, 保留 T0]TMOD |= 0x01; 则是 把 刚才留下的 4 位里 最 右 1 位 二进制 设为 1.即 TMOD = TMOD | 0x01 [运行T0的要求,最右1位 二进制 设为 1].

肥乡县13389678019: 单片机定时器0设置为工作方式1为TMOD=0x01;定时器1设置工作方式1时TMOD=0x10;还是和定时器0一样为0x01 -
彤凯欣复: 答: 单片机定时器0设置为工作方式1为TMOD=0x01;定时器1设置工作方式1时TMOD=0x10.阁下看TMOD里的各个位啥意思就知道了. #include<reg52.h> void main() { while(1) { SBUF=0xfe; while(!TI); if(RI==1)RI=0; REN=1; P0=SBUF; } } 这个...

肥乡县13389678019: 急求 10秒50秒100秒 的计数定时器单片机编程 -
彤凯欣复: 用C来写一个吧#includeunsigned int count;void main(){TMOD=0x01;IE=0x82;TH0=(65536-50000)/256;TL0=(65536-50000)%256;count=0TR0=1;while(1){if(count==200) P1^0=0; //假设p1.0\p1.1\p1.2接共阳二极管则10s后p1.0所接二极管亮50s后...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网