单片机课程设计热敏电阻测温电路设计课案.docx
《单片机课程设计热敏电阻测温电路设计课案.docx》由会员分享,可在线阅读,更多相关《单片机课程设计热敏电阻测温电路设计课案.docx(19页珍藏版)》请在冰豆网上搜索。
![单片机课程设计热敏电阻测温电路设计课案.docx](https://file1.bdocx.com/fileroot1/2023-1/10/e58ceb54-f619-41db-8b47-54c84243a759/e58ceb54-f619-41db-8b47-54c84243a7591.gif)
单片机课程设计热敏电阻测温电路设计课案
单片机课程设计
课程题目:
热敏电阻测温电路的设计
院系:
机电汽车工程学院
班级:
机101-4
学生姓名:
学号:
小组成员:
指导教师:
姜风国
一、设计目的、要求及方案选择-----------------------------------------------------
(2)
1、设计要求---------------------------------------------------------------------------
(2)
2、设计方案的选择--------------------------------------------------------------------
(2)
二、硬件系统各模块电路的设计---------------------------------------------------(3)
1、单片机系统的设计---------------------------------------------------------------(3)
1-1、AT89C51的简介及管脚功能---------------------------------------------(3)
1-1、AT89C51的最小系统介绍-----------------------------------------------(7)
2、基于MF58的NTC热敏电阻温度测量电路设计---------------------------(7)
2-1、MF58热敏电阻的介绍---------------------------------------------------(7)
2-2、温度测量电路的设计----------------------------------------------------(8)
3、AD转换器工作原理---------------------------------------------------------------(10)
3-1、ADC0809简介----------------------------------------------------------------(10)
3-2、基于AD0809的数模转换电路--------------------------------------------(11)
4、LED数码管显示电路的设计---------------------------------------------------(12)
4-1、显示电路驱动系统的设计------------------------------------------------(12)
4-2、数码管显示的原理--------------------------------------------------------(12)
4-3、显示电路的原理图---------------------------------------------------------(14)
三、电路整体结构设计及软件设计-------------------------------------------------(15)
1、电路整体结构设计----------------------------------------------------------------(15)
2、软件设计----------------------------------------------------------------------------(15)
四、结论---------------------------------------------------------------------------------(16)
五、参考文献---------------------------------------------------------------------------(17)
六、附页----------------------------------------------------------------------------------(17)
一、设计要求及方案选择
1、设计要求
热敏电阻温度测量系统设计
任务要求:
a、设计基于MF58的NTC热敏电阻信号调理电路
b、设计A/D转换电路
c、设计数码管显示电路
2、设计方案的选择
本文设计一个采用热敏电阻为敏感元件的温度测量显示系统,温度显示范围为0-100
,显示分辨率0.1
。
包含温度传感器,AD转换器,51系列单片机,LED数码显示管四部分。
并利用C51高级语言编写,实现热敏电阻测温显示系统。
二、硬件系统各模块电路的设计
1、单片机系统的设计
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
考虑到单片机的存储空间与价格,以及我对单片机的熟悉程度,课本学习的是AT89C51单片机,因此,此次设计我选用了AT89C51单片机来完成此次设计。
1-1AT89C51的简介及管脚功能
VCC:
供电电压。
GND:
接地
P0口:
P0口为一个8位漏极开路双向I/O口,每脚可吸收8个TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(定时器/计数器0外部输入)
P3.5T1(定时器/计数器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
/EA/VPP:
当/EA保持低电平时,则在此期间只外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间访问内部程序存储器。
当PC值超过片内程序存储器空间时,则自动转向外部程序存储器的程序。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入
XTAL2:
来自反向振荡器的输出。
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石英晶体振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
1-2AT89C51的最小系统介绍
时钟电路:
单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。
单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。
单片机的时钟产生方式有两种。
①内部时钟方式。
利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路便产生自激振荡,用示波器可以观察到XTAL2输出的时钟信号。
②外部时钟方式。
在单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入惟一的合用外部振荡脉冲作为各单自片机的时钟。
外部时钟方式中是把外部振荡信号源直接接入XTAL1或XTAL2。
图3-1为内部时钟电路图3-2为HMOS型外部时钟电路图3-3为CHMOS型外部时钟电路
复位电路和复位状态
单片机的复位是靠外部电路实现的。
单片机工作后,只要在它的RST引线上加载10ms以上的高电平,单片机就能够有效地复位。
①复位电路。
单片机通常采用上电自动复位和按键复位两种方式。
最简单的复位电路如下图所示。
上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。
在应用系统中,有些外围芯片也需要复位。
如果这些芯片复位端的复位电平的要求一致,则可以将复位信号与之相连。
简单的复位电路
②复位状态。
复位电路的作用是使单片机执行复位操作。
复位操作主要是把PC初始化为0000H,使单片机从程序存储器的0000H单元开始执行程序。
程序存储器的0003H单元即单片机的外部中断0的中断处理程序的入口地址。
留出的0000H~0002H3个单元地址,仅能够放置一条转移指令,因此,MCS-51单片机的主程序的第一条指令通常情况下是一条转移指令。
P0、P1、P2、P3共有4个8位并行I/O口,它们引线为:
P0.0~P0.7、P1.0~P1.7、P2.0~P2.7、P3.0~P3.7,共32条引线。
这32条引线可以全部用做I/O线,也可将其中部分用做单片机的片外总线。
1-2单片机最小系统图
最小系统图
2、基于MF58的NTC热敏电阻温度测量电路设计
2-1MF58热敏电阻的介绍
热敏电阻传感器是对温度敏感的电阻器的总称,是半导体测温元件。
随着外界温度的变化,其阻值会相应发生较大改变。
按温度系数分为负温度系数热敏电阻(NTC)和正温度系数热敏电阻(PTC)两大类。
NTC热敏电阻以MF为其型号,PTC热敏电阻以MZ为其型号。
热敏电阻符号如下图:
MF58测温型NTC热敏电阻,由Co、Mn、Ni等过渡金属元素的氧化物组成,经高温烧成半陶瓷,利用半导体微米的精密加工工艺,采用玻璃管封装,耐温性好,稳定性高,可靠性高。
特点:
1、稳定性好,可靠性高。
2、阻值范围宽:
0.1-1000K
3、阻值精度高。
4、由于玻璃封装,可在高温和高温等恶劣环境下使用。
5、体积小、重量轻、结构坚固,便于自动化安装(在印制线路板上)。
6、热感应速度快、灵敏度高。
主要技术参数:
1、额定零功率电阻值范围(R25):
0.1~1000KΩ
2、R25允许偏差:
±1%、±2%,±3%,±5%,±10%.
3、B值范围(B25/50℃):
1960~4480K
4、B值允许偏差:
±0.5%,±1%,±2%.
5、耗散系数:
2mW/℃(在静止空气中)
6、热时间常数:
20S(在静止空气中)
7、工作温度范围:
-55℃~+300℃
8、额定功率:
≤50Mw
注意事项:
1、MF系列热敏电阻器是玻璃封装的,请勿剧震、碰击以防玻璃外壳破裂。
2、焊接时间控制在4S内。
3、MF系列热敏电阻器不能直接在水中或液体中使用。
2-2温度测量电路的设计
原理图:
各元器件介绍:
RV1为170-精度为1%的MF58NTC热敏电阻
R2、R3、R5、R10为10K的普通电阻
C4为1μf的瓷介电容
R4、R6、R7、R11为1K的普通电阻
R8为470K的普通电阻
其工作原理为:
(1)电压跟随器右端输出2.5伏电压为电桥提供稳定的电压。
(2)根据电桥的工作原理,电桥输出的差模电压为U=(2.5*RV1/1K)1/4。
(3)查分运算放大器的增益A=R8/R5=47。
(4)所以RV1与测量电路输出电压U。
的关系为RV1=U。
*43,进而可根据温度和电阻的关系求得温度。
3、AD转换器工作原理
3-1ADC0809简介
本设计中才用型号为ADC0809的A/D转换器.ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
本电路设计直接采用0-5V的输出电压即可满足电路需求,AD0809芯片图如图2所示:
图2AD0809芯片
(1)ADC0809的转换参数为D=(Vin/5)*255。
故Vin=(D/255)*5。
Vin即测量电路的输出电压。
3-2基于AD0809的数模转换电路
本设计中试验箱内部基于AD0809的模数转换电路图,如图3所示
图3模数转换电路图
如图3所示,实验只有IN0和IN1两个输入端口,输出端口地址取决于片选A/D_CS所接片选端得段地址,片选将于第四章讲述。
ADC0809是8位逐次逼近型A/D转换器。
它由一个8路模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
4、LED数码管显示电路的设计
4-1LED数码管原理:
LED数码管是由发光二极管作为显示字段的数码型显示器件。
下图为0.5英尺LED数码管的外形和引脚图,其中七只发光二极管分别对应a~g笔段构成“
”字形另一只发光二极管dp作为小数点。
因此这种LED显示器称为七段数码管或八段数码管。
LED数码管
LED数码管按电路中的连接方式可以分为共阴极和共阳极两大类,如上图。
共阳型是将各段发光二极管的正极连在一起,作为公共端COM,公共端COM接高电平,a~g、dp各笔段通过限流电阻接控制端。
某笔段控制端低电平时,该笔段发光,高电平时不发光。
控制这几段笔段发光,就能显示出某个数码或字符。
共阴型是将各数码发光二极管的负极连在一起,作为公共端COM接地,某笔段通过限流电阻接高电平时发光。
LED数码管按其外形尺寸有多种形式,使用较多的是0.5英寸和0.8英寸;按显示颜色也有多种形式,主要有红色和绿色;按亮度强弱可分为高亮和普亮,指通过同样的电流显示亮度不一样,这是因发光二极管的材料不一样而引起的。
LED数码管的使用与发光二极管相同,根据其材料不同正向压降一般为1.5~2V额定电流为10mA,最大电流为40mA。
静态显示时取10mA为宜,动态扫描显示可加大,加大脉冲电流,但一般不超过40mA。
4-2LED数码管编码方式
当LED数码管与单片机相连时,一般将LED数码管的各笔段引脚a、b、…、g、dp按某一顺序接到MCS-51型单片机某一个并行I/O口D0、D1、…、D7,当该I/O口输出某一特定数据时,就能使LED数码管显示出某个字符。
例如要使共阳极LED数码管显示“0”,则a、b、c、d、e、f各笔段引脚为低电平,g和dp为高电平,如下表。
共阳极LED数码管显示数字“0”时各管段编码
D7
D6
D5
D4
D3
D2
D1
D0
字段码
显示数
dp
g
f
e
d
c
b
a
1
1
0
0
0
0
0
0
C0H
0
C0H称为共阳极LED数码管显示“0”的字段码,不计小数点的字段码称为七段码,包括小数点的字段称为八段码。
LED数码管编码方式有多种,按小数点计否可分为七段码和八段码;按共阴共阳可分为共阴字段码和共阳字段码,不计小数点的共阴字段码与共阳字段码互为反码;按a、b、…、g、dp编码顺序是高位在前,还是低位在前,又可分为顺序字段码和逆序字段码。
甚至在某些特殊情况下将a、b、…、g、dp顺序打乱编码。
下表为共阴极和共阳极LED数码管几种八段编码表。
共阴极和共阳极LED数码管几种八段编码
共阴顺序小数点暗
共阴逆序小数点暗
共阳顺序
小数点亮
共阳顺序
小数点暗
dpgfedcba
16进制
abcdefgdp
16进制
0
00111111
3FH
11111100
FCH
40H
C0H
1
00000110
06H
01100000
60H
79H
F9H
2
01011011
5BH
11011010
DAH
24H
A4H
3
01001111
4FH
11110010
F2H
30H
B0H
4
01100110
66H
01100110
66H
19H
99H
5
01101101
6DH
10110110
B6H
12H
92H
6
01111101
7DH
10111110
BEH
02H
82H
7
00000111
07H
11100000
E0H
78H
F8H
8
01111111
7FH
11111110
FEH
00H
80H
9
01101111
6FH
11110110
F6H
10H
90H
4-3显示电路的原理图
显示电路原理图
三、电路整体结构设计及软件设计
1、电路整体结构设计
由于本课程设计中,受到WAVE2000实验箱的限制,电路整体结构如下:
2、软件设计
本课程设计采用的为汇编语言。
整体设计思路为:
开始—初始化程序—AD转换—数值转换—数码显示
模数转换子程序流程图如图所示。
数码显示子程序流程图如图所示。
四:
结论
本设计中,是以温度采集及检测为总目标,以AT89C51单片机最小应用系统为总控制中心,辅助设计有温度采样电路、驱动显示单元等。
单片机开发过程是一个非常严谨,复杂,科学,周密和细致,及技术性和综合性都相当高的过程,它要求你必须具备相当扎实的专业基础和理论知识,较强的实践专业操作技能。
能以细致和科学的头脑去考察、分析和解决问题。
同时在设计中必须要有足够的耐心,持之以恒的毅力,坚强的意志以及实事求是,一丝不苟的精神,才能开发出理想的设计出来。
在设计过程中,遇到了许多问题,如设计初始阶段目的不明,思绪混乱,经过认真思考和老师的指导,才使自己思路明确,抓住重点,不懂就问,在规定的时间内系统有序的完成。
温度检测是工业过程控制中一个重要参数,了解到温度检测的重要性,使自己在设计过程中,更加有兴趣和动力,在软件设计方面,遇到了一些实际问题,不过,在老师的指导和同学的帮助下都能一一解决,使自己学到了许多新的知识。
从本设计的资料收集和方案论证到方案设计、修改和最后的完成,得到了老师和同学的指导和帮助,才使本设计顺利完成。
在此表示衷心感谢!
五、参考文献
[1]中国期刊全文数据库:
[2]
[3]
[4]查电子元器件资料:
[5]汪贵平李登峰等编著《新编单片机原理及应用》,机械工业出版社
[6]李隆宝.实用电子器件和电路简明手册[M].北京:
电子工业出版社,1991.
[7]康华光,电子技术基础数字部分(第四版)[M].北京:
高等教育出版社,1987
[8]付家才等主编《单片机控制工程实践技术》,化学工业出版社
六、附页
1、程序清单
/***************writer:
shopping.w******************/
#include
#defineuintunsignedint
#defineucharunsignedchar
ucharcodeLEDData[]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
sbitOE=P1^0;
sbitEOC=P1^1;
sbitST=P1^2;
sbitCLK=P1^3;
voidDelayMS(uintms)
{
uchari;
while(ms--)
{
for(i=0;i<120;i++);
}
}
voidDisplay_Result(uchard)
{
P2=0xf7;
P0=LEDData[d%10];
DelayMS(5);
P2=0xfb;
P0=LEDData[d%100/10];
DelayMS(5);
P2=0xfd;
P0=LEDData[d/100];
DelayMS(5);
}
voidtr(floatRTemp)
{
ucharTEM;
RTemp=RTemp*0.67;
if(RTemp>167)
{TEM=0;
Display_Result(TEM);}
else
{
if(RTemp<0.4)
{TEM=180;
Display_Result(TEM);}
else
{
if(RTemp>=0.4&&RTemp<0.9)
{TEM=-71.4*RTemp+207;
Display_Result(TEM);}
else
{
if(RTemp>=0.9&&RTemp<2.2)
{TEM=-22.8*RTemp+162.8;
Display_Result(TEM);}
el