基于AT89C2051单片机的温度测控器(共67页)_第1页
基于AT89C2051单片机的温度测控器(共67页)_第2页
基于AT89C2051单片机的温度测控器(共67页)_第3页
基于AT89C2051单片机的温度测控器(共67页)_第4页
基于AT89C2051单片机的温度测控器(共67页)_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1、PAGE PAGE 74郑州科技(kj)学院单片机原理(yunl)及应用课程设计 TOC o 1-3 h z u HYPERLINK l _Toc432675854 摘 要 PAGEREF _Toc432675854 h 3 HYPERLINK l _Toc432675855 引言(ynyn) PAGEREF _Toc432675855 h 3 HYPERLINK l _Toc432675856 1. 方案(fng n)论证 PAGEREF _Toc432675856 h 5 HYPERLINK l _Toc432675857 1.1 系统功能(gngnng)定义 PAGEREF _Toc43

2、2675857 h 5 HYPERLINK l _Toc432675858 1.2 总体方案 PAGEREF _Toc432675858 h 5 HYPERLINK l _Toc432675859 2. 系统硬件电路设计 PAGEREF _Toc432675859 h 6 HYPERLINK l _Toc432675860 2.1 系统硬件框图 PAGEREF _Toc432675860 h 6 HYPERLINK l _Toc432675861 2.2 测温模块 PAGEREF _Toc432675861 h 7 HYPERLINK l _Toc432675862 2.2.1 DS18B20

3、的主要特征有以下几点 PAGEREF _Toc432675862 h 7 HYPERLINK l _Toc432675863 2.2.2 DS18B20的工作原理 PAGEREF _Toc432675863 h 9 HYPERLINK l _Toc432675864 2.3 主控模块 PAGEREF _Toc432675864 h 12 HYPERLINK l _Toc432675865 2.3.1 主控模块功能分析 PAGEREF _Toc432675865 h 12 HYPERLINK l _Toc432675866 2.3.2 AT89C2051芯片的功能特性 PAGEREF _Toc4

4、32675866 h 12 HYPERLINK l _Toc432675867 2.4 显示模块 PAGEREF _Toc432675867 h 14 HYPERLINK l _Toc432675868 2.5 报警模块 PAGEREF _Toc432675868 h 15 HYPERLINK l _Toc432675869 2.6 电路原理图的绘制和电路的焊接 PAGEREF _Toc432675869 h 17 HYPERLINK l _Toc432675870 2.6.1 PROTEL简介 PAGEREF _Toc432675870 h 17 HYPERLINK l _Toc432675

5、871 2.6.2 电路的焊接 PAGEREF _Toc432675871 h 18 HYPERLINK l _Toc432675872 3. 系统软件设计 PAGEREF _Toc432675872 h 18 HYPERLINK l _Toc432675873 3.1 主控程序设计 PAGEREF _Toc432675873 h 18 HYPERLINK l _Toc432675874 3.2 温度信息的采集 PAGEREF _Toc432675874 h 19 HYPERLINK l _Toc432675875 3.3 温度的显示操作 PAGEREF _Toc432675875 h 20

6、HYPERLINK l _Toc432675876 4调试与总结 PAGEREF _Toc432675876 h 21 HYPERLINK l _Toc432675877 致 谢 PAGEREF _Toc432675877 h 22 HYPERLINK l _Toc432675878 参考文献 PAGEREF _Toc432675878 h 24 HYPERLINK l _Toc432675879 附 录 PAGEREF _Toc432675879 h 24 HYPERLINK l _Toc432675880 附录一 电路原理图 PAGEREF _Toc432675880 h 24 HYPER

7、LINK l _Toc432675881 附录二 实物图 PAGEREF _Toc432675881 h 26 HYPERLINK l _Toc432675882 附录(fl)三 系统(xtng)主程序 PAGEREF _Toc432675882 h 27摘 要: 本次实习中选择了单片机89C2051并和DS18B20传感器搭建硬件电路,最终(zu zhn)实现了基于89C2051的单片机温度控制器的设计。DS18B20是新型数字温度传感器,采用它与单片机连接测量温度可简化温度控制器的电路,提高可靠性。关键词: 89C2051 单片机;DS18B20 温度(wnd)控制器引言(ynyn)计算机

8、的发展日新月异,其技术也突飞猛进,而嵌入式计算机这种专用计算机在当今科学的发展过程中更是不可或缺的。 嵌入式系统是近年来发展很快的计算机方面的学科(xuk)方向,并迅速渗透到控制、自动化、仪器仪表等学科。 嵌入式方向包括了软硬件协同设计、嵌入式体系结构、实时操作系统、嵌入式产品设计等方面的知识,需要掌握嵌入式系统设计的典型开发工具,培训学生具备嵌入式系统软、硬件的开发能力,对于特定行业领域(如移动终端、数字家庭、信息家电以及对传统产业信息化改造)已经逐步形成了特定的嵌入式开发方法与手段。 随着现代化信息技术的飞速发展,能独立工作的温度检测系统已广泛应用与诸多的领域。传统的温度检测大多以热敏电阻

9、为传感器,但热敏电阻可靠性差、测量温度准确率低,且必须经过专门的接口电路转换成数字信号后才能进行处理。它具有微型化、低功耗、高性能、抗干扰能力强等优点,特别适合于构成温度检测系统,可直接将温度转化成串行数字信号进行处理。DS18B20的单片机温度控制器具有电路简单、可靠性高的优点。本温度控制器对温度进行实时测量并显示,用户(yngh)可设定最高限报警温度值和最低限报警温度值,有一定的温度控制功能。温度是农业生产中常见的工艺参数之一,任何物理变化和化学反应过程都与温度密切相关,因此温度 控制是工业现代化的重要任务。对于不同生产情况和工艺要求下的温度控制,所采用的加热方式(fngsh)、燃料、控制

10、方案也有所不同。单片机又称单片微控制器,是把一个计算机系统集成到一个芯片上,它的体积小、质量轻、价格便宜,应用和开发十分便利。本文选用AT89C2051芯片做为控制器,并采用ds18b20数码管显示及12M晶振产生时钟信号,分析了系统硬件各组成之间的通讯协议。1. 方案(fng n)论证1.1 系统功能(gngnng)定义根据设计要求,可以(ky)先大致勾勒出要完成设计,需要几个模块具有如下图所示的的功能, 图1.1功能模块框图 1.2 总体方案 通过对系统功能的定义,可以将基于单片机的数字温度计采用温度传感器DS18B20作为测温元件用来满足温度测量,并将温度信号经由其本身所具有的A/D转换

11、功能,转换成数字信号经单片机处理显示于数码管显示器,从而完成温度的测量和显示。 整个系统控制将由AT89C2051单片机芯片为核心构成。选用(xunyng)DS18B20作为测温元件,数码管作为显示器件,各个检测信号、显示信号可由单片机的I/O口进行。 设计任务(rn wu):用单片机设计一个测温范围在55125的数字(shz)温度计。 设计要求:完成该系统的软硬件设计,学习掌握单片机采集温度的设计方法提高学习新知识、新技能的能力,培养独立设计的能力2. 系统硬件电路设计2.1 系统硬件框图 根据系统功能要求,可以先大致勾勒出完成任务所需的系统硬件框图如下: 图2.1 硬件结构(jigu)框图

12、 主控模块采用性价比较高的单片机芯片,在其内部(nib)将预设好的程序储存,可通过程序的运行控制测温模块进行测温,测温模块主要是由DS18B20构成,将其与所测对象进行接触即可获取被测对象的温度数据,报警模块只有当温度超出预定值时才会工作,而所测得的温度将通过显示模块的液晶显示器以数字形式显示。2.2 测温模块(m kui) 本设计的测温元件采用的是DS18B20测温元件,DS18B20是由DALLAS(达拉斯)公司生产的一种温度传感器。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20很受欢迎。这是世界上第一片支持“一线总线”接口的温度传感器。DS18B20数字

13、温度计提供9位(二进制)温度读数,指示器件的温度。信息经过单线接口送入DS18B20或从DS18B20送出,因此从单片机到DS18B20仅需一条线连接即可。它可在1秒钟(典型值)内把温度变换成数字。2.2.1 DS18B20的主要(zhyo)特征有以下几点全数字温度转换(zhunhun)及输出; 先进(xinjn)的单总线数据通信; 最高12位分辨率,精度可达土0.5; 12位分辨率时的最大工作周期为750毫秒; 可选择寄生工作方式; 检测温度范围为55+125; 内置EEPROM,限温报警功能; 64位光刻ROM,内置产品序列号,方便多机挂接; 多样封装形式,适应不同硬件系统。 图2.2 D

14、S18B20管脚排列(pili)及封装结构图 图2.3 DS18B20实物图 由其引脚可看出(kn ch),其3 个引脚: GND为电压地直接接地(jid);DQ为单数据总线用来与单片机相连接,本系统中DQ与单片机P3.5接口连接,仅此一个连接就能保证DS18B20与单片机之间的数据交换;VDD引脚接电源电压12。 图2.4 DS18B20寄生电源工作(gngzu)方式 图2.5 DS18B20 外接电源工作(gngzu)方式2.2.2 DS18B20的工作(gngzu)原理 DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。一个工作周期可分为两个部分,即温度检测和

15、数据处理。18B20共有三种形态的存储器资源,分别是:ROM 只读存储器,用于存放DS18B20ID编码 ,其前8位是单线系列编码(DS18B20 的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM, RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为 8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户 EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7

16、、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8 个字节的CRC码。EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。我们在每一次读温度之前都必须进行复杂的且精准时序的处理,因为DS18B20的硬件简单结果就会导致软件的巨大开消。 图2.6 DS18B20的内部结构框图(kungt) 低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器 1 ,为计数器提供一频率稳定的计数脉冲。高温度系数

17、晶振随温度变化其震荡频率明显改变,很敏感的振荡器,所产生的信号作为减法计数器 2 的脉冲输入,为计数器 2 提供一个频率随温度变化的计数脉冲。图中还隐含着计数门,当计数门打开(d ki)时, DS18B20 就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将 -55 所对应的基数分别置入减法(jinf)计数器 1 和温度寄存器中,减法计数器 1 和温度寄存器被预置在 -55 所对应的一个基数值。减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1 的预置值减到 0 时温度寄存器的值将加 1 ,减法

18、计数器 1 的预置将重新被装入,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。 图2.7 DS18B20的内部测温电路(dinl)框图2.3 主控模块(m kui)2.3.1 主控模块(m kui)功能分析 在本系统中,主控模块居于非常重要的地位。它是整个系统的中枢,系统运行所需的每个操作指令都要由其发出。它一方面控制着测温模块进行

19、温度信息的采集,另一方面也控制着显示模块的工作。最重要的是,由测温模块所采集到的温度信息必须经由主控模块的处理才能在显示模块上显示,从而使整个系统进行正常的运转和工作。针对以上分析本系统主控模块中的单片机芯片采用了AT89C2051芯片,此芯片功能强大,能够完全满足系统运行的需求。2.3.2 AT89C2051芯片的功能特性 AT89C2051是美国Atmel公司生产的低电压、高性能CMOS 8位单片机6-7,片内含有 2 KB 的反复擦写的只读程序存储器和128 B 的随机存取数据存储器(RAM)。美国DALLAS半导体公司生产的DS18B20 型单线智能温度传感器,属于新一代适配微处理器的

20、智能传感器。数字温度计是以 DS18B20 为检测元件, 由AT89C2051 作为主控制器的温度计,具有功耗低、结构简单、读数方便、测温范围广、测温准确的特点。 AT89C2051是MCS-51产品(chnpn)的兼容型,它具有2k的 HYPERLINK /stock-ic/FLASH.html t _blank FLASH ROM、128字ROM,15根I/O HYPERLINK /product/searchfile/11629.html t _blank 引线(ynxin)、两个(lin )16位定时/ HYPERLINK /product/searchfile/3037.html t

21、 _blank 计数器、一个五向量两级中断结构、一个全双工串行口、一个精密模拟 HYPERLINK /product/searchfile/4176.html t _blank 比较器以及片内 HYPERLINK /info/4152.html t _blank 振荡电路和时钟电路。它的 P1口和P3口是双向I/O口,其中P1.2P1.7、P3.0P3.5和P3.7带有内部上拉 HYPERLINK /product/searchfile/294.html t _blank 电阻。在AT89C2051用作输入端时,将首先向 HYPERLINK /product/searchfile/10231.

22、html t _blank 引脚写“1”而使内部 HYPERLINK /data/iccompany/detail243.html t _blank MOS管截止以便引脚处于悬浮状态,从而可获得高阻抗输入。 其主要性能如下:与MCS-51单片机产品兼容2K字节在系统可编程Flash存储器1000次擦写周期全静态操作:0Hz24Hz两级加密程序存储器15个可编程I/O口线两个16位定时器/计数器六个中断源可编串行UART通道1288位内部(nib)RAM 直接(zhji)LED驱动输出 低功耗空载(kn zi)和掉电方式 片内模拟比较器2.7V6V的操作范围 图2.8 AT89C2051的引脚结

23、构2.4 显示模块 本系统最突出的特点就是能方便直观地对所测温度进行读取,因此显示模块的选取极为重要,由三位共阳数码管(温度值显示)作为显示模块。采用动态扫描的方法,其中P3.0,P3.1,P3.2,P3.3控制位选,P1控制段选。由P3.0,P3.1,P3.2,P3.3向各位轮流输出扫描信号,使每一瞬间只有一个数码管被选通,然后由 P1送入该位所要显示的字形码,点亮该位字形段显示的字形。在P1送出的码段和P3.0,P3.1,P3.2,P3.3送出的位段的配合控制下,使各个数码管轮流点亮显示各自的字形。 注:下为三位共阳数码管图,显示(xinsh)摄氏度符号的一位共阳数码管倒置焊接即可。 图2

24、.9 三位共阳数码管图图2.10 七段数码管引脚图2.5 报警(bo jng)模块 本系统采用3 mm的发光(f un)二极管作为报警装置,发光(f un) HYPERLINK /view/1016.htm t _blank 二极管简称为LED。由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,当电子与 HYPERLINK /view/194378.htm t _blank 空穴复合时能辐射出 HYPERLINK /view/68621.htm t _blank 可见光,因而可以用来制成发光二极管。在电路及 HYPERLINK /view/56517.htm t _blank 仪器中作为

25、指示灯,或者组成文字或数字显示。磷 HYPERLINK /view/34646.htm t _blank 砷化镓二极管发红光, HYPERLINK /view/158655.htm t _blank 磷化镓二极管发绿光, HYPERLINK /view/9636.htm t _blank 碳化硅二极管发黄光。 发光二极管的核心部分是由 HYPERLINK /view/84698.htm t _blank P型半导体和N型半导体组成的 HYPERLINK /view/1201023.htm t _blank 晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。在某些半导体材料的PN结中,

26、注入的少数 HYPERLINK /view/394083.htm t _blank 载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加 HYPERLINK /view/2979173.htm t _blank 反向电压,少数载流子难以注入,故不发光。这种利用 HYPERLINK /view/2243347.htm t _blank 注入式电致发光原理制作的二极管 叫发光二极管,通称LED 。 当它处于正向 HYPERLINK /view/670206.htm t _blank 工作状态时(即两端加上正向电压),电流从LED HYPERLINK /vie

27、w/767315.htm t _blank 阳极流向阴极时,半导体 HYPERLINK /view/51869.htm t _blank 晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。图2.11 发光(f un)二极管的构造图 选用发光(f un)二极管的好处: 1.效能(xionng): 消耗能量较同光效的 HYPERLINK /view/23342.htm t _blank 白炽灯减少80% 2.适用性: 体积很小,每个单元LED小片是3-5mm的正方形,所以可以制备成各种形状的器件,并且适合于易变的环境 3.稳定性: 10万小时,光衰为初始的50% 4.响应时间: 其白炽灯的

28、 HYPERLINK /view/84619.htm t _blank 响应时间为毫秒级, HYPERLINK /view/59252.htm t _blank LED 灯的响应时间为纳秒级对环境污染 无有害金属汞 2.6 电路原理图的绘制和电路的焊接 在硬件的设计前期,根据框图对电路中可能出现的电路,进行了模拟实验,并根据实验结果对后期的硬件设计进行了合理化的修改完善。在第一章中已分析了系统并绘制了框图,并根据框图分别设计了各部分电路。由于温度传感器 DS18B20集成度较高,所以在硬件电路设计时不需要太多其他元件即可实现预期功能。因此在PROTEL上对原理图进行了绘制,从而得出了最终的完整

29、电路原理图附录一。2.6.1 PROTEL简介(jin ji) PROTEL是PORTEL公司在80年代末推出的EDA软件,在电子行业的CAD软件中,它当之无愧地排在众多EDA软件的前面(qin mian),是电子设计者的首选软件,它包含了电原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有Client/Server (客户/服务器)体系结构,同时还兼容一些其它设计软件的文件格式,如ORCAD,PSPICE,EXCEL等,其多层印制线路板的自动布线可实现高密度PCB的100布通率。Pro

30、tel 99SE采用数据库的管理方式。该软件沿袭了Protel以前版本方便易学的特点,内部界面与Protel 99大体相同,新增加了一些功能模块,功能更加强大。新增的层堆栈管理功能,可以设计32个信号层,16 个地电层,16个机械层。新增的3D功能在加工印制版之前可以看到板的三维效果。其具有的打印功能,可以轻松修改打印设置控制(kngzh)打印结果。Protel 99SE容易使用的特性还体现在其帮助功能,按下右上角的小问号,然后输入你所要的信息,可以很快地看到特性的功能,然后用到设计中,按下状态栏末端的按钮,使用帮助顾问。2.6.2 电路(dinl)的焊接 当通过PROTEL绘制出完整的电路原

31、理图后,就可以按照绘制好的原理图进行电路的焊接,焊接时要注意虚焊和短路情况出现。焊接是要先焊单片机的主电路,以便于对各部分电路的测试。当焊完一部分子电路后,要先输入子程序进行检测,看是否有输入或输出。焊完后,就可以进行电路总体(zngt)性能测试了。 在测试之前,一定要先对电路检测,看是否有短路情况出现,以免芯片(xn pin)损坏。电源输入电压也是关键因素,在供电之前先量量。3. 系统软件设计3.1 主控程序设计 通过对系统工作原理的了解,我们可以大致知道系统软件运行工作的流程图如下: 图3.1 系统(xtng)运行流程图 当接通电源开始工作后,单片机中的程序开始运行,将对DS18B20进行

32、(jnxng)初始化,以便单片机芯片和DS18B20达成通信协议。完成初始化后,由于本系统只有一个测温元件,单片机会向其发出跳过ROM指令,接下来便可向其发送操作指令,设定温度上下限,启动测温程序。测温过程完成后,发出温度转换指令,从而便可将温度转化成数字模式进行显示读取。 3.2 温度信息(xnx)的采集 通过DS18B20单线总线的所有执行处理都从一个初始化序列开始。初始化序列包括一个由总线控制器发出的复位脉冲和随后由从机发出的存在脉冲: 1、复位:首先我们(w men)必须对DS18B20芯片进行(jnxng)复位,复位就是由控制器(单片机)给DS18B20单总线至少(zhsho)480

33、uS的低电平信号。当18B20接到此复位信号后则会在1560uS后回发一个芯片的存在脉冲。 2、存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在1560uS后接收存在脉冲,存在脉冲为一个60240uS的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。 3、控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。 4、控制器发送存储器操作指令:在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操

34、作指令了。操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。 5、执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。3.3 温度的显示(xinsh)操作 如电路正常(zhngchng),接通电源后,只显示“C”符号(fho),无温度值;按下AN3,先显示上次存贮下来的设定温度(报警控制)值,然后再显示环境温度值,并随环境温度的变化而变化;再按一下AN3,温度数字闪烁,待调节;接着按AN1或AN2: 按AN1为报警温度值变大,

35、最大为125C;按AN2为报警温度值变小 ,最小为-55C;调好后再按一下AN3,调好的报警温度值被存贮,数码管又显示环境温度。当温度达到存贮的报警值时,电路发出报警信号和动作。4调试与总结 在硬件电路焊接和软件程序设计分别完成的基础之上,进行软硬件的结合与调试。通过下载将在电脑上已完成的程序下载到单片机芯片中。在调试中发现软件中存在的问题,及时解决问题,确保系统能正常工作并达到设计要求。通过反复的调试与实验,可以证明该系统能够较好地完成设计所需的基本要求。即能够方便准确的对被测对象进行温度测量。同时在完成设计要求的前提下,充分考虑到了外观,成本等问题,在性能和价格之间作了比较好的平衡。虽然整

36、体性能良好,但尚存在些许不足,系统稳定性不够,需要增强自己的焊接水平以便以后避免出现类似问题。本温度采集系统实用性强,结构较为简单,成本低,外接元件少。在实际应用(yngyng)中工作性能稳定,测量温度准确,精度较高。系统在硬件设计上充分考虑到了可扩展性,经过一定的添加或改造,很容易增加功能。本系统适用范围广泛,可以单独使用作为监控仪,应用于农业温室大棚监测植物生长的环境变化,工业厂房测量各部分的工作温度等等。也可以作为智能控制系统的一部分,与其它设备协同工作。系统移植性强,只需改变前端测量用的传感器类型,可在此基础上修改为其 他非电量参数的测量系统。致 谢 通过此次毕业设计,我学到了很多知识

37、。在实物的设计和论文的写作过程中,通过查资料和搜集有关的文献,培养了自学能力。通过对硬件电路的设计和焊接,增强了自己的动手能力。并且由原来的被动接受知识转换为主动的寻求知识,学会了更好地让所学知识与实践相结合,让书本上的知识与实际生活(shnghu)中的具体应用相结合。让自己切实感觉到了学有所用。并在此期间巩固复习了在大学4年内学过的知识,尤其是单片机和模电,数电方面的知识。同时通过这次毕业设计提高了自己的单片机编程的能力,尤其是获得的软件调试经验,同时也让自己知道了自己不足和缺陷,从而(cng r)为自己能更好的改进提供了帮助。 在此,首先感谢我的老师,感谢各位老师这四年中在学习中、生活上的

38、关心和照顾;其次感谢各位同学,同学们在生活中给予很大的帮助,在学习上也给极大的鼓舞。指导老师项仕标教授和葛明涛讲师治学严谨,学识渊博,平易近人,在我做设计和论文期间对我的教诲和指导将使我终生受益。无论是在平时的阶段,还是在论文的选题、资料(zlio)查询、开题、研究、设计和撰写的每一个环节,都得到导师的悉心指导和帮助。借此机会向项仕标教授和葛明涛讲师表示衷心的感谢!在毕业设计的这段时间里,其他老师们也都言传身教,以他们广博的知识,敏锐的洞察力,多年的教学和实际工作经验,在毕业设计上给予我很大的帮助。在本次设计中我学到的不仅是科学知识和工作方法,更学到了作为一个研究人员应有的治学态度以及为人处世

39、的道理,这一切都将使我终身受益。谨在此向各位老师致以崇高的敬意和衷心的感谢! 感谢几年来传授我知识的老师们,更要感谢我的家人对我学业(xuy)上的支持和鼓励,感谢所有关心帮助过我的人。 参考文献1 谭浩强 C程序设计(chn x sh j) 清华大学出版社 1999.122 李群芳 肖看 单片机原理(yunl),接口及应用 清华大学出版社 2005.33 张义和 王敏男 例说51单片机 人民邮电出版社 2008.4 4 蔡美琴 张为民 MCS-51系列(xli)单片机系统及其应用 高等教育出版社 19925 高峰(gofng) 单片微机应用系统设计及实用技术 机械工程出版社 20046 杨全胜

40、 现代微机原理(yunl)与接口技术 电子工业出版社 20047 全国大学生电子设计竞赛组委会 全国大学生电子设计竞赛获 奖作品精选 (19941999) 北京理工大学出版社 2003.8 谢淑如 郑光钦 杨渝生 Protel PCB 99SE电路版设计 清华大学出版社9 何立民 单片机应用技术选编 北京航空航天大学出版社,1993.210 段九洲 放大电路实用设计手册 辽宁科学技术出版社,2002.511 李炎清 毕业论文写作与范例 厦门大学出版社 2006.10附 录附录一 电路原理图 附录(fl)二 实物图附录(fl)三 系统(xtng)主程序/*温度(wnd)控制器V1.5显示为三个共

41、阳极LED温度传感器用单总线DS18B20CPU为2051,三个按键,分别为UP,DOWN,SET温度调节上限为125度,下限为-55度只能用于单只18B20*/#include #include #define Key_UP P3_0 /上调温度#define Key_DOWN P3_1 /下调温度#define Key_SET P1_7 /设定键(温度设定,长按开电源)#define RelayOutPort P3_5 /继电器输出#define LEDPort P1 /LED控制口#define LEDOneC P3_2 /LED DS1控制(百位)#define LEDTwoC P3_

42、3 /LED DS2控制(十位)#define LEDThreeC P3_4 /LED DS3控制(kngzh)(个位)#define TMPortP3_7/DS1820 DataPortunsigned char code LEDDis=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 xFF,0 xBF; /0-9的LED笔划(b hu),0 xFF为空,0 xF7为负号static unsigned char bdata StateREG;/可位寻址的状态(zhungti)寄存器sbit DS1820ON = St

43、ateREG0; /DS1820是否存在sbit SetTF = StateREG1; /是否是在温度设置状态sbit KeySETDown = StateREG2; /是否已按过SET键标识sbit PowTF = StateREG3; /电源电源标识sbit KeyTF = StateREG4;/键盘是否允许/sbit KeySETDowning = StateREG5;/SET是否正在按下static unsigned char bdata TLV _at_ 0 x0029; /温度变量(binling)高低位static unsigned char bdata THV _at_ 0 x

44、0028;static signed char TMV; /转换(zhunhun)后的温度值static unsigned char KeyV,TempKeyV; /键值static signed char TMRomV _at_ 0 x0027; /高温(gown)限制static signed char TMSetV _at_ 0 x0026; /温度设定值static unsigned char KSDNum; /SET键连按时的采集次数static unsigned char IntNum,IntNum2,IntNum3; /中断发生次数,IntNum用于SET长按检测,IntNum2

45、用于设定状态时LED闪烁static signed char LED_One,LED_Two,LED_Three; /LED的显示位 LED_One为十位,LED_Two为个位static unsigned char Sign; /负号标识void main(void)void InitDS1820(void); /定义(dngy)函数void ROMDS1820(void);void TMVDS1820(void);void TMRDS1820(void);void TMWDS1820(void);void TMREDS1820(void);void TMERDS1820(void);voi

46、d ReadDS1820(void);void WriteDS1820(void);void Delay_510(void);void Delay_110(void);void Delay_10ms(void);void Delay_4s(void);void V2ToV(void);StateREG = 0; /初始化变量(binling)SetTF = 1;PowTF = 1;/关电源(dinyun)THV = 0;TLV = 0;TMV = 0;KeyV = 0;TempKeyV = 0;KSDNum = 0;IntNum = 0;IntNum2 = 0;IntNum3 = 0;LED_

47、One = 0;LED_Two= 0;InitDS1820(); /初始化ROMDS1820(); /跳过ROMTMERDS1820(); /E2PRAM中温度(wnd)上限值调入RAMInitDS1820(); /初始化ROMDS1820(); /跳过ROMTMRDS1820(); /读出温度(wnd)指令ReadDS1820(); /读出温度(wnd)值和上限值TMSetV = TMRomV; /拷贝保存在DS18B20ROM里的上限值到TMSetVEA = 1;/允许CPU中断ET0 = 1; /定时器0中断打开TMOD = 0 x1;/设定时器0为模式1,16位模式TH0=0 xB1;

48、TL0=0 xDF;/设定时值为20000us(20ms)TR0 = 1;/开始定时while(1);/定时器0中断(zhngdun)外理中键扫描和显示void KeyAndDis_Time0(void) interrupt 1 using 2 TH0=0 xB1;TL0=0 xDF;/设定(sh dn)时值为20000us(20ms)LEDPort = 0 xFF; if (!Key_UP) KeyV = 1; if (!Key_DOWN) KeyV = 2; if (!Key_SET) KeyV = 3;/KeySETDowning = 0; /清除(qngch) if (KeyV !=

49、0) /有键按下 Delay_10ms(); /延时防抖 按下10ms再测 if (!Key_UP) TempKeyV = 1; if (!Key_DOWN) TempKeyV = 2; if (!Key_SET) TempKeyV = 3; if (KeyV = TempKeyV) /两次值相等(xingdng)为确定接下了键 if (KeyV = 3) /按下SET键,如在SET状态(zhungti)就退出,否则进入 /KeySETDowning = 1; /表明(biomng)SET正在按下 PowTF = 0; /电源(dinyun)标识开if (!KeyTF) if (SetTF)

50、SetTF = 0; /标识(biozh)位标识退出设定InitDS1820(); /初始化 ROMDS1820(); /跳过ROM TMWDS1820(); /写温度上限指令WriteDS1820(); /写温度上限到DS18B20ROMWriteDS1820(); /写温度上限到DS18B20ROMWriteDS1820(); /写温度(wnd)上限到DS18B20ROMInitDS1820(); /初始化 ROMDS1820(); /跳过ROM TMREDS1820(); /温度(wnd)上限值COPY回E2PRAM else SetTF = 1; if (!KeySETDown) /没

51、有(mi yu)第一次按下SET时,KeySETDown标识置1 KeySETDown = 1; else KSDNum = KSDNum + 1; /前一秒内有按过SET则开始计数 if (SetTF) /在SET状态(zhungti)下 if (KeyV = 1) & (!KeyTF) TMSetV = TMSetV + 1; /上调(shn dio)温度 if (KeyV = 2) & (!KeyTF) TMSetV = TMSetV - 1; /下调(xi dio)温度 if (TMSetV = 125) TMSetV = 125; if (!KeyTF) & (IntNum3 = 0

52、) KeyTF = 1; /当键盘处于可用时,锁定 if (KeySETDown) /在2秒内按下了SET则计中断(zhngdun)发生次数用于长按SET时计时用 IntNum = IntNum + 1; if (IntNum 55) /中断发生(fshng)了55次时(大约1.2秒)75为1.5秒左右 IntNum = 0;KeySETDown = 0; if (KSDNum = 55) /如一直(yzh)长按了SET1.2秒左右 RelayOutPort = 1; /关闭继电器输出 PowTF = 1; /电源标识关 LEDOneC = 0; LEDTwoC = 0; LEDThreeC

53、= 0; LEDPort = 0 xBF; /显示- Delay_4s(); /延时 LEDOneC = 1; LEDTwoC = 1; /关显示(xinsh) LEDThreeC = 1; Delay_4s(); IntNum = 0; IntNum2 = 0; IntNum3 = 0; KSDNum = 0; KeyV = 0; TempKeyV = 0; /清空(qn kn)变量准备下次键扫描 if (!PowTF) InitDS1820();/初始化 ROMDS1820(); /跳过ROM TMVDS1820(); /温度转换(zhunhun)指令 Delay_510(); Delay

54、_510(); /延时等待转换(zhunhun)完成 InitDS1820(); /初始化 ROMDS1820(); /跳过ROM TMRDS1820(); /读出温度(wnd)指令 ReadDS1820(); /读出温度值 V2ToV(); /转换显示值 if (TMV TMSetV) /根据采集到的温度值控制继电器 RelayOutPort = 0; else RelayOutPort = 1; if (SetTF) IntNum2 = IntNum2 + 1; /用于闪烁(shn shu)计数 if (IntNum2 50 ) IntNum2 = 0;if (KeyTF) IntNum3

55、 = IntNum3 + 1; /用于防止(fngzh)按键连按if (IntNum3 25) IntNum3 = 0;KeyTF = 0; if (SetTF) & (IntNum2 4; THV = THV 7; /取符号 else Sign = TMV 7;if (Sign) if (SetTF | !Key_SET) LED_One = (TMSetV-1) / 100; /SET状态(zhungti)下显示设定值 LED_Two = (TMSetV-1) - LED_One * 100)/10; LED_Three = (TMSetV-1) - LED_One * 100 - LED

56、_Two * 10; else LED_One = (TMV) / 100;/转换(zhunhun)百位值 LED_Two = (TMV) - LED_One * 100)/10; LED_Three = (TMV) - LED_One * 100 - LED_Two * 10;else if (SetTF | !Key_SET) LED_One = (TMSetV) / 100; /SET状态(zhungti)下显示设定值 LED_Two = (TMSetV - LED_One * 100)/10; LED_Three = TMSetV - LED_One * 100 - LED_Two *

57、 10; else LED_One = (TMV) / 100;/转换(zhunhun)百位值 LED_Two = (TMV - LED_One * 100)/10; LED_Three = TMV - LED_One * 100 - LED_Two * 10; /转LED字段if (LED_One) /超过(chogu)百时十位的处理LED_Two = LEDDisLED_Two;elseif (LED_Two = 0)LED_Two = LEDDis10;elseLED_Two = LEDDisLED_Two;if (Sign)LED_One = LEDDis11;elseif (LED_

58、One = 0)LED_One = LEDDis10;elseLED_One = LEDDisLED_One;LED_Three = LEDDisLED_Three;void InitDS1820(void)/初始化DS1820TMPort = 1;/拉高TMPort_nop_(); /保持(boch)一个周期TMPort = 0;/拉低TMPort Delay_510(); /延时 DS1820复位(f wi)时间要500us的低电平 TMPort = 1; /拉高TMPort_nop_(); /保持(boch) _nop_();_nop_(); Delay_110(); /延时110us

59、等待DS1820回应 if (!TMPort) /回应信号为低电平 DS1820ON = 1; else DS1820ON = 0; Delay_110(); /延时 Delay_110(); TMPort = 1; /拉高TMPortvoid ROMDS1820(void) /跳过ROM匹配(ppi)#pragma asm MOV A,#0CCH MOV R2,#8 CLR C WR1: CLR P3_7 MOV R3,#6 DJNZ R3,$ RRC A MOV P3_7,C MOV R3,#23 DJNZ R3,$ SETB P3_7 NOP DJNZ R2,WR1 SETB P3_7#pragma endasmvoid TMVDS1820(void) /温度(wnd)转换指令#pragma asm MOV A,#44H MOV R2,#8 CLR C WR2: CLR P3_7 MOV R3,#6 DJNZ R3,$ RRC A MOV P3_7,C MOV R3,#23 DJNZ R3,$ SETB P3_7 NOP DJNZ R

温馨提示

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

评论

0/150

提交评论