基于DS18B20的单片机无线温度采集系统_本科毕业论文.doc

上传人:来看看 文档编号:3920175 上传时间:2019-10-10 格式:DOC 页数:52 大小:2.52MB
返回 下载 相关 举报
基于DS18B20的单片机无线温度采集系统_本科毕业论文.doc_第1页
第1页 / 共52页
基于DS18B20的单片机无线温度采集系统_本科毕业论文.doc_第2页
第2页 / 共52页
基于DS18B20的单片机无线温度采集系统_本科毕业论文.doc_第3页
第3页 / 共52页
基于DS18B20的单片机无线温度采集系统_本科毕业论文.doc_第4页
第4页 / 共52页
基于DS18B20的单片机无线温度采集系统_本科毕业论文.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《基于DS18B20的单片机无线温度采集系统_本科毕业论文.doc》由会员分享,可在线阅读,更多相关《基于DS18B20的单片机无线温度采集系统_本科毕业论文.doc(52页珍藏版)》请在三一文库上搜索。

1、2013 届 本 科生毕业论文 存档编号 毕业论文(设计)论文(设计)题目 基于单片机的无线温度测量系统English Topic The wireless temperature measurement system based on single chip microcomputer系 别 物理与电子工程学院 专 业 自 动 化 班 级 学 生 指导教师 2013 年 5月 15 日 基于单片机的无线温度测量系统摘要:温度检测在日常生活、工作和工程实践中具有重要的应用。随着生活水平的提高和科学技术的进步,无论是工业还是农业或者是日常生活中对温度检测的要求越来越高,要求能进行一定距离的传输。

2、基于这点本设计主要基于MCS-51单片机并由温度传感器、无线传输器、LED数码管和上位机组成的同步显示的温度采集系统解决了这个日常生活工作中的问题。工作场所的温度采集用到了温度采集芯片DS18B20来达到一定的准确度和精确度,最后采用nRF24L01模块对采集到的温度数据进行无线传输并通过由单片机控制的数码管显示当前温度,从而能打破传统温度操作受到距离限制的缺陷的同时便于温度的读取。在经过软硬件测试后,我们基本实现了用温度传感器采集温度,用nRF24L01进行一定距离传输后在接受端的上位机软件上显示出来的模型。传输距离50m,温度范围达到0至125摄氏度,精度1摄氏度。 关键字: MCS-51

3、;nRF24L01;LED显示;温度传感器;无线传输 The Wireless Temperature Measurement System Based on Single Chip MicrocomputerAbstract:Temperature detection in the daily life, work, and has important application in engineering practice. With the improvement of living standards and the progress of science and technology,

4、 whether agricultural or requirement for temperature detection in daily life can request for a distance of transmission. Based on that this design is mainly based on MCS - 51 single chip microcomputer and the temperature sensor, wireless transmitter, LED digital tube and upper unit into synchronous

5、display of temperature acquisition system solved the problems in daily life. Workplace sampling to temperature chip DS18B20 temperature to achieve the precision and accuracy, the last of the collected temperature data by module nRF24L01 wireless transmission and through digital tube display the curr

6、ent temperature controlled by single chip microcomputer, which can break the traditional operating temperature, is limited by distance of defects and easy to read temperature. After the hardware and software testing, we basically achieved with a temperature sensor to collect temperature, after a cer

7、tain distance transmission with nRF24L01 in accept the PC software displayed on the model. Transmission distance 50 m, the temperature range of 0 to 125 degrees Celsius, the precision of 1 c.Keywords: MCS-51; NRF24L01; LED display; Temperature sensor; Wireless transmission目 录引 言11 系统结构及工作原理21.1 系统结构

8、21.2 系统控制核心AT89C5221.2.1 单片机的引脚介绍21.2.2 单片机内部资源介绍41.3 系统工作原理简介51.3.1数字温度传感器DS18B2071.3.2无线传输71.3.3 LED显示92 下位机部分介绍112.1 DS18B20温度采集模块112.1.1 DS18B20简介112.1.2 DS18B20的测温方法122.2 LED数码显示模块142.3 nRF24L01无线发送模块173 上位机部分介绍203.1 无线接收模块203.2 上位机上的数据显示214 模块间的通信234.1 上位机与单片机的通信234.1.1 串口通信简介234.1.2 PC机侧VB程序2

9、54.2 nRF24L01与单片机的通信254.3 DS18B20与单片机的通信265 系统调试285.1 DS18B20温度采集并显示285.2 nRF24L01发送与接收模块调试296 总结31【参考文献】32附 录33致 谢46 引 言随着无线技术的日益发展,无线传输技术应用越来越被各行各业所接受,无线传输传感器的检测数据也不例外。而实际温度控制过程中既要求系统具有稳定性、实时性,又需要使系统功耗低、保证温度的均匀性和数据可实时共享,因此可设计一种低功耗的多点可方便上传至上位机的无线温度检测系统。无线温度测量系统可以由无线温度传感器节点、网关、计算机采集处理软件组成,集温度信号采集、大容

10、量存储、无线射频发送、LED动态显示、控制与通信等功能于一体的新型系统。无线数字信号传输方式消除了长电缆传输带来的噪声干扰,整个测量系统具有极高的测量精度和抗干扰能力。无线传感器节点采用无线网状网设备,可以组成庞大的网络结构,支持多达上千个测点同时进行大型结构试验。无线温度测量设备被广泛应用于运动物体、不方便假设线路场所以及危险,有毒,有害等场所的温度测量。本系统采用先进的发射/接收和温度采集设备,便于安装,工作稳定性高,可以远距离测量温度,易于集成化、智能化,在工农业测控系统中有着广泛的应用前景。在生产过程中,可以实现对人类难以或无法到达的工作现场的监测,应用这一系统可对生产现场的工艺参数进

11、行采集、监视和记录,为提高产品质量、降低成本提供了信息和手段。测温节点工作在各个测温地点,进行温度数据采集和无线发送。基站与多个节点进行无线通信,并通过LED显示将数据显示出来,同时可以通过无线传输技术将数据发送给PC。在本系统中,数字化无线温度传感器将体现数字化、信息化和智能化的特点,包括温度测量部分、温度数据处理部分和温度值显示三部分构成。温度测量用到了一线式数字温度传感器DS18B20,该器件体积小,集成度高,自带A/D转换功能,更重要的是功耗低。处理器选用最常用的MCS-51单片机。温度数据的传输将会采用低功耗发射与接收模块nRF24L01,它在测量点接收单片机的传感器数据并把数据以无

12、线方式传输出去,接收部分通过接收模块(同样是nRF24L01)接收数据,并进行数字滤波,然后再将接收到的数据以异步串行通信方式上传给上位机。1 系统结构及工作原理1.1 系统结构本设计采用AT89C52作为主控CPU,外加DS18B20温度采集模块、nRF24L0l无线收发模块和数码显示模块组成整个系统,如下图1所示。图1 系统框架图本系统上位机与无线收发模块通过RS-232连接,主要完成单片机与PC机的数据传输。下位机即MCS-51与无线收发模块采用串行通信,LED为一个四合一共阴数码管,温度传感器采用DS18B20。主要完成温度采集,同步显示,同步上传至上位机。无线收发模块完成上位机和下位

13、机数据的交换,分别由两块独立的单片机控制其收发。1.2 系统控制核心AT89C52AT89C52是一个低电压,是一款高性能的有8位的片内的8k bytes可反复擦写的只读与256 bytes的随机存取数据存储器,兼容标准MCS-51,片内置有通用的8位和Flash,因此这种AT89C52单片机在电子行业中有广泛的应用。正是基于此,本设计才采用AT89C52作为核心控制器件。下面简单介绍该芯片。1.2.1 单片机的引脚介绍AT89C52 的引脚图如图2所示。图2 AT89C52的管脚排列管脚说明。电源接口:VCC-供电电压;GND-接地。I/O接口:P0口,P0口为一个8位双向I/O口,当FIA

14、SH进行校验时,P0输出原码,此时P0外部必须接上拉电阻,常用的上拉电阻为1K。P1口,P1口是一个内部提供上拉电阻的8位双向I/O口。P2口,P2口为一个内部存在上拉电阻的8位双向I/O口,且常常结合P0口控制外围数字化设备。P3口,P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。P3口也可作为AT89C51的一些特殊功能口,如下表1-1所示。表1-1 P3口引脚功能表口管脚备选功能P3.0RXD(串行数据输入口)P3.1TXD(串行数据输出口)P3.2/INT0(外部中断口0)P3.3/INT1(外部中断口1)P3.4T0(计时器0外部输入端)P3.5 T1(计时

15、器1外部输入端)P3.6/WR(外部数据存储器写选通端)P3.7/RD(外部数据存储器读选通端)独立功能接口:RST,复位输入。当需要复位时,要控制并保持RST脚上两个机器周期的高电平。ALE/PROG,当访问外部存储器时,地址锁控制单片机I/O口输出的低位字节信号,微处理器AT89C52可以控制让外部执行状态ALE禁止。/PSEN,外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。在访问外部数据存储器时,这两次有效的/PSEN信号将不会出现。/EA/VPP,在AT89C52访问外部程序存储器期间,不管是否有内部程序存储器,/EA都要保持低电平。XTAL1,

16、反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2,来自反向振荡器的输出。1.2.2 单片机内部资源介绍单片机内部有定时器。常说的计数器其实和这里的定时器是同一个物理的电子元件,只不过区别在于计数器记录的是单片机外部发生的事情(接受的是外部脉冲),而定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单片机上连接的晶振部件,MCS-51单片机的晶振经过分频之后能提供给单片机相应的稳定脉冲,而且晶振的频率非常准确,这样就能保证单片机的计数脉冲之间的时间间隔同样也非常准确。MCS-51单片机结构图如图3示。图3 单片机结构图作为定时器使用时,定时器计数常将89C52单片机片

17、内振荡器输出的脉冲经过12分频后的脉冲个数,即每个机器周期使定时器T0/T1的寄存器值自动累加1,直到溢出,溢出后继续从0开始计数,循环,所以定时器的分辨率是时钟振荡频率的1/12。作为计数器使用时,单片机通过对引脚T0(P3.4)或T1(P3.5)外部脉冲信号的计数,在输入的外部脉冲信号发生从1到0的跳变时,计数器的值就自动加1,这样计数器的最高频率一般可以是时钟振荡频率的1/24。89C52单片机设计了两个8位的特殊功能寄存器来控制定时器/计数器的工作状态,即TMOD和TCON,它俩都在特殊功能寄存器区。1.3 系统工作原理简介 温度传感器DS18B20主要完成温度的测量,DS18B20根

18、据环境温度情况,依据其内部的工作原理,将周围的温度模拟量转换数字量通过1-wire总线输出给单片机微控制器。微控制器主要控制各个外围模块,并与其通信。本文主要利用MCS-51单片机、DS18B20数字温度传感器、nRF24L01单片无线收发器和四合一数码管实现多点无线温度测量系统,解决上述问题。其温度检测原理为单片机利用温度传感器检测温度,在数码管上进行温度显示并实时上传至上位PC机的数据处理软件。因此该系统能实现对温度实时并多点温度检测,是可以实现远程控制的无线温度检测系统。在单片机控制的系统中还存在更多的电路,对系统的正常运行起着关键的作用。下面就系统中的基于单片机的外围电路功能做如下讲述

19、。(1)、复位电路。就是利用它把电路恢复到起始状态,它的作用如下。复位电路是保证本系统中硬件电路稳定可靠工作必不可少的一部分,复位电路的第一功能是上电复位。单片机系统电路的硬件要求有复位电路,是因为微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。(2)、电源电路。本系统是基于单片机控制的温度采集系统,单片机的电源要求是+5V标准直流电源供电。另外,nRF24L01是单独采用3.3V直流电源供电,这里的电源需要通过电源转换,即5V转3.3V,本系统采用AMS1117 3.3V

20、稳压芯片实现这一转换。AMS1117贴片式稳压芯片如图4。图4 ASM1117稳压芯片1.3.1数字温度传感器DS18B20DS18B20是美国DALLAS公司生产的单总线数字温度传感器,从DS18B20读出或写人信息仅需要一根口线,这是它的最大特点和优势。DS18B20具有独特的单线接口方式,测量温度范围为-55C+125C,在-10+85C范围内精度为0.5C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,电源上支持3V5.5V的电压范围,使系统设计更灵活、方便。DS18B20虽然只与微处理器链接一条口线,但仍然可实现与微处理器的双向通讯

21、。目前大多数传感器系统都采用放大-传输-数模转换这种处理模式。这种模式一般要占用数条数据/控制线,限制了单片机功能的扩展。而一线总线技术则很好地解决了这个问题。这里需要注意,挂在单总线上的器件称为单总线器件,为了区分总线上的不同器件,生产单总线器件时,厂家都刻录了一个64位的二进制ROM代码作为芯片的唯一序列号,但是由于本系统不考虑多点采集,所以本设计中的DS18B20不涉及编程系列号问题。DS18B20的引脚如图5所示。图5 DS18B20电路图1.3.2无线传输该系统的无线传输模块采用的是挪威VLSI公司推出的单片射频收发一体器件nRF24L01 芯片,而本文采购的是基于nRF24L01开

22、发的由频率合成器、接收解调器、功率、晶体振荡器和调制器组成的无线收发模块,也因此有了相应的固定的丰富的软件资料,硬件上也不需外加,该模块会自动处理字头和CRC(循环冗余码校验)。该模块使用SPI接口与微控制器通信,配置非常方便。此外,其突出特点是功耗非常低,输出发射模式时电流只有11mA,接收模式时的电流也只为12.5mA,内建空闲模式与关机模式,便于节能。通过nRF24L01 模块接收发送端发出的温度信息,当数据接收完成后产生接收完成中断信号,单片机确认有中断信息后读取nRF24L01接收缓冲区中的数据,根据数据包协议将接收到的信息通过数码管动态扫描方式显示当前温度。Nrf24l01无线收发

23、模块如图6。图6 无线收发模块电路图无线收发模块的各引脚直接和单片机相连,在单片机的控制下,通过SPI接口完成温度数据的读入读出,发送模块和接收模块的nRF24L01完成数据的无线传输。在无线模块接收到数据时,将CD、AM信号置高电平,在数据接收完后,将DR端置为高电平,再将接收到的数据通过SPI接口MISO和MOSI口传输到单片机上。NRF24L01P+PA+LNA无线模块工作于免许可证的2.4GISM频段,可以点对点应用,也可组成星形网络。NRF24L01P+PA+LNA无线模块的核心为挪威NORDIC公司最新的高性能无线数传芯片NRF24L01,经过国内的专业设计和改造,增加大功率PA和

24、LNA芯片,射频开关,带通滤波器等组成了专业的全双向的射频功放,即现在的Nrf24l01模块,使得有效通信距离得到极大拓展。在射频部分,模块上做了大量的优化匹配调试,使得发射效率达到最高,谐波最小,使得NRF24L01P+PA+LNA无线模块对外界设备的射频干扰达到最低,同时也不容易受到其他设备的干扰,极大提高工作的稳定性。NRF24L01P+PA+LNA无线模块集成度极高,尺寸也只有45.54mm*16.46mm,方便嵌入于任何空间紧张的产品中,而在本系统中通过SPI口控制NRF24L01P+PA+LNA无线模块即可完成超远距离无线数据传送系统的设计。1.3.3 LED显示数码管显示是一个系

25、统工程中必不可少的人机交互环节,因此关于数码管的驱动也就是系统工程中的一个重要的环节。本设计采用了3位数码管动态扫描显示。LED数码管动态显示就是一位一位地轮流点亮各位数码管,对于每一位LED数码管来说,每隔一段时间点亮一次,利用人眼的“视觉暂留效应,采用循环扫描的方式,分时轮流选通各数码管的公共端,使数码管轮流导通显示。视觉暂留效应是指景物发出或反射的光,在人的视网膜上所形成的物像会在人的视觉中保留一段时间。详细来说,即使景物从视野中消失,人眼所感受到的光像也不会马上消逝,因为有实验证明人眼的视觉暂留时间约为0.050.2s,这是因为在外界光源突然消失时,人眼的亮度感觉是按指数规律逐渐减少的

26、。这样当一个光源反复通断,在通断频率较低时,人眼可以发现亮度的变化;而通断频率增高时,眼睛就逐渐不能发现相应的亮度变化了。断通在高频率时给人的印象就是一组稳定的显示数据,会被认为各数码管是同时发光的。若数码管的位数不大于8位时,只需两个8位IO口。它将所有数码管的8个段线相应地并接在一起,并接到AT89C52的P0口,由P0口控制字段输出。而各位数码管的共阴极由AT89C51的P2口控制,实现8位数码管的位输出控制。其中P2仅运用了3个端口,用以直接驱动位选。 2 下位机部分介绍DS18B20是整个系统的检测元件,由于它采用一线总线技术,使采样后的数据与单片机的传输变得简单。LED模块是为了让

27、在检测点可以随时看到当前检测温度。nRF24L01无线传输模块是为了让检测的数据实时发送给远处的PC上位机系统,实现远程监控等。下位机中的单片机是控制以上各模块的核心,并实现各模块的连接转换。2.1 DS18B20温度采集模块2.1.1 DS18B20简介前面已经介绍,该模块采用美国DALLAS公司推出的数字测温芯片DS18B20,它体积小,有多种封装,具有独特的单线接口。测量范围从-55摄氏度到+125摄氏度,拥有可以选择的9到12位温度数据分辨率,可以工作在寄生电源模式,硬件配置十分简捷方便。在本系统中温度传感器输出脚I/O直接与单片机的P1.6相连,采用+5V电源供电。DS18B20芯片

28、封装如图7所示。 图7 DS18B20芯片封装引脚定义: (1)DQ为单数据总线,是数字信号输入/输出端; (2)GND为电源地; (3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。 对于DS18B20简洁的端口引脚,只需要将它的数据线与单片机的任意一个I/O口连接并保证其正常供电,在正确合时序的程序驱动下,就可以实现温度的采集,并作出相应的其他联动控制。所以,本设计中DS18B20与单片机接口电路图8。图8 DS18B20与单片机硬件图2.1.2 DS18B20的测温方法 DS18B20中的温度传感器刚好能自动完成对外界环境温度的测量,本系统是以12位转化为例介绍它的测温方法。D

29、S18B20用具有16位符号扩展的二进制数据补码读数形式提供,以0.0625C/LSB形式表达,经DS18B20转化后得到的12位数据存储在DS18B20的两个8比特的RAM中,这样得到的数据中二进制的前面5位就是符号位,这时如果测得的温度大于0,这5位二进制数据全为0,只要将测到的数值乘于0.0625即可得到实际温度;再比如,如果测定的外界温度小于0,这5位二进制数据将全为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。该传感器采集温度流程图图9。图9 DS18B20温度采集流程图该模块中读取DS18B20内部数据的程序如下。uint get_temp()/读取寄存器中存储的温

30、度数据uchar a,b;dsreset(); /DS18B20复位,调用初始化子函数delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread();/读低8位b=tempread();/读高8位temp=b;temp0;j-)i=t/100; /除以100得到商,为温度的十位display(2,i); /在第一个数码管上显示i=t%100/10; /100取余再除以10得到商,位温度的个位display(1,i+10); /在第2个数码管上显示,有小数点i=t%100%10; /100取余再用10取余,为温度的小数位 display

31、(0,i); /在第3个数码管上显示2.3 nRF24L01无线发送模块正如前面所介绍,该模块是挪威公司生产的nRF24L01在外围电路优化配置组成的。在下位机部分时,其被置为发送模式。通过SPI总线写入数据,数据传输高效可靠,并且具有自动应答和自动再发射功能。芯片采用了增强式ShockBurst技术,就是说输出功率和通信频道可通过设置软件程序进任意行配置。模块中nRF24L01和89C52 P1口连接(如图12),单片机接11.0592MHz的晶振工作,低速的单片机就能够很好地控制高速收发的射频芯片,硬件结构如图12所示。图12 无线收发模块硬件原理图从设计中单片机控制的角度来看,我们只需要

32、关注图11的六个控制和数据信号。CSN,芯片的片选线,CSN为低电平芯片工作。SCK,芯片控制的时钟线(SPI时钟)。MISO,芯片控制数据线(Master input slave output)。MOSI,芯片控制数据线(Master output slave input)。IRQ,中断信号。无线通信过程中MCU主要是通过IRQ与NRF24L01进行通信。CE,芯片的模式控制线。在CSN为低的情况下,CE协同NRF24L01的CONFIG寄存器共同决定NRF24L01的状态。该模块发送模式的工作流程如13所示。图13 发送模式流程图相关发送模块子程序如下。void init_NRF24L01

33、(void) inerDelay_us(100); CE=0; CSN=1; SCK=0; SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); SPI_Write_Buf(WRITE_REG+RX_ADDR_P1,RX_ADDRESS, RX_ADR_WIDTH);SPI_RW_Reg(WRITE_REG + EN_AA, 0x03); SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x03); SPI_RW_Reg(WRITE_REG + RF_CH, 0); SPI_RW_Reg(WRITE_RE

34、G + RX_PW_P1, RX_PLOAD_WIDTH); SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); 3 上位机部分介绍3.1 无线接收模块上位机上的接收模块依然是采用硬件配置相同的nRF24L01。硬件电路与下位机部分的无线发送模块相同,以保证有相同的配置参数,便于理解也便于编程。Nrf24l01初始化后的流程图图14如下。图14 nRF24L01接收流程图无线接收模块相关程序如下。/*函数:void SetRX_Mode(void)/*功能:数据接收配置 void SetRX_Mode(void)CE=0;SPI_RW_Reg(WRITE_REG +

35、 CONFIG, 0x0f); / IRQ收发完成中断响应,16位CRC CE = 1; inerDelay_us(130);3.2 上位机上的数据显示PC机显示外围设备的方法很多,常用的软件有Windows自带的VB、组态软件、Matlab等。本设计上位机软件采用VB.NET编写。用VB.NET开发串行通信程序普遍采用的方法有如下两种:一种是利用Windows的API函数;另一种是采用VB.NET的通讯控件SerialPort自行组建上位机显示终端。由于利用API函数编写串行通信程序较为复杂,需要调用许多繁琐的API函数,而VB.NET的相关通讯控件提供了标准的事件处理函数、事件和方法,用户

36、不必了解通信过程中的底层操作和API函数,从而可以比较容易、高效地实现串口通信3。 下面是上位机显示温度数据的流程图如图15。图15 上位机显示流程图4 模块间的通信通信,是指主控单元与其他能实现控制功能的单元的数据交换和控制。在本系统中,涉及很多的通信,特别是还涉及到不同的通信方式。MCU与数码管、DS18B20、Nrf24l01模块和上位机都有通信的实现,都涉及数据的读取或写入。下面就这些通信分部分做阐述。4.1 上位机与单片机的通信4.1.1 串口通信简介本系统中采用VB实现数据的在PC机端显示。由于VB下的串行端口通信控件屏蔽了通信过程中的底层操作,程序员只需要控制MSComm控件的属

37、性和事件,结合VB提供的其他控件就可完成对RS-232串口的初始化和下位机上温度数据的发送接收并最终显示。PC机和单片机的接口电平转换芯片采用MAX232C,接口电路图如图15所示。单片机侧的TXD(发送端)接PC机的RXD(接收端),单片机侧的RXD(接收端)接PC机的TXD(发送端),两者的GND(地)直接相连。电缆线为9针的RS-232电缆。图15中标明了PC机侧发送与接收脚的针号,不能接错。单片机控制并检测温度,实时地通过RS-232串口将温度数据传送给PC机。PC机侧在通过响应OnComm事件后就能在事件的处理程序中将数据接收、处理再送文本框显示,同时保存在设定的文件中,甚至上传至网

38、络实现网络共享。用MSComm控件在上位机上进行串口通信的一般步骤如下。首先设置通信对象、端口以及配置格式(比如数据位长度、校验方式、起始位个数、停止位个数等)和其它相关属性。再给两端设定通信协议。然后打开通信端口,进行数据的写和读入。最后要关闭通信端口,在完成串行通信操作后,将串行通信端口的资源归还给操作系统。在本设计中采用一块MAX3221芯片把从89C52传过来的信号进行电平转换后输出到PC,把从PC发过来的信号发送给USART。USART(Universal Synchronous/Asynchronous Receiver/Transmitter)是指:同步/异步串行接收/发送器,U

39、SART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。设计中的RS-232接口电路如图16所示。图16 RS-232电平转换电路其对应的引脚图如下表4-1。表4-1 9针串行口插针对应关系表DB9管脚号插针功能说明标记1接收线信号检出DCD2接收数据RD3发送数据TD4数据终端就绪DTR5信号地SG6数据传输设备就绪DSR7请求发送RTS8允许发送CTS9振铃指示RI由图15以及表4-1可以知道,接收使能EN接地,时钟有效;掉电模式控制脚FORCEOFF始终拉高,即MAX3221始终处在工作状态。AT89C52的TXD脚与MAX3221的11脚(DIN)相连,AT

40、89C52的RXD脚与MAX3221的9脚(ROUT)相连;输入DIN的信号转换为RS-232电平后,经MAX3221的13 脚(DOUT)输出到J5(DB9)的2脚(DB9的2脚为串口的RXD脚),接口J5(DB9)的3脚(串口的TXD脚)与MAX3221的8脚(RIN)相连,这样的连接方式已将AT89C52的输出脚TXD(本设计中AT89C52的P3.6管脚)和输入脚RXD(本设计中AT89C52的P3.7管脚)连接对调,可以直接通过延长线与PC机相连。4.1.2 PC机侧VB程序首先,在Form中添加MSComm1通信控件,并将其属性通过PC端程序作出如下设定。 With MSComm1

41、.CommPort=1 设置串行端口号为1 Setting=2400,n,8,1 InputLen=2 一次读取2字节 InputMode=comInputModeBinary 二进制数据格式 Rthreshold=2 接收缓冲区达到2字节时产生OnComm事件其他为默认值即可。 其次,在Form窗口添加两个定时器Timer1和Timer2,Timer1为每次采样时间间隔计时器,初值Interval=30000(1毫秒/Interval,所以为30秒)。Timer2是为保证串口出错或串口无信号时自动跳出的,时间为1分钟。在构建好自己的温度显示终端时就可以等待下位机与PC的通信,并最终实现温度的

42、在线检测。4.2 nRF24L01与单片机的通信如前面所述,Nrf24l01模块是采用SPI总线技术,实现数据在模块和AT89C52间的传输,也是微处理器控制该模块的关键。下面先介绍这种通信方式。SPI接口的英文名全称是Serial Peripheral Interface,意思是串行外围接口,是摩托罗拉公司首先在自己的MC68HCXX系列微型处理器上开始定义的。当前的SPI接口广泛地应用在EEPROM、FLASH等存储器件还有AD上,甚至和数字信号解码器也会涉及使用这样的通信方式。SPI接口能够在CPU和外围低速器件之间实时地实现同步串行数据传输,在主器件(微处理器、上位机等)的移位脉冲作用

43、下,数据按位传输,高位在前,低位在后,通信方式为全双工,在一些检测中比通信还要快,速度可达到几兆每秒。无线模块引脚图如图17。图17 nRF24L01引脚图下面是SPI接口各主要端脚的简介。(1)MOSI主器件(2) MISO主器件数据输入,从器件(3)SCLK由主器件产生。(4)NSS从器件使能信号,由主器件控制,有的IC会标注为CS(Chip select)。在进行的通信过程中,SPI接口不需要做寻址操作,因为上面已经介绍全双工通信,就会表现地简单高效。在多个从器件,即多个无线发送点向一个上位机传输数据的系统中,每个从器件需要独立的使能信号,硬件上比单个从系统要复杂一些。SPI接口在内部硬件实际上有两个功能简单的,能够传输的二进制数据为8位,在主器件发出的选中从器件使能信号和移位脉冲同时作用下,按位传输,高位在前,低位在后,而且会在SCLK的上升沿上数据改变,然后又由一位数据被同时存入中。4.3 DS18B20与单片机的通信DS18B20以单总线协议工作,单总线通信原理会在接下来的部分详细介绍。但是通常测温分机首先要发送复位脉冲命令,使信号线上的 DS18B20芯片都被复位,接着发送对ROM的操作命令,使DS18

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1