单片机程序 TMOD&=0x0f; TMOD|=0x01;有什么作用

问题描述:

单片机程序 TMOD&=0x0f; TMOD|=0x01;有什么作用
2个回答 分类:综合 2014-11-02

问题解答:

我来补答
TMOD &= 0x0F; 按位与,就是把 TMOD 的 最右边的 二进制 4 位 留着不变,其它位全部清 0.
即 TMOD = TMOD & 0x0f; [清 T1,保留 T0]
TMOD |= 0x01; 则是 把 刚才留下的 4 位里 最 右 1 位 二进制 设为 1.
即 TMOD = TMOD | 0x01 [运行T0的要求,最右1位 二进制 设为 1].
再问: tmod│=0x01 最右设为一 这样做有什么用呢 假如tmod为0x02 那么或0x01不就成0x03了?
再答: 2进制1位对应1条线,或1个事件。例如 1111 对应4条线 0x02 为 0010 3条线0,1条线 1 0x03 为 0011 它不影响 原来那条线的状态。 运行T0要求 最右1位开通,设 1。
再问: tmod不是设置工作方式么 tmod最右一位不是m0吗 m0和m1不是用来设置定时器工作方式吗 为什么运行t0要求 最右一位开通?
再答: TMOD|=0x01 就是 设 tmod最右一位 为 1。 原来是1,设后还是1,原来不是1 ,设置为1。 至于为何,我说不上来,应当是硬件要求吧。
 
 
展开全文阅读

补充回答:

这位朋友回答的很是精细,谢谢了,我受益匪浅
网友(127.255.255.*) 2018-08-30

剩余:2000