基于单片机的无线温度检测器的设计.doc_第1页
基于单片机的无线温度检测器的设计.doc_第2页
基于单片机的无线温度检测器的设计.doc_第3页
基于单片机的无线温度检测器的设计.doc_第4页
基于单片机的无线温度检测器的设计.doc_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

ANYANG INSTITUTE OF TECHNOLOGY本 科 毕 业 论 文 基于单片机的无线温度检测器的设计The Design of Wireless Temperature Detector Based on MCU院(部)名称: 电子信息与电气工程学院 专业班级: 自动化2009级2班 学生姓名: * 学 号: 200902020005 指导教师姓名: * 指导教师职称: 讲师 2013年5月毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得安阳工学院及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解安阳工学院关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 目录摘要Abstract第一章 绪论11.1 课题的背景和意义11.2 本课题的研究内容以及所完成的工作11.2.1 本课题的研究内容11.2.2 本课题所完成的具体工作2第二章 无线温度检测系统总体设计32.1 系统设计要求32.2 系统总体设计方案的确定32.2.1 数字温度传感器的选择32.2.2 控制器的选择42.2.3 无线收发模块的选择5第三章 硬件电路设计73.1 发射端73.1.1 温度采集模块73.1.2 控制单元STC89C52单片机93.1.3 电源模块设计123.1.4 无线收发模块NRF24L01电路设计123.1.5 时钟振荡电路设计133.1.6 复位电路设计133.2 接收端143.2.1 蜂鸣器报警模块设计143.2.2 键盘电路设计153.2.3 液晶显示模块设计15第四章 软件程序设计184.1 程序流程图184.1.1 主程序流程图184.1.2 子程序流程图194.2 无线收发模块24L01的编程214.2.1 24L01编程的基本思路214.2.3 函数介绍224.3 软件编译与调试234.3.1 程序设计语言的选用234.3.2 KeilC51简介244.3.3 uVision4集成开发环境244.3.4 软件调试与结果25第五章 安装与调试265.1 Altium Designer软件265.2 电路板安装与调试26结论27致谢28参考文献29附录A 元件清单30附录B 发射板原理图31附录C 接收板原理图32附录D 发射板实物图33附录E 接收板实物图34附录F 发射板源程序35附录G 接收板源程序44基于单片机的无线温度检测器的设计摘要:无线温度检测器是一种用于仓库和蔬菜大棚等具有温度检测、无线传输、温度显示和超限报警功能的仪器。系统由发送端和接收端两部分组成。发送端将温度传感器检测到的温度值经单片机进行数据处理后,通过无线收发模块无线发送,接收端将接收到的数据信息显示在液晶屏上,并附加温度限设置和超限报警功能。本设计利用软件Keil进行系统程序设计,利用单片机学习板进行硬件仿真,待仿真成功后进行了实物制作和调试,最终成功设计出了无线温度检测器。文中详细介绍了温度采集模块、无线传输模块、显示模块、温度限设置模块和报警电路的设计方法和过程。当采样点的温度值超出规定值时,系统通过报警电路提醒监测人员。同时,检测人员可以通过键盘对具体报警点的温度值进行设置。另外,该系统温度检测具有较高的精度,无线数据传输稳定,而且传输距离较远。关键词:温度检测;单片机;无线传输The Design of Wireless Temperature Detector Based on MCUAbstract: wireless temperature detector is a kind of temperature detection used for warehouse and vegetables canopy, it has the function of display and wireless transmission and temperature overrun alarm. System consists of two parts, the sender and the receiver. The sender will be detected by temperature sensor temperature after single-chip microcomputer for data processing, through the wireless transceiver modules, wireless sending and receiving end receives the data and information displayed on the LCD screen, and the additional temperature limit setting and transfinite alarm function. This design using the software of Keil to write system program, and using the microcontroller board to simulation hardware, we shall carry out physical production and debugging after the success of the simulation, and we designed the wireless temperature detector successfully in the end .This paper introduced the temperature acquisition module, wireless transmission module, display module, temperature limit setting module and alarm circuit design method and process. The system through the alarm circuit to remind monitoring personnel when the data of temperature beyond the set value. At the same time, the testing personnel can through the keyboard to set specific alarm point temperature. In addition, the temperature detection system has high precision, stable wireless data transmission, and the transmission distance is far.Keywords: temperature detection;Single chip microcomputer; Wireless transmission第一章 绪论1.1 课题的背景和意义随着微电子技术、传感器技术、嵌入式技术以及通信技术的飞速发展,数据采集和检测系统得到了广泛的应用,用于检测各种参数的仪表也越来越多。这些仪表种类繁杂,分布往往比较分散,这些仪表实时采集数据的工作量也越来越大。如何高效率、低成本地采集这些离散的数据是迫切需要解决的科技难题。对于许多检测现场,由于需要检测的范围广,检测的对象种类繁多,需要投入大量的人力、物力进行设备的维护和检测工作。同时,受现场环境和应用对象的限制,存在着各种各样的恶劣条件,使人们不易到现场长时间的检查采集一些数据,如果这时进行大量的布线工作则是不经济、不合理的。传统的检测系统造价昂贵,体积庞大,在电源供给困难的区域不易部署,同时布置一旦完毕,就很难根据检测现场灵活改变布局,重新布置会带来巨大的成本消耗,系统重用性差。因此,采用无线检测的方式来实现有很大的优势,也是目前研究的热点。为了适应这种客观需要,逐步出现了无线检测技术,应用无线通信技术对离散的、不易布线区域的参数信息进行监视,以实现信息的远程测量、传输和调节等各项功能。无线检测系统实现参数信息的实时、快速和有效检测,向人们提供了一个更高效、更全面,更快捷的服务模式,本论文以改变当前滞后的检测技术,解决检测中遇到的困难和难题为目标,利用无线检测网络的优势,突破传统检测方法和思路,以高科技、新技术、低成本提高科学检测水平,为检测提供可靠科学的检测数据,使用无线检测网络,一些布线和管理的难点都将迎刃而解,人力、物力、资金的使用也大幅减少。无线检测系统具有不借助外部网络、快速安装、抗毁性强等特点,可以使人们在任何时间、地点和任何环境条件下获取大量的、可靠的数据信息。1.2 本课题的研究内容以及所完成的工作1.2.1 本课题的研究内容本课题研究的内容是针对检测领域的现状,以及组建无线检测系统的实际需要,提出了一种基于射频通信技术的解决方案。研究和开发一种新型无线检测系统来实现传感器的温度数据采集和无线数据传输,从而达到检测的目的。该系统可以快速、准确地完成数据采集和管理,为智能化检测提供了便利的条件。1.2.2 本课题所完成的具体工作本课题的研究内容是通过无线传输实现对检测现场的温度参数的实时采集。本课题所完成的具体工作:(1)完成系统的总体设计,并根据设计要求选取系统的主要功能模块器件。(2)完成无线检测系统的发射端和接收端的电路设计,根据系统设计要求完成电源模块、传感器数据采集模块、无线数据通信模块、报警电路、键盘电路、时钟振荡电路和复位电路设计。(3)完成无线检测系统程序设计,程序设计采用C语言编程。(4)完成无线检测系统的系统调试,对系统的数据可靠性、抗干扰能力、通信距离等方面进行测试。第二章 无线温度检测系统总体设计2.1 系统设计要求根据本系统的应用环境,总结系统的设计要求如下:(1)体积小。与传统的温度计相比,本课题设计的测温系统的体积要尽可能的小,从而减少占用空间,而且更便于安装和更换。(2)可靠性高。为了保证系统能够正常工作,并且尽可能减少测温误差,要求接收端与发送端之间的无线通信可靠。而系统环境的影响可能会有不确定的电磁干扰等,因此,系统要有一定的抗干扰能力。(3)低成本。无线测温系统应充分考虑其成本,在满足系统要求的前提下,应尽量降低成本,从而提高与同类产品的竞争力。2.2 系统总体设计方案的确定本课题的研究内容是通过无线传输实现对检测现场的温度参数的实时采集。主要实现温度采集、无线传输、超温报警和温度实时显示功能。整个系统由温度采集端和温度接收端两个部份组成,两者之间通过无线信道通信。数据采集端负责数据的采集和发送,数据接收端负责数据的接收和处理。系统整体结构框图如图2.1和图2.2所示。图2.1 温度采集端图2.2 温度接收端2.2.1 数字温度传感器的选择随着温度传感器智能化、集成化技术的进步,数字式温度传感器也得到了快速发展,世界上许多公司推出了新型的数字温度传感器系列。这些产品的出现极大的丰富了设计工程师的选择对象。在如此众多的产品中选择出合适的器件,应该把握以下几点:外围电路应该尽量简单;测温的精度、分辨率要合适,以便减少不必要的电路和软件开发成本;占用单片机的I/O引脚数情况如何;与单片机的通信协议应尽量简单,温度测量的软件开发难度、成本要尽量小。DSl8B20是美国Dallas半导体公司继DSl820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75ms和750ms内完成9位和12位的数字量读取。它采用独特的单总线接口方式,即允许在一条信号线上挂接数十甚至上百个数字式传感器,从而使测温装置与各传感器的接口变得十分简单,克服了模拟式传感器与微机接口时需要的A/D转换器及其它复杂外围电路的缺点,而且,可以通过总线供电,温度变换功率来源于数据总线,总线本身也可以向所挂接的DSl8B20供电,而无需额外电源,由它组成的温度测控系统非常方便,而且成本低、体积小、可靠性高。DSl8B20的测温范围-55+125,最高分辨率可达0.0625,由于每一个DSl8B20出厂时都刻有唯一的一个序列号并存入其ROM中,因此CPU可用简单的通信协议就可以识别,从而节省了大量的引线和逻辑电路。由于DSl8B20具有独特的单总线接口方式在测温时有明显的优势,占用单片机的I/O引脚资源少,和单片机的通信协议比较简单,成本较低,而且具有负压特性(电源极性接反时,温度计不会因发热而烧毁,只是不能正常工作),和其他数字温度传感器相比,它更适合本系统。所以,选用DSl8B20作为温度测量的传感器。2.2.2 控制器的选择目前使用最为广泛的是51系列单片机,其中STC89C52系列单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机,是一款增强型51单片机,完全兼容8051单片机,增加了新的功能,新增两级中断优先级,多一个外中断,内置EEPROM,看门狗,具有掉电模式,512B内存,支持ISP在线编程,不用编程器,程序可擦写10万次,管脚完全兼容,性能更好,驱动能力更强,超强抗干扰能力,价格也比传统的89系列低。考虑到快速开发以及本系统的应用要求,最后采用了最常用的STC89C52单片机。STC89C52单片机主要性能:(1)高速:1个时钟/机器周期,增强型8051内核,速度比普通8051快8到12倍。(2)宽电压:5.54.IV/3.7V,3.6V2.4V/2.lV。(3)低功耗设计:空闲模式(可由任意一个中断唤醒)和掉电模式(可由任意一个外部中断唤醒,可支持下降沿/低电远程唤醒)。(4)工作频率:035MHz,普通8051:0420MHz。(5)时钟:外部晶体或内部RC振荡器可选,在ISP下载编程用户程序时设置。(6)芯片内EEPROM功能,擦写次数10万以上。(7)ISP/IAP,在系统可编程/在应用可编程,无需编程器/仿真器。(8)2个16位定时器,兼容普通8051的定时器T0/T1。(9)硬件看门狗(WDT)。(10)全双工异步串行口(UART),兼容普通8051,可当2个串口使用。(11)先进的指令集结构,兼容普通8051指令集,有硬件乘法/除法指令。2.2.3 无线收发模块的选择现在有很多射频芯片可以用来完成无线数据传输。所有高频元件包括电感、振荡器等已经全部集成在芯片内部,一致性良好,且性能不受外界干扰。通信模块一般包含简单透明的数据传输协议或使用简单的加密协议,发射功率、工作频率等,所有工作参数全部通过软件设置完成,用户不用对无线通信原理和工作机制有较深的了解,只要依据命令字进行操作即可实现基本的数据无线传输功能。新一代短距离无线数据通信系统具有体积小、功耗低、稳定性好、抗干扰能力强等优点,而且开发简单快速,可以方便地嵌入到各种设备中,实现设备间的无线连接,因此,适合搭建小型网络,在工业、民用领域得到较为广泛的应用。由于无线收发芯片的种类和数量比较多,如何设计中选择所需要的芯片是非常关键的,正确的选择可以少走弯路,降低成本。下面是选择无线收发芯片的原则:(1)收发芯片的数据传输是否需要进行曼彻斯特编码采用曼彻斯特编码的芯片,在编程上会需要较高的技巧和经验,需要更多的内存和程序容量,并且曼彻斯特编码大大降低数据传输的效率,一般仅能达到标称速率的1/3。而采用串口传输的芯片,应用及编程非常简单,传送的效率很高,标称速率就是实际速率,因为串口对大家来说是再熟悉不过的了,编程也很方便。(2)收发芯片所需的外围元件数量芯片外围元件的数量直接决定你的产品的成本,因此应该选择外围元件少的收发芯片。有些芯片似乎比较便宜,可是外围元件使用很多昂贵的元件如变容管以及声表滤波器等;有些芯片收发分别需要两根天线,会大大加大成本。(3)功耗大多数无线收发芯片是应用在便携式产品上的,因此功耗也非常重要,应该根据需要选择综合功耗较小的产品。(4)发射功率在同等条件下,为了保证有效和可靠的通信,应该选用发射功率较高的产品。但是也应该注意,有些产品号称的发射功率虽然较高,但是由于其外围元件多,调试复杂,往往实际的发射功率远远达不到标称值。(5)收发芯片的封装和管脚数较少的管脚以及较小的封装,有利于减少PCB面积降低成本,适合便携式产品的设计,也有利于开发和生产。综合考虑以上五个原则,本课题中无线收发通信采用NRF24L01模块。NRF24L01是NORDIC公司最近生产的一款无线通信芯片,采用FSK调制,内部集成NORDIC自己的Enhanced Short Burst协议。可以实现点对点或是1对6的无线通信。无线通信速度可以达到2Mbps。NORDIC公司提供通信模块的GERBER文件,可以直接加工生产。嵌入式工程师或是单片机爱好者只需要为单片机系统预留5个GPIO,1个中断输入引脚,就可以很容易实现无线通信的功能,非常适合用来为MCU系统构建无线通信功能。第三章 硬件电路设计3.1 发射端无线温度检测器的温度采集端由电源模块、STC89C52单片机、温度采集电路、无线发送模块NRF24L01、时钟电路及复位电路组成。温度采集端硬件框图如图3.1所示。图3.1 温度采集端硬件框图3.1.1 温度采集模块1. DSl8B20内部结构DSl8B20芯片的内部结构如图3.2所示。图3.2 DS18B20内部结构图2. DSl8B20有4个主要的数据部件:(1)64位激光ROM。64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)。(2)温度灵敏元件。(3)非易失性温度报警触发器TH和TL。可通过软件写入用户报警上下限值。(4)配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DSl8B20在工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如表3.1所示。表3.1 DS18B20配置寄存器模式设置表TMR1R011111其中,TM:测试模式标志位,出厂时被写入0,不能改变;R0、Rl:温度计分辨率设置位,其对应四种分辨率表3.2所列,出厂时R0、Rl置为缺省值:R0=1, R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。配置寄存器与分辨率关系如表3.2所示。表3.2 配置寄存器与分辨率关系表R0R1温度计分辨率/bit最大转换时间/us00993.750110187.5101137511127503. 高速暂存存储器高速暂存存储器由9个字节组成,其分配如表3.3所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第1和第2个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表3.3所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。表3.3 DS18B20存储器映像表温度低位温度高位THTL配置保留保留保留8位CRC4. 对DSl8B20的设计,需要注意以下问题:(1)对硬件结构简单的单线数字温度传感器DSl8B20进行操作,需要用较为复杂的程序完成。编制程序时必须严格按芯片数据手册提供的有关操作顺序进行,读、写程序要严格按要求编写。尤其在使用DSl8B20的高测温分辨力时,对时序及电气特性参数要求更高。 (2)测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。DSl8B20在三线制应用时,应将其三线焊接牢固;在两线应用时,应将VCC与GND接在一起,焊接牢固。若VCC脱开未接,传感器只送85.0的温度值。5. DSl8B20与STC89C52的连接电路图如图3.3所示。DSl8B20与单片机的P3.0口相连。图3.3 DSl8B20与STC89C52连接电路原理图3.1.2 控制单元STC89C52单片机1. STC89C52单片机的特点单片机是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。STC89C52单片机的基本结构如图3.4所示。图3.4 STC89C52单片机的基本结构2. STC89C52单片机的引脚及功能STC89C52单片机的管脚分布如图3.5所示。图3.5 STC89C52单片机的管脚图STC89C52的I/O端口:P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。 引脚第二功能 P1.0/T2(定时器/计数器T2的外部计数输入) P1.1/T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5/MOSI(在系统编程用) P1.6/MISO(在系统编程用) P1.7/SCK(在系统编程用) P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2 口送出高8位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为STC89C52特殊功能(第二功能)使用。在flash编程和校验时,P3口也接收一些控制信号。 引脚 第二功能P3.0/RXD(串行输入口)P3.1/TXD(串行输出口)P3.2/INT0(外中断0)P3.3/INT1(外中断1)P3.4/T0(定时/计数器0)P3.5/T1(定时/计数器1)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)此外,P3口还接收一些用于flash闪存编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意每当访问外部数据存储器时将跳过一个ALE脉冲。对flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许 PSEN输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VP:外部访问允许 欲使CPU仅访问外部程序存储器,EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。3.1.3 电源模块设计本次设计的电源模块采用USB接口将220V交流电转换为5V的直流电,从而为整个系统供电。电源模块设计中增加了绿色LED指示灯,指示电源的通断。电源模块设计如图3.6所示。图3.6 电源模块电路连接图3.1.4 无线收发模块NRF24L01电路设计无线收发模块NRF24L01的各引脚与单片机的P1口相连,电路连接图如图3.7所示。图3.7 无线收发模块NRF24L01与单片机的电路连接图无线收发模块NRF24L01引脚功能:CSN(P1.1):芯片的片选线,CSN 为低电平芯片工作。SCK(P1.2):芯片控制的时钟线(SPI 时钟)。MISO(P1.4):芯片控制数据线(Master input slave output)。MOSI(P1.3):芯片控制数据线(Master output slave input)。IRQ(P1.5):中断信号。无线通信过程中MCU主要是通过IRQ与NRF24L01进行通信。CE(P1.0):芯片的模式控制线。在CSN为低的情况下,CE协同NRF24L01的CONFIG寄存器共同决定NRF24L01的状态。3.1.5 时钟振荡电路设计XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30pf左右。STC89C52单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,在焊接电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。本次时钟电路设计采用内部方式,即利用芯片内部的振荡电路,晶体振荡器选用12MHz,电容选用33pf。时钟振荡电路如图3.8所示。图3.8 时钟振荡电路连接图 3.1.6 复位电路设计在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,单片机便循环复位。复位后P0P3口均在引脚表现为高电平,程序计数器和特殊功能寄存器全部清零。当复位脚由高电平变为低电平时,芯片从ROM的00H处重新开始执行程序。复位电路通常采用上电自动复位和按钮复位两种方式,本设计采用按钮复位电路。复位电路图如图3.9所示。图3.9 复位电路连接图3.2 接收端无线温度测量器的温度接收端由电源模块、STC89C52单片机、液晶显示电路、无线收发模块NRF24L01、键盘电路、报警电路、时钟电路及复位电路组成。其中电源模块、STC89C52单片机、无线收发模块NRF24L01、时钟电路和复位电路与发射端相同。温度接收端硬件框图如图3.10所示。图3.10 温度接收端硬件框图3.2.1 蜂鸣器报警模块设计报警电路由三极管,红色LED指示灯和蜂鸣器和一个拨动开关组成。当温度检测器正常工作时,将拨动开关置于闭合状态。当实时温度大于温度限设定值时蜂鸣器发出声响,同时红色LED灯亮,当实时温度又低于温度限设定值时,蜂鸣器和红色LED灯自动停止。当蜂鸣器报警时,也可通过将拨动开关断开停止报警。蜂鸣器报警模块设计如图3.11所示。图3.11 蜂鸣器报警模块电路连接图3.2.2 键盘电路设计本系统选择使用独立式按键。键盘电路由两个按键与单片机P3口相连构成,实现温度限的设置功能。通电后,液晶屏显示设定温度为Temp set:40。按下s1键,设定值加1,当温度设定值为99时,再次按下s1键,设定值为0。按下s2键,设定值减1,当温度设定值为0时,再次按下s2,设定值为99。键盘电路图如图3.12所示。图3.12 键盘电路连接图3.2.3 液晶显示模块设计1. LCD1602主要管脚介绍显示模块用于显示实时温度和设定温度。这里采用1602液晶显示屏,其主要参数为:显示容量(16*2个字符)、芯片工作电压(4.5-5.5V)和工作电流(2.0mA)。LCD1602共有16个引脚,各管脚的功能如表3.4所示。表3.4 LCD1602管脚功能介绍表引脚符号状态功能1VSS输入电源地2Vdd输入电源+5V3V0输入对比度控制端4RS输入寄存器选择5R/W输入读、写操作6E输入使能信号7DB0三态数据总线(LSB)8DB1三态数据总线9DB2三态数据总线10DB3三态数据总线11DB4三态数据总线12DB5三态数据总线13DB6三态数据总线14DB7三态数据总线(MSB)15LEDA输入背光+5V16LEDK输入背光地说明:V0:液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,使用时可以通过一个10k的电位器调整对比度。RS:寄存器选择,高电平时选择数据存储器,低电平时选择指令寄存器。R/W:读写信号线,高电平时进行读操作,低电平进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址;当RS为高电平,R/W为低电平时可以写入数据。E:使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。2. LCD1602控制指令LCD1602控制指令介绍表如表3.5所示。表3.5 LCD1602控制指令介绍表格式功能RSR/WDB7DB6DB5DB4DB3DB2DB1DB0清屏指令0000000001显示开关控制0000001DCB光标、画面移动000000S/CR/L*功能设置00001DLNF*说明:(1)清屏指令清屏指令的主要功能有:清除液晶显示器的内容,即DDRAM的内容全部填入“空白”的ASCII码20H;光标归位,即将光标撤回液晶显示屏的左上方;将地址计数器(AC)的值设为0。(2)显示开关控制显示开关控制的功能是设置显示、光标及闪烁的开、关等。其中:D表示显示:1为开,0为关;C表示光标:1为开,0为关;B表示闪烁:1为开,0为关。(3)光标及画面移动光标及画面移动的功能是控制光标、画面的移动,不影响DDRAM。其中:S/C=1,画面平移一个字符位;S/C=0,光标平移一个字符位;R/L=1:右移;R/L=0:左移。(4)功能设置功能设置主要是对LCD1602的工作方式进行设置。其中:DL=1,8位数据接口;DL=0,4位数据接口;N=1,两行显示;N=0,一行显示;F=1,510点阵字符;F=0,57点阵字符。3. LCD1602与单片机连接图液晶显示模块设计如图3.13所示。数据线DB0-DB7连接单片机的P0口;RS、R/W、E这3条控制线分别接单片机的P2.5、P2.6和P2.7口。电阻R3用来调节背光的亮度。图3.13 LCD1602与单片机的电路连接图第四章 软件程序设计4.1 程序流程图4.1.1 主程序流程图1. 发射端主程序流程图如图4.1所示。图4.1 发射端主程序流程图2. 接收端主程序流程图如图4.2所示。图4.2 接收端端主程序流程图4.1.2 子程序流程图1. 数字温度传感器DS18B20读温度程序DS18B20读温度程序流程图如图4.3所示。图4.3 DS18B20读温度程序流程图2. 键盘扫描子程序键盘扫描子程序流程图如图4.4所示。图4.4 键盘扫描子程序流程图4.2 无线收发模块24L01的编程4.2.1 24L01编程的基本思路(1)置CSN为低,使能芯片,配置芯片各个参数。配置参数在Power Down状态中完成。(2)如果是Tx模式,填充Tx FIFO。(3)配置完成以后,通过CE与CONFIG中的PWR_UP与PRIM_RX参数确定24L01要切换到的状态。Tx Mode:PWR_UP=1;PRIM_RX=0; CE=1(保持超过10us就可以);Rx Mode:PWR_UP=1;PRIM_RX=1; CE=1;(4) IRQ引脚会在以下三种情况变低: Tx FIFO 发完并且收到ACK(使能ACK情况下) Rx FIFO收到数据 达到最大重发次数4.2.2 Tx与Rx的配置过程1. Tx模式初始化过程(1)写Tx节点的地址 TX_ADDR(2)写Rx节点的地址(主要是为了使能Auto Ack) RX_ADDR_P0(3)使能AUTO ACK EN_AA(4)使能PIPE 0 EN_RXADDR(5)配置自动重发次数 SETUP_RETR(6)选择通信频率 RF_CH(7)配置发射参数(低噪放大器增益、发射功率、无线速率) RF_SETUP(8)选择通道0有效数据宽度 Rx_Pw_P0(9)配置24L01的基本参数以及切换工作模式 CONFIG。2. Rx模式初始化过程:初始化步骤:(1)写Rx节点的地址 RX_ADDR_P0(2)使能AUTO ACK EN_AA(3)使能PIPE 0 EN_RXADDR(4)选择通信频率 RF_CH(5)选择通道0有效数据宽度 Rx_Pw_P0(6)配置发射参数(低噪放大器增益、发射功率、无线速率) RF_SETUP(7)配置24L01的基本参数以及切换工作模式 CONFIG。4.2.3 函数介绍NRF24L01的控制程序主要包括以下几个函数:(1)uchar SPI_RW(uchar byte);最基本的函数,完成GPIO模拟SPI的功能。将输出字节(MOSI)从MSB循环输出,同时将输入字节(MISO)从LSB循环移入。上升沿读入,下降沿输出。(2)uchar SPI_RW_Reg(uchar reg, uchar value);寄存器访问函数:用来设置24L01的寄存器的值。基本思路就是通过WRITE_REG命令(也就是0x20+寄存器地址)把要设定的值写到相应的寄存器地址里面去,并读取返回值。对于函数来说也就是把value值写到reg寄存器中。需要注意的是,访问NRF24L01之前首先要enable芯片(CSN=0;),访问完了以后再disable芯片(CSN=1;)。(3)uchar SPI_Read(uchar reg);读取寄存器值的函数:基本思路就是通过READ_REG命令(也就是0x00+寄存器地址),把寄存器中的值读出来。对于函数来说也就是把reg寄存器的值读到reg_val中去。(4)uchar SPI_Read_Buf(uchar reg, uchar *pBuf, uchar bytes);接收缓冲区访问函数:主要用来在接收时读取FIFO缓冲区中的值。基本思路就是通过READ_REG命令把数据从接收FIFO(RD_RX_PLOAD)中读出并存到数组里面去。(5)uchar SPI_Write_Buf(uchar reg, uchar *pBuf, uchar bytes);发射缓冲区访问函数:主要用来把数组里的数放到发射FIFO缓冲区中。基本思路就是通过WRITE_REG命令把数据存到发射FIFO(WR_TX_PLOAD)中去。(6)void RX_Mode(void);设定24L01为接收方式。(7)void TX_Mode(void);设定24L01为发送方式。4.3 软件编译与调试4.3.1 程序设计语言的选用在单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。对于用惯了汇编语言的人来说,高级语言的可控性不好,不如汇编语言那样能够随心所欲。但是使用汇编语言会遇到很多问题,首先它的可读性和可维护性不强,特别是当程序没有很好标注的时候;其次就是代码的可重用性也比较低。C语言却没有这些问题。C语言具有模块化、容易阅读和维护等优点。由于模块化,用C语言编写的程序有很好的可移植性,功能化的代码能够很方便地从一个工程移植到另一个工程,从而减少了开发的时间。用C语言编写程序比用汇编语言更符合人们的思考习惯,开发者可以更专心地考虑算法而不用费很大力气考虑一些细节问题,这样就减少了开发和调试的时间。使用C语言,程序员不必十分熟悉处理器的运算过程,这是因为很多处理器支持C编译器,这也使得用C语言编写的程序有很好的可移植性。综上所述,在本次毕业设计中,使用C语言来编写程序。4.3.2 KeilC51简介单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行的开发MCS-51系列单片机的软件,它提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。4.3.3 uVision4集成开发环境1. 项目管理 工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。 一个单一的uVision4工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。uVision4包含一个器件数据库(devicedatabase),可以自动设置汇编器、编译器、连接定位器及调试器选项,用来满足用户的特定需求。uVision4可以为片外存储器产生必要的连接选项、确定起始地址和规模。2. 集成功能uVision4具有强大的功能:(1)集成源极浏览器利用符号数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户变数存储器。(2)文件寻找功能:在特定文件中执行全局文件搜索。(3)工具菜单:允许在V4集成开发环境下启动用户功能。(4)可配置SVCS接口:提供对版本控制系统的入口。(5)PCLINT接口:对应用程序代码进行深层语法分析。(6)Infineon的EasyCase接口:集成块集代码产生。(7)Infineon的DAVE功能:协助用户的CPU和外部程序。DAVE工程可被直接输入uVision4。4.3.4 软件调试与结果本设计软件编译使用的是Vision4编译器。程序代码编写完后需要编译链接生成目标代码,编译后的结果如图4.5所示。图4.5 编译结果显示窗口图第五章 安装与调试5.1 Altium Designer软件Altium Designer系统是Altium公司于2006年年初推出的一种电子设计自动化(Electronic D

温馨提示

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

评论

0/150

提交评论