{ ds=0; i++;i++; ds=1;
i=8;while(i>0)i--; } else {
ds=0; //写 0 i=8;while(i>0)i--; ds=1; i++;i++; } } }
void tempchange(void) //DS18B20 开始获取温度并转换 {
dsreset(); delay(1);
tempwritebyte(0xcc); // 写跳过读ROM指令
tempwritebyte(0x44); // 写温度转换指令 }
unsigned char get_temp() //读取寄存器中存储的温度数据 {
unsigned char a,b;
dsreset(); delay(1);
tempwritebyte(0xcc); tempwritebyte(0xbe);
a=tempread(); b=tempread(); temp=(b&0X0f)<<4;
a=(a&0Xf0)>>4; temp=temp|a;
f_temp=temp*0.0625; 位0.0625°
temp=f_temp*100+0.5; 加0.5是四舍五入
//读低8位 //读高8位 //两个字节组合为1个字 //温度在寄存器中为12位 分辨率 //乘以10表示小数点后面只取1位, return temp; //temp是整型 }
五.学习收获
此次课程设计包括电路板的焊接与用数码管实现温度显示系统设计两大部分。通过对电路板的焊接,我们对一些元件有了初步的认识,在焊接元件水平上也有所进步。总之,第一部分的学习让我们在硬件上有所收获。第二部分的设计主要是软件编程上的学习,通过对程序的研究学习以及上网查资料,我们对此程序中的算法有了一些认识,已经掌握了用单片机控制按键及读取温度传感器数据的程序思路,通过第二部分的学习我们在软件水平上有了新的突破。