热敏电阻数字温度计电路

更新时间:2023-09-21 06:46:01 阅读量: 自然科学 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

热敏电阻温度计的单片机电路及说明

当对热敏电阻施加恒定电流时,在不同温度下,由于热敏电阻呈现出不同的电阻,因而其两端的电压也会发生变化,再通过放大电路,由AD转换转成数字信号,被单片机采集显示出来。

本文对于LM324的电路采用简答同相放大,,施加正负12v的电源,通过设定两组电阻,得到10倍的放大值。

对于ADC0804,仅加以clk信号即可。整个电路仿真如下图。

使用P1口作为AD数据采集口;P2口作为1602液晶显示命令数据口;P30-3作为ADC0804的控制口;P3.5-7作为1602的控制口。

而对于ADC0804的电路则很简单:

仅提供RC震荡电路器件即可。

TempVolt作为采集信号的输入口;其变化应在5v以内,超过5v则超出量程;

对于热敏电阻电路,使用2.55mA的恒流电源,具体电路略去;在仿真时直接选择CSOURCE

即可选定恒流源;

对LM324施加+12V和-12V电压,在proteus仿真中也可以直接加直流电压,同时为了查看放大效果,增加两个探针,在运行时看看出其放大效果接近10倍。

本文代码很简单,直接读出ADC0804,做出简单处理后送lcd1602显示即可。

此部分代码如下:

#define ad0_7 P1 //AD数据口

sbit rd=P3^0; //读数据控制,低电平有效

sbit wr=P3^1; //AD转换起动控制,上升沿有效

sbit cs=P3^2; //芯片选择信号,控制芯片的启动和结果读取,低电平有效 sbit intr=P3^3; //AD转换结束输出低电平

//5ms延时子程序///////////////// void delay(uint ms)

{ uint x,y;

for(x=ms;x>0;x--) for(y=255;y>0;y--); }

//读A/D数据子程序/////////////////////////////////////// uchar AD0804Read(void) { uchar mydata;

rd=1; wr=1; intr=1; //读ADC0804 前准备 delay(1); ad0_7=0xff; //P1全部置一准备 cs=0; wr=0; delay(10); wr=1; //启动ADC0804开始测电压 while(intr==1); //查询等待A/D转换完毕产生的INT(低电平有效)信号 rd=0; //开始读转换后数据 delay(1); //无意义语句,用于延时等待ADC0804 读数完毕 mydata=ad0_7; //读出的数据赋与addate rd=1;cs=1; //读数完毕 return mydata; }

本文来源:https://www.bwwdw.com/article/gb6h.html

Top