利用DS18B20和LED数码管实现单总线温度测量系统

串行扩展应用 利用 ds18b20 和 led 数码管实现单总线温度测量系统。ds18b20的测量范围是-5℃~128℃。由于只接有两个 led数码管,所以显示的数值只能在 00~~99 之间。 (1)硬件图
proteus仿真图:
(2)软件设计 #include
#includeintrins.h
#define uchar unsigned char
#define uint unsigned int
#define out p0
sbit smg1=out^4;
sbit smg2=out^5;
sbit dq=p3^7;
void delay5(uchar);
void init_ds18b20(void);
uchar readbyte(void);
void writebyte(uchar);
uchar retemp(void);
void main(){
uchar i,temp;
delay5(1000);
while(1){
temp=retemp();
for(i=0;i0;i–){
dq=0;
delay5(1);
dq=1;
date>>=1;
if(dq)date|=0x80;
delay5(11);
}
return(date);
}
void writebyte(uchar dat){
uchar i=0;
for(i=8;i>0;i–){
dq=0;
dq=dat&0x01;
delay5(12);
dq=1;
dat>>=1;
delay5(5);
}
}
uchar retemp(void){
uchar a,b,tt;
uint t;
init_ds18b20();
writebyte(0xcc);
writebyte(0x44);
init_ds18b20();
writebyte(0xcc);
writebyte(0xbe);
a=readbyte();
b=readbyte();
t=b;
t<<=8;
t=t|a;
tt=t*0.0625;
return(tt);
}
(3)效果图
仿真运行状态①(未操作温度)
仿真运行状态②(未操作温度)
仿真运行状态③(ds18b20按钮按下,温度增加)
仿真运行状态④(ds18b20按钮按下,温度增加)
实验结论及分析 1.程序的核心思想 ①ds18b20与传统的热敏电阻不同,ds18b20 可直接将被测温度转换为串行数字信号,供单片机处理。通过对 ds18b20 编程可以实现 9~12 位的温度读数,并可分别在 93.75ms 和 750ms 内完成 9 位和 12 位的数字量。其测温范围-55℃~+125℃,最大分辨率为 0.0625℃,在一10℃~+85℃范围内其测温准确度为±0.5℃。
②ds18b20也可以看作一个小的单片机系统,它将温度信息采集到自己的内存中,然后通过一定的节拍将温度信息一位一位地传入at89c51单片机中进行二位数码管的显数。
2.实验中遇到的问题 ①lcd1602输入信息时要记得初始化,否则不会显数。
②注意ds18b20的温度信息一位一位地传入at89c51单片机中时严格把控节拍,节拍不正确将影响数据传输。
③at89c51单片机的时钟频率要设置成11.0592mhz。


通过自适应滤波器进行降噪的设计
如何提高单片机的GPIO口驱动能力
回流焊的温度曲线怎么设置
4家LED跨国企业的一季度相关财报数据
UPS电源设计解决方案
利用DS18B20和LED数码管实现单总线温度测量系统
protel如何截图
电机的运行电流,允许多大偏差?
高压宽带隙谐振转换器中MLCC的设计注意事项
全球度智能手机应用处理器第二季度收益增长20%
Huami在印度重新推出了Amazfit Verge Lite
三相异步电动机的机械特性
东风风光最新消息:风光580活力智尚版预计在8月份正式上市,预售价10.99万起
微软发布业绩预警 多个业务收入下降且无法达到此前预期的水准
一个人的坚持 一家美国芯片企业的中国梦
***研发得如何了?水平更上几层楼了吗
格力新专利公布 拟为机器人弹奏钢琴的控制方法
iPhone8什么时候上市?iPhone8最新消息汇总:iPhone8即将发布准备好钱包,关于iPhone8的售价苹果官方放话了8000+?
详解单片机攻击技术及入侵过程
酸度计在做标定时的注意事项