发 帖  
[问答]

C51中对不可位寻址的特殊寄存器设置为啥常看到用或逻辑置位

3778 单片机
2021-8-5 17:13:39   评论 分享淘帖 邀请回答 举报
4个回答
2021-8-5 17:13:40 评论

举报

2021-8-5 19:35:28 评论

举报

2021-8-6 08:37:02 3 评论

举报

3 条评论
  • 2021-8-6 14:16

    谢谢您的指导,我的意思是已经确定了除了指定位置位以外,其他的位都是0,“尤其在程序开始时就需要初始化定义的特殊寄存器....”和“只需使用T0的8位重装模式...”就是为了说明这点。当然如果是中途对某些特殊寄存器的位进行置位,如果直接使用了赋值语句会影响其他位的状态。在学习中有些特殊寄存器的设置时,明确的说明建议使用直接赋值,而不要用AND、OR之类的置位(比如ADC中的控制寄存器),因此感觉有点迷惑,如果对于已经确定了各控制位的状态,在初始化时直接赋值,中途改变某些位的状态用AND、OR之类单独设置某个位,这样理解是否有问题?

    白羽 回复 土老冒: 2021-8-6 17:15

    在已经确定其它位为0的时候,直接用等号是可以的。但不建议,除非你原本就准备重新对所有的位都赋值。否则,万一这段代码第二次运行时,其它位并不等于0呢?或者当你将这段代码复制到另一个项目时,另一个项目中的其它位并不等于0呢?这就会产生一些难以预料的错误。

    土老冒 回复 白羽: 2021-8-6 19:00

    有道理!这种情况确实存在,谢谢你

2021-8-6 10:27:23 1 评论

举报

1 条评论

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

您需要登录后才可以回帖 登录/注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
快速回复 返回顶部 返回列表
关注微信公众号

电子发烧友网

电子发烧友论坛

社区合作
刘勇
联系电话:15994832713
邮箱地址:liuyong@huaqiu.com
社区管理
elecfans短短
微信:elecfans_666
邮箱:users@huaqiu.com
关闭

站长推荐 上一条 /7 下一条

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