




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机设计的温度检测显示报警程序设备技术网时间 :2010-4-14来源:电子技术网作者:1 .温度传感器AD590基本知识AD590产生的电流与绝对温度成正比,它可接收的工作电压为4V 30V,检测的温度范围为一55C- +150,它有非常好的线性输出性能,温度每增加 1,其电流增加1uA。AD590温度与电流的关系如下表所示:摄氏温度 AD590电流 经10KQ电压0 273.2 uA 2.732V10 283.2 uA 2.832 V20 293.2 uA 2.932 V30 303.2 uA 3.032 V40 313.2 uA 3.132 V50 323.2 uA 3.232 V60
2、 333.2 uA 3.332 V100 373.2 uA 3.732 V实验任务:利用AD590温度传感器完成温度的测量,把车t换的温度值的模拟量送入ADC0809的其中一个通道进行A/D 转换,将转换的结果进行温度值变换之后进行监控。由于AD590的温度变化范围在一55C 十150c之间,经过10KQ之后采样到的电压变化在 2.182V 4.232V之间,不超过5V电压所表示的范围,因此参考电压取电源电压VCC (实测VCC= 4.70V)。由此可计算出经过A/D 转换之后的摄氏温度显示的数据为:如果(D*2350/128 ) < 2732,则显示的温度值为 (2732 )D*235
3、0/128)如果(D*2350/128 )g732,则显示的温度值为十(D*2350/128) -2732)#include "reg52.h"/ 头文件#include "intrins.h"#define uchar unsigned char/ 宏定义#define uint unsigned int/ 宏定义sbit RS=P1A0;/LCD1602定义 I/O 的硬件接口sbit RW=P1A1;/LCD1602 定义 I/O 的硬件接口sbit E=P1A2;/LCD1602定义 I/O 的硬件接口sbit key_1=P1A3;/按键1 定
4、义I/O 的硬件接口/Alarm_Value;/温度报警值+1 度sbit key_2=P1A4;/按键2 定义I/O 的硬件接口/Alarm_Value;/温度报警值-1 度sbit key_3=P1A5;/按键3定义I/O 的硬件接口sbit key_4=P1A6;/按键4定义I/O 的硬件接口sbit AD590_2=P1A7;/A定义I/O 的硬件接口,通道选择/C、D接地sbit key_6=P3A7;/ 按键 6定义 I/O 的硬件接口/ 控制 温度报警标志位/sbit ST=P3A0; ST和 ALE 接在一起sbit OE=P3A1;sbit EOC=P3A2;sbit CLK
5、=P3A3;sbit SPK=P3A4; / 喇叭,蜂鸣器报警sbit LED1=P3A5; /LED 报警sbit LED2=P3A6;#define DPDR P2/LCD1602 并行数据输出接口定义#define DPDR_1 P0/ADC0809 并行数据输入接口定义uchar temp;/ 最终温度值unsigned long temp2;/ 平均温度unsigned long temp1;/ 温度 1,AD590_1 接 IN0unsigned long temp2; 温度 2, , AD590_2接 IN1ucharAlarm_Value;/ 温度报警值bit Alarm_Va
6、lue_bit;/ 温度报警标志位: 0-9 数字温度符号uchar code DispTab_1='0','1','2','3','4','5','6','7','8','9'/1602uchar code DispTab_2=0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00;/uchar DispBuf6; /6 字节的显示缓冲区char char_char_1=" Temperature:
7、"/定义字符串void delay(uint z)/1ms 延时uchar x,x1;for(;z>0;z-)for(x=0;x<114;x+)for(x1=0;x1<1;x1+);void write_Directive(uchar a)/ 写 LCD指令RS=0;RW=0;delay(5);E=0;DPDR=a;delay(5);E=1;delay(5);E=0;delay(5);void write_Data(uchar a)/ 写 LCD数据RS=1;RW=0;delay(5);E=0;DPDR=a;delay(5);E=1;delay(5);E=0;del
8、ay(5);void LCD_init()/LCD 初始化 uchar i;delay(15);write_Directive(0x38);delay(5);delay(5);write_Directive(0x38);write_Directive(0x01);write_Directive(0x02);/ 初始化后数据地址为0x80; 即第一行,第一个位置write_Directive(0x0c);/ 不显示光标/write_Directive(0x0f);/ 显示光标write_Directive(0x80+0x00);/ 第一行第一位地址for(i=0;i<16;i+)write
9、_Data(char_char_1i);/ 显示字符串" Temperature "void write_Data_String()/ 显示温度函数uchar i;DispBuf0=temp/100;/ 显示十位temp=temp%100;DispBuf1=temp/10;/ 显示个位temp=temp%10;DispBuf2=temp%10;/ 显示小数点后一位:0.0DispBuf0=DispTab_1i;/ 查表,取字符i=DispBuf1;DispBuf1=DispTab_1i;i=DispBuf2;DispBuf2=DispTab_1i;write_Directi
10、ve(0x80+0x40);/第二行,第一个位置地址write_Data(DispBuf0);/第二行,第一个位置write_Data(DispBuf1);/第二行,第二个位置write_Data('.');/ 第二行,第三个位置write_Data(DispBuf2);/第二行,第四个位置write_Data(0x00);/ 第二行,第五个位置显示温度符号void ADC0809_init()/ADC0809 复位ST=0;OE=0;SPK=1;LED1=1;TMOD=0x12;TH0=0x216;TL0=0x216;TH1=(65536-40000)/256;TL1=(65
11、536-40000)%256;TR1=0;TR0=1;ET0=1;ET1=1;EA=1;void t0(void) interrupt 1 using 0CLK=CLK;void t1(void) interrupt 3 using 0TH1=(65536-40000)/256;TL1=(65536-40000)%256;SPK=SPK;LED1=LED1;void temp1_start()/ 启动温度1 转换AD590_2=0;/ 通道选择ST=1;delay(1);/ 延时 1msST=0;delay(1);/延时1msST=1;delay(1);/延时1msST=0;while(!EO
12、C);/ 查询转换结束否_nop_();_nop_();OE=1;/OE=0,输出数据线呈高阻;OE=1输出转换得到的数据。delay(1);/ 延时 1mstemp1=DPDR_1;void temp2_start()/ 启动温度2 转换AD590_2=1;/ 通道选择ST=1;delay(1);/ 延时 1msST=0;delay(1);/延时1msST=1;delay(1);/延时1msST=0;while(!EOC);/ 查询转换结束否_nop_();_nop_();OE=1;/OE=0,输出数据线呈高阻;OE=1输出转换得到的数据。delay(1);/ 延时 1mstemp2=DPD
13、R_1;void temp1_Calculated()/ 温度 1 计算temp1=(temp1*2350/128)-2732;void temp2_Calculated()/ 温度 2 计算temp2=(temp2*2350/128)-2732;void Temperature_Alarm()/ 温度报警if(Alarm_Value_bit=1)if(Alarm_Value=temp)TR1=1;/ 启动定时器1elseSPK=1;LED1=1;TR1=0;elseSPK=1;LED1=1;TR1=0;void key_Detection()/ 按键检测if(key_6=0)delay(20
14、);/延时20mswhile(!key_6);delay(20);/延时20msAlarm_Value=Alarm_Value;/break;/if(key_1=0)delay(20);/延时20mswhile(!key_1);delay(20);/延时20msif(Alarm_Value>=100)temp=99;return;elseAlarm_Value+;return;/if(key_2=0)delay(20);/延时20mswhile(!key_2);delay(20);/延时20msif(Alarm_Value<=0)Alarm_Value=0;return;elseA
15、larm_Value-;return;void main() uchar i;ADC0809_init();/ADC0809 复位LCD_init();/LCD 复位delay(5);/ 延时for(i=0;i<8;i+)write_Directive(0x40+i);/ 写入温度符号write_Data(DispTab_2i);while(1)key_Detection();/按键检测temp1_start();/启动温度1 转换temp2_start();/启动温度2 转换temp1_Calculated();/温度1计算temp2_Calculated();/温度2计算temp=(
16、temp1+temp2)/2;/ 取温度 1 和温度 2 的平均值Alarm_Value=temp;Temperature_Alarm();/ 温度报警条件查询write_Data_String();/ 显示温度相关温度检测文章基于AT89C52单片机的温度检测及显示设计由于高新技术的不断发展,仪器仪表的微型化,数字化已得到实现。90 年代高精确度、高性能、多功能仪器仪表都已经采用微处理器件。而作为工业控制和自动化领域的各种新技术、新方法、新产品的发展趋势和显著标志智能化是自动化技术当前和今后发展的动向之一。本文采用AT89C52单片机开发了键盘、液晶显示器、 多路温度检测来实现温度的采集、温
17、度的文字显示和图形显示三个系统。实验证明,采用 AT89C52开发的系统性能可靠、成本较低、软件设计灵活简单、硬件接口功能丰富,具有扩展性好、通用性强等优点。1 元器件的选择1.1 核心芯片的选择AT89C52单片机价格低廉,输入输出口丰富,无需再另外扩展,简化了外围电路。256 B内部RAM 8 kB内部ROM程序存储空间大,防止由于字模过多而造成存储空间不够。另外由于前期开发需要多次的写入、 擦除,而89C52可以完成1 000次写/擦,故满足要求。1.2 模数转换芯片的选择ADC080混8位的A/D转换芯片,为逐次逼近型。由单一的 +5 V电源供电,片内带有所存功能的 8路模拟 多路开关
18、,可对8路05 V的输入模拟电压信号分时进行转换,完成一次转换约需100H;片内的地址译码和锁存电路,将单片机的三条地址信号译码生成选择八路模拟通道。输出具有TTL 三态锁存缓冲器,可以直接接到单片机的数据线上。1.3 温度传感器的选择温度传感器类型很多,目前出现的石英体温度传感器如AD590具有很高的稳定性、准确度和良好的线性,抗干扰能力强。单总线数字型的温度传感器DS18B20直接产生温度数字信号,不需要A/ D转换,准确度、稳定性都相当高,但这些传感器的适用范围不广,不利于以后其他功能的扩展。所以本次采用TREN必司的钳热电阻温度传感器 T/PI/HT,传感器的工作电压为 24 V 输出
19、电流为420 mA,外接250 Q精确电 阻用于提取电压时进行 A/D转换,ADC0809勺输入电压在15 V范围内对应的测量温度范围为 -10 +160。2 AT89C52 的设计应用2.1 硬件设计根据设计仪表的功能要求,本设计要完成以下功能:(1) 数字化测量,显示及报警装置;(2) 显示指定位置温度的数值及其动态曲线图;(3) 多路模拟数据的采集、处理;(4) 温度值字体的放缩。系统结构图如图1 所示。£ 1系乳钻杓用2.2 软件设计用C语言进行单片机程序设计,采用结构化程序设计思想:在总体设计中采用自顶而下”(TOP-DOWN)J方法,在程序设计中采用模块化编程。把整体任务分成一个个子任务,子任务再分子任务,逐层细分,每个子程序都完成其规定的功能,明确输入输出。将这些程序连接起来就构成整体流程图。模块化编程,每个模块结构完整,相互独立的程序段。如液晶模块的写控制指令、写显示数据、清屏;数据处理中的工程量转换,均值滤波等。这些程序可以任意调用、修改,使整个程序结构清晰,组合灵活,维护调试方便。2.2.1 主流程图主流程图如图2所示。主要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024桂林理工大学辅导员招聘笔试真题
- 9.团体标准《茗冠茶-绿茶加工技术规程》意见反馈表
- 2025年TFT-LCD用偏光片合作协议书
- ABC分类法在食品安全检测中的高效管理与优化策略
- 2025年湖南大学岳麓书院学工助理招聘考试笔试试题【答案】
- 2025年嘉兴嘉睿人力招聘考试笔试试题【答案】
- 2025年事业单位招考综合基础知识全真模拟考试试题【答案】
- 2025年电火花成型机床项目发展计划
- 干部教育培训工作调研报告
- 消费者购物行为对在线时尚品牌的影响
- 海上风电场选址与环境影响评估
- 市政工程资料表格填写范例样本
- 《陆上风电场工程概算定额》(NB-T 31010-2019)
- 《早期教育概论》课程标准
- 药物分析年终述职报告
- 农发行信贷业务考试题库题库附答案
- 2024普通高中物理课程标准解读
- 精神分裂症护理查房
- 建筑物联网工程综合实训 课件 第1-3章 物联网技术导论、物联网领域的关键技术、智能建造工程场景中的物联网
- 初中数学中心对称图形训练50题(含参考答案)
- 大中小学思政课内容一体化研究
评论
0/150
提交评论