找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1445|回复: 4
收起左侧

这是DS 18B2的部分代码,想不明白为什么要|0x30,求各位大佬解答

[复制链接]
ID:509085 发表于 2020-4-4 16:14 | 显示全部楼层 |阅读模式
et=cm&0x000f;
        disply[4]=st[et]|0x30;        //截取后四位,查表转换后,填入显示缓冲区
        et=cm>>4;                                             //去掉小数部分
          if(et>99)                                                //温度过百
          {
                  disply[0]='1';
                  et=et-100;
          }
        disply[1]=(et/10)|0x30;        //取温度整数
        disply[2]=(et%10)|0x30;
        stop=0;


这是DS 18B2的部分代码,想不明白为什么要|0x30,求各位大佬解答

回复

使用道具 举报

ID:367369 发表于 2020-4-4 19:31 | 显示全部楼层
把字符转换成ASCII码比如‘a’的ASCII码就是‘a’|0x30;或者‘a’|‘0’;
回复

使用道具 举报

ID:452950 发表于 2020-4-4 20:34 | 显示全部楼层
按位或运算,00110000将st[et]第5、6位置1。
回复

使用道具 举报

ID:505032 发表于 2020-4-4 21:04 | 显示全部楼层
0x30表示30是十六进制,0x是十六进制的开始符;;“|”是按位或运算符;;百位已经显示1了,十位个位就是取余再转16进制输出送达显存
回复

使用道具 举报

ID:584814 发表于 2020-4-6 09:52 | 显示全部楼层
方便数字在1602屏上显示,可查相关说明书。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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