单片机课程设计 温度测试系统设计.docx
《单片机课程设计 温度测试系统设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计 温度测试系统设计.docx(21页珍藏版)》请在冰豆网上搜索。
单片机课程设计温度测试系统设计
一、引言
随着现代科技的发展,单片机控制无疑为人带来了诸多方便,他的性能虽然与PC机无法相比,但它体积小,价格低,高可靠性,智能性,实时性,可塑性好等优点,使它应用于诸多控制领域。
近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。
80C51是INTEL公司MCS-51系列单片机中最基本的产品,采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品,结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,继承和扩展了MCS-48单片机的体系结构和指令系统。
80C51内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
此外,80C51还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。
80C51有PDIP(40pin)和PLCC(44pin)两种封装形式。
1.1.1课程设计的意义:
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机技术已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握数字电子技术是十分重要的。
而课程设计是深入学习,真正掌握单片机原理与接口技术的有效途径:
1、有利于基础知识的理解
通过《单片机原理与接口技术》的学习,掌握了数字技术基础知识和基本技能,具备了在日常生活与学习中应用数字技术解决问题的基本态度与基本能力。
但是,对于器件选择、电路仿真模拟、电路搭建等知识内容的理解比较肤浅。
通过课程设计就能真正理解,从而进一步加强理论知识的学习。
2、有利于逻辑思维的锻炼
在常规的理论学习中,我们的思维常常处于混乱的状态。
写起作文来前言不搭后语,解起数学题来步骤混乱,这些都是缺乏思维训练的结果。
课程设计设计是公认的、最能直接有效地训练创新思维,培养分析问题、解决问题能力的途径之一。
整个设计过程都需要有条理地构思,中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。
3、有利于治学态度的培养。
在课程设计中,会遇到各种问题和困难,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。
可以培养严谨治学、一丝不苟的科学精神和不怕失败、百折不挠品格。
1.1.2设计目的
1、通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。
2.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
3.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应的工作打下基础。
1.2设计任务
设计要求:
利用温度传感器和ADC0809采用中断方式设计一个温度测试系统,每隔2秒测量一次,将测试结果(十进制)在LED上显示出来。
定义一个保持按键,当按下该键时,将当前的测试值保持不变(按键不动作时为正常测量显示)。
温度显示格式为:
XXX℃。
温度测量范围为:
20~100
二系统设计
2.1硬件设计
2.1.1总体设计框图:
根据课题,温度采集部分选择常用的Pt100热敏电阻,其电阻温度系数为3.9×10-3/℃,0℃时电阻值为100Ω,电阻变化率为0.3851Ω/℃。
铂电阻温度传感器精度高,稳定性好,应用温度范围广,是中低温区最常用的一种温度检测器,在+10℃~+150℃范围内,阻值与温度的关系线性度非常好,通常把这一温度范围作为有效温度范围,本题目要求的温度范围是+20℃~+100℃,正好位于有效范围内,故温度采集电路部分相对较为简单。
51单片机与ADC0809、显示器以及锁存器部分的电路已经具有比较成熟的连接方法,因此硬件电路的设计比较简单。
根据以上分析,可以得出系统的原理框图如下:
系统的原理框图
2.1.2温度采集电路的设计
温度采集电路设计如下,电路图如图2所示:
图2温度采集电路图
电路说明:
将Pt100接入一个差动运算放大器,其电压放大倍数为R6/R5。
其后再接入一个低通滤波放大电路,其放大倍数为(R11+RW1)/R9。
所以整个电路的放大倍数为[R6(R11+RW1)]/(R5*R9)倍。
当温度为0℃时,差动运算放大器的正负输入端电压差为0,所以输出也应为0,但是放大器存在漂移,所以用电位器RW2来调零。
Pt100的电阻值与输出电压Uout的关系为:
Uout=(144+0.0144Rw1)(Rt/(10000+Rt)—0.0099)
由于本课题的温度范围为20~100℃,同时又希望输出电压在0~5V之间,所以,最终得到输出电压与所测温度的关系为:
Uout=1108.8((100+0.385T)/(10100+0.385T)—0.0099)
2.1.3单片机接口电路设计
单片机接口电路主要由单片机80C51、模数转换器ADC0809、集成芯片8255A、锁存器74LS373以及数码显示器组成.
各电路组成部分简要介绍如下:
1、单片机80C51
该系列单片机是采用高性能的静态80C51设计,由先进CMOS工艺制造并带有非易失性Flash程序存储器,全部支持12时钟和6时钟操作,P89C51X2和P89C52X2/54X2/58X2,分别包含128字节和256字节RAM,32条I/O口线3个16位定时/计数器,6输入4优先级嵌套中断结构,1个串行I/O口,可用于多机通信I/O扩展或全双工UART以及片内振荡器和时钟电路。
此外,由于器件采用了静态设计,可提供很宽的操作频率范围,频率可降至0。
可实现两个由软件选择的节电模式,空闲模式和掉电模式,空闲模式冻结CPU但RAM定时器,串口和中断系统仍然工作。
掉电模式保存RAM的内容,但是冻结振荡器将导致所有其它的片内功能停止工作。
由于设计是静态的时钟可停止而不会丢失用户数据运行可从时钟停止处恢复。
图350C51单片机引脚图
2、8255A
8255A,具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。
它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。
8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。
其引脚图如下:
8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式,共有三种;
方式0:
基本的输入输出方式,即无须联络就可以直接进行的I/O方式。
其中A、B、C口的高四位或低四位可分别设置成输入或输出。
方式1:
选通I/O,此时接口和外围设备需联络信号进行协调,只有A口和B口可以工作在方1,此时C口的某些线被规定为A口或B口与外围设备的联络信号,余下的线只有基本的I/O功能,即只工作在方式0。
方式2:
双向I/O方式,只有A口可以工作在这种方式,该I/O线即可输入又可输出,此时C口有5条线被规定为A口和外围设备的双向联络线,C口剩下的三条线可作为B口方式1的联络线,也可以和B口一起方式0的I/O线。
图48255A引脚图
3、ADC0809:
ADC0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
其引脚图如下图5所示:
1.主要特性
1)8路8位A/D转换器,即分辨率8位。
2)转换时间为100μs
3)模拟输入电压范围0~+5V,不需零点和满刻度校准。
4)低功耗,约15mW。
2.内部结构
图5ADC0809引脚图
ADC0809是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近
3.外部特性
ADC0809芯片有28条引脚,采用双列直插式封装。
各引脚功能如下:
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动脉冲输入端,输入一个正脉冲使其启动
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
ADC0809的工作过程是:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
4、74LS373简要说明:
373为三态输出的八D透明锁存器,373的输出端O0~O7可直接与总线相连。
当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。
当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端LE为高电平时,O随数据D而变。
当LE为低电平时,O被锁存在已建立的数据电平。
当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。
引出端符号:
D0~D7数据输入端
OE三态允许控制端(低电平有效)
LE锁存允许端
O0~O7输出端
5、单片机接口电路图
经过以上分析,用Protues绘制的单片机接口电路如下图6所示:
图6单片机接口电路
三、软件设计
3.1主程序
主程序的主要功能是负责数据指针ADC0809、8255A外部中断INT0和定时中断1各参数的初始化,温度的实时显示、读出并处理测量的当前温度值,温度测量每2s进行一次均设置在中断服务程序中其程序流程见图7所示。
图7主程序流程图
3.2显示温度子程序
显示温度子程序的主要功能是读出经过转换处理后并且以存储于显示缓冲单元RAM中的温度值,显示缓冲单元定义在40H、41H、42H,其程序流程图如图8所示:
N
Y
图8显示子程序流程图
3.3温度处理子程序
温度处理子程序主要是从ADC0809中读入转换的数字量,进行温度处理,并且转换为十进制数,分别取出小数位、个位、十位数字存储到显示缓冲单元中,等待显示。
温度处理子程序流程图如图9所示。
图9温度处理子程序流程图
3.4、外部中断0服务子程序
此中断服务程序主要是为了定义保持按键,程序中用R1标记中断次数,并利用算法