[精品文档]大学本科毕业论文范文模板参考资料基于单片机的数字温度设计与实现.doc

上传人:文库蛋蛋多 文档编号:4019263 上传时间:2023-04-01 格式:DOC 页数:30 大小:395.50KB
返回 下载 相关 举报
[精品文档]大学本科毕业论文范文模板参考资料基于单片机的数字温度设计与实现.doc_第1页
第1页 / 共30页
[精品文档]大学本科毕业论文范文模板参考资料基于单片机的数字温度设计与实现.doc_第2页
第2页 / 共30页
[精品文档]大学本科毕业论文范文模板参考资料基于单片机的数字温度设计与实现.doc_第3页
第3页 / 共30页
[精品文档]大学本科毕业论文范文模板参考资料基于单片机的数字温度设计与实现.doc_第4页
第4页 / 共30页
[精品文档]大学本科毕业论文范文模板参考资料基于单片机的数字温度设计与实现.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《[精品文档]大学本科毕业论文范文模板参考资料基于单片机的数字温度设计与实现.doc》由会员分享,可在线阅读,更多相关《[精品文档]大学本科毕业论文范文模板参考资料基于单片机的数字温度设计与实现.doc(30页珍藏版)》请在三一办公上搜索。

1、姓 名 专 业 班 级 微电子 论 文 名 称 数字温度计设计与实现 指 导 教 师 目录摘要:3Abstract3第一章 前言31.1 课题研究地意义41.2本课题主要地研究工作4第二章 总体方案设计52.1设计要求52.2选择方案与论证5第三章 系统硬件设计63.1硬件总设计63.2单片机介绍73.3单片机地应用83.4单片机地开发过程93.5 DS18B20介绍113.6显示电路设计123.7电路设计图12第四章 系统软件设计134.1主程序流程图134.2温度转换命令子程序134.3显示数据刷新子程序14参考文献15附录一15源程序代码15摘要:利用单片机AT89S52作为控制器,以及

2、用改进型智能温度传感器DS18B20作为温度采集器,设计了一款数字温度计。该数字温度计能够测出-55+125 之间地温度,与传统地温度计相比,具有读数方便、测温范围广、测温准确等特点,适合日常生活、工业生产与科学研究等领域对温度测量地需要。关键词:温度测量; DS18B20; AT89S52; 数字温度计。AbstractA digital thermometer was designed with AT89C2051 MCU as controller and improved intelligent temperature sensor DS18B20 as temperature col

3、lector. The temperature between -55+125 can be measured by this digital thermo-meter. Compared with the traditional thermometer, this digital thermometer has features of convenient reading, wide range temperature measurement, accurate temperature measurement and so on, it is suitable for the require

4、ment of temperature measurement in daily life, industrial production and scientific research fields. Keywords: temperature measurement; DS18B20; AT89C2051; digital thermometer第一章 前言 单片机技术作为计算机技术地一个分支-,广泛地应用于工业控制-,智能仪器仪表-,机电一体化产品-,家用电器等各个领域。“单片机原理与应用”在工科院校各专业中已作为一门重要地技术基础课而普遍开设。学生在课程设计-,毕业设计,科研项目中会广泛

5、应用到单片机知识-,而且-,进入社会后也会广泛接触到单片机地工程项目。鉴于此-,提高“单片机原理及应用”课地教学效果-,让学生参与课程设计实习甚为重要。单片机应用技术涉及地内容十分广泛-,如何使学生在有限地时间内掌握单片机应用地基本原理及方法-,是一个很有价值地教学项目。为此-,我们进行了“单片机地学习与应用”方面地课程设计-,锻炼学生地动脑动手以及协作能力。 单片机课程设计是针对模拟电子技术-,数字逻辑电路-,电路-,单片机地原理及应用课程地要求-,对我们进行综合性实践训练地实践学习环节-,它包括选择课设任务、软件设计-,硬件设计-,调试与编写课设报告等实践内容。通过此次课程设计实现以下三个

6、目标:第一-,让学生初步掌握单片机课程地试验、设计方法-,即学生根据设计要求与性能约束-,查阅文献资料-,收集、分析类似地相关题目-,并通过元器件地组装调试等实践环节-,使最终硬件电路达到题目要求地性能指标;第二-,课程设计为后续地毕业设计打好基础-,毕业设计是系统地工程设计实践-,而课程设计地着眼点是让学生开始从理论学习地轨道上逐渐引向实际运用-,从已学过地定性分析、定量计算地方法-,逐步掌握工程设计地步骤与方法-,了解科学实验地程序与实施方法。第三-,培养学生勤于思考乐于动手地习惯-,同时通过设计并制作单片机类产品-,使学生能够自己不断地学习接受新知识(如在本课设题目中存在智能测温器件DS

7、18B20-,就是课堂环节中不曾提及地“新器件”)-,通过多人地合作解决现实中存在地问题-,从而不断地增强学生在该方面地自信心及兴趣-,也提高了学生地动手能力-,对学生以后步入社会参加工作打下一定良好地实践基础。1.1 课题研究地意义随着科技地不断发展-,现代社会对各种信息参数地准确度与精确度要求都有了几何地增长-,而如何准确而又迅速获得这些参数就需要受制于现代信息基础地发展水品。在三大信息信息采集(即传感器技术)信息传输(通信技术)与信息处理(计算机技术)中-,传感器属于信息技术地前沿尖端产品-,尤其是温度传感器技术-,在我国各领域已经引用地非常广泛-,可以说是参透到社会地每一个领域-,人民

8、地生活与环境地温度息息相关-,在工业生产过程中需要实时测量温度-,在农业生产也离不开温度测量-,因此研究温度地测量方法与装置具有重要地意义。1.2本课题主要地研究工作 温度是工业对象地一个重要地被控参数。然而采用地测温元件与测温方法也不相同:产品地工艺不同-,控制温度地精度也不同。传统地控制方式已不能满足高精度-,高速度地控制要求-,如温度控制表温度接触器-,其主要缺点是温度波动范围大-,由于他主要通过控制接触器地通断时间比例来达到改变加热功率地目地-,受仪表本身误差与交流接触器地寿命限制-,通断频率很低。近几年来快速发展了多种先进地温度控制方式-,如:PID控制-,模糊控制-,神经网络及遗传

9、算法控制等。这些控制技术大大地提高了控制精度-,不但使控制变地简便-,而且使产品地质量更好-,降低了产品地成本-,提高了生产效率。第二章 总体方案设计2.1设计要求1.温度大于上限或小于下限时可以进行两路继电器地控制-,并有状态指示灯显示。2.温度上限下限可以设定。3.用按键进行上下限地设定操作:1.按下设置键-,进入温度下限设置报警值-,按加则加-,减则减2.再按下设置键-,进入温度上限设置报警值-,按加则加-,减则减3.再按下设置键-,返回显示当时地温度值。2.2选择方案与论证芯片方案一 采用AT89S51芯片作为硬件核心-,内部具有4KB ROM存储空间-,能于3V地超低压工作-,而且与

10、MCS-51系列地单片机完全兼容-,但是运用于电路设计中时由于不具备ISP在线编程技术-,所以在对电路进行调试时-,由于程序地错误修改或对程序地新增功能需要烧入程序时-,对芯片地多次拨插会对芯片造成一定地损坏。芯片方案二 采用AT89S52芯片-,AT89S52是一种低功耗-,高性能地8位CMOS微控制器-,具有8K地可编程Flash存储器。同时具有AT89S51地功能-,且具有在线编程可擦除技术-,当对电路进行调试时-,由于程序地错误修改或对程序新增功能需要烧入程序时-,不需要对芯片多次拔插-,所以不会对芯片造成损坏-,隐刺选择采用AT89S52作为主控制系统核心。温度传感方案一 由于本设计

11、是测温电路-,可以使用热敏电阻之类地器件利用其感温效应-,在将随被测温度变化地电压或电流采集过来-,进行A/D转换后-,就可以用单片机进行数据地处理-,在现实点路上-,就可以将被测温度显示出来-,这种设计需要用到A/D转换电路-,感温电路比较麻烦。温度传感方案二 进而考虑到用温度传感器-,在单片机电路设计中-,大多都是使用传感器-,所以这是非常容易想到地-,所以可以采用一只温度传感器DS18B20-,此传感器-,可以很容易直接读取被测温度值-,进行转换-,就可以满足设计要求。最终方案采用AT89S52作为主控制芯片-, DS18B20采集温度来设置此毕业作品。第三章 系统硬件设计3.1硬件总设

12、计系统框图:如图3-1所示 图3-1 系统框图3.2单片机介绍 二十世纪跨越了三个“电”地时代-,即电气时代、电子时代与现已进入地电脑时代。不过-,这种电脑-,通常是指个人计算机-,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机-,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械地单片机(亦称微控制器)。顾名思义-,这种计算机地最小系统只用了一片集成电路-,即可进行简单运算与控制。因为它体积小-,通常都藏在被控机械地“肚子”里。它在整个装置中-,起着有如人类头脑地作用-,它出了毛病-,整个装置就瘫痪了。现在-,这种单片机地使用领域已十分广泛-,如智能仪表、实时工控、通讯设备、导

13、航系统、家用电器等。各种产品一旦用上了单片机-,就能起到使产品升级换代地功效-,常在产品名称前冠以形容词“智能型”-,如智能型洗衣机等。 计算机地产生加快了人类改造世界地步伐-,但是它毕竟体积大。单片机在这种情况下诞生了。截止今日-,单片机应用技术飞速发展-,纵观我们现在生活地各个领域-,从导弹地导航装置-,到飞机上各种仪表地控制-,从计算机地网络通讯与数据传输-,到工业自动化过程地实时控制与数据处理-,以及我们生活中广泛使用地各种智能IC卡、电子宠物等-,这些都离不开单片机。单片机自70年代问世以来得到蓬勃发展-,目前单片机功能正日渐完善:单片机集成越来越多资源-,内部存储资源日益丰富-,用

14、户不需要扩充资源就可以完成项目开发-,不仅是开发简单-,产品小巧美观-,同时抗干扰能力加强,系统也更加稳定-,使得它更加适合工业控制领域-,具有更加广阔地市场前景;提供在线编程能力-,加速了产品地开发进程-,为企业产品上市赢得宝贵时间。此外单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用广泛、通用性强等突出优点。单片机地设计目标主要是增强“控制”能力-,满足实时控制(就是快速反应) 地需要。 我作为21世纪地工科大学生-,学地是电气地专业-,无论是从事科学研究工作-,还是开办电子器件地工厂还是经营电子厂品地贸易-,不仅要熟练地使用通用微机进行各种数据处理-,还要把计算机技术运用到本专业

15、领域或相关领域-,既具有开发创新能力。这就要求我们要熟练地掌握单片机。单片机是一种集成在电路芯片-,是采用超大规模集成电路技术把具有数据处理能力地中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口与中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成地一个小而完善地计算机系统。这些电路能在软件地控制下准确、迅速、高效地完成程序设计者实现规定地任务。3.3单片机地应用单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备地智能化管理及过程控制等领域-,大致可分如下几个范畴:1.在智能仪器仪表上地应用

16、 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化与使用方便等优点-,广泛应用于仪器仪表中-,结合不同类型地传感器-,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量地测量。采用单片机控制使得仪器仪表数字化、智能化、微型化-,且功能比起采用电子或数字电路更加强大。例如精密地测量设备(功率计-,示波器-,各种分析仪)。2.在工业控制中地应用 用单片机可以构成形式多样地控制系统、数据采集系统。例如工厂流水线地智能化管理-,电梯智能化控制、各种报警系统-,与计算机联网构成二级控制系统等。 3.在家用电器中地应用 可以这样说-,现在地家用电器基本上都

17、采用了单片机控制-,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备-,五花八门-,无所不在。 4.在计算机网络与通信领域中地应用 现代地单片机普遍具备通信接口-,可以很方便地与计算机进行数据通信-,为在计算机网络与通信设备间地应用提供了极好地物质条件-,现在地通信设备基本上都实现了单片机智能控制-,从手机-,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见地移动电话-,集群移动通信-,无线电对讲机等。 5.单片机在医用设备领域中地应用 单片机在医用设备中地用途亦相当广泛-,例如医用呼吸机-,各种分析仪-,监护仪-,超声诊断设备及病床

18、呼叫系统等等。 6.在各种大型电器中地模块化应用 某些专用单片机设计用于实现特定功能-,从而在各种电路中进行模块化应用-,而不要求使用人员了解其内部结构。如音乐集成单片机-,看似简单地功能-,微缩在纯电子芯片中(有别于磁带机地原理)-,就需要复杂地类似于计算机地原理。如:音乐信号以数字地形式存于存储器中(类似于ROM)-,由微控制器读出-,转化为模拟音乐电信号(类似于声卡)。 在大型电路中-,这种模块化应用极大地缩小了体积-,简化了电路-,降低了损坏、错误率-,也方便于更换。 7.单片机在汽车设备领域中地应用 单片机在汽车电子中地应用非常广泛-,例如汽车中地发动机控制器-,基于CAN总线地汽车

19、发动机智能电子控制器-,GPS导航系统-,abs防抱死系统-,制动系统等等。 此外-,单片机在工商-,金融-,科研、教育-,国防航空航天等领域都有着十分广泛地用途。3.4单片机地开发过程这里所说地开发过程并不是一般书中所说地从任务分析开始-,我们假设已设计并制作好硬件-,下面就是编写软件地工作。在编写软件之前-,首先要确定一些常数、地址-,事实上这些常数、地址在设计阶段已被直接或间接地确定下来了。如当某器件地连线设计好后-,其地址也就被确定了-,当器件地功能被确定下来后-,其控制字也就被确定了。然后用文本编辑器(如EDIT、CCED等)编写软件-,编写好后-,用编译器对源程序文件编译-,查错-

20、,直到没有语法错误-,除了极简单地程序外-,一般应用仿真机对软件进行调试-,直到程序运行正确为止。运行正确后-,就可以写片(将程序固化在EPROM中)。在源程序被编译后-,生成了扩展名为HEX地目标文件-,一般编程器能够识别这种格式地文件-,只要将此文件调入即可写片。单片机 AT89S52 如图3-2所示图3-2 单片机原理图而AT89S52是一种低功耗、高性能CMOS8位微控制器-,具有8K在系统可编程Flash存储器。使用Atmel公司高度密度非易失性存储器技术制造-,与工业80C51产品指令与引脚完全兼容。片上Flash允许程序存储器在系统可编程-,亦适于常规编程器。在单芯片上-,拥有灵

21、巧地8位CPU与在系统可编程Flash-,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效地解决方案。AT89S52具有以下标准功能:8K字节Flash-,256字节RAM,32位I/O口线-,看门狗定时器-,2个数据指针-,三个16位定时器/计数器-,一个6向量2级中断结构-,全双工串行口-,片内晶振及时钟电路。另外-,AT89S52可降至0Hz静态逻辑操作-,支持2种软件可选择节电模式。空闲模式下-,CPU停止工作-,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下-,RAM内容被保存-,振蕩器被冻结-,单片机一切工作停止-,直到下一个中断或硬件复位为止。AT89

22、S52主要性能1. 与MCS-51单片机产品兼容2. 8K字节在系统可编程Flash存储器3. 1000次擦写周期4. 全静态操作:0Hz33Hz5. 三级加密程序存储器6. 32个可编程I/O口线7. 三个16位定时器/计数器8. 八个中断源9. 全双工UART串行通道10. 低功耗空闲与掉电模式11. 掉电后中断可唤醒12. 看门狗定时器13. 双数据指针14. 掉电标识符3.5 DS18B20介绍传感器 如图3-3所示 图3-3 实物图 DS18020数字温度计以9位数字量地形式反映器件地温度值, DS18020通过一个单线接口发送或接收信息-,因此在中央微处理器与DS1820只见仅需一

23、条连接线(加上地线)。用于读写与温度转换地电源可以从数据线本身获得-,无需外部电源。因为每个DS1820都有一个独特地片序列号-,所以多只DS1820可以同时连在一根单线总线上-,这样就可以把温度传感器放在许多不同地地方。这一特性用在HVAC环境控制、探测建筑物。DS1820是这样测温地用一个高温系数地振荡器确定一个们周期-,内部计数器在这个们周期内对一个低温度系数地震荡器地脉冲进行计数来得到温度值。计数器被预置到对应于-55地一个值。如果计数器在们周期结束前到达0-,则温度寄存器(同样被预置到-55)地值增加-,表明所测温度大于-55。同时-,计数器被复位到一个值-,这个值由斜坡式累加器电路

24、确定-,斜坡式累加器电路用来补偿感温振荡器地抛物线特性-,然后计数器又开始计数直到0-,如果门周期仍未结束-,将重复这一过程。3.6显示电路设计显示电路采用4位共阴极LED数码管-,P0口由上拉电阻提高驱动能力-,作为段码输出并作为数码管地驱动。P2口地低四位作为数码管地位选端。采用动态扫描地方式显示。如图3-4所示 图3-4 显示电路原理图3.7电路设计图电路PCB图如3-5所示 图3-5 电路PCB图第四章 系统软件设计4.1主程序流程图程序地主要功能是负责温度地实时显示、读出并处理DS18B20地测量地当前温度值-,温度测量每1s进行一次。如图4-1所示 图4-1主程序流程图4.2温度转

25、换命令子程序温转换命令子程序主要是发温度转换开始命令-,当采用12位分辨率时转换时间约为750ms-,在本程序设计中采用1s显示程序延时法等待转换地完成。如图4-2所示 图4-2温度转换流程图4.3显示数据刷新子程序显示数据刷新子程序主要是对分离后地温度显示数据进行刷新操作-,当标志位位为1时将符号显示位移入第一位。如图4-3所示 图4-3显示数据流程图参考文献1.AVR单片机原理及其应用宋建国2.单片机基础李光弟附录一源程序代码 /*/#include#define uchar unsigned char#define uint unsigned intunsigned char dispc

26、ount;unsigned char code dispcode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/七段共阳数码管09代码sbit DQ = P14;sbit key1 = P20;sbit key2 = P21;sbit key3 = P22;sbit beel = P10;sbit D_re = P11;sbit U_re = P12;sbit LED_sum_1 = P24;sbit LED_sum_2 = P25;sbit LED_sum_3 = P26;sbit LED_sum_4 = P27; /*/uchar d

27、ata disdata5;uchar data D_disdata3;uchar data U_disdata3;uint tvalue;/温度值uchar tflag;uchar flag;uint D_tvalue;uint U_tvalue;/*18B20温度传感程序*/void delay1ms(unsigned int ms)/延时1毫秒(不够精确地)unsigned int i,j; for(i=0;ims;i+) for(j=0;j0;i-) DQ = 0; /给脉冲信号 dat=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10

28、); return(dat);void ds1820wr(uchar wdata)/*写数据*/unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata=1; /*读温度*/ read_temp()/*读取温度值并转换*/ uchar a,b;ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ds1820wr(0x44);/*启动温度转换*/ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ ds1820wr(0xb

29、e);/*读取温度*/ a=ds1820rd();b=ds1820rd();tvalue=b;tvalue=8;tvalue=tvalue|a; if(tvalue0x0fff) tflag=0; else tvalue=tvalue+1;tflag=1; tvalue=tvalue*(0.625);/温度值扩大10倍-,精确到1位小数return(tvalue);/* 延时n个ms函数 */ void delay_nms(uint ms) /delay ms function uchar i; while(ms-) for(i = 0; i 80; i+); /*/ void ds1820d

30、isp()/温度值显示 disdata0=tvalue/100;/十位数 disdata1=tvalue%100/10;/个位数 disdata2=tvalue%10;/小数位 D_disdata0=D_tvalue/100;/十位数 D_disdata1=D_tvalue%100/10;/个位数 D_disdata2=D_tvalue%10;/小数位 U_disdata0=U_tvalue/100;/十位数 U_disdata1=U_tvalue%100/10;/个位数 U_disdata2=U_tvalue%10;/小数位 if(flag=0) P0=dispcodedisdata0; L

31、ED_sum_1 = 1; LED_sum_2 = 0; LED_sum_3 = 1; LED_sum_4 = 1; delay_nms(1); P0=0xff; P0=dispcodedisdata1 & 0x7f; LED_sum_1 = 1; LED_sum_2 = 1; LED_sum_3 = 0; LED_sum_4 = 1; delay_nms(1); P0=0xff; P0=dispcodedisdata2; LED_sum_1 = 1; LED_sum_2 = 1; LED_sum_3 = 1; LED_sum_4 = 0; delay_nms(1); P0=0xff; els

32、e if(flag=1) P0=dispcodeD_disdata0; LED_sum_1 = 1; LED_sum_2 = 0; LED_sum_3 = 1; LED_sum_4 = 1; delay_nms(1); P0=0xff; P0=dispcodeD_disdata1 & 0x7f; LED_sum_1 = 1; LED_sum_2 = 1; LED_sum_3 = 0; LED_sum_4 = 1; delay_nms(1); P0=0xff; P0=dispcodeD_disdata2; LED_sum_1 = 1; LED_sum_2 = 1; LED_sum_3 = 1;

33、LED_sum_4 = 0; delay_nms(1); P0=0xff; else if(flag=2) P0=dispcodeU_disdata0; LED_sum_1 = 1; LED_sum_2 = 0; LED_sum_3 = 1; LED_sum_4 = 1; delay_nms(1); P0=0xff; P0=dispcodeU_disdata1 & 0x7f; LED_sum_1 = 1; LED_sum_2 = 1; LED_sum_3 = 0; LED_sum_4 = 1; delay_nms(1); P0=0xff; P0=dispcodeU_disdata2; LED_

34、sum_1 = 1; LED_sum_2 = 1; LED_sum_3 = 1; LED_sum_4 = 0; delay_nms(1); P0=0xff; /*/ /=void delayMs (uchar ms) uchar i;while (-ms)for (i = 0; i 125; i+);/=void delaySec (uchar sec) uchar i;while (-sec)for (i = 0; i 200; i+)delayMs(6); void Countol() int i; if(tvalueD_tvalue) D_re = 0;U_re = 1;TR1 = 1;

35、 for(i=0;iU_tvalue) D_re = 1;U_re = 0;TR1 = 1; for(i=0;i4;i+) beel = 0; delaySec(2); beel = 1; delaySec(2); else D_re=1; U_re=1; beel=1; TR1 = 0; main() ET1=1; EA=1; TMOD=0x10; TH1=(65536-18000)/256; TL1=(65536-18000)%256; TR1=0; D_tvalue = 100; U_tvalue = 370; while(1) read_temp(); ds1820disp(); Countol(); if(key3 = 0) delay1ms(10);if(key3 = 0) while(key3 = 0); flag+; if(flag=3)flag=0; if(key2 = 0) delay1ms(10);if(key2 = 0) while(key2 = 0); if(flag=1) D_tvalue+=10; if(D_tvalue=990)D_tvalue=0; if(flag=2) U_tvalue+=10; if(U_tvalue=990)U_tvalue=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号