欢迎来到天天文库
浏览记录
ID:16147576
大小:397.00 KB
页数:63页
时间:2018-08-08
《基于热敏电阻的数字温度计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、科信学院单片机应用系统(三级)项目设计说明书(2012/2013学年第二学期)题目:基于热敏电阻的数字温度计__专业班级:电子信息工程1021学生姓名:指导教师:马永强吴开兴刘会军马小进设计周数:两周设计成绩:2013年6月28日基于热敏电阻的数字温度计目录1实验设计目的22系统软件设计22.1软件总体流程设计22.2系统设计及主要程序32.2.1系统主函数32.2.2汉显lcd1286442.2.3时钟芯片DS130262.2.4ADC0832112.3上位机设计及主要代码142.3.1Serial
2、Port组件142.3.2串口操作152.3.3数据的接收152.3.4保存数据与清空数据173系统硬件电路设计173.1恒温桥电路173.2信号放大电路183.3A/D转换电路183.4控制电路193.5显示电路204总结与展望20参考文献21第62页共63页基于热敏电阻的数字温度计1实验设计目的随着以知识经济为特征的信息化时代的到来人们对仪器仪表的认识更加深入,温度作为一个重要的物理量,是工业生产过程中最普遍,最重要的工艺参数之一。随着工业的不断发展,对温度的测量的要求也越来越高,而且测量的范围也
3、越来越广,对温度的检测技术的要求也越来越高,因此,温度测量及其测量技术的研究也是一个很重要的课题。 本系统的温度测量采用的就是热阻效应。温度测量模块主要为温度测量电桥,当温度发生变化时,电桥失去平衡,从而在电桥输出端有电压输出,但该电压很小。将输出的微弱电压信号通过OP07放大,将放大后的信号输入AD转换芯片, 进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。单片机显示模块电源模块测温模块信号放大模块AD转换模块图1-1系统框图2系统软件设计2.1软件总体流程
4、设计软件设计采用c语言编程,运用模块化程序设计思想,对不同功能模块的程序进行分别编程,以便移植或调用,这样使软件层次结构清晰,有利于软件的调试修改。第62页共63页基于热敏电阻的数字温度计数字温度计系统软件部分采用模块化设计思想,将系统分为主程序、初始化处理模块、中断检测模块、延时处理模块、数据处理模块、显示模块,其软件系统的主程序实现流程如下图所示:开始DS1302时钟信息采集数据处理12864显示结束系统初始化PT100温度采集图2-1系统软件流程2.2系统设计及主要程序2.2.1系统主函数程序的
5、入口,分别调用了其他头文件,实现了lcd12864汉显的显示,DS1302时钟芯片时间的运行,ADC0832模数转换。主要代码实现如下:#include"reg52.h"#include"intrins.h"#include"lcd12864.h"#include"DS1302.h"#include"ADC0832.h"#defineucharunsignedchar#defineuintunsignedintvoidmain(void){Com_Init();v_Lcd12864Init_f();v
6、_Lcd12864PutString_f(1,0,"年");第62页共63页基于热敏电阻的数字温度计v_Lcd12864PutString_f(3,0,"月");v_Lcd12864PutString_f(5,0,"日");v_Lcd12864PutString_f(1,1,"时");v_Lcd12864PutString_f(3,1,"分");v_Lcd12864PutString_f(5,1,"秒");v_Lcd12864PutString_f(5,2,"℃");while(1){Run_DS13
7、02();displayADC();send();_nop_;}}2.2.2汉显lcd12864主要实现汉显lcd12864接收时钟芯片DS1302与A/D转换模块传递来的温度与时间,并显示在液晶屏上。主要代码实现如下:#include"lcd12864.h"#include"intrins.h"#defineucharunsignedchar#defineuintunsignedintvoidv_Lcd12864CheckBusy_f(void)//忙检测函数{unsignedintnTimeOut
8、=0;SET_INCSET_READCLR_ENSET_ENwhile((io_LCD12864_DATAPORT&0x80)&&(++nTimeOut!=0));CLR_ENSET_INCSET_READ}voidv_Lcd12864SendCmd_f(unsignedcharbyCmd)//发送命令{v_Lcd12864CheckBusy_f();SET_INCSET_WRITECLR_ENio_LCD12864_DATAPORT=byCmd;_no
此文档下载收益归作者所有