半导体热敏电阻温度测量的设计.docx
- 文档编号:26545811
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:22
- 大小:331.89KB
半导体热敏电阻温度测量的设计.docx
《半导体热敏电阻温度测量的设计.docx》由会员分享,可在线阅读,更多相关《半导体热敏电阻温度测量的设计.docx(22页珍藏版)》请在冰豆网上搜索。
半导体热敏电阻温度测量的设计
信息与控制工程学院硬件课程设计说明书
设计题目
半导体热敏电阻测温仪表的设计
学生学号:
学生姓名:
专业班级:
指导教师:
职称:
起止日期:
课程设计任务书
一、设计题目:
半导体热敏电阻测温仪表的设计
二、设计目的
1、掌握对电路板的设计流程及焊接技巧;
2、掌握C8051F410单片机体系结构及C语言程序设计方法;
3、掌握半导体热敏电阻的测温及热敏电阻测温过程的标定方法;
4、掌握利用Keil进行软件仿真及对可编程逻辑器件进行硬件下载的方法;
5、用Protel软件进行电路图的绘制,译码器及LED动态扫描显示驱动电路设计的方法。
三、设计任务及要求
要求学生设计出能够采集R25=10K的热敏电阻测温仪表,分析热敏电阻测温原理,能够通过软件将热敏电阻的阻值-温度特性转换出来,掌握热敏电阻测温过程的标定方法。
热敏电阻测温仪表具体设计指标:
1.输入信号:
热敏电阻;
2.显示方法:
LED数码管;
3.供电电源:
220VAC;
4.测温误差:
≤1℃。
四、设计时间及进度安排
设计时间共三周(2011.03.7~2011.03.25),具体安排如下表:
周次
设计内容
设计时间
第一周
1.学习C8051F410单片机体系结构及程序开发;
2.设计半导体热敏电阻测温电路,并应用Protel画出其电路原理图。
第二周
1.完成半导体热敏电阻测温系统的焊装和硬件调试;
2.编写实验程序。
第三周
1.整机调试;
2.撰写设计说明书;
3.答辩。
五、指导教师评语及学生成绩
指导教师评语:
年月日
成绩
指导教师(签字):
摘要
(题目):
半导体热敏电阻测温仪表的设计
摘要:
在生产过程中,为了高效地进行生产,必须对其主要参数,如温度、压力、流量等进行有效的控制。
温度控制在生产过程中占有相当大的比例。
在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。
温度测量是温度控制的基础,技术已经比较成熟。
该设计介绍了一种利用单片机C8051F410组成的温度控制系统,从硬件和软件两方面介绍了单片机温度控制系统的设计思路。
着重介绍了硬件原理图和程序框图。
阐述了系统的工作原理、设计及实现。
由热敏电阻测量当前的温度,并将结果送入单片机。
然后通过C8051F410单片机对送来的温度进行计算和转换,并将此结果送入显示模块。
最后,由LED数码管将温度显示出来。
它可以实时的显示和设定温度,实现对温度的控制,同时系统结构简单、性能可靠、具有扩展性好,分辨率高,测量范围宽,抗干扰性强等特点。
关键字:
C8051F410单片机;热敏电阻;温度测量
第1章绪论
1.1课题的设计目的
课程设计是学生理论联系实际的重要实践教学环节,是对学生进行的一次综合性专业设计训练。
通过课程设计使学生获得以下几方面能力,为毕业设计(论文)奠定基础。
1)进一步巩固和加深学生所学一门或几门相关专业课(或专业基础课)理论知识,培养学生设计、计算、绘图、计算机应用、文献查阅、报告撰写等基本技能。
2)培养学生实践动手能力及独立分析和解决工程实际问题的能力。
3)培养学生的团队协作精神、创新意识、严肃认真的治学态度和严谨求实的工作作风。
1.2总体设计框图
本方案以C8051F410单片机系统为核心,对单点的温度进行实时测量。
并采用热敏电阻作为温度传感器,C8051F410内部12位SARADC作为A/D转换部件作为温度信号的采集,具有大范围、高精度的特点。
最后通过LED数码管显示结果。
本方案在功能、性能、可操作性等方面都有较大的提升,具有更高的性价比。
整体设计框图如图1-1所示:
图1-1整体设计框图
1.2.1单片机
C8051F410器件是完全集成的低功耗混合信号片上系统型MCU。
具有高速、流水线结构的8051兼容的为控制器核(可达50MIPS),真12位200ksps的24通道ADC,全速、非侵入式的在系统调试接口,带模拟多路器、高进度可编程的24.5MHz内部振荡器,达32KB的片内FLASH存储器,4个通用的16位定时器,多达24个端口I/O等,具有片内上电复位、VDD监视器、看门狗定时器和时钟振荡器的C8051F410器件是真正能独立工作的片上系统。
FLASH存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051固件。
用户软件对所有外设具有完全的控制,可以关断任一个或所有外设以节省功耗。
1.2.2模数转换器
A/D转换器的转换精度对测量电路及其重要,它的参数关系到测量性能。
本设计采用C8051F410内部12位SARADC作为A/D转换部件,它的性能比较稳定,转换速度较高,抗干扰能力较强。
由于本系统测量的是温度信号,响应时间长,滞后大,不要求太高的精度,因此选择C8051F410内部的A/D转换器不仅可以很好的满足设计的基本要求还可以简化系统电路,使测量系统简洁化,实用化。
1.2.3显示模块
本设计采用传统的共阳极七段数码LED显示器,虽然LED能简单的显示出测量温度,但是与单片机相连的时候线路比较复杂。
1.2.4电源模块
220V交流电源经1K的电阻(充当保险丝的作用)和变压器相连接,变压器再与桥式整流模块相连接,桥式整流模块再经1000uF的滤波电容后和7805稳压模块相连接经100uF的滤波电容后获得VCC+5V的电压。
用以给所需要的地方提供电源。
C8051F410单片机内部还有电源为其提供所需要的电。
第2章硬件设计及元件介绍
2.1热敏电阻元件介绍
2.1.1热敏电阻工作原理
NTC是NegativeTemperatureCoefficient的缩写,意思是负的温度系数,泛指负温度系数很大的半导体材料或元器件,所谓NTC热敏电阻器就是负温度系数热敏电阻器。
它是以锰、钴、镍和铜等金属氧化物为主要材料,采用陶瓷工艺制造而成的。
这些金属氧化物材料都具有半导体性质,因为在导电方式上完全类似锗、硅等半导体材料。
温度低时,这些氧化物材料的载流子(电子和孔穴)数目少,所以其电阻值较高;随着温度的升高,载流子数目增加,所以电阻值降低。
NTC热敏电阻器的电阻与温度的关系为:
(2-1)
式中
是热敏电阻温度为
(K)时的电阻值;B为材料和工艺决定的常数;
是热敏电阻温度为T时的电阻值,可见R与T为非线性关系,如图2-2所示。
采用图2-3的分压式电路进行测温,
和精密电阻Rs构成测温电路,检测结果经104电容滤波后由后续电路进行必要的处理及输出。
由图2-3可知,分压电路的输出电压为:
(2-2)
式中
为电路供电电压。
图2-2热敏电阻阻值与温度的关系图2-3分压测温电路
额定零功率电阻值R25(Ω)
根据国标规定,额定零功率电阻值是NTC热敏电阻在基准温度25℃时测得的电阻值R25,这个电阻值就是NTC热敏电阻的标称电阻值。
通常所说NTC热敏电阻多少阻值,亦指该值。
材料常数(热敏指数)B值(K),B值被定义为:
RT1:
温度T1(K)时的零功率电阻值;RT2:
温度T2(K)时的零功率电阻值;T1、T2:
两个被指定的温度(K)。
对于常用的NTC热敏电阻,B值范围一般在2000K~6000K之间。
热敏电阻器是利用半导体材料制成的热敏元件。
它的电阻随电阻体的变化而变化。
通常分为正温度系数热敏电阻器(PTC),负温度系数热敏电阻器(NTC)和临界温度系数热敏电阻器(CTR)。
本系统采用的是负温度系数热敏电阻器(NTC),其灵敏度高,电阻负温度系数较大,工作温度范围宽,体积较小,使用比较方便。
2.25V稳压源的设计
7805芯片是实验中最常用到的稳压芯片,它的使用方便,用很简单的电路就可以输入一个直流稳压电源,它的输出电压恰好为5V,刚好是C8051F410单片机所需要的电压,因此,本设计也使用7805芯片获得5V稳压电源,其电路图如图2-4所示:
图2-4稳压电源电路图
220V交流电压经过变压器转换成9V交流电压,然后通过桥式整流电路将9V交流电压转换为9V直流电压,经过1000uF电容滤波后输入7805芯片,输出电压经100uF滤波电容后就变成5V稳压电源。
2.3模数转换单元
本设计采用的模数转换单元是C8051F410单片机内部的A/D转换单元。
C8051F410器件内部有一个12位SARADC和一个27通道单端入多路选择器,该ADC最大转换速率为200ksps.ADC系统包含一个可编程的模拟多路选择器,用于选择ADC的输入。
A/D转换可以有四种启动方式:
软件命令、定时器2溢出、定时器3溢出和外部转换启动信号。
这种灵活性允许用软件事件,周期性信号或外部硬件信号触发转换。
在完成1、4、8或16次采样并由硬件累加器完成累加后,一个状态位指示转换完成并产生中断。
转换结束后,结果数据字被锁存到ADC数据寄存器中。
其原理框图如图2-5所示:
图2-512位ADC原理框图
2.4C8051F410单片机系统电路图
C8051F410系列的单片机系具有片内上点复位,VDD监视器,看门狗定时器和时钟振荡器,是能独立工作的片上系统。
FLASH存储器具有在系统重新编程能力,可用于非易失性数据存储。
每种器件都可在工业温度范围—40~+85,内有2.0V~2.75V的电压工作。
2-6单片机系统电路图
引脚介绍:
VDD7内核电源
VIO1I/O电源
GND6地
VRTC-BACKUP3smaRTClock后备电源
VREGIN8内部稳压器输入
/RST2数字I/O器件复位。
内部上电复位或VDD监视器的漏极开路输出。
一个外部源可以通过将该引脚驱动为低电平(至少15μs)来启动一次系统复位。
建议在该引脚与VDD之间接1K?
的上拉电阻。
C2CK数字I/OC2调试接口的时钟信号。
P2.732数字I/O端口P2.7
C2D数字I/OC2调试接口的双向数据信号。
XTAL35模拟输入smaRTClock振荡器晶体输入。
XTAL44模拟输出smaRTClock振荡器晶体输出。
P0.017数字I/O或模拟输入端口P0.0
IDAC0拟输出IDAC0输出
P0.118数字I/O或模拟输入端口P0.1
IDAC1模拟输出IDAC1输出
P0.219数字I/O或模拟输入端口P0.2
P0.320数字I/O端口P0.3
P0.421数字I/O或模拟输入端口P0.4
TX数字输出UARTTX引脚
P0.522数字I/O或模拟输入端口P0.5
RX数字输入UARTRX引脚
P0.623数字I/O或模拟输入端口P0.6
CNVSTR数字输入ADC0、IDA0和IDA1的外部转换启动输入。
P0.724数字I/O或模拟输入端口P0.7
P1.09数字I/O或模拟输入端口P1.0
XTAL1模拟输入外部时钟输入。
对于晶体或陶瓷谐振器,该引
脚是外部振荡器电路的反馈输入。
P1.110数字I/O或模拟输入端口P1.1
XTAL2模拟I/O或数字输入外部时钟输出。
该引脚是晶体或陶瓷谐振器的激励驱动器对于CMOS时钟、电容或RC振荡器配置,该引脚是外部时钟输入。
P1.211数字I/O或模拟输入端口P1.2
VREF模拟输入外部VREF输入。
2.5编程软件
KeilSoftware公司推出的uVision3是一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。
除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uVision3还提供了一个配置向导功能,加速了启动代码和配置文件的生成。
此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。
uVision2提供逻辑分析器,可监控基于MCUI/O引脚和外设状态变化下的程序变量。
本系统的软件程序主要运用KeiluVision2。
2.6显示电路
一个温度测量系统必须有直观的显示单元以来观察温度的变化及温度值,必要时还要加上其他与温度有关的显示数据。
本系统只要求显示转换后的温度值,因此只用了3个LED数码管作为显示单元,其显示电路图如2-7所示:
图2-7显示电路图
本设计采用的是共阳极LED数码管动态显示方式。
在这种方式下,当三位LED显示时将所有位的段选线相应的并联在一起,由一个8位I/O口控制,形成段选线的多路复用。
而各位的共阳极分别有相应的I/O口线控制,实现各位的分时选通。
其中段选线占用一个8位I/O口,而位选线占用3个I/O口,由于各位的段选线并联,段码的输出对各位来说都是相同的,因此,同一时刻,如果各位选线都处于选通状态的话,那LED显示器将显示相同的字符。
若要各位LED能显示出与本为相同的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字符的段码。
这种显示方式占用的I/O口个数为11,相对静态显示少了很多,但需要占用大量的CPU资源,当CPU处理别的事情时,显示可能出现闪烁或者不显示的情况。
此外,本设计中将其中一个LED数码管的g端口直接接高电平,让其做温度示数中小数点的作用,这样就又节省了3个I/O口数,也很好的显示了结果。
显示采用3位共阳极LED动态显示方式,显示方式有温度值的十位、个位及负位,这样就可以只用P2口来输出显示数据,从而节省单片机端口资源。
第3章软件设计
系统软件的设计中含有以下几个处理模块:
主程序模块及初始化,中断处理模块,数据处理模块,输出模块,显示模块。
3.1KeilC51软件介绍及使用
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
我们利用开发软件KeiluVision2来编写、修改所需程序并下载程序到单片机运行。
其下介绍KeiluVision3的使用步骤:
1.双击KeiluVision2,进入开发环境;
2.新建界面Projectnewproject;
3.单片机的选择,找到本系统主要芯片C8051F410;
4..C文件的建立与添加
在添加.C文件之后,就可以在里面编写自己的程序了,在编写完后编译,连接,下载
调试。
如果没有错误,就可以烧录在芯片当中。
3.2程序设计流程图
本设计要求通过外界温度环境的变化使单片机采集到数据,进行处理输出显示结果。
先初始化,LED显示出当前的室温,稳定后用手去摸热敏电阻,热敏电阻将所测的手温度通过p1.7传送到C8051F410单片机芯片内,经过读A/D值。
进行一系列的运算,得到温度T值,显示到LED显示模块上。
则热敏电阻随着室温、人体温度的不同,及时在LED共阳极数码管上更新显示的当前的温度。
图4-1软件流程序
3.2.1系统的初始化
在进行程序编辑之前,要对C8051F40单片机各个特殊功能寄存器进行系统的初始化,使其能有效地为我们的设计程序服务,达到我们设计的目的,其初始化流程图如图3-3所示:
图3-3系统初始化流程图
由图3-3可知,其系统初始化程序如下
voidCONFIG()
{
//看门狗禁止,以方便调试
PCA0MD=0x00;//看门狗禁止
REG0CN=0x10;//内部LDO使能
PFE0CN=0X20;//预取指令允许PFEN位置‘1’
//--------------------------------------------------------
//交叉开关配置
XBR0=0x00;//不接端口引脚
XBR1=0x40;//交叉开关使能
P1MDIN=0x7f;//p1.7模拟输入
P1MDOUT=0;
//-------------------------------------------------------------------
//系统时钟配置,采用内部晶振
CLKSEL=0x00;//时钟乘法器
OSCICN=0x87;//振荡器使能不分频
//-------------------------------------------------------------------
//T2初始化
//T2工作于自动重装载定时方式,定时时间1mS,PID运算时间最短为1ms
TMR2CN=0x04;//开定时器2
TMR2RLH=0xe0;//定时器2重装载高字节
TMR2RLL=0x18;//低字节
TMR2H=0xe0;//定时器2高字节
TMR2L=0x18;//低字节
IE|=0x20;//允许TF2L或TF2H标志中断请求
//-------------------------------------------------------------------
//VREF初始化
REF0CN=0x13;//基准电压2.2v
//-------------------------------------------------------------------
//ADC0初始化
ADC0CN=0x80;//ASC0处于使能状态,可以进行转换数据
ADC0CF=0xf0;
//-------------------------------------------------------------------
EA=1;//开启全局中断
3.2.2各参数方程的计算
1)计算热敏电阻电压VRT
已知采样AD值为X,则由公式可知:
(3-1)
式中数值2.2为基准电压值。
2)计算热敏电阻阻值
由图2-2分压测温电路所示,热敏电阻电压为:
(3-2)
式中
=2.58V为电压供电电压,Rs=3.6K为分压电阻。
通过代入数值及变换形式就可得到热敏电阻的阻值,即
(3-3)
式中URT为热敏电阻电压。
3)计算温度值T
由NTC热敏电阻器的电阻与温度的关系(即式2-1)可知,
(3-4)
式中数值2008为25℃下热敏电阻的B值;
=10K为热敏电阻初始阻值。
3.2.3显示子程序
在显示子程序中应首先将其段码和位码分别写好以方便程序的调用,其流程图如图3-4所示:
图3-4显示子程序流程图
位码、段码的初始化
WORDidataAD;
BYTEcodeBCD_tab[]={0x01,0x4f,0x12,0x06,0x4c,0x24,0x20,0x0f,0x00,0x04};
BYTEcodeWM_tab[]={0xFB,0xFD,0xFE};
BYTEidataBCD_ZH[3];
BYTEidatatt=0;
BYTEidatat=0;
显示程序
voidXIANSHI()
{
if(XIANSHI_BIT)
{
if(tt<2){tt++;}
else{tt=0;}
WM=255;
DM=BCD_tab[BCD_ZH[tt]];
WM=WM_tab[tt];
delay(10);
XIANSHI_BIT=0;
}
第4章试验调试和误差分析
4.1硬件电路部分
4.1.1故障一:
数码管显示错误,出现乱码
故障原因:
LED数码管g,f引脚接反
解决方案:
将g,f两引脚重新焊接
4.2软件部分
4.2.1故障二:
数码管显示的示值与实际不符
故障原因:
程序算法出现问题
解决方案:
更改程序,并对程序进行校准
4.3测试数据
将设计的半导体热敏电阻温度测量仪器与玻璃管温度器放在同一条件的环境中,过一段时间观察示数,记录数据,同样方法重复几次校验后,比较记录数据,误差几乎为零,测试数据一切正常
4.4结果分析
上述测量结果表明,本次设计通过C8051F410单片机控制,同时LED共阳极数码管上显示出了室内温度为21.2度,当用手去触摸半导体热敏电阻时,信号经一系列的处理后显示到LED共阳极数码管上的温度为36.5度。
在误差允许的范围内达到了设计要求。
有数据就会有误差的存在,误差引起的因素包括硬件的设计,外界的干扰,算法的选择等等。
而算法的选择是减少误差的主要措施。
硬件带来的误差不可忽视,对硬件减小误差的方法有如下几点建议:
1)环境温度变化时,串联电阻Rs阻值会发生变化,影响电压输出的稳定性,因此,RX应选择温度系数小的电阻。
2)为保证分压电路输出电压V(T)能精确反映所测温度变化,要求电路供电电压恒定不变,为此必须选用高精度且温度系数小的稳压电路。
3)串联电路的工作电流不允许太大,太大的工作电流在热敏电阻上产生自热效应导致测量误差,甚至热损坏,所以应使工作电流尽量小,但过小的工作电流不易精确分辨出温度变化,因此电路设计要根据具体情况,选择合适的工作电流。
结论
从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高。
通过这三周的学习我对热敏电阻测温系统电路有了一定的认识,同时也是对之前所学的专业基础课的一次综合性的检验,在动手实践中发现了自己的不足,对待问题上不够严谨细心,导致元器件功能上有所损失,在某些程序及硬件设备上有很多的欠缺,在这次实习过程中,不仅使课本上所学的知识得到巩固,更重要的是锻炼了我的动手实践能力和团队合作能力。
通过本次毕业设计,我在专业知识,专业技能和解决问题方法方面得到很大的提高,更深入了解并掌握了传感器的基本理论知识,并在单片机实际电路开发和常用编程设计思路掌握方面有了一定程度的掌握,尽管本次设计还不是很完善,但本次硬件设计为半导体热敏电阻测温仪表的设计,从对绘图软件的陌生,经过几天的自学到初步了解,是一个很大的提高,为自己增强了信心,只要功夫深铁杵磨成针,只要你想做一定会做成。
参考文献
[1]张毅刚.单片机原理及应用.北京:
高等教育出版社,2003.12
[2]童诗白,华成英.模拟电子技术基础.北京:
高等教育出版社,2006.5
[3]阎石.数字电子技术基础.北京:
高等教育出版社,2006.5
[4]赵曙光,郭万有,杨颂华..可编程逻辑
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 半导体 热敏电阻 温度 测量 设计