&运算(与运算)和|运算(或运算)

今天,将两个单片机里用的比较多的位运算。

&运算(与运算)和|运算(或运算)


一般来说,定时器用的比较多。

比如,定时器的TMOD(定时器模式寄存器),这个寄存器是不可位寻址的,也就是不能单独的用sbit来操作这个寄存器的每一位。


 TMOD——定时器模式寄存器的位分配(地址 0x89、不可位寻址
76543210
符号
GATE
(T1)
C/T
(T1)
M1
(T1)
M0
(T1)
GATE
(T0)
C/T
(T0)
M1
(T0)
M0
(T0)
复位值0000000
0

这里,TMOD有8位,低4位是控制T0定时器的,而高4位控制T1定时器。

如果想要选择定时器T0的模式1,怎么做呢?

我们假设,这8位数为yyyyxxxx

1、我们先清零低4位,同时,不能影响到高4位yyyy。即(yyyy0000),我们的做法是这样的:

(yyyyxxxx) & 0xf0

写作:TMOD &= 0xf0;

2、我们选择定时器0的模式一,即(yyyy0001)。我们的做法是这样的:

(yyyy0000) |= 0x01

写作:TMOD |= 0x01;


总结一下:

1、如果要保留一些位不变的同时,其他位清零,用 & 运算

2、如果要保留一些位不变的同时,其他位置1,用 | 运算






  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值