多路温度采集及显示课程设计报告.doc_第1页
多路温度采集及显示课程设计报告.doc_第2页
多路温度采集及显示课程设计报告.doc_第3页
多路温度采集及显示课程设计报告.doc_第4页
多路温度采集及显示课程设计报告.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖北理工学院课程设计报告 课程名称:电子设计开放性试验设计题目: 多路温度采集及显示系统 系 别: 数理学院 专 业: 应用物理学 班 级: 学生姓名: 学 号: 起止日期: 指导教师: 教研室主任: 指导教师评语: 指导教师签名: 年 月 日成绩评定项 目权重成绩1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3 总 成 绩 教研室审核意见:教研室主任签字: 年 月 日教学系审核意见: 主任签字: 年 月 日答辩记录 摘 要在工业控制领域中,温度是一个十分重要的参考量,准确而实时的控制温度对于我们的工作有事半功倍的效果。而在一些传统的温度测控系统中,存在着数据显示方式单一、数据无法长期存储、调用以及系统接口过于复杂的问题,寻求这些问题的解决方案成为当前研究的焦点。多路温度采集系统由主控制器、温度采集电路、温度显示电路、报警控制电路及键盘输入控制电路组成。它利用单片机p87c51做控制及数据处理器、adc0809n做温度检查器、led数码显示管做温度显示输出设备。 硬件电路比较简单,成本较低,测温范围大,测量精度高,读数显示直观,使用方便。近年来单线多点数字化测量技术的发展使温度检测技术实现了快速、可靠、低成本、数字化与网络化。新型的温度采集系统能采用新型单线智能化温度传感器,能以数字形式直接输出被测点温度值,具有测温误差小、分辨率高、抗干扰能力强、成本低、能远程传输数据等优点。 关键词 : 单片机控制;温度测量;模数转换电路;数码管显示器目 录设计内容、要求及分工11 实现方案及总体设计12 原理图的设计32.1 温度采集电路设计32.2 显示电路设计43 系统程序设计5 3.1 主程序设计. 5 3.2 子程序设计. .64 详细仪器清单 .95 总结与思考及致谢9参考文献10附录一:原理图11附录二:pcb图12附录三:程序.12多路温度采集及显示系统设计内容、要求及分工 温度是一种最基本的环境参数,人们的生活与环境温度息息相关,因此研究温度的测量方法和装置具有重要的意义。温度测量装置的关键是温度传感器,温度传感器的发展经历了三个发展阶段:(1)传统的分立式温度传感器,(2)模拟集成温度传感器,(3)智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。本人选择多路温度采集系统设计。系统主要技术指标:(1)4路温度采集电路;(2)a/d转换;(3)电子开关;(4)实时温度显示,采用led数码管显示。本次设计我们由五人为一组,朱其攀是我们小组的组长,负责实验报告部分;胡仲祥负责课程设计部分;黄治雄主要负责ppt部分,黄明负责原理图和pcb图的完成;胡永志则负责软件部分的设计及其调试。1实现方案及总体设计p87c51ra2/rb2/rc2/rd2 单片8 位微控制器采用先进的cmos 工艺制造,是80c51 微控制器家族的派生品。其指令集与80c51 指令集完全相同。该器件可通过并行编程的方法对一个otp 位进行编程,从而选择6 时钟或12 时钟模式。此外,也可通过时钟控制寄存器ckcon 中的x2 位选择6 时钟或12 时钟模式。该器件还包含有4 个8 位i/o 口、 个16 位定时/计数器、多个中断-4中断优先级-嵌套的中断结构、1个型uart、片内振荡器及实序电路。新增的特性使得p87c51ra2/rb2/rc2/rd2 成为功能更强大的微控制器,更地支持应用于脉宽调制,高速i/o 递增/递减计数能力如电机控制等场合。 图1 数字式多路温度采集系统结构框图 采用智能温度传感器采集环境温度并进行简单的模数转换;单片机p87c51执行程序对温度传感器传输的数据进行进一步的分析处理,转换成环境对应的温度值,通过i/o口输出到数码显示管(led)显示;由键盘输入控制选择某采集电路检测温度及显示;报警电路对设定的最高最低报警温度进行监控报警。 主要由温度传感器、p87c51单片机微控制器、以及数据传输显示三部分组成。温度传 感器单片机p87c51温度显示器 图2 系统原理简易图 本系统采用的主要硬件元件分别为p87c51单片机作为微控制器,使用单总线温度传感器芯片adc0809n作为温度传感器。温度传感器采集温度数据,温度传感器采集完一次数据后,经过a/d转换后,再由微控制器根据现场对数据的不同要求可以选择lcd显示以及上机pc机显示两种方式来显示数据。 2原理图的设计 2.1温度采集电路设计温度采样处理电路由温度传感器、放大电路、a/d转换电路等组成。采用分块结构的温度采样处理电路,其硬件电路结构复杂,也不便于数据的处理。采用智能温度传感器采样处理电路,能够方便的进行温度的采集及简单的数据处理。并且可以达到设计的技术指标要求。本系统选择智能温度传感器adc0809n作为温度采集电路的核心器件。图3 芯片图2.1.1温度采集电路结构 温度采集电路结构如图所示。工作时,由程序控制读取某智能温度传感器adc0809n采集的温度数据,送单片机处理。单片机控制电路核心是单片机芯片,其加上工作基本电路,就可以展开控制工作。图4单片机p87c51引脚图 2.2显示电路结构显示电路由单片机p87c51的p1.0端作数据输出,连接到低位sn54f04j的数据输入引脚端。单片机p87c51的p3.0、p3.1端分别接到一个与门电路的输入端。显示电路结构图如图4所示。图5 温度显示部分3系统程序设计 3.1 主程序设计主程序主要功能是控制调用子程序,实现温度的实时显示、读出并处理adc0809n的测量温度值(温度测量每1s进行一次)。其程序流程图如图6所示。调用显示子程序1s到?初次上电?读出温度值温度计算处理显示数据刷新发出温度转换开始命令nyyn初始化发出报警yn温度超过报警值?调用键盘扫描子程序图6数字式多路温度采集系统主程序流程图 3.2子程序设计(1)键盘扫描子程序键盘扫描子程序对按下的键进行判断,并转到按下的相应键对应的程序段,执行相应的功能。其程序流程图如图7所示。(2)温度转换命令子程序温度转换命令子程序主要是发送温度转换开始命令。在发送匹配rom命令后,紧跟着发送要进行测温的adc0809n的64位rom序列(这个序列号一般由厂方提供或通过实验的方式获得)。采用12位分辨率,转换时间约为750ms。其程序流程图如图8所示。确定键号有键按下?开始y转至相应的程序,执行相应的功能n其它子程序 发adc0809n复位命令命令匹配rom、64位地址发温度转换开始命令结束图7 键盘扫描子程序流程图 图8 温度转换命令子程序流程图(3)读出温度子程序读出温度子程序主要功能是读出ram中的9个字节,在读出时需进行crc校验,校验有错时不进行温度数据的改写。其程序流程图如图9所示。(4)计算温度子程序从adc0809n读取出的二进制值必须先转换成十进制值,才能用于字符的显示。在系统采用12位转换精度,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。通过观察可以发现一个十进制值和二进制值之间有很明显的关系。低字节的高半字节乘以0.0625恰好就是原整数。因此,把二进制的高字节的低半字节和低字节的高半字节组成一个字节,这个字节的二进制值化为十进制值后,就恰好是温度值的百、十、个位值;剩下的低字节的低半字节化成十进制后,就是温度值的小数部分。小数部分因为是半个字节,所以二进制值范围是0f,转换成十进制小数值就是0.0625的倍数。这样需要4位的数码管来显示小数部分,实际应用不必有这么高的精度,采用1位数码管来显示小数,可以精确到0.1。表5就是二进制和十进制小数的近似对应关系。其程序流程图如图10所示。表1 小数部分二进制和十进制的近似对应关系表小数部分二进制数0123456789abcdef十进制数0011233455667889发adc0809n复位命令命令发匹配rom、64位地址移入温度暂存区发读取温度命令读取ram中的9个字节9字节完?结束ynyncrc校验正确? 置“+”标志计算小数位温度bcd值计算整数位温度bcd值温度值取补码置“”标志温度零下?结束yn开始图9 读出温度子程序流程图 图10 计算温度子程序流程图(5)显示数据刷新子程序显示数据刷新子程序9主要是对显示缓冲区中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。其程序流程图如图11所示。十位数显示符号,百位数不显示十位数0?结束yn温度数据移入显示寄存器百位数0?百位数显示数据(不显示符号)yn 图11显示数据刷新子程序流程图 4详细仪器清单编号元件名称型号及规格数量1单片机芯片p87c112移位寄存器sn54als02j23七段数码显示器led24串转并芯片sn54f04j15a/d转换器adc0809n16开关-47逻辑电路sn74als104n38电阻10k129电阻8.2k110可变电阻-811电容10uf112电容30pf25 总结与思考及致谢本文设计了一种以p87c51单片机为核心控制器、以sn54als02作为温度传感器的多路温度采集与显示系统,该系统结构简单、低功耗、方便实用,并且硬件实现简单,得到了比教理想的实验效果。本系统能够通过单片机灵活编程进行各种功能的设定和修改。特别适用于大中型企业生产过程中多点温度的巡回测量和监控。本设计说明了集成化的优点及作用,也表明了科技发展的重要性,也让我们看到了单片机的未来生产控制中的地位,让我认识到了学习单片机的重要性。在本次课程设计中朱其攀为我们组的组长,在他的带领下,我们各组员都积极配合,很好的完成了自己的任务。我主要负责撰写课程设计报告,朱其攀开始绘制系统原理图和pcb图,在原理图和pcb图的绘制过程中胡永志也开始了软件部分的设计,黄志雄也很好的完成了他的ppt设计。在本次设计的过程中确确实实遇到很多问题,从而发现自己的很多不足。如何将自己所学在所用展现出来是自己在本次课程设计中得到的最大收获。几人为一小组的分配方式也让同学之间深深体会到了团队的重要性,每人出一份力才能事半功倍。很多问题在老师的指导下也迎刃而解。在这里我们特别感谢余宏生老师对我们孜孜不倦的辅导以及同学们热心的帮助,同时也感谢学校给我们这样好的机会来学习单片机设计。从本次设计中得到很多宝贵的经验,同时也学习了很多知识。参考文献1蔡明文,冯先成。单片机课程设计.武汉:华中科技大学出版社,2007.3。2 文哲雄,罗中良。单总线多点分布式温度测控系统的设计j.微计算机信息,2005,21。3 朱定华,戴汝平。单片微机原理与应用.(m) 北京:清华大学出版社,2003。4 康华光电子技术基础(模拟部分)m北京:高等教育出版社,19995 周航慈单片机程序设计基础m北京:北京航空航天大学出版社,2003附录一:原理图附录二:pcb图附录三:多路温度采集系统控制源程序 bits equ 20htimeok bit bits.1 ;1秒定时到标志。tempon bit bits.2 ;第一次温度转换标志。templ equ 26h ;从ds18b20中读取温度低位的存放处。temph equ 27h ;从ds18b20中读取温度高位的存放处。tempcl equ 28h ;转换后温度的小数位与个位存放处。tempch equ 29h ;转换后温度的十位与百位存放处,如果温度为负,则百位为符号位。temphead equ 36h ;从ds18b20高速缓存ram中读出数据的存放处的第一位。;*;常数定义。k0 equ p2.0 ;按键k0定义。k1 equ p2.1 ;按键k1定义。dq equ p1.7 ;数据传送脚定义。;*;多路温度采集系统源程序。;*org 0000hljmp startorg 000bhljmp dvto ;t0中断入口地址。;*;系统初始化。 org 0030hstart: mov sp,#60h ;数据存储区20h80h清“0”。cls: mov r0,#20h mov r1,#60hcls1: mov r0,#00h inc r0 djnz r1,cls1 clr p1.4 ;关移位脉冲。 clr p3.6 ;关闭报警器。 mov tmod,#21h ;选择定时器0工作方式1; mov th0,#0e0h ;20ms定时初值。 mov tl0,#0b1h mov scon,#00h ;选择串行口工作方式0; nop nop setb et0 ;开定时器t0。计时开始。 setb tr0 setb ea mov psw,#00h clr tempone ljmp main;*;主程序。main: lcall keybord ;调用键盘扫描子程序。loop1: lcall disp ;调用显示子程序。 jnb timeok,loop1 ;测温每1秒一次。 clr timeok jnb tempone,loop2 ;上电时先温度转换一次。 lcall readtemp ;读出温度值子程序。 lcall tempbcd ;温度bcd码计算处理子程序。 lcall dispbcd ;显示区bcd码温度值刷新子程序。 lcall alarm ;最高温度报警子程序。loop2: lcall tempconv ;温度开始转换子程序。 setb tempone sjmp main;*;定时器t0中断服子程序。dvt0: push psw mov psw,#10h mov th0,#0e0h mov tl0,#0b1h inc r7 cjnz r7,#32h,dvt01 mov r7,#00h setb timeok ;1秒定时到标志。 dvt01: pop psw reti;*;键盘扫描子程序。keybord: jb k0,l1 jnb k0,$ lcall function ljmp keybord l1: jb k1,l2 jnb k1,$ lcall function1 ljmp keybord l2: retfunction0: mov 40h,#28h ;第一路sn54als02j的64位序列号装入存储单元40h47h。 mov 41h,#0d6h mov 42h,#0b1h mov 43h,#8ah mov 44h,#00h mov 45h,#00h mov 46h,#00h mov 47h,#0e3h retfunction0: mov 40h,#28h ;第二路sn54als02j的64位序列号装入存储单元40h47h。 mov 41h,#0d6h mov 42h,#0b1h mov 43h,#8ah mov 44h,#00h mov 45h,#00h mov 46h,#01h mov 47h,#0e3h ret;*;ds18b20复位子程序。retet: setb dq nop nop clr dq mov r6,#0a0h ;延时480us djnz r6,$ mov r6,#0a0h djnz r6,$ setb dq mov r6,#32h ;延时70us djnz r6,$ mov r6,#3chreset1: mov c,dq jc reset2 djnz r6,reset1 mov r6,#64h ;延时200us djnz r6,$ sjmp reset retreset2: setb dq ret;*;读sn54als02j子程序,从sn54als02j中读出一个字节的数据。read: mov r7,#08h setb dq nop nopread1: clr dq nop nop nop setb dq mov r6,#07h ;延时15us。 djnz r6,$ mov c,dq mov r6,#3ch ;延时120us。 djnz r6,$ rrc a setb dq djnz r7,read1 mov r6,#3ch ;延时120us。 djnz r6,$ ret;*;写sn54als02j子程序,给sn54als02j中写入一个字节的数据。write: mov r7,#08h setb dq nop nopwrite1: clr dq mov r6,#07h ;延时15us。 djnz r6,$ rrc a mov dq,c mov r6,#34h ;延时104us。 djnz r6,$ setb dq djnz r7,write1 ret;*;温度开始转换子程序。tempconv: lcall reset mov a,#55h ;发送匹配rom命令。 lcall write mov r6,#34h ;延时104us。 djnz r6,$ mov r7,#08h ;发送64位rom编码。 mov r0,#40htempvonv1: mov a,r0 lcall write inc r0 djnz r7,tempconv1 ;64位rom编码发送完没有? mov r6,#34h ;延时104us。 djnz r6,$ mov a,#44h ;发送启动温度转换命令。 lcall write mov r6,#34h ;延时104us。 djnz r6,$ ret;*;读出温度值子程序。readtemp: lcall reset mov a,#55h ;发送匹配rom命令。 lcall write mov r6,#34h ;延时104us。 djnz r6,$ mov r7,#08h ;发送64位rom编码。 mov r0,#40hreadtemp1: mov a,r0 lcall write inc r0 djnz r7,tempconv1 mov r6,#34h ;延时104us。 djnz r6,$ mov a,#0beh ;发送读暂存器命令。 lcall write mov r6,#34h ;延时104us。 djnz r6,$ mov r5,#09h mov r0,#temphead mov b,#00hteadtemp2: lcall read mov r0,a inc r0readtemp3: lcall crc djnz r5,readtemp2 mov a,b jnz readtemp4 ;校证码不正确,则反回,不读取转换的温度。 mov r0,#tempheda mov templ,r0 ;读取转换后的温度低位到templ中。 inc r0 mov temph,r0 ;读取转换后的温度高位到temph中。readtemp4: ret;*;温度bcd码计算处理子程序。tempbcd: mov a,temph anl a,#80h jz tempbcd1 ;温度值为正。 clr c ;温度值为负时,求补码。 mov a,templ cpl a add a,#01h mov templ,a mov a,temph cpl a addc a,#00h mov temph,a mov tempch,#0bh ;执符号位“-”。 sjmp tempbcd2tempbcd1: mov tempch,#0ah ;执符号位“+”。tempbcd2: mov a,tempch swap a mov tempch,a mov a,templ ;小数部分处理。 anl a,#0fh mov dprt,#tempdottab movc a,a+dprt mov tempcl,a ;小数位放入templ低位中。 mov a,templ ;整数部分处理。 anl a,#0f0h swap a mov templ,a mov a,temph anl a,#0fh swap a orl a,templ lcall hexbcd mov templ,a anl a,#0f0h swap a orl a,tempch mov tempch,a mov a,templ anl a,#0fh swap a orl a,tempcl mov tempcl,a mov a,r7 jz tempbcd3 anl a,#0fh swap a mov r7,a mov a,tempch anl a,#0fh orl a,r7 mov tempch,atempbcd3: ret;*;小数部分码表。tempdottab: db 00h,01h,01h,02h,03h,03h,04h,04h,05h,06h, db 06h,07h,07h,08h,09h,09h;*;显示区bcd码温度值刷新子程序。dispbcd: mov a,tempcl anl a,#0fh mov 70h,a mov a,tempcl swap a anl a,#0fh mov 71h,a mov a,tempch anl a,#0fh mov 72h,a mov a,tempch swap a anl a,#0fh mov 73h,a mov a,tempch anl a,#0f0h cjne a,#10h,dispbcd1 sjmp dispbcd2dispbcd1: mov a,tempch anl a,#0fh jnz dispbcd2 ;十位数是0。 mov a,tempch swap a anl a,#0fh mov 73h,#0ah ;符号位不显示。 mov 72h,a ;十位数显示符号。dispbcd2: ret;*;显示子程序。disp: mov r7,#04h mov r0,#70h setb p1.4disp1: mov a,r0 ; mov dptr,#tab movc a,a+dptr mov subf,a jnb ri,$ clr ri inc r0 djnz r7,disp1 clr p1.4 ;关移位脉冲,并行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论