ds18b20程序uchar code ditab[16] ={0x00,0x01,0x01.......}为什么有重复的
在DS18B20数码管温度显示程序中:1.ucharcodeditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05...
在DS18B20数码管温度显示程序中:
1.uchar code ditab[16] = {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
为什么要重复0x01,0x01, 0x03,0x03等。
2.P0 =LEDData[display[1]]; //显示个位
DIN = 0; //小数点为什么在显示个位时清零呢?
P2 = 0xfb;
Delay(250);
求高人指点这两个问题 展开
1.uchar code ditab[16] = {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
为什么要重复0x01,0x01, 0x03,0x03等。
2.P0 =LEDData[display[1]]; //显示个位
DIN = 0; //小数点为什么在显示个位时清零呢?
P2 = 0xfb;
Delay(250);
求高人指点这两个问题 展开
2个回答
展开全部
你好:
1.这个数组是DS小数部分所需要的温度对应的值,但为何是这样的,你可以想想DS的小数部分的特性。
第3位是小数最高位,代表2^(-1)=0.5℃,第2位是小数的次高位,代表2^(-2)=0.25℃....,共四位小数,精确到0.0625摄氏度;那么吧所有低4位以二进制加起来,比如0011代表0.0625摄氏度,近似约为0.1摄氏度,那么取值的就是0x01,那么0010代表0.125摄氏度,近似约为0.1摄氏度,所以还是取0x01,以此类推,后边的都是这么计算的。
2.没看懂你意思。
希望我的回答能帮助到你。
1.这个数组是DS小数部分所需要的温度对应的值,但为何是这样的,你可以想想DS的小数部分的特性。
第3位是小数最高位,代表2^(-1)=0.5℃,第2位是小数的次高位,代表2^(-2)=0.25℃....,共四位小数,精确到0.0625摄氏度;那么吧所有低4位以二进制加起来,比如0011代表0.0625摄氏度,近似约为0.1摄氏度,那么取值的就是0x01,那么0010代表0.125摄氏度,近似约为0.1摄氏度,所以还是取0x01,以此类推,后边的都是这么计算的。
2.没看懂你意思。
希望我的回答能帮助到你。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询