基于AT89S52单片机的数字温度计设计

合集下载

基于单片机的数字温度计的设计

基于单片机的数字温度计的设计

基于单片机的数字温度计的设计摘要:本文介绍了一种AT89S52单片机的数字温度计设计。

该数字温度计的主控系统采用AT89S52单片机,温度采集选用PT100型温度传感器,显示系统选用数码管,实现对温度的测量和显示。

该数字温度计具有稳定性高、精度准确、结构简单等优点。

关键词:AT89S51单片机温度传感器PT100数码显示温度传感器应用于诸多领域,不管是信息化还是工业化,我们都能够看到温度传感器的身影。

铂电阻温度传感器因其测量准确度高、测量范围大、稳定性好等,被广泛用于中温(-200℃~650℃)范围的温度测量中。

pt100是铂热电阻,它的阻值会随着温度的变化而改变,在0℃时阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。

本设计采用PT100温度传感器,将把温度的变化转变成电压信号的变化并将其放大,然后通过A/D转换,将数据传递给单片机,再由单片机将信号进行处理,通过数码管显示出当前温度。

电路原理如图:本系统选择PT100温度传感器,选择AT89S52单片机,AT89S52接受PT100的信号,经过处理,当数码管接收到经过AT89S52单片机处理过的信号后,显示出接收到的温度。

而且温度传感器,输出信号是数字信号,而不是传统意义上的模拟信号,这样便于单片机处理及控制。

省去了传统的模拟温度传感器需要的A/D转换电路,省去了很多不必要的电路,从而电路得到了简化,也提高了系统的工作效率,降低了系统的硬件成本。

PT100是一种广泛应用的测温元件。

在-50~+600 ℃范围内具有其它温度传感器无可比拟的优势,包括高精度、稳定性好、抗干扰能力强等。

本设计PT电阻采用三线制接法,可将PT100的两侧相等的导线长度分别加在两侧的桥臂上,使得导线电阻得以消除。

LM324运放电路工作过程:通过集成运放将基准电压4.096V转换为恒流源,电流流过PT100时在其上产生压降,再通过运放将该微弱压降信号放大,即输出期望的电压信号,将信号直接连AD转换芯片。

基于AT89S52单片机的数字频率计课程设计

基于AT89S52单片机的数字频率计课程设计

第一章前言频率测量是电子学测量中最为基本的测量之一。

由于频率信号抗干扰性强,易于传输,因此可以获得较高的测量精度。

随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,测频原理和测频方法的研究正受到越来越多的关注。

1.1频率计概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。

它是一种用十进制数字显示被测信号频率的数字测量仪器。

它的基本功能是测量正弦信号、方波信号及其他各种单位时间内变化的物理量。

在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。

传统的频率计采用测频法测量频率,通常由组合电路和时序电路等大量的硬件电路组成,产品不但体积大,运行速度慢而且测量低频信号不准确。

本次采用单片机技术设计一种数字显示的频率计,测量准确度高,响应速度快,体积小等优点[1]。

1.2频率计发展与应用在我国,单片机已不是一个陌生的名词,它的出现是近代计算机技术的里程碑事件。

单片机作为最为典型的嵌入式系统,它的成功应用推动了嵌入式系统的发展。

单片机已成为电子系统的中最普遍的应用。

单片机作为微型计算机的一个重要分支,其应用范围很广,发展也很快,它已成为在现代电子技术、计算机应用、网络、通信、自动控制与计量测试、数据采集与信号处理等技术中日益普及的一项新兴技术,应用范围十分广泛。

其中以AT89S52为内核的单片机系列目前在世界上生产量最大,派生产品最多,基本可以满足大多数用户的需要[2]。

1.3频率计设计内容利用电源、单片机、分频电路及数码管显示等模块,设计一个简易的频率计能够粗略的测量出被测信号的频率。

参数要求如下:1.测量范围10HZ—2MHZ;2.用四位数码管显示测量值;第二章系统总体方案设计2.1测频的原理测频的原理归结成一句话,就是“在单位时间内对被测信号进行计数”。

被测信号,通过输入通道的放大器放大后,进入整形器加以整形变为矩形波,并送入主门的输入端[3]。

基于AT89S52单片机的数字温度控制系统软件设计

基于AT89S52单片机的数字温度控制系统软件设计
20 2 . 0 7, 0
f 张 萍 等 .基 于 数 字 温 度 计 4 ]
D 1B 0的 温 度 测 量 仪 的 开 发 f. S8 2 J 1
自动化仪 表 20 ,. 0 76 『I 5 何希才.传感器及其应用 『 ] Ⅵ 北 l.
京:国防工业 出版 社.2 0 . 00
f 6 1何立民等. 片机应 用系统设计 单
[】 德 .单 片机原 理 与应 用技 术 【] 京 : 7张友 M. 北 机械
工业 出版社 . 0 4 2 0.
调显示程序
iHale Waihona Puke 调 B D码转化程序 C
【] 鑫.单 片机 原理 及 应 用【 . 京 : 工 业 出 8张 M] 北 电子
版 社 .0 8 20 .
度控制 器设计 【.微计算机 信息, J ]
Ab ta t sr c:Aln t h e h ia rges h e eaue i cmmo aa tri h id s a po u t n u sn h mo oi i ne ae o g wi te tc nc lpo rs,te tmp rtr s a o h n p rmee n te n ut l rd ci ,b tu ig te i r o n lhc itg td t r crutt c ue h p rmee i e o n t is em.Ths rce h s d sg e h dgtltmp rtr uvn a d o t ln ytm b sd n te i i o a c s te aa tr s cmig he mant a c b r i at l a ein d te ii e eaue s rig n cnr l g sse i a o i ae o h mo oi i nertd crut h sse i o oe o he d ls e eaue g te n d l,tmp rtr o tol g moue a w l stmp rtr n lhc itgae ic i t .T e y tm s c mp sd ftre mo ue:tmp rtr ah r g mo ue e eaue c nrln d l s el e eaue i i a

基于AT89C52单片机的数字温度测量及显示系统设计

基于AT89C52单片机的数字温度测量及显示系统设计

精品文档河北工程大学2014—2015学年第(二)学期课程设计课题名称:基于AT89S52单片机的数字温度测量及显示系统设计设计时间:2015年 06月系部:计算机科学与技术班级:计算机1401小组成员:张朔萌李丹丹郭星星石凤丹指导老师:赵建明河北工程大学目录1.课程设计题目................................................... (2)1.1实验题目................................................... .. (2)1.2小组成员贡献................................................... (2)2.设计方案................................................... .. (2)2.1设计目的................................................... .. (2)2.2性能指标................................................... .. (2)3.数字温度计系统的硬件设计 (3)3.1数字温度计硬件框图................................................... (3)3.2AT89C52单片机................................................... .. (3)3.3外围电路................................................... .. (4)3.4总设计图................................................... .. (4)4.数字温度计系统的软件分析及系统整体流程 (4)4.1总体流程图................................................... . (5)4.2子程序流程图................................................... (6)5.仿真结果................................................... .. (8)6.总结................................................... . (9)7.附录................................................... . (10)河北工程大学1 课程设计题目1.1实验题目基于单片机的数字温度计设计。

基于AT89S52单片机的数字温度计设计

基于AT89S52单片机的数字温度计设计
uchar data temp_data[2]={0x00,0x00}; //读出温度暂放
uchar data display[5]={0x00,0x00,0x00,0x00,0x00};//显示单元数据,共4个数据,一个运算暂存用
void delay(uint t)//11微秒延时函数
{
for(;t>0;t--);
value>>=1;
DQ = 0; //
_nop_();_nop_();_nop_();_nop_(); //4us
DQ = 1;_nop_();_nop_();_nop_();_nop_(); //4us
if(DQ)value|=0x80;
delay(6); //66us
}
DQ=1;
return(value);
ow_reset();
write_byte(0xCC); // Skip ROM
write_byte(0x44); //发转换命令
}
work_temp()//温度数据处理函数
{
uchar n=0; //
if(temp_data[1]>127)
{temp_data[1]=(256-temp_data[1]);temp_data[0]=(256-temp_data[0]);n=1;}//负温度求补码
uchar code dis_7[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};
/*共阳LED段码表"0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" */

基于AT89S52单片机多彩温度计的设计

基于AT89S52单片机多彩温度计的设计

基于AT89S52单片机多彩温度计的设计【摘要】根据色彩合成的三基色原理,任何颜色的光都可以通过改变红、绿、蓝三基色按照不同的比例而合成,由此原理,采用AT89S52单片机作为控制核心,DS18B20作为温度采集芯片,12864LCD作为温度显示模块,实现LED 背景灯的亮度、色彩和发光范围的随温度变化而连续变化的功能。

【关键词】控制;设计;调节1.功能要求设计一个多彩温度计,可应用于酒店、商场、车站等公共场所,也可以应用在家庭、办公室等小型场所,作为装饰使用。

该设计可以显示当前环境温度,同时也能够显示当前日期时间。

温度和时间信息显示使用的是12864LCD,多彩温度计的背景光源使用的是全彩LED。

背景光源的亮度、色彩可以随着环境温度的变化而逐渐变化,在温度从-20℃→40℃变化过程中,背景光源的色彩从蓝色渐变为红色。

2.方案的设计2.1 LED的亮度控制设计LED使用的是三合一的全彩芯片,它有4个引脚,其中公共端引脚连接电源,其余3个引脚分别对应于三基色的红、绿、蓝,这3个引脚与单片机的3个引脚相连,当单片机引脚置于低电平时,对应的LED会发光。

而LED的亮度调节是通过占空比来实现的,占空比就是单片机引脚输出的脉冲中,高电平保持的时间与该脉冲周期的时间之比。

由于该设计单片机引脚是低电平时LED点亮,即占空比为0时(没有高电平信号),LED有亮度有最大值;而当单片机引脚是高电平时,即占空比为1时,LED亮度有最小值(熄灭);当占空比为50%时,即脉冲高、低电平所占时间相同,此时的亮度应该介于最大亮度和最小亮度两者之间。

该设计我们选用了4档亮度,占空比在程序中赋予5个值,有4个档位:0%、25%、50%、75%、100%(熄灭),以此按不同命令实现LED亮度的调节。

2.2 LED的色彩控制设计根据色彩合成的三基色原理,任何颜色的光都可以通过改变红、绿、蓝三基色按照不同的比例而合成,当用红光、蓝光、绿光三色光进行混合时,可分别得到黄光、青光和品红;将这三色光等比例混合时,可得到白光;而将此三色光不同比例混合时,可以获得不同颜色的光。

基于AT89S52单片机的温度控制器设计

基于AT89S52单片机的温度控制器设计
基于 A 8 S 2 片机 的温 度控制器设计 T 95 单
史 新 鹏
( 军 大连 舰艇 学 院装 备 自动 化 系 , 宁 大连 1 6 1 海 辽 1 0 8)
摘要 : 文章 实现 了一种 基 于 A 8 S2 片机 的 室 内温度控 制 器 ,采 用数 字传 感器 D 1B 0构成测 温单元 ,完 T 95 单 S8 2 成 对 温度 的采 集、转换 和 传输 任务 ,并 用 两个四位 数码 管 实时显 示 当前 室 内的 温度值 ,并 与事 先设 定的 温度 值 进 行 比较 ,最后将 比较 结果 通过 单 片机 以开 关量 的输 出方式控 制 固 态继电 器的通 断 ,L— I 度采
r—
L — 温 制 f 度控
r—
高 电平 ,保证 数据传 输 方 向是 由A 口向B 口传 输 。数
码 管共 阳极 引脚通过 8 5 三 极 管与单 片机 的P 口相 50 2
图 1 系统 总 体 结 构 图
2 o 中圈; 4 新拔扣 2 20 咄 0{ 4
气 不理 想 的话 ,居 室 内温度 会很 低 ,这 将在 很大 程
度 上 影响 到住户 的正 常生活 与 身体健 康 。这时 ,住 户往 往会使 用 一些诸 如 电暖器 等用 电设备 来 为家庭 取暖 。然 而 , 目前市 场 上的 电暖器 往往 只能完 成加 热这 个 简单 的功 能,特 别是 电暖器 如果 在使 用者 夜 间休 息时使用 的话 ,很 可 能一整 夜都在 加热 工作 , 这样 不仅不 安全 ,而 且还造 成 了 电能 的浪 费 。如 果
系统输 入端 包含 电源模 块和 温度 采集模 块 ,系统 输 出端包含温 度显示模 块和温 度控制模块 。

基于AT89S52的数字温度计设计说明

基于AT89S52的数字温度计设计说明

基于AT89S52的数字温度计设计说明一、设计背景温度计是指可以测量并显示环境温度值的仪器。

数字温度计是将温度转换为数字信号,再通过数码管显示温度值的一种温度计。

随着微处理器技术的不断发展,数字温度计也不断得到改进,成为了一种重要的电子测量仪器。

本设计基于AT89S52单片机,设计一款简单的数字温度计。

二、设计方案本设计方案采用DS18B20数字温度传感器作为温度检测器件,通过AT89S52单片机进行信号处理,并将温度值显示在四位数码管上。

具体方案如下:1. 电路连接将DS18B20数字温度传感器的VCC引脚连接到单片机的5V供电端口,GND引脚连接到单片机的GND端口,DQ引脚连接到单片机的P2.0口。

将四位共阳数码管的COM1-COM4引脚连接到单片机的P1.0-P1.3口,a-g引脚连接到单片机的P0.0-P0.6口。

2. 软件设计主程序通过定时器产生1s的时间基准,读取DS18B20传感器的温度值,将温度值转化为数码管可以显示的温度值,并将温度值显示在数码管上。

主程序具体运作流程如下:(1)初始化定时器,设定时间基准为1s。

(2)初始化DS18B20传感器,进行一次温度检测。

(3)将读取到的温度值存入RAM中。

(4)将温度值转化为数码管可以显示的温度值,并存入RAM中。

(5)将数码管显示温度值。

(6)等待1s后,再进行温度检测,重复执行。

三、应用领域数字温度计是一种广泛应用于家庭、实验室、工厂、疾病诊断等领域的电子测量仪器。

本设计采用的AT89S52单片机和DS18B20数字温度传感器成本较低,制作简单,可以在生活中进行自制,具有一定的实用价值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于AT89S52单片机的数字温度计设计一引言在生活和生产中,经常要用到一些测温设备,但是传统的测温设备具有制作成本高、硬件电、和软件设计复杂等缺点。

基于AT89S52单片机的数字温度计具有制作简单、成本低、读数方便、测温范围广和测温准确等优点,应用前景广阔。

二项目要求基于AT89S52单片机的数字温度计设计具体要求如下:(1)温度值用LED显示。

(2)围为-30℃~100℃,且测量误差不得大于±0.5℃。

(3)成本的体积、质量要尽可能小。

三系统设计1 框图设计根据设计要求分析,基于A T89S52单片机的数字温度计设计由AT89S52单片机控制器、电源、显示电路、温度传感器、复位电路和时钟电路组成,系统框图如图1所示。

电源给整个电路供电,显示电路显示温度值,时钟电路为AT89S52提供时钟频率。

传感器采用美国DALLAS半导体公司生产的一种智能温度传感器DS18B20,其测温范围为-55~125℃,最高分辨率可达0.0625℃,完全符合设计要求。

图一基于AT89S52单片机的数字温度计系统框图2 知识点本项目需要通过学习和查阅资料,掌握和了解如下知识:+5V电源原理及设计。

●单片机复位电路工作原理及设计。

●单片机晶振电路工作原理及设计。

●按键电路的设计。

●数码管的特性及使用。

●DS18B20的特性及使用。

●74LS07的特性及使用。

●AT89S52单片机引脚。

●单片机C语言程序设计。

四硬件设计1 电路原理图控制器使用单片机AT89S52,测温传感器使用DS18B20,用4位共阳极LED数码管以动态扫描法实现温度显示,电路图可见仿真图所示。

2 元件清单基于AT89S52单片机的数字温度计元件清单如表1所示。

五软件设计1 程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20测量的当前温度值,温度测试每1S进行一次。

这样可以在1S之内测量一次被测温度,其程序流程图如图3所示。

读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写,其程序流程图如图4所示。

温度转换命令子程序主要是发温度转换开始命令,采用12位分辨率转换时间约为750ms 。

程序设计中采用1s 显示程序延时等待转换的完成。

计算温度子程序将RAM 中读取值进行BCD 码地转换运算,并进行温度值正负的判定,显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。

2 程序清单基于AT89S52单片机的数字温度计程序清单如下: #include "reg51.h"#include "intrins.h" //延时函数用 #define Disdata P1 //段码输出口 #define discan P3 //扫描口 #define uchar unsigned char #define uint unsigned intsbit DQ=P3^7; //温度输入口sbit DIN=P1^7; //LED小数点控制uint h;uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x 09};//温度小数部分用查表法uchar code dis_7[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};/* 共阳LED段码表"0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" */ uchar code scan_con[4]={0xfe,0xfd,0xfb,0xf7}; // 列扫描控制字uchar data temp_data[2]={0x00,0x00}; // 读出温度暂放uchar data display[5]={0x00,0x00,0x00,0x00,0x00};//显示单元数据,共4个数据,一个运算暂存用void delay(uint t)//11微秒延时函数{for(;t>0;t--);}scan()//显示扫描函数{char k;for(k=0;k<4;k++) //四位LED扫描控制{Disdata=dis_7[display[k]];if(k==1){DIN=0;}discan=~scan_con[k];delay(90);discan=0x00;}}ow_reset(void)//18B20复位函数{char presence=1;while(presence){while(presence){DQ=1;_nop_();_nop_();DQ=0;delay(50); // 550usDQ=1;delay(6); // 66uspresence=DQ; // presence=0继续下一步}delay(45); //延时500uspresence = ~DQ;}DQ=1;}void write_byte(uchar val)//18B20写命令函数{uchar i;for (i=8; i>0; i--) //{DQ=1;_nop_();_nop_();DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();//5us DQ = val&0x01; //最低位移出delay(6); //66usval=val/2; //右移一位}DQ = 1;delay(1);}uchar read_byte(void)//从总线上读取一个字节{uchar i;uchar value = 0;for (i=8;i>0;i--){DQ=1;_nop_();_nop_();value>>=1;DQ = 0; //_nop_();_nop_();_nop_();_nop_(); //4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); //4usif(DQ)value|=0x80;delay(6); //66us}DQ=1;return(value);}read_temp()//读出温度函数{ow_reset(); //总线复位write_byte(0xCC); // 发Skip ROM命令write_byte(0xBE); // 发读命令temp_data[0]=read_byte(); //温度低8位temp_data[1]=read_byte(); //温度高8位ow_reset();write_byte(0xCC); // Skip ROMwrite_byte(0x44); // 发转换命令}work_temp()//温度数据处理函数{uchar n=0; //if(temp_data[1]>127){temp_data[1]=(256-temp_data[1]);temp_data[0]=(256-temp_data[0]);n=1;}//负温度求补码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]){display[3]=0x0A;if(!display[2]){display[2]=0x0A;}}//最高位为0时都不显示if(n){display[3]=0x0B;}//负温度时最高位显示"-"}main()//主函数{Disdata=0xff; //初始化端口discan=0xff;for(h=0;h<4;h++){display[h]=8;}//开机显示8888ow_reset(); // 开机先转换一次write_byte(0xCC); // Skip ROMwrite_byte(0x44); // 发转换命令for(h=0;h<500;h++){scan();} //开机显示"8888"2秒while(1){read_temp(); //读出18B20温度数据work_temp(); //处理温度数据for(h=0;h<500;h++){scan();} //显示温度值2秒}}六系统仿真及调试1 软件调试1图5 仿真图。

相关文档
最新文档