《基于单片机的智能温度计的毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的智能温度计的毕业设计论文.doc(45页珍藏版)》请在金锄头文库上搜索。
1、智能仪器设计课程设计报告 智能温度计的设计目 录引言 31 设计任务书 32 方案总体设计与论证 33 硬件电路设计 43.1 传感器调理电路模块设计43.2 A/D转换模块设计53.3 显示模块设计73.4 键盘模块设计83.5 状态指示与接口模块设计83.6 硬件电路总体设计94 软件设计 104.1 主程序设计114.2 定时中断服务程序设计144.3 外部中断0服务程序设计164.4 温度测量子程序设计184.5 温度测量转换子程序设计214.6 显示子程序设计254.7 设置键处理子程序设计275 参考文献 29程序清单 30引 言温度是日常生活、工业、医学、环境保护、化工、石油等领
2、域最常遇到的一个物理量。测量温度的基本方法是使用温度计直接读取温度。最常见到的测量温度的工具是各种各样的温度计,例如,水银玻璃温度计,酒精温度计,热电偶或热电阻温度计等。它们常常以刻度的形式表示温度的高低,人们必须通过读取刻度值的多少来测量温度。利用单片机和温度传感器构成的电子式智能温度计就可以直接测量温度,得到温度的数字值,既简单方便,又直观准确。1 设计任务书设计一个智能温度计,并使其具有如下特点: 1、一路水温检测, 误差:0.5;2、温度3位数码显示(XX.Xmm);3、工作状态指示;4、开机自检;5、配简单键盘;6、配微型打印机接口;7、配置通信接口。2 方案总体设计与论证图21是智
3、能温度计的基本组成方框。主要由温度传感器(温敏二极管),信号调理电路,A/D转换器(A/D574),单片机(80C51),8279键盘输入,LED显示器以及74164,发光二极管(指示工作状态)等组成。温度传感器热敏二极管是把温度转换成电压的器件,温度传感器输出电压的大小随温度的高低变化而变化,热敏二极管在0100温度变化范围内,电压值的变化范围从1个毫伏到200个毫伏。信号调理电路的主要功能是把微弱的温度电压信号放大到(02.44)伏的范围内,以适应AD574单极性输入的要求。A/D转换器把放大后的模拟电压信号转换成对应的数字信号。单片机8051是智能温度计的核心部分,一方面控制A/D转换器
4、实现模拟信号到数字信号的转换,另一方面将采集到温度的数字信号,经过计算处理,得到相应的温度值的BCD码,送到74164,由它驱动LED数码管显示器以数字形式显示测量的温度。通过键盘输入要报警的温度上限值,由单片机检测哪一位设定的键盘被按下,单片机可以直接将该位寄存器中的内容自动加一,即可实现相应值的设定。通过缓冲器可以预留出微型打印机的接口和单片机与其他设备的通信接口,由相关的键盘控制打印机与单片机是否连接,并且由相应的键盘控制单片机否是把数据送74164进行显示还是把数据发送至数据端口,与其他设备进行通信。图21 系统框图由上图可知系统硬件基本上由传感器信号调理模块,A/D模块,键盘模块,显
5、示模块,工作状态指示模块,以及接口模块组成。而软件设计是紧紧围绕系统的硬件结构展开的,软件主要是配合控制硬件完成预期的设计要求,软件的基本模块也是针对上述硬件结构进行相应操作的。下面具体阐述系统各功能模块的设计。3 硬件电路设计3.1 传感器调理电路模块测温传感器选用热敏二极管传感器。这种传感器是利用半导体的温度特性来实现对温度的检测功能。硅二极管的结电压在温度每升高1时,电压下降2mV,它属于PN结型温度传感器,它在0100温度范围内表现出良好的线性,尺寸小,热时间常数为0.22s,灵敏度高,测温范围是-50150。信号调理电路中包括电桥和放大部分。将测温二极管放入电桥的一个桥臂,可直接输出
6、传感器相对0时的电压输出,再将桥路输出送给AD620的差分输入端,进行50倍的放大,在经过OP07组成的100倍的反相放大电路,使得传感器感受0100的温度时,信号调理电路对应输出02.44V的电压值,这个电压值正好是AD574的010V单端输入电压的范围。图31 传感器调理电路模块图图31是传感器调理电路图。该电路的分分辨率为0.1,在0100范围内精度可达到0.5。该电路的调节,先将传感器放入冰水混合物中,调节W1是调理电路的输出为0;再将传感器放入沸水中,调节W2使调理电路的输出为2.44V。2.44V正好对应AD574输出为999的输入电压(单极性10V输入),这样实现了AD574的输
7、出,正好为外界温度的情况。这样就实现了这样就实现了对温度的有效测量信号的拾获和放大。3.2 A/D转换模块设计AD574是12 位逐次逼近型的 A/D 转换芯片。转换时间为 25 35s。片内有数据输出寄存器,并有三态输出的控制逻辑。其运行方式灵活,可进行 12 位转换,也可作 8 位转换;转换结果可直接 12 位输出,也可先输出高 8 位,后输出低 4 位。可直接与 8 位或 16 位的 CPU 接口。输入可设置为单极性,也可设成双极性。片内有时钟电路,无需外部时钟。图32 A/D转换模块图图32是AD574与单片机接口电路以,它分两次将单极性电压的12位转换结果送给单片机。具体先由单片机发
8、出控制信号,使A/D转换器启动转换,等待转换结束,单片机再分两次将转换数据读到内存中。按上图接法AD574是单极性输入,接成0+10V的接法,按上图向FF7C写数据,就启动AD574转换器开始转换,检测P1.0口即可查看AD574是否转换结束,从FF7D端口即可读出转换结果的高八位,从FF7F端口中即可读出转换结果的低四位。3.3 显示模块设计利用串口和74164驱动LED显示器工作,采用静态显示方式。这种方式可避免采用并行I/O接口占用资源较多的缺点。采用共阳极数码管,因而各位的COM接口接+5V电源,若要显示某字段,则相应的移位寄存器74164输出必须为低电平,由于74164在低电平输出时
9、,允许通过的电流为8mA左右,故不用再加驱动电路了,只需向串口发送要显示三位数的显示控制代码(段码),即可在LED显示器上显示出所要的字符,只需将各位的小数点控制位接低电平,使其显示,其他位的小数点控制位均接高电平即可,注意加限流电阻。图33 显示模块原理图3.4 键盘模块设计因为本设计中需要的按键不多,故设计采用独立式按键,分别占用P1.4,P1.5,P1.6和P1.7口。它们分别实现选择是正常运行还是设置模式的功能键,温度上限十位的设置键,温度上限个位的设置键以及温度上限的十分位的设置键。键盘的防抖动可有软件来实现,每个引脚上都引入上拉电阻。图34 键盘模块原理图3.5 状态指示与接口模块
10、设计当测量温度达到了上限温度时,P2.0口输出高电平,驱动报警二极管发光,指示温度已经超过上限值,当温度下降到设定值以下是,P2.0变成低电平,报警解除。当按下打印摁键时,单片机响应外部中断0,进而要打印的数码发送至打印机的数据口,进行打印。打印时,需要先将要打印的字符转换为其ASCII码,将此ASCII送入打印机数据口进行打印。需要注意要将小数点也打印出来,打印完十位和个位再将小数点打印出来,再把十分位进行打印。而扩展接口采用简单的三线式接口,一线为接收数据,一线为发送数据,还有一线为查询状态。由P2.6控制其导通,还是高阻的状态。图35 打印接口原理图图36 扩展口及工作状态原理图3.6
11、硬件电路总体设计将上述功能模块合理有序连接即构成整体图,电路图参见图37。图37 硬件电路总体设计原理图4 软件设计4.1 主程序设计4.1.1 主程序流程图图41 主程序流程图4.1.2 主程序汇编语言设计Org 0000H ;主程序入口地址KS: LJMP START ORG 0003H ;外部中断0服务程序入口地址LJMP INT_0 ORG 000BH ;定时器0中断服务程序入口地址LJMP INT_T0 ORG 100H TAB1: ;字符段码表格DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H,88H DB 83H, 0C6H, 0A1H, 86H, 0FFH START: MOV SP,#60H CLR EAMOV R0,#3EH ;运行/设置状态寄存器清零MOV R0,#0H DEC R0 MOV R0,#0H DEC R0 MOV R0,#0H MOV R0,#20H ;20H-22H放初始温度设置上限值50.0MOV R,#05H INC R0 MOV R0,#0H INC R0 MOV R0,#00H SETB P1.4 ;设置P1.4P1.7为输入端口SETB P1.5 SETB P1.6 SETB P1.7 MOV R2,#03H