![基于MCS51的单片机无线温度采集系统设计_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-4/18/6b704380-aece-4a84-91a4-68a7f6c7a0a0/6b704380-aece-4a84-91a4-68a7f6c7a0a01.gif)
![基于MCS51的单片机无线温度采集系统设计_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-4/18/6b704380-aece-4a84-91a4-68a7f6c7a0a0/6b704380-aece-4a84-91a4-68a7f6c7a0a02.gif)
![基于MCS51的单片机无线温度采集系统设计_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-4/18/6b704380-aece-4a84-91a4-68a7f6c7a0a0/6b704380-aece-4a84-91a4-68a7f6c7a0a03.gif)
![基于MCS51的单片机无线温度采集系统设计_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-4/18/6b704380-aece-4a84-91a4-68a7f6c7a0a0/6b704380-aece-4a84-91a4-68a7f6c7a0a04.gif)
![基于MCS51的单片机无线温度采集系统设计_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-4/18/6b704380-aece-4a84-91a4-68a7f6c7a0a0/6b704380-aece-4a84-91a4-68a7f6c7a0a05.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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口,当fias
14、h进行校验时,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和l
24、na芯片,射频开关,带通滤波器等组成了专业的全双向的射频功放,即现在的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位转化为例介绍它的测温方法。ds
29、18b20用具有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_reg
34、 + 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)是指:同步/异步串行接收/发送器,us
39、art是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。设计中的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)相连,at8
40、9c52的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接口在内部硬件
44、实际上有两个功能简单的,能够传输的二进制数据为8位,在主器件发出的选中从器件使能信号和移位脉冲同时作用下,按位传输,高位在前,低位在后,而且会在sclk的上升沿上数据改变,然后又由一位数据被同时存入中。4.3 ds18b20与单片机的通信ds18b20以单总线协议工作,单总线通信原理会在接下来的部分详细介绍。但是通常测温分机首先要发送复位脉冲命令,使信号线上的 ds18b20芯片都被复位,接着发送对rom的操作命令,使ds18b20被激活并能够进入接收内存访问命令。访问命令会完成温度转换和温度读取等工作。该系统中会以rom命令和存储器命令两种形式完成对ds18b20操作。rom操作命令均为8位
45、,这些8位的命令代码已经被广泛应用,它们分别为:读rom(代码0x33h)、匹配rom(代码0x55h)、跳过rom(代码0xcch)、搜索rom(代码0xfoh) 和告警搜索(代码0xech)命令;ds18b20内部的存储器操作命令为:写暂存存储器(代码0x4eh)、读暂存存储器 (代码0xbeh)、复制暂存存储器(代码0x48h)、温度变换(代码0x44h)、重新调出eeram(代码0xb8h)以及读电源供电方式(代码0xb4h)命令。其对时序及电特性参数要求较高,必须严格按照它的时序要求去操作。ds18b20的数据读写由单片机来完成,包括初始化、读数据和写数据。系统软件已经广泛采用了模块
46、化程序设计,主从式结构的通信方式。ds18b20初始化完成后处于监听状态,温度采集模块负责数据的采集工作。为保证ds18b20的严格i/o时序,需要作较精确的延时。在ds18b20的操作中,短时间延时是指10us以下的延时,在c语言下采用若干个_nop_();指令即可。因c51编译器能够为ds18b20提供若干内部调用函数,其编译结果就是在对应位置实时嵌入一个nop汇编指令,所以短时间延时就可以利用_nop_()函数实现。如果是较长时间延时的话,即指10us以上的延时,在ds18b20操作中,用到的较长时间延时常有15us、90us、270us、540us等。因这些延时均为15us的整数倍,因
47、此也可编写一个delayl5(n)函数,并使它成为随时能够调用的延时子函数,该函数就可以实现约15us*n的延时。根据ds18b20的通讯协议,主机控制ds18b20完成温度转换必须经过三个步骤。每一次读写之前都要对ds18b20进行复位,复位成功后发送一条rom指令,最后发送ram指令,这样才能对ds18b20进行预定的操作。5 系统调试系统调试,是指通过软件与硬件的结合最终正确实现系统的功能,或者用其他方法验证设计等的正确。系统调试一般为如下步骤。首先,用程序编程软件验证系统中子程序的正确可行;其次,去验证整体程序的可行性;再讲子程序与硬件电路结合验证系统某个模块的可行性与正确性;最后,将
48、所有模块结合实现系统所有的功能。下面是对本系统的部分调试过程及结果。5.1 ds18b20温度采集并显示ds18b20采集的数据能否被下位单片机识别并在led上显示是本次设计的第一步,这一步不仅要求ds18b20能采集温度并上传至单片机,还要去单片机能通过控制led数码管显示当前温度。按硬件电路图,ds18b20主要c程序如下:void display(uchar num,uchar dat) /数据显示程序uchar i;p0=0; switch(num) case 0:i=0x0e;p2=i;break; case 1:i=0x0d;p2=i;break; case 2:i=0x0b;p2
49、=i;break; default:break; p0=tabledat;p2=i;void dis_temp(uint t) /显示温度数值函数t传递的是整型的温度uchar i,j;for(j=10;j0;j-)i=t/100; /除以100得到商,为温度的十位display(2,i); /在第一个数码管上显示delay(4);i=t%100/10; /100取余再除以10得到商,位温度的个位display(1,i+10); /在第2个数码管上显示,有小数点delay(4);i=t%100%10; /100取余再用10取余,为温度的小数位 display(0,i); /在第3个数码管上显示
50、调试结果如下图18。图18 led调试结果图5.2 nrf24l01发送与接收模块调试数据发送是本设计下位机部分的最后一个环节,要能让单片机将ds18b20采集的数据通过nrf24l01发送出去并在pc机端的单片机控制的nrf24l01接收。将相关发送和接收模块程序写入单片机后,通过主程序中的调用,实现温度的无线传输,发送端和接收端除了nrf24l01的软件设置工作模式和发送端有ds18b20接收端没有以外,其他部分均相同。相关调试后结果如下图19。图19 无线发送接收调试结果图6 总结本论文题目是无线温度采集系统,本系统总共涉及一下相关知识点。单片机引脚和单片机中断控制,c语言,通信技术(一
51、线总线,spi总线,rs-232总线),cad制图,模拟电路基础等等,在整个过程中遇到了困难,也获得了更多的知识。由于起初看到这个课题,能很清楚地知道需要用单片机、无线收发模块、串口通信,所以就低估了整个系统的相关细节,而这个细节才是决定这个课题的关键。我在别人那里找到了相关ds18b20的软硬件资料,然后自己组合了ds18b20模块的子程序,自己设计了led显示的子程序,就直接用主程序调用了这些子程序,结果总是不很理想,如数码管的显示闪烁很厉害、数码管只是瞬间显示,数码管显示乱码等,但是很庆幸的是这些问题却表明我的硬件没有问题,我随后都通过资料和同学老师的帮助解决了软件上的问题。但是在后来增
52、加nrf24l01模块后,问题就更多了,接收端没有反应、有反应却没有温度数据、有数据却是一个固定不变的初值等,同样这些都通过修改软件得到了解决。在解决这些问题的过程中,可以深化也学习了更多专业课知识,c程序流程图的重要性,学会子程序调用的方法,了解spi总线通信的原理等。本设计的温度采集可以应用在不适合人类工作却又对温度有要求的场所,显示当前温度并借助上位机记录温度数据。再给这个系统增加更多其他模块,如时钟、报警等就能实现更多的功能,实现更广泛的应用。对这样的系统进行微型化、集成化,并最终实现商业化,将会促进这个系统的完美升级,激发相关配套系统的研发。本文主要阐述了无线温度采集设计方案。介绍了一种利用下位机通过无线通信的方式上传温度数据到下位机的方案。该方案简单易行,数据传输可靠性高。【参考文献】1 衡军山,赵明洁.基于vb6.0的串行通信工控软件设计及实例r.承德民族职业技术学院,2005.(2)2 李武华,汪飞,吴建律.无线收发模块在智能家庭网络中的应用.今日电子,6,2002:7-83 范逸之、陈立元编著visual basic与rs-232串行通信控制 中国青年出版社,20024 刘威.基于ds18b20和nrf905的多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版数学九年级上册24.2.2.1《直线与圆的位置关系》听评课记录
- 人教版地理八年级下册《第四节 祖国的神圣领土──台湾省》听课评课记录2
- 人教版九年级数学上册 听评课记录 旋转《中心对称图形》
- 招商引资佣金合同(2篇)
- 湘教版九年级数学上册第4章锐角三角函数4.3解直角三角形听评课记录
- 湘教版数学七年级上册4.2《线段的长短比较》听评课记录
- 部编人教版历九年级史下册第12课《亚非拉民族民主运动的高涨》听课评课记录
- 湘教版数学七年级上册1.3《有理数的大小比较》听评课记录
- 苏科版数学七年级下册12.2《证明》听评课记录3
- 苏科版数学八年级上册3.3《勾股定理的简单应用》听评课记录
- 出差报销单-中英对照版
- 电流互感器试验报告
- 蒋中一动态最优化基础
- 七年级英语阅读理解10篇(附答案解析)
- 抖音来客本地生活服务酒旅商家代运营策划方案
- 钻芯法桩基检测报告
- 【学前教育小学化成因分析及其对策10000字(论文)】
- 无线网网络安全应急预案
- 国籍状况声明书【模板】
- 常用保洁绿化人员劳动合同范本5篇
- 腕管综合征课件
评论
0/150
提交评论