找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5726|回复: 2
打印 上一主题 下一主题
收起左侧

关于单片机定时计数器的问题TMOD|=0x10或运算的理解?

[复制链接]
跳转到指定楼层
楼主
ID:480306 发表于 2019-5-6 22:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TMOD=0x10我可以理解,但是加了个或运算是什么意义?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2019-5-7 06:30 | 只看该作者
这是对不支持位操作的寄存器进行某一位的操作而不改变其它位的状态的方法。
TMOD|=0x10 与 TMOD=TMOD|0x10 两种写法等效。
回复

使用道具 举报

板凳
ID:509408 发表于 2019-5-7 10:05 | 只看该作者
这些都是很基础的啦  TOMD寄存器有八个位(bit0~bit7) 每个位对应不同功能(查数据手册哦),

或运算(|)规则:参加运算的两个对象只要有一个为1,其值为1。因为 0 | 1= 1,它可将0翻转为1实现置1操作  或上0则保持不变
与运算(&) 规则: 两位同时为“1”,结果才为“1”,否则为0  ,它可将1翻转为0 实现置0的操作。与1则保持不变

那么 TMOD|=0x01这个操作的意义是将TOMD寄存器的 bit0位 (没记错bit0,bit1应该是设置T0的模式选择位)进行置1操作 不影响其他位状态,
这种“或1”“与0”来实现对某一位置1,置0 的操作 在配置寄存器时很常见。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表