串行扩展应用:
利用 ds18b20 和 led 数码管实现单总线温度测量系统。ds18b20的测量范围是-5℃~128℃。由于只接有两个 led数码管,所以显示的数值只能在 00~~99 之间。
硬件图
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);
}
效果图
上图,仿真运行状态①(未操作温度)。
上图,仿真运行状态②(未操作温度)。
上图,仿真运行状态③(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。
宏控多媒体中央控制系统操作知识
全新OPPO Reno5 Pro+重磅发布
采购人员必看的集成电路芯片辩别知识
realmeX2Pro高清图集
NVIDIA RAPIDS加速器v21.08的功能应用
51单片机温度测量系统Proteus仿真
电瓶修复之电池热烫技术分析下
关于踊跃报名参加第六届中国创新创业大赛深圳赛区的通知
微雪电子5.83寸黄黑白三色墨水屏介绍
三星S8只有双曲面屏幕版,指纹识别内嵌于显示器
体验混合自动化:倍加福将“数字博览会”与其在SPS 2021的展示相结合
无线充电器充电手机发烫正常吗 无线充电器手机放上去无反应
布谷:拥抱智能,打造互联网新品牌
魅族魅蓝Note6怎么样?魅蓝Note6评测:高颜值高性能长续航,价格仅需1099值得购买
AKGN200WIRELESS体验 一款精确定位运动人群的无线耳机
【案例】高精密微米加工机床 微纳加工技术工艺
LED行业面临更大危机 多家上市公司或成ST?
成都预计将在2020年实现首个万亿级产业集群,建成国际知名电子信息产业基地
京东组团打造推广联盟 OLED电视爆发在即
中国光伏制造商本年二季度财报预期多元化