《基于单片机的温度计的设计 毕业设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的温度计的设计 毕业设计.doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、四川信息职业技术学院毕业设计说明书(论文)设计(论文)题目:基于单片机的温度计的设计 专 业: 通信技术 班 级: 学 号: 姓 名: 指导教师: 二OO八年十二月三十日四川信息职业技术学院毕业设计任务书学 生姓 名学号班级专业通信技术设计题目基于单片机的温度计的设计指导教师姓名职 称工作单位及所从事专业联系方式备 注助教四川信息职业技术学院高级工程师四川九洲电子科技股份有限公司设计内容:为了对温度进行适时监测,设计了这套温度传感系统并完成电路设计方案的选择;硬件电路的设计;软件程序的编写;仿真与调试。进度安排:第1周:查找资料,选择参考方案; 第周:确定方案;第58周:查找资料,进行硬件电路
2、的设计; 第912周:程序的编写与调试;第1314周:整理报告,确定初稿; 第1516周:检查定稿;第1718周:答辩。主要参考文献、资料(写清楚参考文献名称、作者、出版单位):1李全利单片机原理及应用技术北京:高等教育出版社,20062何立民单片机高等教程北京:航空航天大学出版社,20003张毅刚MCS-51单片机应用设计哈尔滨:哈尔滨工业大学出版社,1997审批意见教研室负责人:年 月 日备注:任务书由指导教师填写,一式二份。其中学生一份,指导教师一份。目录摘要1第1章方案设计2第3章硬件设计43.1单片机系统电路设计43.1.1单片机时钟电路43.1.2单片机复位电路53.2DS18B2
3、0单线数字温度传感器73.2.1DS18B20工作原理73.2.2DS18B20的性能特点73.2.3DS18B20内部结构73.2.4DS18B20控制方法83.3数据显示单元设计93.3.1显示器原理简介93.3.2显示器电路图9第4章软件设计114.1主程序114.2温度程序114.3显示程序12第5章调试与运行145.1电路仿真145.2调试与运行14结论16参考文献17附录A总电路原理图18附录B程序清单19摘要随着科学技术的发展,温度传感器向着集成工艺和多变量复合传感器、智能化传感器、网络化传感器的方向发展,各种不同类型的温度传感器将会越来越多的出现在我们的日常生活中,给我们带来极
4、大的方便。为了对温度进行实时监测,设计了这套温度显示系统。系统采用AT89C51系列单片机与单线数字温度传感器DS18B20采集现场温度数据,并利用LED显示。报告详细介绍了系统的单片机最小系统、温度信息采集电路、LED显示电路的硬件设计,并在分析软件工作流程的基础上编写了相应的C语言源程序。测试表明,该系统能有效实现实时温度采集和显示,并具有较高的精度。关键词AT89C51;DS18B20;LED第1章方案设计任务要求利用单片机对温度传感器DS18B20进行控制,实时检测外环境的温度,并通过数码管显示当前温度。温度传感器显示控制系统的整体结构如图2-1所示,电路包括:DS18B20传感器、中
5、央处理器CPU(AT89C51)、时钟及复位电路、LED显示器。中央处理器CPUAT89C51DS18B20传感器LED显示器时钟及复位电路图2-1温度传感器显示控制系统的整体结构框图1温度信号采集方案方案一:选用型号为WZB-003,分度号为BA2的热敏电阻为温度感应元件,它适用于0500的温度测量范围,但其对检验温度的精度要求不高。方案二:用温度传感器做温度感应元件,它硬件接口简单,性能稳定。温度传感器市场上有很多种类,可以根据实际需求选择合适的温度传感器。单片机对温度传感器DS18B20进行控制,实时检测外环境的温度,并通过数码管显示当前温度,要求精度高,检测性好,所以本次设计选择方案二
6、。本设计选择温度传感器:DS18B20。它是单线接口,仅需一根口线与MCU连接无需外围元件,由总线提供电源,测温范围为:-55+125,测量精度:0.5,反应时间500ms。2显示方案方案一:静态显示就是当CPU将要显示的字或字段码送到输出口,显示器就可以显示出所要显示的字符,如果CPU不去改写它,它将一直保持下去;静态显示硬件开销大,电路复杂,信息刷新速度慢。方案二:动态显示就是一位一位地轮流点亮显示器地各个位(扫描)。对于显示器的每一位而言,每隔一段时间点亮一次;动态显示耗能较小,但编写程序较复杂。动态显示硬件连接简单,信息刷新速度快。本次设计由于要求对温度进行实时检测与控制,所以选择的是
7、方案二。第3章硬件设计3.1单片机系统电路设计在单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体,就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图3-1中电容器C1和C2的作用是稳定频率和快速起振,电容值在530pF,典型值为30pF。晶振CYS的振荡频率范围在1.212MHz间选择,典型值为12MHz和6MHz。3.1.1单片机时钟电路单片机时钟电路如图3-1所示。图3-1单片机时钟电路图XTAL1和XTAL2分别为反相放大器的输入和输出。该反相放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时
8、钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。晶振周期(或外部时钟信号周期)为最小的时序单位,如图3-2所示。图3-2单片机的时钟信号成为S状态,它是晶振周期的两倍,即一个时钟周期包含2个晶振周期。在每个时钟周期的前半周晶振信号进分频器后形成两相错开的时钟信号P1和P2。时钟信号的周期也期,相位1(P1)信号有效,在每个时钟周期的后半周期,相位2(P2)信号有效。每个时钟周期有两个节拍(相)P1和P2,CPU以P1和P2为基本节拍指挥各个部件协调地工作。晶振信号12分频后形成机器周期,即一个机器周期包含12个晶振周期或6个是时钟周期。因此
9、,每个机器周期地12个振荡脉冲可以表示S1P1,S1P2,S2P1,S2P2,S6P2。3.1.2单片机复位电路复位是使单片机或系统中的其他部件处于某种确定的初始状态。单片机的工作就是从复位开始的,当在单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。实际应用中,复位操作有两种基本的形式:一种是上电复位,另一种是上电与按键均有效的复位。如图3-3所示,本次设计采用的是上电复位。图3-3上电复位电路上电复位要求接通电源后,单片机自动实现复位操作。常用的上电复位如上图所示。上电瞬间RST引脚获得高电平,随着电容C1的充电,
10、RST引脚的高电平将逐渐下降。RST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。该电路典型的电阻和电容参数为:晶振为12MHz时,C1为10uF,R1为8.2K,晶振为6MHz时,C1为22uF,R1为1K。单片机的复位操作使单片机经入初始化状态。初始化后,程序计数器PC=0000H所以程序从0000H地址单元开始执行。单片机启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM的内容。特殊功能寄存器复位后状态使确定的。P0P3为FFH,SP为07H,SBUF不定,IP、IE和PCON的有效值为0,其余的特殊功能寄存器的状态均为00H。相应的意义为:(1)
11、P0P3=FFH,相当于各口锁存器已写入1,此时不但可以用于输出,也可以用于输入;(2)SP=07H,堆栈指针指向片内RAM的07H单元(第一个入栈内容将写入08H单元);(3)IP、IE和PCON的有效位为0,各中断源处于的优先级且均被关断,串行通信的波特率不加倍;(4)PSW=00H,当前工作寄存器为0组。3.2DS18B20单线数字温度传感器由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。产品的主要技术指标:(1)
12、测量范围:-55+125;(2)测量精度:0.5;(3)反应时间500ms。3.2.1DS18B20工作原理温度传感器DS18B20将被测环境温度转化成带符号的数字信号(以十六位补码形式,占两个字节)在通过单片机发出命令送给显示器。它的输出脚I/O直接与单片机相连,并接一个上拉电阻,传感器采用外部电源供电。传感器控制程序是按照DS18B20的通信协议编制。系统的工作是在程序控制下,完成对传感器的读写和对温度的显示。3.2.2DS18B20的性能特点(1) 采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位);
13、(2) 测温范围为-55+125,测量分辨率为0.0625;(3) 内含64位经过激光修正的只读存储器ROM;(4) 适配各种单片机或系统机;(5) 用户可分别设定各路温度的上、下限;(6) 内含寄生电源。3.2.3DS18B20内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。DS18B20的管脚排列如图35所示。64位光刻ROM是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。不同的器件地址序列号不同。图3-5DS18B20引脚分布图表3-1寄存器名称及功能序号寄存器名称作 用序 号寄存器名称0温度低字节
14、以16位补码形式存放4、5保留字节1、21温度高字节以16位补码形式存放6计数器余值2TH/用户字节1存放温度上限7计数器/3HL/用户字节2存放温度下限8CRC以12位转化为例说明温度高低字节存放形式及计算:12位转化后得到的12位数据,存储在DS18B20的两个高低两个8位的RAM中,二进制中的前面5位是符号位。如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。3.2.4DS18B20控制方法在硬件上,DS18B20与单片机的连接有两种方法,一种是VCC接外部电源,GND
15、接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻。此次设计选择的是前面一种控制法。指 令约定代码操 作 说 明温度转换44H启动DS18B20进行温度转换读暂存器BEH读暂存器9个字节内容写暂存器4EH将数据写入暂存器的TH、TL字节复制暂存器48H把暂存器的TH、TL字节写到E2RAM中重新调E2RAMB8H把E2RAM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式B4H启动DS18B20发送电源供电方式的信号给主CPU表32DS18B20有六条控制命令CPU对
16、DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。3.3数据显示单元设计3.3.1显示器原理简介根据设计的特点,此显示选择的是动态LED显示。所谓动态显示就是一位一位地轮流点亮显示器地各个位(扫描)。对于显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻
17、只有一位显示器在工作(点亮),但由于人眼的视觉暂留效应和发光二极管熄灭时的余晖,我们看到的却是多个字符“同时”显示。显示器亮度既与点亮时的通道电流有关,也与点亮时间长短和间隔时间有关。调整电流和时间参数,即可实现亮度较高稳定的显示。3.3.2显示器电路图4位共阴极显示器与AT89C51的接口逻辑图,如图36所示。图3-6动态LED显示接口第4章软件设计系统的主要功能是根据当前的温度,利用温度传感器把当前的温度传递给显示器。系统软件可分为两个功能模块:(1) 温度检测:检测当前温度传感器的温度。(2) 显示:显示当前温度,采用定时器中断进行时显示。4.1主程序系统主程序由主函数流程和T0中断显示
18、流程组成,如图4-1所示和4-2所示。重置初值T0T0中断溢出动态扫描位选信号每位输出具体的温度值开始设置定时/计数器初值从DS18B20中读取数据数据拆字等待图4-1主函数流程图 图4-2T0中断显示流程图4.2温度程序温度程序模块:流程图如图4-3所示。读匹配的DS18B20温度所有在线DS18B20访问完否发读暂存RAM命令发一个DS18B20序列号执行期间匹配命令初始化DS18B20延时1秒初始化DS18B20存在一个DS18B20发出搜索ROM命令读在线DS18B20序列号开始复位DS18B20启用所有在线DS18B20作温度A/D转换发跳过ROM命令发转换命令Y图4-3温度流程图4
19、.3显示程序显示程序模块:流程图如图4-4所示。图4-4显示流程图第5章调试与运行KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解,在开发大型软件时更能体现高级语言的优势。5.1电路仿真此设计的电路在keil软件中进行仿真,仿真总电路如图5-1所示。5
20、.2调试与运行把编写好的程序放入仿真软件中,结合硬件电路进行调试与运行。(1)在仿真软件中的DS18B20上的两个红色旋钮模拟定时当前温度,从而达到仿真的目的;(2)LED显示器显示当前DS18B20所测到的温度;总结:当前显示的温度,需经过延时一段时间从而达到实际温度。结论在我的毕业设计中,主要是以AT89C51单片机为核心的,对温度的检测与显示进行了简单的设计与阐述。本次设计可以说是软硬结合,又以硬件为主。当今科技发展迅速,单片机嵌入式开发有着光明的前景。由于单片机经济实用、开发简便等特点依然在工业控制、家电等领域占据了广泛的市场。所以我选择这样的毕业设计课题,并且能通过此次设计来提高自己
21、软件编制和硬件电路设计的能力。在我完成这次毕业设计的过程中,当看到自己将专业知识用于解决实际的问题时,那份成就感和喜悦感是难以形容的。但是,在实际的编程以及调试程序过程中,我发现自己应该学的太多太多。光靠自己在书本上所学过的这点知识是远远不够的,真正地认识到了工作就是学习的道理。回首毕业设计这段日子,虽然过的很紧张,但我却感到很充实。由于我以前对51单片机的C语言没有认真钻研过,所以感觉毕业设计的任务十分紧迫。通过对本系统的设计,我学习到了硬件开发和软件开发的基本流程并有了一定的驾御此开发过程的能力。编程的过程中,虽然不乏辛苦,但更多的是程序调试成功后的喜悦。总之,这次毕业设计对我来说是一次比
22、较全面的、富有创造性和探索性的锻炼,完成了我选题时的心愿。同时,曾老师无私的敬业精神以及同学们的热心帮助也令我深有感触,对于我今后的学习、工作和生活都将是受益非浅的!参考文献1李全利单片机原理及应用技术.北京:高等教育出版社,20062何立民单片机高等教程.北京:航空航天大学出版社,20003张毅刚MCS51单片机应用设计.哈尔滨:哈尔滨工业大学出版社,1997附录A总电路原理图附录B程序清单#include reg51.hsbit DQ =P33; /定义通信端口unsigned char A1,A2,A3,A2t,dispno;unsignedcharcode table=0x3f,0x0
23、6,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;unsigned int temp1;/延时函数void delay(unsigned int i) while(i-);/初始化函数Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ复位 delay(8); /稍做延时 DQ = 0; /单片机将DQ拉低 delay(80); /精确延时 大于 480us DQ = 1; /拉高总线 delay(14); x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay(20);/读一个
24、字节ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; delay(4); return(dat);/写一个字节WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; delay(5); DQ = 1; dat=1; delay(4);/读取温度ReadTempe
25、rature(void)unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar();b=ReadOneChar();t=b;t2) dispno=0;四川信息职业技术学院学生姓名罗婷学号班级通技06-2专业通信技术设计(论文)题目基于单片机的温度计的设计指导教师曾妍、谭望春指导老师考核意见等级: 指导教师:答辩评语等级: 答辩老师: 总评成绩等级: 考核小组组长:备注以上两项成绩综合后,指导老师考核成绩占总分的60%,答辩成绩占总分的40%,按五级记分(优、良、中、及格、不及格)。毕业设计(论文)评语