新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > DS18B20和ADC0832共同使用

DS18B20和ADC0832共同使用

作者: 时间:2016-12-01 来源:网络 收藏
WriteOneChar(unsigned char dat){unsigned char i=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay_18b20(5);DQ=1;dat>>=1;}}Read_Temperature(void){Init_DS18B20() ;WriteOneChar(0xCC) ; // 跳过读序号列号的操作WriteOneChar(0x44) ; // 启动温度转换Init_DS18B20() ;WriteOneChar(0xCC) ; //跳过读序号列号的操作WriteOneChar(0xBE) ; //读取温度寄存器temp_data[0] = ReadOneChar(); //温度低8位temp_data[1] = ReadOneChar(); //温度高8位}Disp_Temperature(){display[4]=temp_data[0]&0x0f;display[0]=ditab[display[4]]; //查表得小数位的值display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);display[3]=display[4]/100 ;display[1]=display[4]%100 ;display[2]=display[1]/10;display[1]=display[1]%10;if(display[3]==0) //高位为0,不显示{display[3]=10 ; if(display[2]==0) //次高位为0,不显示display[2]=10 ;}}display1(){P2=tablewe[0]; //P2口低四位位选P0=table[display[3]]; //P0口数码管段选delay_18b20(50);P2=tablewe[1];P0=table[display[2]];delay_18b20(50);P2=tablewe[2];P0=table1[display[1]];delay_18b20(50);P2=tablewe[3];P0=table[display[0]];}void main(){while(1){ Read_Temperature();Disp_Temperature();display1();ad();cal();display2();}}这个程序可以使用,但是就是没有办法显示低温零度以下的,求修改!
上一页 1 2 下一页

评论


技术专区

关闭