最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于DS18B20传感器的数显温度表的设计及Protues仿真实现

来源:动视网 责编:小OO 时间:2025-09-30 14:21:31
文档

基于DS18B20传感器的数显温度表的设计及Protues仿真实现

基于DS18B20传感器的数显温度表的设计1DS18B20简介1.1概述温度在本设计中,采用缩小了体积。1.2硬件连接DS18B20只有三个引脚:GND(电源地),VDD(工作电源),DQ(数据线)。其典型应用如图所示。图1采用外部电源供电VDD直接接电源,DQ数据端通过一上拉电阻(一般去10K)与MCU的一个I/O相连,GND接地。2硬件设计硬件设计包括数码管显示电路,温度传感器电路,单片机最小系统。2.1数码管驱动显示用单片机驱动LED数码管有很多方法,按显示方式可可分为静态显示和动态显示
推荐度:
导读基于DS18B20传感器的数显温度表的设计1DS18B20简介1.1概述温度在本设计中,采用缩小了体积。1.2硬件连接DS18B20只有三个引脚:GND(电源地),VDD(工作电源),DQ(数据线)。其典型应用如图所示。图1采用外部电源供电VDD直接接电源,DQ数据端通过一上拉电阻(一般去10K)与MCU的一个I/O相连,GND接地。2硬件设计硬件设计包括数码管显示电路,温度传感器电路,单片机最小系统。2.1数码管驱动显示用单片机驱动LED数码管有很多方法,按显示方式可可分为静态显示和动态显示
基于DS18B20传感器的数显温度表的设计

1 DS18B20简介

1.1 概述

温度

在本设计中,采用缩小了体积。

1.2 硬件连接

DS18B20只有三个引脚:GND(电源地),VDD(工作电源),DQ(数据线)。

其典型应用如图所示。

图1 采用外部电源供电

VDD直接接电源,DQ数据端通过一上拉电阻(一般去10K)与MCU的一个I/O相连,GND接地。

2 硬件设计

硬件设计包括数码管显示电路,温度传感器电路,单片机最小系统。

2.1 数码管驱动显示

用单片机驱动LED数码管有很多方法,按显示方式可可分为静态显示和动态显示(扫描),按译码方式可分为硬件译码和软件译码。本设计采用3片74LS1移位寄存器利用动态扫描的方式驱动3位共阴数码管。因为1没有数据锁存器,在数据传输过程中数码管会有闪动,位数越多闪动越明显。为了消除这种现象,每位数码管加一PNP型三极管来控制数码管的开关。这样在数据传输过程中关闭所有数码管的显示,等数据传输完毕,开启所有数码管显示    ,以此达到减弱闪烁的目的。

图2 多片74LS1移位寄存器级联示意图

    第一片寄存器接受单片机发出的数据,以后每级寄存器接受其前一级寄存器的末尾数据作为该级输入,利用单片机的串口作为串行数据DIN和移位时钟CLK。

 2.2 总体电路设计

以低成本8051单片机为控制核心,P3.7口作为单片机与DS18B20数据传输口,利用单片机串口TXD/RXD串行输出欲显示的数据,每片移位寄存器驱动一数码管,利用单片机P3.5口作为数码管开关控制口。    设计如下电路,该电路在仿真软件Protues中经过调试通过,并在单片机开发板上实现了温度测量显示    。

DS18B20驱动程序对时序要求严格,因此,采用晶振频率为11.0592Mhz的晶振。

图3 Protues下电路仿真原理简图图

3 软件设计

软件设计主要包括传感器的驱动和数码管的显示输出,程序流程图如下所示。

4 串口显示子程序和传感器驱动子程序

void display123(void)

{load=0;            

delay1();

load=1;

loadgnd=0;

SBUF=zimo[d[3]]; 

while(!TI);  

TI=0;

SBUF=zimo[d[2]];

while(!TI);

TI=0;

if(flag==1)

{SBUF=0x40;

while(!TI);

TI=0;}

else

{SBUF=zimo[d[1]];

P1=d[2];while(!TI);

TI=0;}

loadgnd=1;          

}

/*------------------------------*/

void Delay_us(int z)

{unsigned int num;

for(num=z;num>0;num--)

_nop_();}

void Init_DS18B20()

{unsigned char x=0;

DQ = 1;

Delay_us(8);

DQ = 0;    

Delay_us(40); 

DQ = 1;  

Delay_us(14);

x=DQ;  

Delay_us(20);

}

Write_byte(char dat)

{   unsigned char i=0;

for (i=8; i>0; i--)

{DQ = 0;

DQ = dat&0x01;

Delay_us(5);

DQ = 1;

dat>>=1;}

}

char Read_byte()

{unsigned char i=0;

unsigned char dat = 0;

for (i=8;i>0;i--)

{DQ = 0; 

dat>>=1;

DQ = 1; 

if(DQ)

dat|=0x80;

Delay_us(4);}

return(dat);}  

Int DS18B20_Readtemp()

{unsigned char TL=0;

unsigned char TH=0;

unsigned int temp=0;

float temp1=0;    

Init_DS18B20();

Write_byte(0xCC); 

Write_byte(0x44); 

Init_DS18B20();

Write_byte(0xCC);

Write_byte(0xBE);

TL=Read_byte();   

TH=Read_byte();  

if((TH&0xf8)!=0X00)

{P2=TH|TL;

flag=1;

TH=~TH;T

L=(~TL)+1;}

else

{flag=0;P2=TH|TL;}

TH=TH<<4;

TL=TL>>4;

temp=TH|TL;

return(temp);

}

文档

基于DS18B20传感器的数显温度表的设计及Protues仿真实现

基于DS18B20传感器的数显温度表的设计1DS18B20简介1.1概述温度在本设计中,采用缩小了体积。1.2硬件连接DS18B20只有三个引脚:GND(电源地),VDD(工作电源),DQ(数据线)。其典型应用如图所示。图1采用外部电源供电VDD直接接电源,DQ数据端通过一上拉电阻(一般去10K)与MCU的一个I/O相连,GND接地。2硬件设计硬件设计包括数码管显示电路,温度传感器电路,单片机最小系统。2.1数码管驱动显示用单片机驱动LED数码管有很多方法,按显示方式可可分为静态显示和动态显示
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top