单片机课程设计之热敏电阻测温

JIUJIANG UNIVERSITY

单片机课程设计报告

题 目 院 系 电子工程学院

专 业 自动化

姓 名 xxxx xxxx

班级学号 xxxx

指导教师 xxxx

日 期 2012-2-23

目 录

第一部分:设计背景………………………………………

第二部分:系统主要功能…………………………………

第三部分:电路设计与参数选择…………………………

第四部分:系统软件设计…………………………………

第五部分:系统调试与仪器使用…………………………

第六部分:测试数据与结果分析…………………………

第七部分:使用说明书……………………………………

第八部分:总结…………………………………………

3 5 5 11 21 23 23 24

热敏电阻温度采集系统设计

摘要

温度在人类的生活中扮演着极其重要的角色,在冶金、钢铁、石化、水泥、玻璃、医药等行业温度的测量及为重要。本次课程设计采用单片机了STC12C5A60S2和10K NTC热敏电阻为核心器件来设计热敏电阻测温系统。通过NTC热敏电阻对外界温度信号进行采集,由于热敏电阻的阻值随外界温度变化而变化,再通过测量电路把阻值的变化转换为电压的变化,利用STC12C5A60S2单片机的集成AD把采集到的模拟电压信号转换为数字信号,利用单片机对数字信号进行处理后就可以得到相应的温度值,从而完成了对温度的测量。

该系统采用了STC12C5A60S2单片机、NTC热敏电阻、共阴极数码管显示、电容、排阻、晶振、电阻等元器件。

关键字:STC12C5A60S2单片机、热敏电阻、测温系统

第一部分

设计背景

在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部

门都不得不考虑着温度的因素。温度对于工业如此重要,由此推进了温度传感器的发展。进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。

在工农业生产中,温度检测及其控制占有举足轻重的地位,随着现代信息技术的飞速发展和传统工业改造的逐步实现 ,能够独立工作的温度检测和显示系统已经应用于诸多领域。要达到较高的测量精度需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差等问题,使温度检测复杂化。模拟信号在长距离传输过程中,抗电磁干扰时令设计者伤脑筋的问题,对于多点温度检测的场合,各被检测点到监测装置之间引线距离往往不同,此外,各敏感元件参数的不一致,这些都是造成误差的原因,并且难以完全清除。

单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中必不可少且广泛应用的器件,尤其在日常生活中也发挥越来越大的作用。采用单片机对温度采集进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控数据的技术指标,从而能够大大提高产品的质量和数量。

第二部分

系统主要功能

本系统测量的温度范围为2-42摄氏度,可以通过数码管直观地显示出当前温度值。

第三部分

电路设计与参数选择

1、 设计原理

图1

如图1所示,当外界温度变化时,热敏电阻的阻值随着发生变化,热敏电阻上分得的电压发生变化,通过单片机的IO口和集成AD可以获得热敏电阻的电压值为V,通过计算得出热敏电阻的阻值变化规律R=V*R1/(5-V)。由于热敏电阻的阻值与温度有表1的对应关系,

第二部分

系统主要功能

本系统测量的温度范围为2-42摄氏度,可以通过数码管直观地显示出当前温度值。

第三部分

电路设计与参数选择

1、 设计原理

1

如图1所示,当外界温度变化时,热敏电阻的阻值随着发生变化,热敏电阻上分得的电压发生变化,通过单片机的IO口和集成AD可以获得热敏电阻的电压值为V,通过计算得出热敏电阻的阻值变化规律R=V*R1/(5-V)。由于热敏电阻的阻值与温度有表1的对应关系,

将各对应值用数组形式写入程序,通过查表便可以得到此时外界的温度值。

表1

2、 硬件电路

图2

3、 元器件选用及连接

表2

系统所用的元器件及说明如表2所示。引脚连接安排为:P1.1引脚接热敏电阻,RST引脚接复位电路,X1、X2连接用来起振,P2.7-P2.4 引脚接数码管的1、2、3、4,P0.0-P0.7引脚接数码管的a b c d e f g h和10K的排阻。

4、硬件选用

⒈ 热敏电阻的选用

热敏电阻器的热敏电阻有电阻值随温度升高而升高的正温度系数(简称PTC)热敏电阻和电阻值随温度升高而降低的负温度系数(简

称NTC)热敏电阻。

NTC热敏电阻器,是一种以过渡金属氧化物为主要原材料,采用电子陶瓷工艺制成的热敏半导体陶瓷组件。这种组件的电阻值随温度升高而降低,利用这一特性可制成测温、温度补偿和控温组件,又可以制成功率型组件,抑制电路的浪涌电流。

电阻温度特性可以近似地用下式来表示: R= R*EXP[B*(1/T-1/T)] 式中:RT、RN分别表示NTC在温度T(K)和额定额定温度TN (K)下的电阻值,单位Ω,T、TN 为温度,单位K(TN(k)=273.15+TN(℃))。B,称作B值,NTC热敏电阻特定的材料常数(Beta)。由于B值同样是随温度而变化的,因此NTC热敏电阻的实际特性,只能粗略地用指数关系来描述,所以这种方法只能以一定的精度来描述额定温度或电阻值附近的有限的范围。

电阻-温度关系: NTC热敏电阻器CWF2-502F3950各温度点的电阻值,即电阻-温度关系表。NTC热敏电阻器CWF2-502F3950的测温范围为[-55℃,125℃],其电阻值的变化范围为[250062Ω,242.64Ω]。如表1所示,列举了2-42摄氏度的电阻-温度关系。

⒉ STC12C5A60S2单片机的选用及单片机资源安排

2.1 STC12C5A60S2概述

本次课程设计核心元件是单片机STC12C5A60S2,下面对STC12C5A60S2做简单的概述。

2.1.1 基本构造

STC12C5A60S2单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储区(SRAM)、定时/计数器、UART串口、串口2、I/O接口、高速A/D转换、SPI接口、PCA、看门狗及片内R/C振动器和外部晶振等模块。STC12C5A60S2系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片内系统。

单片机STC12C5A60S2的基本构造如图3

所示:

图3

2.1.2 性能特点

60KB的Flash片内程序存储器、256字节的内部随机存取数据存储器(RAM)、1024字节的外部存储器、1K字节的数据Flash存储

(EEPROM)、ISP(在系统可编程)/IAP(在应用可编程)、 看门狗、内部集成MAX810专用复位电路、外部掉电检测电路、时钟源:外部精度晶体/时钟,内部R/C振荡器、4个16位定时器、3个时钟输出口、7个外部中断I/O口、PWM(2路)/PCA(可编程计数器阵列,2路)、A/D转换,10位精度ADC,共8路.

2.1.3 STC12C5A60S2单片机资源利用

本次课程设计,主要应用了STC12C5A60S2单片机中中央处理器

(CPU)、高速A/D转换、外部晶振等模块。

第四部分

C语言程序流程图及代码

主函数流程图:

AD中断流程图:

数码管显示

系统C程序代码:

Config.h代码:

#ifndef _CONFIG_H_

#define _CONFIG_H_

#include

#define FOSC 12000000L

#define ADC_POWER 0x80

#define ADC_FLAG 0x10

#define ADC_START 0x08

#define ADC_SPEEDLL 0x00

#define ADC_SPEEDL 0x20

#define ADC_SPEEDH 0x40

#define ADC_SPEEDHH 0x60

#define ADC_POSITION 1 //AD通道位置0-7

#define NUX_DATA P0 //数码管段选

#define NUX_SEG P2 //数码管位选

void Delay_ms(unsigned int ms); //延时函数

void InitADC(); //初始化AD功能

#endif

Main.c代码:

#include "config.h"

unsigned int code Ttable[42][2]={2,257, 3,246, 4,236, 5,225, 6,216, 7,207 8,198 9,190 10,182 11,174 12,167 13,160 14,154 15,148 16,142 17,136 18,131 19,126 20,121 21,116 22,112 23,107 24,103 25,100 26,96 27,92 28,89 29,86 30,82 31,80 32,77 33,74 34,71 35,69 36,66 37,64 38,62 39,60 40,58 41,56 42,54 43,52 }; // 此数组保存热敏电阻的温度值(从2-43摄氏度),超出无效

unsigned char code TableDATA[13]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D,0x7D, 0x07, 0x7F, 0x6F/*0-9*/, 0x00/*无*/, 0x02, 0x39,}

//数码管数字0-9

unsigned char code TableSEG [ 4] = {0xEF,0xDF,0xBF,0x7F};

//数码管位置0-3

unsigned char show[4];

//定义温度全局

/********************************************

** 函数名称: void Delay_ms(unsigned int ms)

** 功能描述: 延时函数

** 输 入: unsigned int ms 延时时间

** 输 出: 无

** 全局变量: 无

** 调用模块: 无

**********************************************/

void Delay_ms(unsigned int ms)

{

for(;ms>0;ms--);

}

/***************************************************** ** 函数名称: void adc_isr() interrupt 5

** 功能描述: AD中断,获取AD数据

** 输 入: 无

** 输 出: show

** 全局变量: show

** 调用模块: Delay_ms

********************************************************/ void Adc_isr() interrupt 5

{

unsigned char i;

unsigned int m;

m = ADC_RES;

//计算此时热敏电阻阻值

m = (100*m)/(255-m);

//计算此时的温度值

for(i=41;i

{

if(m >= Ttable[i][1] && m

{

show[0] = (Ttable[i][0]+1)/10;

show[1] = (Ttable[i][0]+1)%10;

show[2] = 11;

show[3] = 12;

break;

}

}

ADC_CONTR = ADC_POWER|ADC_SPEEDLL|ADC_START|ADC_POSITION; 使能AD转换

}

//重新

/******************************************************

** 函数名称: void InitADC()

** 功能描述: 初始化AD功能

** 输 入: 无

** 输 出: 无

** 全局变量: 无

** 调用模块: Delay_ms

*********************************************************/

void InitADC()

{

P1ASF = 0xff;

ADC_RES = 0;

ADC_CONTR = ADC_POWER|ADC_SPEEDLL|ADC_START|1;

使能P11为AD输入

IE = 0xa0;

Delay_ms(20);

}

main()

{

unsigned char i,j;

InitADC();

while(1)

{

for(j=255;j>0;j--)

{

for(i=0;i

//数码管扫描

{

NUX_SEG = TableSEG[3-i];

NUX_DATA = TableDATA[show[i]];

Delay_ms(100);

NUX_DATA = 0x00;

}

}

}

}

第五部分

系统调试与仪器使用

1、系统调试的仪器选用及其使用

//

如表3所示

2、系统调试及调试故障的检测与分析

第一步 用下载程序的电路板和电脑给单片机下载编写好的程序

第二步 将下载好的单片机安装在设计的电路板上,给电路板接上5V的电源(接上电源后,数码管没有显示。分析:电路出现短路或者断路或者连线有误 ;检测:用万用表测量单片机正负引脚有电压,测量各引脚之间的电阻,核对电路图及其电路板上的连线,一切正常。分析:电路板焊接无误,程序出现问题)

第三步 在电脑上修改原有的程序,并且将程序下载到下载电路板上,用下载电路板上的热敏电阻测温系统进行检测(修改程序后,数码管有显示,但是没有规律 分析:程序出现错误)

第四步 在电脑上继续修改原有的程序,并且将程序下载到下载电路板上,用下载电路板上的热敏电阻测温系统进行检测(修改程序后,数码管有显示,且运行正常)

第五步 将修改好的程序用下载程序的电路板和电脑下载到单片机(数码管显示正常,但是与下载电路板上的热敏电阻测温系统有1摄氏度的温度差距,并且显示的温度数字不停地左右跳动 分析:实际

电路使用的电阻和程序里给定的电阻有差距,A/D转换扫描的频率太快;检测:修改程序,将温度计算公式加1,减小A/D转换扫描的频率)

第六步 将修改好的程序用下载程序的电路板和电脑下载到单片机(成功正确显示)

第六部分

测试数据与结果分析

1、测试数据

①让该热敏电阻测温系统处于空气中时,温度显示为12摄氏度左右 ②当在该热敏电阻上用吹风机吹冷风时,温度显示9摄氏度左右 ③当在该热敏电阻上用吹风机吹热风时,温度显示25摄氏度左右 ④用手触摸该热敏电阻时,温度显示17摄氏度左右

2、结果分析

该热敏电阻测温系统能够正常工作,且灵敏度比较高,但是显示温度不太稳定,会有数据的稍微跳动,总体来说是合格的。

第七部分

使用说明书

1、使用说明

该热敏电阻测温系统测量温度在2-42摄氏度范围内,超出范围

则无效,主要用于室内测温。该热敏电阻测温系统能显示温度数据和温度单位符号,但是只能显示温度数据的整数部分,所以不能用于高精度的温度测量。该热敏电阻测温系统所接电源为5V,切记不可接12V等电源,以免烧坏单片机。

2、系统软件和应用软件列表

主要用到的软件有ISPLAY,PROTEUS,KEIL4

3、参考资料

[1] 杨路明.C语言程序设计教程.北京邮电大学出版社

[2] 童诗白.模拟电子技术基础.高等教育出版社

[3] 阎石.数字技术基础第五版.高等教育出版社

4、小组成员及所做的工作

xxx:负责电路焊接及电路调试与检测

xxx:负责程序编写及电路调试与检测

xxx:负责报告编写及电路调试与检测

第八部分

总结

这次课程设计将单片机与传感器进行了结合跟进一步想我展示了单片机得强大功能此外还接触了模数转换器件,了解了有关AD转换的知识,同时也温习了汇编知识。以前学习总是依赖仿真软件,现

在知道做出实物出来比仿真更有效,通过这次课程设计,我希望老师上课可以多给我们讲些理论外的知识来拓宽我们的视野。

总之这次课程设计让我收获很大。

附:实物照

JIUJIANG UNIVERSITY

单片机课程设计报告

题 目 院 系 电子工程学院

专 业 自动化

姓 名 xxxx xxxx

班级学号 xxxx

指导教师 xxxx

日 期 2012-2-23

目 录

第一部分:设计背景………………………………………

第二部分:系统主要功能…………………………………

第三部分:电路设计与参数选择…………………………

第四部分:系统软件设计…………………………………

第五部分:系统调试与仪器使用…………………………

第六部分:测试数据与结果分析…………………………

第七部分:使用说明书……………………………………

第八部分:总结…………………………………………

3 5 5 11 21 23 23 24

热敏电阻温度采集系统设计

摘要

温度在人类的生活中扮演着极其重要的角色,在冶金、钢铁、石化、水泥、玻璃、医药等行业温度的测量及为重要。本次课程设计采用单片机了STC12C5A60S2和10K NTC热敏电阻为核心器件来设计热敏电阻测温系统。通过NTC热敏电阻对外界温度信号进行采集,由于热敏电阻的阻值随外界温度变化而变化,再通过测量电路把阻值的变化转换为电压的变化,利用STC12C5A60S2单片机的集成AD把采集到的模拟电压信号转换为数字信号,利用单片机对数字信号进行处理后就可以得到相应的温度值,从而完成了对温度的测量。

该系统采用了STC12C5A60S2单片机、NTC热敏电阻、共阴极数码管显示、电容、排阻、晶振、电阻等元器件。

关键字:STC12C5A60S2单片机、热敏电阻、测温系统

第一部分

设计背景

在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部

门都不得不考虑着温度的因素。温度对于工业如此重要,由此推进了温度传感器的发展。进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。

在工农业生产中,温度检测及其控制占有举足轻重的地位,随着现代信息技术的飞速发展和传统工业改造的逐步实现 ,能够独立工作的温度检测和显示系统已经应用于诸多领域。要达到较高的测量精度需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差等问题,使温度检测复杂化。模拟信号在长距离传输过程中,抗电磁干扰时令设计者伤脑筋的问题,对于多点温度检测的场合,各被检测点到监测装置之间引线距离往往不同,此外,各敏感元件参数的不一致,这些都是造成误差的原因,并且难以完全清除。

单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中必不可少且广泛应用的器件,尤其在日常生活中也发挥越来越大的作用。采用单片机对温度采集进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控数据的技术指标,从而能够大大提高产品的质量和数量。

第二部分

系统主要功能

本系统测量的温度范围为2-42摄氏度,可以通过数码管直观地显示出当前温度值。

第三部分

电路设计与参数选择

1、 设计原理

图1

如图1所示,当外界温度变化时,热敏电阻的阻值随着发生变化,热敏电阻上分得的电压发生变化,通过单片机的IO口和集成AD可以获得热敏电阻的电压值为V,通过计算得出热敏电阻的阻值变化规律R=V*R1/(5-V)。由于热敏电阻的阻值与温度有表1的对应关系,

第二部分

系统主要功能

本系统测量的温度范围为2-42摄氏度,可以通过数码管直观地显示出当前温度值。

第三部分

电路设计与参数选择

1、 设计原理

1

如图1所示,当外界温度变化时,热敏电阻的阻值随着发生变化,热敏电阻上分得的电压发生变化,通过单片机的IO口和集成AD可以获得热敏电阻的电压值为V,通过计算得出热敏电阻的阻值变化规律R=V*R1/(5-V)。由于热敏电阻的阻值与温度有表1的对应关系,

将各对应值用数组形式写入程序,通过查表便可以得到此时外界的温度值。

表1

2、 硬件电路

图2

3、 元器件选用及连接

表2

系统所用的元器件及说明如表2所示。引脚连接安排为:P1.1引脚接热敏电阻,RST引脚接复位电路,X1、X2连接用来起振,P2.7-P2.4 引脚接数码管的1、2、3、4,P0.0-P0.7引脚接数码管的a b c d e f g h和10K的排阻。

4、硬件选用

⒈ 热敏电阻的选用

热敏电阻器的热敏电阻有电阻值随温度升高而升高的正温度系数(简称PTC)热敏电阻和电阻值随温度升高而降低的负温度系数(简

称NTC)热敏电阻。

NTC热敏电阻器,是一种以过渡金属氧化物为主要原材料,采用电子陶瓷工艺制成的热敏半导体陶瓷组件。这种组件的电阻值随温度升高而降低,利用这一特性可制成测温、温度补偿和控温组件,又可以制成功率型组件,抑制电路的浪涌电流。

电阻温度特性可以近似地用下式来表示: R= R*EXP[B*(1/T-1/T)] 式中:RT、RN分别表示NTC在温度T(K)和额定额定温度TN (K)下的电阻值,单位Ω,T、TN 为温度,单位K(TN(k)=273.15+TN(℃))。B,称作B值,NTC热敏电阻特定的材料常数(Beta)。由于B值同样是随温度而变化的,因此NTC热敏电阻的实际特性,只能粗略地用指数关系来描述,所以这种方法只能以一定的精度来描述额定温度或电阻值附近的有限的范围。

电阻-温度关系: NTC热敏电阻器CWF2-502F3950各温度点的电阻值,即电阻-温度关系表。NTC热敏电阻器CWF2-502F3950的测温范围为[-55℃,125℃],其电阻值的变化范围为[250062Ω,242.64Ω]。如表1所示,列举了2-42摄氏度的电阻-温度关系。

⒉ STC12C5A60S2单片机的选用及单片机资源安排

2.1 STC12C5A60S2概述

本次课程设计核心元件是单片机STC12C5A60S2,下面对STC12C5A60S2做简单的概述。

2.1.1 基本构造

STC12C5A60S2单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储区(SRAM)、定时/计数器、UART串口、串口2、I/O接口、高速A/D转换、SPI接口、PCA、看门狗及片内R/C振动器和外部晶振等模块。STC12C5A60S2系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片内系统。

单片机STC12C5A60S2的基本构造如图3

所示:

图3

2.1.2 性能特点

60KB的Flash片内程序存储器、256字节的内部随机存取数据存储器(RAM)、1024字节的外部存储器、1K字节的数据Flash存储

(EEPROM)、ISP(在系统可编程)/IAP(在应用可编程)、 看门狗、内部集成MAX810专用复位电路、外部掉电检测电路、时钟源:外部精度晶体/时钟,内部R/C振荡器、4个16位定时器、3个时钟输出口、7个外部中断I/O口、PWM(2路)/PCA(可编程计数器阵列,2路)、A/D转换,10位精度ADC,共8路.

2.1.3 STC12C5A60S2单片机资源利用

本次课程设计,主要应用了STC12C5A60S2单片机中中央处理器

(CPU)、高速A/D转换、外部晶振等模块。

第四部分

C语言程序流程图及代码

主函数流程图:

AD中断流程图:

数码管显示

系统C程序代码:

Config.h代码:

#ifndef _CONFIG_H_

#define _CONFIG_H_

#include

#define FOSC 12000000L

#define ADC_POWER 0x80

#define ADC_FLAG 0x10

#define ADC_START 0x08

#define ADC_SPEEDLL 0x00

#define ADC_SPEEDL 0x20

#define ADC_SPEEDH 0x40

#define ADC_SPEEDHH 0x60

#define ADC_POSITION 1 //AD通道位置0-7

#define NUX_DATA P0 //数码管段选

#define NUX_SEG P2 //数码管位选

void Delay_ms(unsigned int ms); //延时函数

void InitADC(); //初始化AD功能

#endif

Main.c代码:

#include "config.h"

unsigned int code Ttable[42][2]={2,257, 3,246, 4,236, 5,225, 6,216, 7,207 8,198 9,190 10,182 11,174 12,167 13,160 14,154 15,148 16,142 17,136 18,131 19,126 20,121 21,116 22,112 23,107 24,103 25,100 26,96 27,92 28,89 29,86 30,82 31,80 32,77 33,74 34,71 35,69 36,66 37,64 38,62 39,60 40,58 41,56 42,54 43,52 }; // 此数组保存热敏电阻的温度值(从2-43摄氏度),超出无效

unsigned char code TableDATA[13]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D,0x7D, 0x07, 0x7F, 0x6F/*0-9*/, 0x00/*无*/, 0x02, 0x39,}

//数码管数字0-9

unsigned char code TableSEG [ 4] = {0xEF,0xDF,0xBF,0x7F};

//数码管位置0-3

unsigned char show[4];

//定义温度全局

/********************************************

** 函数名称: void Delay_ms(unsigned int ms)

** 功能描述: 延时函数

** 输 入: unsigned int ms 延时时间

** 输 出: 无

** 全局变量: 无

** 调用模块: 无

**********************************************/

void Delay_ms(unsigned int ms)

{

for(;ms>0;ms--);

}

/***************************************************** ** 函数名称: void adc_isr() interrupt 5

** 功能描述: AD中断,获取AD数据

** 输 入: 无

** 输 出: show

** 全局变量: show

** 调用模块: Delay_ms

********************************************************/ void Adc_isr() interrupt 5

{

unsigned char i;

unsigned int m;

m = ADC_RES;

//计算此时热敏电阻阻值

m = (100*m)/(255-m);

//计算此时的温度值

for(i=41;i

{

if(m >= Ttable[i][1] && m

{

show[0] = (Ttable[i][0]+1)/10;

show[1] = (Ttable[i][0]+1)%10;

show[2] = 11;

show[3] = 12;

break;

}

}

ADC_CONTR = ADC_POWER|ADC_SPEEDLL|ADC_START|ADC_POSITION; 使能AD转换

}

//重新

/******************************************************

** 函数名称: void InitADC()

** 功能描述: 初始化AD功能

** 输 入: 无

** 输 出: 无

** 全局变量: 无

** 调用模块: Delay_ms

*********************************************************/

void InitADC()

{

P1ASF = 0xff;

ADC_RES = 0;

ADC_CONTR = ADC_POWER|ADC_SPEEDLL|ADC_START|1;

使能P11为AD输入

IE = 0xa0;

Delay_ms(20);

}

main()

{

unsigned char i,j;

InitADC();

while(1)

{

for(j=255;j>0;j--)

{

for(i=0;i

//数码管扫描

{

NUX_SEG = TableSEG[3-i];

NUX_DATA = TableDATA[show[i]];

Delay_ms(100);

NUX_DATA = 0x00;

}

}

}

}

第五部分

系统调试与仪器使用

1、系统调试的仪器选用及其使用

//

如表3所示

2、系统调试及调试故障的检测与分析

第一步 用下载程序的电路板和电脑给单片机下载编写好的程序

第二步 将下载好的单片机安装在设计的电路板上,给电路板接上5V的电源(接上电源后,数码管没有显示。分析:电路出现短路或者断路或者连线有误 ;检测:用万用表测量单片机正负引脚有电压,测量各引脚之间的电阻,核对电路图及其电路板上的连线,一切正常。分析:电路板焊接无误,程序出现问题)

第三步 在电脑上修改原有的程序,并且将程序下载到下载电路板上,用下载电路板上的热敏电阻测温系统进行检测(修改程序后,数码管有显示,但是没有规律 分析:程序出现错误)

第四步 在电脑上继续修改原有的程序,并且将程序下载到下载电路板上,用下载电路板上的热敏电阻测温系统进行检测(修改程序后,数码管有显示,且运行正常)

第五步 将修改好的程序用下载程序的电路板和电脑下载到单片机(数码管显示正常,但是与下载电路板上的热敏电阻测温系统有1摄氏度的温度差距,并且显示的温度数字不停地左右跳动 分析:实际

电路使用的电阻和程序里给定的电阻有差距,A/D转换扫描的频率太快;检测:修改程序,将温度计算公式加1,减小A/D转换扫描的频率)

第六步 将修改好的程序用下载程序的电路板和电脑下载到单片机(成功正确显示)

第六部分

测试数据与结果分析

1、测试数据

①让该热敏电阻测温系统处于空气中时,温度显示为12摄氏度左右 ②当在该热敏电阻上用吹风机吹冷风时,温度显示9摄氏度左右 ③当在该热敏电阻上用吹风机吹热风时,温度显示25摄氏度左右 ④用手触摸该热敏电阻时,温度显示17摄氏度左右

2、结果分析

该热敏电阻测温系统能够正常工作,且灵敏度比较高,但是显示温度不太稳定,会有数据的稍微跳动,总体来说是合格的。

第七部分

使用说明书

1、使用说明

该热敏电阻测温系统测量温度在2-42摄氏度范围内,超出范围

则无效,主要用于室内测温。该热敏电阻测温系统能显示温度数据和温度单位符号,但是只能显示温度数据的整数部分,所以不能用于高精度的温度测量。该热敏电阻测温系统所接电源为5V,切记不可接12V等电源,以免烧坏单片机。

2、系统软件和应用软件列表

主要用到的软件有ISPLAY,PROTEUS,KEIL4

3、参考资料

[1] 杨路明.C语言程序设计教程.北京邮电大学出版社

[2] 童诗白.模拟电子技术基础.高等教育出版社

[3] 阎石.数字技术基础第五版.高等教育出版社

4、小组成员及所做的工作

xxx:负责电路焊接及电路调试与检测

xxx:负责程序编写及电路调试与检测

xxx:负责报告编写及电路调试与检测

第八部分

总结

这次课程设计将单片机与传感器进行了结合跟进一步想我展示了单片机得强大功能此外还接触了模数转换器件,了解了有关AD转换的知识,同时也温习了汇编知识。以前学习总是依赖仿真软件,现

在知道做出实物出来比仿真更有效,通过这次课程设计,我希望老师上课可以多给我们讲些理论外的知识来拓宽我们的视野。

总之这次课程设计让我收获很大。

附:实物照


相关文章

  • 基于单片机的温度报警器
  • 中原工学院信息商务学院信息工程系专业课程设计报告 专业课程设计报告 题目:单片机课程设计报告 系 别 信息工程系 专业班级 1513132151 学 号 45645464 学生姓名 [1**********] 指导教师 156123165 ...查看


  • 温度采集系统课程设计
  • 1 引言 1.1 单片机概述 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU 随机存储器RAM .只读存储器ROM .多种I/O口和中断系统.定时器/计时器等功能(可能还包括显示驱动电路.脉宽调制 ...查看


  • 热电阻传感器课程设计
  • 东北石油大学 课 程 设 计 任务书 课程 传感器课程设计 题目 热电阻测温系统设计 专业 姓名 学号 主要内容: 热电阻的特点是测量精度高,性能稳定.其中铂热电阻的测量精度最高.此次设计主要是利用铂热电阻的特性设计测温系统.常用电桥作热电 ...查看


  • 温度报警器传感器课程设计报告
  • 摘 要 随着时代的进步和发展,单片机技术已经普及到我们生活.工作.科研.各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于 89S51 单片机的测温系统,详细描述了利用数字温度 传 感 器 DS18B20 开发测温系统的过程,重 ...查看


  • 大气温度测量论文
  • 工程测试技术课程设计论文 <大气温度测量论文> 学 号: XXXXXXXXX 姓 名: X X 指导老师: X X 实验地点: 教4-118 XXXX 学院 2014年6月13日 大气温度测量论文 导论:大气温度是表示空气冷热程 ...查看


  • 基于51的频率计和温度计测量系统课程设计
  • 课程设计任务书 学生姓名: 专业班级: 通信1104班 指导教师: 艾青松 工作单位: 信息工程学院 题 目: 基于51的频率计和温度计测量系统 初始条件 1. 一台装有PROTEL 软件或以上版本的电脑及使用PROTEL 软件绘制电路原理 ...查看


  • 太原理工大学毕业设计题目及任务书
  • 毕业设计(论文)任务书-1 设计(论文)题目:温度调节仪表设计(液晶显示) 题目性质:一般设计 指导教师:牛昱光 毕业设计(论文)要求及原始数据(资料): 本题目属单片机应用开发类型.选题学生需自行购置一款带有液晶显示模块的单片机开发板和测 ...查看


  • 智能化温度测量仪
  • <过程控制系统>课程设计 设计题目:智能化温度测量仪设计 学生: 专业:测控技术与仪器 班级学号: 指导教师:吕江涛 设计时间:2012.6.17-2012.6.29 东北大学秦皇岛分校自动化工程系 <过程控制系统> ...查看


  • 温度测量显示电路课程设计
  • 温度测量显示电路设计 目 录 1.引言„„„„„„„„„„„„„„„„„„„„„„„„„„„8 2.系统方案确定„„„„„„„„„„„„„„„„„„„„„„„9 2.1系统设计方案论证与确定„„„„„„„„„„„„„„„„„9 2.2硬件设 ...查看


热门内容