基于凌阳单片机的低温段温度的测量及显示

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

基于凌阳单片机低温段
温度的测量及显示
摘要:本着方便使用,设计了基于凌阳单片机的测温范围为0-100℃,数码管显示精度为0.1℃的温度采集系统,可以应用于家用热水器以及测温范围是
0-100℃以内的测温环境中。

Abstract: based on ease of use, design based on the sunplus SCM temperature range of
0-100 ℃, the digital tube display accuracy of 0.1 ℃temperature acquisition system, can be applied to household water heater and the temperature measurement range is within 0-100 ℃temperature environment.
1前言
1.1发展状况
本设计应用性比较强,设计系统可以作为温度监控系统,如果设为改装可以作热水器温度调节系统、实验室温度监控系统等诸多温度采集系统。

课题的主要任务是完成环境温度检测,利用单片机实现显示温度数据。

随着“信息时代”的到来,作为获取信息的手段,传感器技术得到了显著进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。

传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。

因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。

为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则设计本系统。

本文利用单片机结合传感器技术而开发设计了这一温度监控系统。

文中传感器理论和单片机实际应用有机结合,详细的讲述了利用热电阻作为温度传感器探测环境温度的过程以及实现热电转换的原理过程。

单片机是将微处理器、存储器、I/O接口电路、定时/计数器等集成在一个芯片上的大规模集成电路,本身即是一个小型化的微机系统。

单片机技术与传感器测量技术、信号与系统分析技术、电路设计技术、可编程逻辑应用技术、微机接口技术、数据库技术以及数据结构、计算机操作系统、C语言程序设计、软件工程、数据网络通信、数字信号处理、误差分析、仪器仪表结构设计和制造工艺等的结合,使得单片机应用十分广泛。

同时,单片机具有较强的管理功能。

采用单片机对整个测量电路进行管理和控制,使得整个系统智能化,功耗低,使用电子元件较少,内部配线少,成本低,制造,安装,调试及维修方便。

1.2主要研究内容
本系统研发主要包括系统硬件和系统软件的设计。

硬件设计主要包括了各个功能模块的方案论证和电路设计,PCB板设计和制作,各模块的硬件电路调试和总体调试。

软件的设计主要包括主程序,数码管显示,温度采集,数据转换等子程序的编程。

本系统针对的是0-100℃的测温范围,显示精度是0.1℃。

根据此项技术指标,硬件设计工作主要包括了:掌握温度传感器、数码管显示、放大器等器件的工作原理,并由此设计具体的硬件电路。

在软件方面则是利用单片机组成控温系统,
编程实现温度数据采集及实现显示的功能。

本系统以SPCE061A单片机为微处理器,利用传感器与单片机组成测温系统,检测当前温度并通过单片机实现对采集到的温度数据进行A/D转换,在数码管上面进行显示。

2系统的组成及工作原理
2.1系统的设计要求及设计指标
本次设计所研究的系统到的设计要求和技术指标:
1、该系统需要自动对温度进行采集,并对采集到的数据进行显示;
2、温度显示精度是0.1℃;
3、测温范围是0—100℃;
2.2系统功能分析
根据研制系统的要求和技术指标,在分析整个系统的组成和基础上,采用了单片机作为系统数据处理核心,一是对温度数据的采集,另一个是对采集到的温度值的显示。

我们采用了PT100进行温度采集,LM358进行电信号放大,最后使用单片机转换的数字信号驱动数码管显示。

2.3系统电路图
电路图有两部分,一个是显示电路,另一个是温度采集和放大电路。

3系统硬件电路设计
本设计由采样电路、放大电路、显示电路组成。

因此在综合考虑了本设计的
基本要求及系统各项功能实现情况后,具体分析一下硬件设计。

3.1方案论证
3.11单片机的选择
选择凌阳已有的SPCE061A板本身强大的处理数据功能外加A/D转换功能,性价比高。

SPCE061A为凌阳科技新推出的unSP内核的高集成度,高性能十六位单片机。

它的CPU内核采用凌阳最新推出的µ’nSP(Microcontroller and Signal Processor)16位微处理器芯片(以下简称unSP)。

性能简介如下:•16位的高性能unsp内核单片机
•CPU时钟范围:0.32MHz~49Mz
•片内32k字的Flash程序存储器、2k字的SRAM数据存储器
•2个16位I/O端口
•14个中断源
•1通道专用音频AD转换通道
•7通道AD转换通道
•内置MIC放大电路和自动增益(AGC)放大电路
•2路电流输出型的DA转换通道
•2个16位通用定时器/计数器
•实时实钟(RTC)
•低电压复位、低电压监测
•内置在线仿真接口(ICE)
•具有保密功能
•具有WatchDog功能
外围电路如下:
3.1.2温度数据采集模块
从系统要求分析,要求对温度和温度有关的参量进行检测,应该考虑用热电
阻传感器。

按照热电阻的性质可以分为半导体电阻和金属热电阻两大类,前者通常称为热敏电阻,后者成为热电阻,我们选用了PT100作为温度检测元件。

铂热电阻的物理化学性能在高温和氧化性介质中很稳定,用作工业测温元件,且元件线性度良好。

在0℃到100℃时,最大非线性偏差小于0.5℃。

铂热电阻与温度的关系是:
Rt=R0(1+At+Bt*T)
其中Rt是温度t℃时候的电阻值,R0是温度为0时的电阻值,t为任意温度值,A、B为温度系数。

3.13A/D转换部分
模数转换器是一种连续的模拟量转换成离散的数字量的一种电路或期间。

模拟信号转换为数字信号一般需要经过采样保持和量化编码两个过程。

针对不同的采样对象,有不同的A/D转换器可以供选择,其中有通用的也有专用的。

A/D转换器在实际应用时,除了要设计适当的采样/保持电路,基准电路和多路模拟开关等电路外,还应根据实际选择的具体芯片进行输入模拟信号极性转换等设计。

因61单片机中包含了逐次比较的A/D转换器,转换速度快,精度比较高,输出为二级制码,应用方便,成本低,因此采用了61板中的A/D转换器。

3.1.4数字显示部分
在实际应用中,常用的显示器件有LED数码管显示器,CRT显示器以及LCD 液晶显示屏,本设计选用了3位一体的数码管作为显示部分,数码管由八个发光二极管组成,其中七个发光二极管a-g控制七个笔画的量和暗,另一个控制一个小数点的亮和暗,控制简单,使用方便。

3.2温度采集电路
3.2.1温度采集电路工作原理
温度数据采集是整个系统的最重要也是最核心的部分,采集到的实时温度数据经过MCU处理后送数码管显示。

在温度采集电路中主要包括采样电路和放大电路。

其中采样电路选用PT100进行温度采集,在放大电路部分采用了LM358运算放大器放大电信号,实现信号的稳定传输和放大。

温度采集电路已在前面给出。

3.2.2LM358介绍
LM358 内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。

它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。

它的特性如下:
内部频率补偿
直流电压增益高(约100dB)
单位增益频带宽(约1MHz)
电源电压范围宽:单电源(3—30V)
双电源(±1.5 一±15V)
低功耗电流,适合于电池供电,低输入偏流
低输入失调电压和失调电流
共模输入电压范围宽,包括接地
差模输入电压范围宽,等于电源电压范围
输出电压摆幅大(0 至Vcc-1.5V)
3.3微处理器MCU
该系统的MCU采用凌阳开发的16位单片机SPCE061A,其引脚图如下:
其引脚功能如下:
3.4电源电路
由于直流供电的需要,本设计采用电池供电,采用三节电池串联的4.5V电源供电,不仅可以满足单片机的需要,也可以满足显示电路和温度采集与放大电路的需要,十分方便。

4系统软件设计
4.1语言的选择
我们知道51单片机编程语言有两种,一种是汇编语言,一种是C语言,而SPCE061A也是如此。

汇编语言的机器码生成率高,但是可读性不高,复杂程序更是难以读懂,而C语言在大多数情况下机器码生成效率和汇编语言相当,但是其可读性远远超过汇编语言。

开发周期来说,C语言的开发周期也比汇编语言少很多。

C语言是一种结构化语言。

它层次清楚,便于按模块化方式组织程序,易于调试和维护,这种语言的表现能力和处理能力很强,不仅具有丰富的运算符和数据类型,便于实现各种复杂的数据结构。

它还可以直接访问内存的物理地址,进行位一级的操作。

C语言的模块化开发使得程序模块可不经修改,直接被启太醒目所用,实现资源共享。

因此本设计采用C语言编程。

4.2设计总体框图
5结论
5.1实现功能
经过10天的设计与制作,完成了查找资料、硬件原理图设计、硬件电路的焊接与测试、软件仿真与软件编写、调试等工作,达到了实时显示温度值的功能。

(其中数码管的a-h管脚接的是单片机的IOB0-IOB7管脚,位选从左到右是IOB8-IOB10管脚,AD转换选用的是通道1即IOA0。


6附录(程序代码)
//本试验接口:IOB0~IOB7接数码管数据口a~g;
//IOB8~IOB10接三极管B极移位接口(IOB8十位 IOB9个位 IOB10小数点后一位);
//电桥接入4.5V电压;
//热电阻每变化1奥姆,电桥输出电压差值0.039V;
//放大电路放大倍率约为9.1倍;
//凌阳61单片机AD接口为IOA0;
#define P_IOB_Data (volatile unsigned int *)0x7005
#define P_IOB_Dir (volatile unsigned int *)0x7007
#define P_IOB_Attrib (volatile unsigned int *)0x7008
#define P_Watchdog_Clear (volatile unsigned int *)0x7012
#define C_WDTCLR 0x0001 //WDT CLR CMD
#define P_IOB_Buffer (volatile unsigned int *)0x7006
#define P_ADC_MUX_Ctrl (volatile unsigned int *)0x702B
#define C_ADC_CH1 0x0001 //IOA0
#define P_ADC_Ctrl (volatile unsigned int *)0x7015
#define C_ADCE 0x0001 //B1 //Enable ADC
#define P_ADC_LINEIN_Data (volatile unsigned int *)0x702C
int main(void)
{unsigned int I_voltage,a=0,b=0,c=0,d=0,i=0,j=0;
unsigned int q=0x0100,w=0x0200,e=0x0400;
unsigned int
g[10]={0x00ff-0x003f,0x00ff-0x0006,0x00ff-0x005b,0x00ff-0x004f,0x00ff -0x0066,0x00ff-0x006d,0x00ff-0x007d,0x00ff-0x0027,0x00ff-0x007f,0x00f f-0x006f};
float T=0,J=0,TO;
float voltage;
*P_IOB_Data =0x0000;
*P_IOB_Dir =0xffff;
*P_IOB_Attrib=0xffff;
*P_ADC_MUX_Ctrl=C_ADC_CH1; //IOA0
*P_ADC_Ctrl=C_ADCE; //ADC shineng
I_voltage=*P_ADC_LINEIN_Data; //start
I_voltage=0;
while(1)
{*P_Watchdog_Clear=C_WDTCLR;
while(!(*P_ADC_MUX_Ctrl&0x8000));
I_voltage=*P_ADC_LINEIN_Data;
I_voltage=I_voltage&0xffc0; //十位转换十六位
voltage=(float)I_voltage/0xffc0*3.331; //计算电压值 T=(float)voltage*100/3.3; //百分比 J+=T;
i++;
if(i==4)
{TO=J/4;
a=TO/100;
b=TO/10;
c=TO-b*10;
d=TO/0.1-c*10-b*100;
for(j=0;j<800;j++)
{ for(i=0;i<100;i++) //十位
*P_IOB_Data=g[b]+q;
for(i=0;i<100;i++) //个位
*P_IOB_Data=g[c]+w;
for(i=0;i<100;i++) //0.1
*P_IOB_Data=g[d]+e;
for(i=0;i<10;i++)
*P_IOB_Data=0x027f; //小数点
}
i=0;
*P_Watchdog_Clear=C_WDTCLR;
} }}。

相关文档
最新文档