DS18B20代码中0x30问题

2019-03-24 17:07发布

30问题DS18B20测温和超声波测距程序中的问题

DS18B20测温中,测得的数据需要加0x30,超声波测距程序中不需要加,用的同一个液晶,
为什么,谢谢!

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
huixianfxt
1楼-- · 2019-03-24 23:47
 精彩回答 2  元偷偷看……
lovelee
2楼-- · 2019-03-25 02:16
huixianfxt 发表于 2018-1-18 08:31
你看下ASCII码表就应该能够懂了,0x30 表示字符‘0’,所有数字都加‘0’表示将十进制的数转换成相应数字的 ...

分析的对。
tyyhmtyyhm
3楼-- · 2019-03-25 05:48
huixianfxt 发表于 2018-1-18 08:31
你看下ASCII码表就应该能够懂了,0x30 表示字符‘0’,所有数字都加‘0’表示将十进制的数转换成相应数字的 ...

/********************************************************
* 函 数 名  : Lcd12864_SCharDisplay
* 函数功能        : 在12864上面书写8X16的数字
* 输    入  : Page, Column, cn
* 注    意  :注意与汉字显示的核心区别就是数字只占一个字节
* 微信公众号: AutoCodes
*********************************************************/
uchar Lcd12864_SCharDisplay(uchar Page, uchar Column, uchar *cn)
{
        uchar j, x1, x2, wordNum;
       
        if(Page > 7)  return 0;      //页坐标只能从0到7,大于则直接返回
        if(Column > 128)         return 0;  //列的坐标只能从0到127,大于则直接返回
       
  Page += 0xB0;                       //求取页坐标的值 不能放在while里面

        while (*cn != '')                 //人为设置结束显示标志
        {       
                LcdSt7565_WriteCmd(Page);    //设置页坐标

                x1 = (Column >> 4)& 0x0F;       //先取出高4位  注释1
                x2 = Column & 0x0F;             //取低四位
                LcdSt7565_WriteCmd(0x10 + x1);  //设置列坐标 高4
                LcdSt7565_WriteCmd(0x00 + x2);        //           低4

                for (wordNum=0; wordNum<100; wordNum++) //50改为100,字符库比较增大
                {
                    //--查询要写的数字在字库中的位置--//
                        if (CN8CHAR[wordNum].Index[0] == *cn)  //每个数字内码只占1个字节
                        {
                                for (j=0; j<16; j++) //写一个数字   
                                {               
                                        if (j == 8) //8X16用到两个页坐标,当大于等于8时,切换页坐标
                                        {
                                           LcdSt7565_WriteCmd(Page + 1);    //设置页坐标                       
                                                LcdSt7565_WriteCmd(0x10 + x1);   //高4位 设置列坐标
                                                LcdSt7565_WriteCmd(0x00 + x2);         //低4位
                                        }
                                        LcdSt7565_WriteData(CN8CHAR[wordNum].Msk[j]);
                                }
                                Column += 8; //下一个数字的新的列地址
                                break;  //我们理解:一旦字库中找到字符,余下字库不用再找
                        }  
                }        
                cn += 1;
        }       
        return 1;
}
这是液晶显示程序,Page, Column, cn分别为页地址,列地址,保存数据的数组
huixianfxt
4楼-- · 2019-03-25 11:45
 精彩回答 2  元偷偷看……

一周热门 更多>