关键词不能为空

当前您在: 主页 > 英语 >

reconfirm基于单片机的无线温度采集系统的设计

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-01-28 00:49
tags:

reconfirm-落伍的英文

2021年1月28日发(作者:noyes)





分类号:





级:







毕业设计


(


论文


)





基于单片机的无线温度采集系统的设计




DESIGN OF THE WIRELESS TEMPERATURE


COLLECTION SYSTEM BASED ON MCU
































< br>教











2009
















5




8






徐州工程学院学位论文原创性声明




本人郑重声明:


< br>所呈交的学位论文,是本人在导师的指导下,独立进行


研究工作所取得的成果。除 文中已经注明引用或参考的内容外,本论文不含


任何其他个人或集体已经发表或撰写过的 作品或成果。对本文的研究做出重


要贡献的个人和集体,均已在文中以明确方式标注。< /p>



本人完全意识到本声明的法律结果由本人承担。



论文作者签名:



















日期:



















徐州工程学院学位论文版权协议书




本人完全了解徐州工程学院关于收集、保存、使用学位论文的规定,即:


本校学生在学习期间所完成的学位论文的知识产权归徐州工程学院所拥有。


徐州 工程学院有权保留并向国家有关部门或机构送交学位论文的纸本复印件


和电子文档拷贝, 允许论文被查阅和借阅。徐州工程学院可以公布学位论文


的全部或部分内容,可以将本学 位论文的全部或部分内容提交至各类数据库


进行发布和检索,可以采用影印、缩印或扫描 等复制手段保存和汇编本学位


论文。



论文作者签名:





















导师签名:


























日期:
























日期:





















摘要



随着 信息领域各种技术的发展,在数据采集方面的技术也取得了长足的进步,采


集数据的信息 化是目前社会的发展主流方向。各种领域都用到了数据采集,在石油勘探、


地震数据采集 领域已经得到应用。



本课题提出一种基于单片机的无线温度采 集系统方案,该方案是利用单片机控制


DS18B20


温度传感 器采集温度、控制


LED


数码管实时显示温度值、控制


NFR240L1


进行数据的


无线传输,并由单 片机去把温度数据传至计算机进行存储。本系统中所用到的器件是


STC


公司的


STC89C52


单片机、数 字温度传感器


DS18B20


和无线芯片


NFR24L01


,测量结果用七段



LED


数码管显示采集的数字信息,并利用单片机串行口,通过


RS-232


总线及通信协议将


采集的数据传送到


PC


机,进行进一步的存档、处理,并对测量结果进行显示和存储。




关键词



单 片机;温度采集;


NFR24L01


;数据传输;串口通信;< /p>






Abstract


With the development of various technologies of information in the field,in data collection


techniques have also made great progress,collect data,information and social development is the


mainstream. Various areas of data collection used in oil exploration, seismic data acquisition in


the field has been applied.


This issue presents a collection based on single chip system solutions for wireless


temperature, the program is the use of microcomputer control the temperature DS18B20


temperature sensor acquisition, real-time control of LED digital display temperature control,


control NFR240L1 wireless data transmissionby the microcontroller to the temperature data


transmitted to the computer for storage. This system is a device used in the STC's STC89C52


microcontroller, digital temperature sensor DS18B20 and wireless chips NFR24L01, measured


with a seven-segment LED digital display segment of digital information collectionand use


Serial port, RS-232 bus and through the communication protocol to collect data to the PC, for


further archiving, processing, and measurement resultsare displayed and stored.


Keywords



SCM





Temperature collection





NFR24L01





Data transmission















Serial communication

















1


绪论



.............. .................................................. .... 1



1.1


课题背景



.


.................................................. ............


1



1.2


数据采集系统简单介绍



.


............................. .....................


1



2


温度采集系统的设计


< p>
............................................ .......... 3



2.1


系统硬件电路构成



.


.............................................. ........


3



2.1.1


单片机部分



.


................................................. ....... 3



2.1.2


温度传感器部分



.

< br>............................................... ..... 7



2.1.3 LED


数码管部分



........ ............................................ 15



2.1.4 NRF24L01


无线数据传输部分



......................................... 16



2.2


系统软件设计



.

................................................ .........


29



2.2.1 DS18B20


程序的设计



.


............................................... 29



2.2.2


数码管显示程序的设计



.

< p>
............................................ . 31



3


串口通信



............ .................................................. . 36



3.1


通信简介



.


.................................................. ...........


36



3.2


单片机串口通信接口



.


.............................. .....................


37



3.2.1


单片机串口结构



.


.............................. ..................... 37



3.2.2


单片机与


PC


机之间电平转换硬件接口



................................ 38



3.2.3


单片机串口通信设置及程序设计



.< /p>


..................................... 40



4


上位机程序设计



......... ................................................ 43



4.1 Visual Basic


语言简介



.


................................................


43



4.2


串口通信的实现



.

< br>............................................... ........


43



4.2.1 MSComm


控件的操控原则



.< /p>


........................................ .... 44



4.2.2 MSComm


的属性



.


. .................................................. . 44



4.3


上位机程序设计



.

< br>............................................... ........


45



4.4


数据库设计



.


................................................. ..........


47



总结



.............. .................................................. ..... 49



致谢


< p>
............................................ ......................... 50



参考文献



............ .................................................. ... 51



附录



.............................................. ....................... 52



附录


1



.. .................................................. .................


52



附录


2



.. .................................................. .................


57



附录


3



.. .................................................. .................


80






1


绪论



1.1


课题背景



在现代社会的生活环境中, 信息扮演着极其重要的角色。所谓信息就是人们即时获得



对自 己有用的数据。无论你生活在哪里,从事什么工作,无时无刻不在与信息打着交道。




18


世纪工业革命以来,工业发展 与是否能掌握技术有着密切的联系。在机械、精密制



造、化工 等行业,可以说那时几乎所有的工业部门都不得不考虑着技术领先的因素。但是



进入


20


世纪也就是人们说的信息社 会的到来技术虽然还是关键的因素,但是获得技术已



经不是靠 那种人们基本的手工操作了,信息是获得技术的关键所在,这就要求人们能在第



一时间获得数据。比如在气象部门、航空航天部门、以及现代农业……可以说现代社会生



活的各方面都对实时、即时的数据存在着依赖。今天,我们的生活环 境和工作环境有越来



越多称之为单片机的小电脑在为我们服务 。单片机在工业控制、尖端武器、通信设备、信



息处理、


家用电器等各测控领域的应用中独占鳌头。


时下,

< br>家用电器和办公设备的智能化、



遥控化、模糊控制化己 成为世界潮流,而这些高性能无一不是靠单片机来实现的。采用单


片机来对数据采集进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以


大幅度提高被控数据的技术指标,从而能够大大提高产品的质量和数量。单片机以 其功能



强、体积小、可靠性高、造价低和开发周期短等优点, 成为自动化和各个测控领域中必不



可少且广泛应用的器件,尤 其在日常生活中也发挥越来越大的作用。温度是环境监测的重


要参数

,


在一些特定的场合常常需要对温度进行监测。很多温度监测环境范围大

< p>
,


测点距离



,


布线很不方便。本系统中把温度传感器


DS18B20


将采集到的温度值送给单片机进行处



,


通过


nRF2401


实现远程无线传输

< p>
,


在上位机的控制系统中


,


采用


RS-232


口作为计算机与


单 片机温度数据通信接口。本系统既能准确的测量温度


,


又能解决 测量距离上的问题,基


此,本绕基于单片机无线的温度采集系统展开应用研究工作。



1.2


数据采集系统简单介绍



随着自动控制 、监测及远程控制的发展,数据采集越来越被广泛应用,如医疗、工业



等方面,数据采集是指将温度,压力,流量,位移等模拟量通过各种传感元件做适当转换



后,再经信号调理、采样、量化、编码、传输等步骤采集,转换成数字量后, 传给


PC




进行存储,处理,显示或打印的过程,相应的系统称为数据采集系统,可分为以下几种:



1.


基于通用微型计算机的数据采集系统

< br>


将采集来的信号通过外部的采样和


A/D

< p>
转换后的数字信号通过接口电路送入微机内


进行处理,然后再显示处理结果 或经过


D/A


转换输出,主要有以下几个特点


:


( 1)


系统较强的软、硬件支持。通用微型计算机系统所有的软硬件资源都可以用来支


持系统进行工作。



(2)


具有自开发能力。





(3)


系 统的软硬件的应用配置比较小,系统的成本较高,但二次开发时,软硬件扩展


能力较好。



(4)


在工业环境中运行的可靠性差 ,对安放的环境要求较高;程序在


RAM


中运行,易


受外界干扰破坏。



2.


基于单片机的数据采集系统



它是由单片机及其些外围芯片构成的数据采集系统,是近年来微机技术快速发展的结



果,它具有如下特点


:

(1)


系统不具有自主开发能力,因此,系统的软硬件开发必须借助开发工具。



(2)


系统的软硬件设计与配置规模都是 以满足数据采集系统功能要求为原则,因此系


统的软硬件应用配置具有最佳的性价比。系 统的软件一般都有应用程序。



(3)


系统的可靠性好、使用方便。应用程序在


ROM


中运行不会因 外界的干扰而破坏,


而且上电后系统立即进入用户状态。



3.


基于


DSP


数字信号微处理器的数据采集系统



DSP


数字信号微处理器从理论上而言就是一种单片机的形式 ,常用的数字信号处理芯



片有两种类型,一种是专用


DSP


芯片,一种是通用


DSP


芯片。基于


DSP


数字信号微处理器



的数据采集系统的 特点如下


:


精度高、灵活性好、可靠性好、容易集成、分时复用 等,但


其价格不菲。



4.


基于混合型计算机采集系统



这是一种近年来随着


8


位单片机出现 而在计算机应用领域中迅速发展的一种系统结


构形式。它是由通用计算机


(PC



)


与单片机通过标 准总线


(


例如


RS-232-C


标准


)


相连而


成。 单片机及其外围电路构成的部分是专为数据采集等功能的要求而配置的,主机则承担


数据 采集系统的人机对话、大容量的计算、记录、打印、图形显示等任务。混合型计算机


数据 采集系统有以下特点


:


(1)


通常具有自开发能力;



(2)


系统配置灵活,易构成各种大中型测控系统;

< br>


(3)


主机可远离现场而构成各种局域网络系统;



(4)


充分利用主机资源,但不会占有主 机的全部


CPU


时间。





DS18B20








1


nRF


2401


模块



nRF


2401


模块









2


GSM


模块



2


温度采集系统的设计



2.1


系统硬件电路构成



身的温度采集系统,系统硬件电路由温度传感器、单片机、


NRF24L 01



RS-232


串口

< p>
通信和计算机组成。其原理框图见图


2-1
















DS18B20


< br>字温度传感器




< p>
NRF24L01


1




NRF24L01


2





1





2 < /p>



线



线





3


PC





2-1


硬件电路原理框图



在单片机


1


的控制下,温度传感器把温度数据传至单片机


1


进行判断、显示并把有效的


数据通过单片机的串口传至单片机


2


。单片机


2


把收到的数据进行判断和显示,并控制


NRF24L01


无线模 块


1


把数据发射出去。无线模块


2


收到数据后,把数据通过


SPI


通信传至单


片机


3


,单片机


3


在对数据进行再判断与显示。最后单片机


3


再把有效的数据通过


RS-232


< br>



口传至计算机,计算机对收到的数据进行采集和存储。



单片机主要是对温度传感器


DS18B20


进行控制,读取温度传感器的温度值,并把温度



值通过串口通信送入计算机。


NRF24L01


主要 对数据进行无线传输。由于


STC89


系列单片机



MCS-51


系列单片机兼容,并支持在线下载,线路简单,所以本系统采用


STC8 9C52


单片


机。



2.1.1


单片机部分



(一)单片机发展



单片机又称“


MCU


”,其发展历程主要经历了以下五个阶段

[7]:


第一阶段


:


单片机的探 索阶段。这一阶段以


Intel


公司的


MCS-48


为代表。


MCS-48


< p>
推出是在工控领域的探索,参与这一探索的公司还有


Motorola,Z iLong


等,都取得了满意


的效果。



第二阶段


:


单片机完善阶段。

< br>Intel


公司在


MCS-48

基础上推出了完善的、典型的


MCS-51


单片机系列。它 在以下几个方面奠定了典型的通用总线单片机体系结构。



(1 )


完善的外部总线。设置了经典的


8


位单片机的总线结构。



(2)CPU


外围功能单元的集中管理模式。



(3 )


体现工控特性的位地址空间、位操作方式。



(4)


指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。



第三阶段


:8


位单片机巩固发展及


16


位单片机推 出阶段,也是向微控制器发展的阶


段。


Intel


公司推出的


MCS-96


系列单片机 中,将一些用于测控系统的模数转换器、程序


运行监测器、脉宽调制器等纳入片中,体现 了单片机的微控制器特征。



第四阶段


:


微控制器的全面发展阶段。随着单片机在各个领域全面深入的发展和应用,

< p>


出现了高速、大寻址范围、强运算能力的


8


位、


16


位、


32


位通用型单片机,以及小型廉



价的专用型单片机。



第五阶段即现行阶段。单片机的首创公司


Intel


将其


MCS-51


系列中的


80C51


内核使



用权以专利互换或出售形式转让给世界许多著名


IC


制造厂商,如


Atmei


Philips



NEC


等,这样


80C51


就变成有众多制 造厂商支持的发展出上百种品种的大家族,现统称为


8051


系列,也有人简称为


51


系列。虽然世界上的


MCU


品种繁多,功能各异,开发装置也互不



兼容,但是客观发展表明


:80C51


系列单片机已成为单片机发展的主流。在单片机家族中,



80C51


系列是其中的佼佼者。


1998


年以 后系列单片机又出现了一个新的分支,称为系列


单片机。这种单片机是由美国

< p>
Atmel


公司率先推出的,它的最突出优点是把快擦写存储器


应用于单片机中。这使得在系统开发过程中修改程序十分容易,大大缩短了系统的开发周


期。同时,在系统工作过程中,能有效地保存数据信息,即使断电也不会丢失信息。除此,


AT


系列单片机的引脚和


80C51


是一样的,所以,当用


89


系列单片机取代


80C51


时可以直


接进行代换,并且也可以不更换仿真机。





(二)


STC89C52


的特点及工作原理



STC89C52


完全兼容


MCS-51


系列单片机的所有功能,并且本身带有


2K


的内存储器,



可以在编程器上实现闪 烁式的电擦写达几万次以上,比以往惯用的


8031CPU


外加


EPROM


为核心的单片机系统 在硬件上具有更加简单方便等优点,具体如下


[5]




STC89C52


单片机是最早期也最典型 的产品,低功耗、高性能、采用


CHMOS


工艺的


8


位单片机。它在硬件资源和 功能、软件指令及编程上与


Intel 80C3X


单片机完全相同。



在应用中可直接替换。在


STC89C52


内部有


FLASH


程序存储器,既可 用常规的编程器编程,


也可用在线使之处于编程状态对其编程。


编程速度很快,


擦除时也无需紫外线,


非常方便。


STC89C5X


系列可认为是


Intel 80C3X


的内核与


STC FLASH

< br>技术的结合体。它为许多嵌入


式控制系统提供了灵活、低成本的解决方案。



1.


主要性能



●与


MCS-51


产品指令系统完全兼容;



●片内集成


4KB



FLASH


存储器,可反复编程< /p>


/


擦除


1000


次;



●数据保留时间:


10


年;



●全静态设计,时钟频率范围为


0



24MHz



33MHz




●三个程序存储器保密位;




128


×


8


字节的内部


RAM


< br>



32


条可编程的


I/O


口线;




2


个可工作于


4


种模式的


16


位定时


/


计数器;




5


个中断源


/2


个中断优先级;



●可编程串行通道;



●具有


4


种工作模式的全双工串行口;



●低功耗的待机工作模式和掉电工作模式;



●片内振荡器和时钟电路;



●具有


4


种工作模式的全双工串行口;



●低功耗的待机工作模式和掉电工作模式;



●片内振荡器和时钟电路;






2-2 STC89C52


引脚图




2.


管脚说明



VCC


:供电电压。



GND


:接地。



P0


口:


P0


口为一个


8


位漏级开路双向


I/O


口,每脚可吸收


8



TTL


门电流。当


P1



的管脚第一次写“


1< /p>


”时,被定义为高阻输入。


P0


能够用 于外部程序数据存储器,它可以


被定义为数据


/


地址的第八位。在


FLASH


编程时,


P0


口作为原码输入口,当


FLASH


进行校


验时,


P0


输出原码,此时


P0


外部必须被拉高。



P1


口:


P1


口是一个内部提供上拉电阻的


8


位双向


I/O


口,


P1


口缓冲器能接收输出


4


TTL


门电流。


P1


口管脚写入


1


后,被内部上拉为高,可用作输入,


P1

口被外部下拉为低


电平时,将输出电流,这是由于内部上拉的缘故。在


FLASH


编程和校验时,


P1


口作为第


八位地址接收。



P2


口:


P2


口为一个内部上拉电阻的


8


位双向


I/O


口,


P2


口缓冲器可接收,输出


4



TTL


门电流,当


P2


口被写“

< p>
1


”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作


为输入时,


P2


口的管脚被外部拉低,将输出电流 ,这是由于内部上拉的缘故。


P2


口当用


于外部程序存储器或


16


位地址外部数据存储器进行存取时,


P2

口输出地址的高八位。在


给出地址



1



时,


它利用内部上拉优势,


当对外部八位地址数据存储器进行读写时,


P2



输出其特殊功能寄存器的内容。


P2


口在


FLASH


编程和校验时接收高 八位地址信号和控制


信号。



P3


口:


P3


口管脚是


8


个带内部上拉电阻的双向


I/O


口,可接收输出


4



TTL




电流。当


P3


口写入“


1


”后,它们被内部上拉为高电平,并用作输入。作为输入,由于

< p>


外部下拉为低电平,


P3

口将输出电流



ILL



这是由于上拉的缘故。


P3


口也可作为


ST89C52




的一些特殊功能口


,P3


口管脚备选功能


:


P3.0 RXD


(串行输入口);



P3.1 TXD


(串行输出口);



P3.2 INT0


(外部中断


0


);

< p>


P3.3 INT1


(外部中断


1


);



P3.4 T0


(计时器


0


外部输入);



P3.5 T1


(计时器


1


外部输入);



P3.6 WR


(外部数据存储器写选通);



P3.7 RD


(外部数据存储器读选通);



P3


口同时为闪烁编程和编程校验接收一些控制信号。


< p>
RST


:复位输入。当振荡器复位时,要保持


RS T


脚两个机器周期的高电平时间。


ALE/PROG


:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在

< br>FLASH


编程期间,此引脚用于输入编程脉冲。在平时,


ALE


端以不变的频率周期输出正脉


冲信号,此频率为振荡器频率的


1/6


。因此它可用作对外部输出的脉冲或用于定时目的。


然而要注意的是:每当用作外部数据存储器时,将跳过一个


ALE


脉冲。如想禁止


ALE


的输

出可在


SFR 8EH


地址上置


0


。此时,


ALE


只有在执行


MOVX



MOVC


指令是


ALE


才起作用。

< p>
另外,该引脚被略微拉高。如果微处理器在外部执行状态


ALE


禁止,置位无效。



PSEN


:外部程序存储器的选通信号。在由外部程序存储器读取指令期间,每个机器

< br>


周期两次


PSEN


有效。但在访问外部数据存储器时,这两次有效的


PSEN


信号将不出现。



EA /VPP


:当


EA


保持低电平时,则 在此期间外部程序存储器(


0000H-FFFFH


),不管是 否


有内部程序存储器。注意加密方式


1


时,


EA


将内部锁定为


RESET


;当


EA


端保 持高电平时,


此间内部程序存储器。在


FLASH


编程期间,此引脚也用于施加


12V


编程电源(


VPP


)。



XTAL1


:反向振荡放大器的输入及内部时钟工作电路的输入。

< p>


XTAL2


:来自反向振荡器的输出。



3.


振荡器特性



XTAL1



XTAL2


分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡


器。 石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,


XTAL2


应不接。由于输


入至内部时钟信号要通过一个二分频触发器,因此对外部时钟 信号的脉宽无任何要求,但


必须保证脉冲的高低电平要求的宽度。



4.


芯片擦除



整个


EPROM


阵列和三个锁定位的 电擦除可通过正确的控制信号组合,并保持


ALE




脚处于低电平


10ms


来完成。在芯 片擦除操作中,代码阵列全被写“


1


”且在任何非空存



储字节被重复编程以前,该操作必须被执行。



5.


编程算法




1


)地址线上输入欲编程的存储单元地址;





2


)在数据线上输入编程数据;




3


)加正确的控制信号组合;




4


)在“高压”模式下使


VPP



12V





5


)在


AL E


引脚上加一次负脉冲,可对


FLASH

< br>存储器的一个字节或保密位进行编程。编


程一个字节的周期是内部自定时的,典型 时间不会超过


1.5ms


。改变编程的存储单元地址

< p>
和编程数据重复步骤(


1


)~(

< br>5


),直到编程文件最后。此外,


STC89C52 < /p>


设有稳态逻辑,


可以在零频率的条件下静态逻辑,支持两种软件可 选的掉电模式。在闲置模式下,


CPU


止工作,但


RAM


、定时器、计数器、串口和中断系统仍在 工作。在掉电模式下,保存


RAM



内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。



6.


主要工作和内容安排



综上所述,本着实用、可靠、安全、简洁及经济等设计原则,设计开发了基于单片




STC89C52


的无线温度采集系统。



所做的工作主要包括:



1.


利用


DS18B20


温度传感器采集温度;



2.


制作一个基于


STC89C52


单片机的温度采集系统,并将采集信息数据通过


NRF24L0 1


无线传输模块传送给计算机,利用计算机对其进行实时显示、存储,以便进行数据分析 。



2.1.2


温度传感器部分



测量温度的关键是温 度传感器,温度传感器的发展主要大体经过了三个阶段:


1


传统



的分立式温度传感器(含敏感元件)


2


模拟集成温度传感器控制器


3


智能温度传感器。模

< p>
拟集成传感器是采用硅半导体集成工艺而制成的,因此亦称硅传感器或单片集成温度传感

< p>
器。模拟集成温度传感器是在


20


世纪


80


年代问世的,它是将温度传 感器集成在一个芯片


上,可完成温度测量及模拟信号输出功能的专用

IC


。模拟集成温度传感器的主要特点是功


能单一(仅测量 温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功


耗等,适合远距 离测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内


外应用最为普遍 的一种集成传感器,典型产品有


AD590


< br>AD592



TMP17



LM135


等。模拟


集成温度控制器主要 包括温控开关和可编程温度控制器,典型产品有


LM56



AD22105



MAX6509


。某些增强型集成温度控制器例如


(TC652/653)

< p>
中还包含了刀转换器以及固化好的


程序,这与智能温度传感器有某些相似之 处。但它自成系统,工作时并不受微处理器的控


制,这是二者的主要区别。智能温度传感 器


(


亦称数字温度传感器


)

< p>
是在


20


世纪


90 < /p>


年代中


期问世的。它是微电子技术、计算机技术和自动测试技术< /p>


(ATE)


的结晶。目前,国际上已


开发 出多种智能温度传感器系列产品。智能温度传感器内部都包含温度传感器、


A/D


转换


器、信号处理器、存储器


(

< p>
或寄存器


)


和接口电路。有的产品还带多路选择器 、中央控制器


(CPU)


、随机存取存储器

(RAM)


和只读存储器


(ROM)


。智能温度传感器的特点是能输出温度


数据及相关的温度控制量,适配各种微控制器< /p>


(MCU)


;并且它是在硬件的基础上通过软件

< br>



来实现测试功能的,其智能化程度也取决于软件的开发水平。



目前,国际上新型温度传感器正从模拟式向数字式、从集成化向智能化和网络化的方



向飞速发展。数字式温度传感器


DS18B20


正是朝着高精度、多功能、总线标准化、高可性



及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。



因此,智能温度传感器


DS18B20


作为温度测量装置己广泛应用于人民的日常生活和工农业



生产中。



2.1.2.1 DS18B20


简介



DS18B20


是美国半导体公司继之后最新推出的一种数字 化单总线器件,属于新一代适



配微处理器的改进型智能温度传 感器。


与传统的热敏电阻相比,


它能够直接读出被测温度,


并且可根据实际要求通过简单的编程实现


9-12


位的数字值读数方式。可以分别在


93.75ms



750ms


内完成


9


位和


12


位的数字量,并且从


DS18B20


读出的信息或写入


DS18B20


的信



息仅需要一根口线


(


单线接口


)


读写,温度变 换功率来源于数据总线,总线本身也可以向所



挂接的


DS18B20


供电,而无需额外电源。因而使用


DS18B20


可使系统结构更趋简单,可靠



性更高 。同时其“一线总线”独特而且经济的特点,使用户可轻松地组建传感器网络,为



测量系统的构建引入了全新的概念。


DS18B20


“一线总线”数字化温度传感器支持“一线



总线”接 口,测量温度范围为-


55


℃~﹢


12 5


℃,在-


10




+85




“范围内,精度为±



0.5


℃。现场温度直接以“一线总线”的数字方式传输,用符号扩展的


16


位数字量方式串



行输出,大大提高了 系统的抗干扰性。因此,数字化单总线器件


DS18B20


适合于恶劣环境



的现场温度测量,< /p>


如环境控制、


设备或过程控制、


测温类消 费电子产品等。


它在测温精度、



转换 时间、传输距离、分辨率等方面较都有了很大的改进,给用户带来了更方便和更令人


< /p>


满意的效果。可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大< /p>



型设备中。



2.1.2.2 DS18B20


的性能特点和管脚排列



1.


特点性能


[14]



1


)采用独特的单线接口方式与微处理器连接时仅 需要一条口线即可实现微处理器与的


双向通讯。




2


)在使用中不需要任何外围元件。




3


)可用数据线供电, 供电电压范围


+3.0V


~﹢


5.5V





4


)测温范围-


55


℃~﹢

< br>125


℃。固有测温分辨率为±


0.5

< br>℃。当在-


10





+85




范围内,可确保测量误差不超过


0.5


℃,在-


55


℃~﹢


125

< p>
℃范围内,测量误差也不超过


2


℃。




5< /p>


)通过编程可实现


9


< br>12


位的数字读数方式。




6


)用户可自设定非易失性的报警上下限值。

< br>



7


)支持多点组网功能,多 个


DS18B20


可以并联在唯一的三线上,实现多点测温。






8


)负压特性,即具有电源反接保护电路。当电源电压的极性反接时,能保护

< br>DS18B2


不会因发热而烧毁。但此时芯片无法正常工作。




9



DS18B20


的转换速率比较高,进行


9


位的温度 转换仅需


93.75ms





10


)适配各种单片机或系统。




11


)内含

< p>
64


位激光修正的只读存储


ROM


,扣除


8


位产品系列号和


8


位循环冗余校验



码(


CRC


)之后,产品序号占


48


位。出厂前产品序号存入其


ROM


中。在构成大型温控系统



时,允许在 单线总线上挂接多片


DS18B20




18B20


的管脚排列



DS18B20


采用脚封装或脚封装。其管脚排列见图


2-3






2-3 DS18B20


管脚排列




I/0


为数据输入输出端


(


即单线总线


)


,它属于漏极开路输出,外接上拉 电阻后,常态



下呈高电平。


UDD


是可供选用的外部电源端,不用时接地,


GND


为地,


NC


空脚。



2.1.2.3 DS18B20


的内部结构。



DS18B20


的内部结构框图见图


2



4


。它主要包括

< br>7


部分


[5]



1


、寄生电源;


2


、温度< /p>


传感器;


3



6 4


位激光(


loser


< p>
ROM


与单线接口;


4


、高速暂存器,即便筏式


RAM


,用于


存放中间数据;


5



TH


触发寄存器和


TL


触发寄存器,分别 用来存储用户设定的温度上下


限值;



6


、存储和控制逻辑;


7


< p>
8


位循环冗余校验码(


CRC

< br>)发生器。





DQ


存储器与控制逻









64< /p>


ROM


温度传感器



高温触发器


TH






线





低温触发器


TL














2-4 DS18B20


内部结构




1



64


位闪速的结构见表


2-1


< p>



2-1 64


位闪存的结构




8


位是


CRC


校验码,接着是每个器件的惟一的序号,共有


48


位,低


8


位是产品类



型的编号,前


56


位的这也是多个


DS18B20


可以采用一线进行通信的原因。



(< /p>


2


)非易失性温度报警触发器


TH



TL


,可通过软件写入用户报警上下限。




3


)高速 暂存存储器



DS18B20


温度传感器的内部存储器包括一个高速暂存


RAM

< p>
和一个非易失性的可电擦


除的的


E2RAM


。后者用于存储


TH



TL


值。数据先写入


RAM


,经校 验后再传给


E2RAM


。而配置


寄存器 为高速暂存器中的第


5


个字节,它的内容用于确定温度值的数 字转换分辨率,


DS18B20


工作时按此寄存器中的分辨率将 温度转换为相应精度的数值。该字节各位的定义


见表


2-2





2-2


字节定义





5


位一直都是

1



TM


是测试模式位,用于设置


DS18B20


在工作模式还是在测试模式。




DS18B20


出厂时该位被设置 为


0


,用户不要去改动,


R1



R0


决定温度转换的精度位数,



即用来设置分辨率,见表


2-3 (DS18B20


出厂时被设置为


12



)





2-3 R1



R0


模式表






由表


2-1


可见,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实



际应用中要在分辨率和转换时间两者中权衡考虑。高速暂存存储器除了配置寄存器外,还



有其他


8


个字节组 成,其分配见表


2-4





2-4


字节定义




其中第


1



2


字节是温度信息,第


3



4


字节是


TH



TL


值,第


6



8


字节未用,表现



为全逻辑

< p>
1


;第


9


字节读出的是前面所有


8


个字节的


CRC


码,可用来保证通信正确。当


DS18B20


接收到温度转换命令后,开始启动转换。转换完成后的温度值就以


16


位带符号


扩展的二进制补码形式存储在高速暂存存储器的第

< p>
1,2


字节。单片机可通过单线接口读到


该数据 ,读取时低位在前,高位在后。温度值格式见表


2-5





2-5


温度格式表





12


位转化为例说明温度高低字节存放形式及计算;


12


位转化后得到的


12


位数据,



存储在


DS18B20


的两个高低


8


位的


RAM


中,二进制中的前面


5


位是符号位。 如果测得的温


度大于


0


,这

< p>
5


位为


0


,即符号位< /p>


S=0


,这时只要直接将测到的数值二进制位转换为十进制,


再乘以


0.0625


即可得到实际温度; 如果温度小于


0


,这


5


位为


1


,即符号位


S=1< /p>


,这时先将


补码变换为原码,也就是测到的数值需要取反加


1


再计算十进制值,最后乘以


0.0625


才能


得到实际温度。对应的一部分温度值见表

< br>2-6




实际温度值



+125




+85




+25.0625




+10.125




+0.5




0




-0.5




-10.125




-25.0625





2-6


部分温度表



数字输出(二进制)



0000 0111 1101 0000


0000 0101 0101 0000


0000 0001 1001 0001


0000 0000 1010 0010


0000 0000 0000 1000


0000 0000 0000 0000


1111 1111 1111 1000


1111 1111 0101 1110


1111 1110 0110 1111


数字输出(十六进制)



07D0H


0550H


0191H


00A2H


0008H


0000H


FFF8H


FF5EH


FE6EH




-55




1111 1100 1001 0000



FC90H


DS18B20


完成温度转换后,就把测得的温度值


T



TH



TL


作比较,若


T>TH



T




则将该器件内的告警标志位置位,并对主机发出的告警搜索命令作出响应。因此,可用多




DS18B20


同时测量温度并进行告警搜索。



(4)CRC


的产生




64



ROM


的最高有效字节中存储有循 环冗余校验码


(CRC)


。主机根据


R OM


的前


56


位来计算


CRC


值,


并和存入


DS18B20


中的


CRC


值做比较,


以判断主机收到的数据是否正确。



2.1.2.4 DS18B20


的控制方法



在硬件上,


DS18B20


与单片机的连接有两种方法。一种是将


DS18B20



UDD


接外部电




,GND


接地,



I/O


与单片机的


I/O


线相连;


另一种是用寄生电源供电,


此时


DS18B20




UDD



GND


接地,



I/O

接单片机


I/O



无论是内部寄生 电源还是外部供电,


DS18B20



I/O


口线要接见


5K


Ω左右的上拉电阻。


DS18B20

< p>
有六条控制命令,见表


2-7


< br>



2-7 DS18B20


控制指令



指令




ROM


符合


ROM


约定代码



33H


55H


搜索


ROM


0F0H


跳过


ROM


告警搜索命令



温度变换命令



0CCH


0ECH


44H


功能



读取


D S18B20ROM


中的编码(


64


位 地址)



发出命令后,接着发出


64< /p>



ROM


编码,访问

单总线上与该编码相同的


DS18B20


,使之做


出反应,为下一步读写作准备。



用于确定挂在 同一总线上


DS18B20


的个数,


和 识别


64



ROM

地址,微操作各器件做准


备。



忽 略


64



ROM


地址,直接向


DS18B20


发送温


度转换命令,适用于单片工作。



执行后只有温度值超过限度值 才做出反


应,



启动

< br>DS18B20


进行温度转换,转换时间最长



500


毫秒,结果存入内部就九字节


RAM


中。



读内部


RA


九字节内容



发出向内部


RAM


的第


3


< p>
4


字节写上下限温度


命令,紧随该命令之后是传送 两个字节数


据。



< br>RAM


中的第


3



4


字节内容写到


EEPRAM


中。




EEPRAM


中的第


3



4


字节内容写到


RAM


中。




DS18B20


供电模式,寄生供电


DS18B20



发送“


1


”,外接电源发送“


1


” 。



读暂存器



写暂存器



0BEH


4EH


复制暂存器



重调


EEPRAM


读供电方式




48H


0B8H


0B4H


CPU



DS18B20


的访问流程是


:


先对


D S18B20


初始化,再进行


ROM


操作命令,最后才


能对存储器操作和对数据操作。


DS18B 20


每一步操作都要遵循严格的工作时序和通信协


议。例如主 机控制


DS18B20


完成温度转换这一过程,根据


DS18B20


的通讯协议,必须经历



< p>
三个步骤


:


每一次读写之前都要对


DS18B20


进行复位,复位成功后发送一条


ROM


指令,最


后发送


RAM


指令,这样才能对


DS18B20


进行预定的操作。



2.1.2.5 DS18B20


的测温原理



DS18B20


的测温原理见图


2-5




2-5 DS18B20


的内部测温电路原理图



< p>
图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号

< br>


送给减法计数器


1


,高温度系 数晶振的振荡频率随温度变化而明显改变,所产生的信号作



为减法计数器


2


的脉冲输入。图中还 隐含着计数门,当计数门打开时,


DS18B20


就对低温



度系数振荡器产生的时钟脉 冲进行计数,进而完成温度测量。计数门的开启时间由高温度



系数振荡器来决定,每次测量前,首先将


-55


℃所对应的基数 分别置入减法计数器


1


和温



度寄存器中,减法计数器


1


和温度寄 存器被预置在


-55


℃所对应的一个基数值。减法计数




1


对低温度系数 晶振产生的脉冲信号进行减法计数,当减法计数器


1


的预置值减到


0




温度寄存器的值将加


1


,减法计数器


1


的预置将重新被装入,减法计数器


1


重新开始对低



温度系数晶振产生的脉 冲信号进行计数,如此循环直到减法计数器


2


计数到


0


时,停止温



度寄存器值的累加,此时 温度寄存器中的数值即为所测温度。图


2-3


中的斜率累加器用于



补偿和修正测温 过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未



关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是


DS18B 20


的测温原理。



2.1.2.6 DS18B20


温度传感器与单片机的接口电路



DS18B20


可以采用两种方式供电,一种是采用电源供电 方式,此时


DS18B20



1


脚接



地,


2


脚作为信号线,


3


脚接电源。


另一种是寄生电源供电方式,


单片机端口接单线总线,



为保证在有效的


DS18B20


时钟周期内提供足够的电流,可用一个


MOSFET


管来完成对总线



的上拉。




DS18B20


处于写存储器操作和温度


A/D


转换操作时,总线上必须有强的上拉,上拉




开启时间最大为


10us

< p>
。采用寄生电源供电方式时


VDD


端接地。由于单线制只有一根线,因



此发送接口必须是三态的。寄生电源供电方式,见图


2-6


。< /p>




2-6 DS18B20


与单片机的接口电路




2.1.3 LED


数码管部分



在日常生活中,我们对


LED


数码管并不陌 生。


LED


数码管已作为很多电子产品的通用器


件,如在仪表、汽车、机械电子及很多家用电子产品中都可以看到。在单片机的人机交流


界面中,


一般的输出方式有以下几种:


发光管、


LED


数码管、


液晶显示器。


发光管和


LED



码管比较常用,软硬件都比较简单。



2.1.3.1 LED


数码管简介



LED


数码管分共阳极与共阴极两种,其工作特点是,当笔段电 极接低电平,公共阳极


接高电平时,相应笔段可以发光。共阴极


LED


数码管则与之相反,它是将发光二极管的阴


< p>
(


负极


)


短接后作为公共 阴极。当驱动信号为高电平、


?


端接低电平时,才能发光。


LED



输出光谱决定其发光颜色以及光辐 射纯度,也反映出半导体材料的特性。常见管芯材料有


磷化镓


( GaP)



砷化镓


(GaAs)



磷砷化镓


(GaAsP)



氮化镓


(GaN)


等,


其中氮化镓可发蓝光。


发光颜色不仅与管芯材料有关,还与所掺杂质 有关,因此用同一种管芯材料可以制成发出


红、橙、黄、绿等不同颜色的数码管。其他颜 色


LED


数码管的光谱曲线形状与之相似,仅

< br>入,值不同。


LED


数码管的产品中,以发红光、绿光的 居多、这两种颜色也比较醒目。


LED


数码管等效于多只具有发 光性能的


PN


结。当


PN


结导通时,依靠少数载流子的注人及随后的


复合而辐射发光,其伏安特性与普 通二极管相似。在正向导通之前,正向电流近似于零,


笔段不发光。当电压超过开启电压 时,电流就急剧上升,笔段发光。因此,


LED


数码管属


于电流控制型器件,其发光亮度


L(


单位是< /p>


cd



m2)


与 正向电流


IF


有关,用公式表示:


L= KIF


即亮度与正向电流成正比。


LED


的正向电压


U


,则与正向电流以及管芯材料有关。使用


LED


数码管时,工作电流一般选


10mA< /p>


左右/段,既保证亮度适中,又不会损坏器件。



2.1.3.2 LED


数码管的基本参数和引脚功能



LED


数码管正向压降一般为


1.5



2V



额定电流为

10mA



最大电流为


40mA< /p>



本设计采



4


位一组共阳


LED


数码管,

< p>


P1


来控制数码管的短选和

p2


口控制位选位选,


其管脚分




配和内部结构,见图


2-7






2-7LED


共阳数码管管脚及内部结构





2-8


硬件原理图




因为共阴、共阳极数码管电平控制存在区别,所以其编码方式不一样,其具体编码见表


2-10





2-8


共阴、共阳数码管编码方式



0


1


共阳极



0xc0


0xf9


共阴极



0x3f


0x06



显示字符



2


0xa4


0x5b


3


0xb0


0x4f


4


0x99


0x66


5


0x92


0x6d


6


0x82


0x7d


7


0xf8


0x07


8


0x80


0x7f


9


0x90


0x6f


2.1.4 NRF24L01


无线数据传输部分





随着我国国际地位和科研水平的不断提高,无需导线连接的无 线数据系统对用户有着


极大的吸引力。无线数据系统采用了能在局域范围内无线传输信息 的数字网络,在不改动


原有设施的前提下,将有效的数据信息准确、快速和安全地传送给 与会者。因此,无线数


据系统设备的设计得到了国内外相关领域厂商的广泛关注,未来, 无线数据系统很有可能


代替现有的有线数据系统,成为今后数据传输的主流。

< p>




要了解无线数据传输,



就得先了解无线传输技术。



下面大概 介绍一下几种常见的无


线传输技术:



1.U


段无线传输技术





超高频(


UHF -Ultra High Frequenc y


)。


UHF


波段则是指频率为


300~3000MHz


的特高


频无线电波。



具有特点是:



1


)稳定性高



2


)写距离远



3


)讯速率较高






U


段技术由于频段多、使用范围广,容易串频和被听,保密性较差。



2.


红外线技术



红外通讯技术的特点:



1

< p>
)它是目前在世界范围内被广泛使用的一种无线连接技术,被众多的硬件和软件平

< br>台所支持;



2


)通过数据电脉 冲和红外光脉冲之间的相互转换实现无线的数据收发。



3


)主要是用来取代点对点的线缆连接;



4


)具有不能穿透障碍物的特性,有效保障了会议信息的安全与保密;


5


)安装方便快捷,成本低;



当然我们还是需要注意一下红外线技术的一些局限性。在进行系统安装时,设备距离


红外信号收发器的距离通常比较短,大都在


10

米内,且应远离其它红外光源(如日光灯,


等离子屏等),以避免干扰。

< p>



技术





WAP



Wireless Application Protocol


(即无线应用协议)的缩写。无线应用协议 也


称为无线应用程序协议,目前应用广泛,是在数字移动电话、


Internet


及其他个人数字助


理机


PDA


、计算机应用之间进行通信的开放性全球标准。





在工作方面,对于日理万机、经常 与时间竞赛的商务人士,


WAP


更能为用户提供市场

< p>
上最新的第一手信息,


完全配合用户的业务和工作需要。

< br>在生活方面,


无论用户身在何处,


都可以通过

< p>
WAP


上网,进行各项线上银行服务,在娱乐方面,


WAP


也为用户提供了崭新的消


费模式,无论您走到那里,都 可以随心所欲地与朋友甚至其他


WAP


用户,一起上网、玩游< /p>


戏,一起分享


WAP


的乐趣。

< p>
BOSCH



DCN


无线 讨论系统采用的就是该无线技术。



通过倍受赞




誉的无线介入点能够为方圆


40


米(


164


英尺)左右的空间提供稳固如一的强大连接。


WAP



可部署在会议室中心以获得最佳的覆盖率,也可以移动到会议室中 最适合的位置。





尽管


WAP


有其强大的优势,但是也必须指出


WAP


在技术角度上的局限性,主要存在于两


个 方面:





1



WAP


设备和

WAP


承载网络:





2



WAP


设备受


CPU


、随机访问存储器(


RAM


)、只读存储器(


ROM

< p>
)和处理速度的限制。



3



WAP


承载网络是低功率的网络,一般在办公环境中的带宽 多为


11M


,。


WAP


承载网络


的固有特性是可靠性不高、稳定性不高和不可。



4.2.4G


频射技术




2.4G


无线技术,其频段处于


2.405GHz-2.485GHz


之间。所以简称为

< p>
2.4G


无线技术。这个


频段里是国际规定的免费 频段,是不需要向国际相关组织缴纳任何费用的。这就为


2.4G



线技术可发展性提供了必要的有利条件。而且


2.4G


无线技术不同于之前的


27MHz


无线技术 ,


它的工作方式是全双工模式传输,在抗干扰性能上要比


27M Hz


有着绝对的优势。这个优势


决定了它的超强抗干扰性以及最 大可达


10


米的传输距离。此外


2.4 G


无线技术还拥有理论上


2M


的数据传 输速率,比蓝牙的


1M


理论传输速率提高了一倍。这就为以后的 应用层提高了可


靠的保障。


2.4G


有 着自己独到的优势所在。相比蓝牙它的产品制造成本更低,提供的数据


传输速率更高。相 比同样免费的


27MHz


无线技术它的抗干扰性、最大传输距离 以及功耗都


远远超出。



2.1.4.1 NRF24L01


简介



nRF24. L01


是一款新型单片射频收发器件


,


工作于


2.4


GHz



2.5


GHz


ISM


频段。内置频


率合成器、功率放大器、晶体振荡器、调制器等功能模块


,


并融合了增强型


ShockBurst


技术,


其中输出功率和通信频道可通过程序进行配置。


nRF24L01


功耗低


,


在以


-6


dBm


的功率发射时,


工作电流也只有


9


mA;


接收时,工作电流只有


12.3


mA


,多种低功率工作模式


(


掉电模式和空闲


模式


)


使节能设计更方便。



2.1.4.2 DS18B20


的特性、管脚排列及内部逻辑结构



24L01


主要特性如下:





GFSK


调制:





硬件集成


OSI


链路层


;




具有自动应答和自动再发射功能


;




片内自动生成报头和


CRC


校验码


;




数据传输率为


l Mb/s



2Mb/s;




SPI


速率为


0 Mb/s



10 Mb/s;




125


个频道:





与其他


n RF24


系列射频器件相兼容


;






QFN20


引脚


4 mm×


4 mm


封装


;


供电电压为


1.9 V



3.6 V




2.


管脚分布见图


2-9

< p>


2-9NRF24L01


管脚分布



各管脚的定义如下


:


引脚名称



引脚功能



描述



1 CE


数字输入


RX



TX


模式选择



2 CSN


数字输入


SPI


片选信号



3 SCK


数字输入


SPI


时钟



4 MOSI


数字输入




SPI


数据输入脚



5 MISO


数字输出




SPI


数据输出脚



6 IRQ


数字输出



可屏蔽中断脚



7 VDD


电源



电源


+3V


8 VSS


电源



接地


0V


9 XC2


模拟输出



晶体震荡器


2




10 XC1


模拟输入



晶体震荡器


1


/


外部时钟输入脚



11 VDD_PA


电源输出




RF


的功率放大器提供的


+1.8V


电源



12 ANT1


天线



天线接口


1


13 ANT2


天线



天线接口


2


14 VSS


电源



接地


0V


15 VDD


电源



电源


+3V


16 IREF


模拟输入



参考电流



17 VSS


电源



接地


0V


18 VDD


电源



电源


+3V


19 DVDD


电源输出



去耦电路电源正极端





24L01


内部逻辑结构见图


2-10



2-10 NRF24L01


内部逻辑结构



2.1.4.3 NRF24L01


工作模式



NRF24L01


有工作模式有三种:



收发模式



空闲模式



关机模式



工作模式由


PWR_UP register



PRIM_RX register



CE


决定


,


见表


2-11




2-11 NRF24L01


工作模式



模式



接收



发射



发射



空闲


2


空闲



掉电




1.


收发模式



PWR_UP


1


1


1


1


1


0


PRIM_RX


1


0


0


0






CE


1


1


1



0


1


0




FIFO




数据已在发射堆栈里




CE


有下降沿跳变时,数据已经发射



发射堆栈空



此时没有数据发射





收发模式有


Enhanced


Sho ckBurstTM


收发模式、


ShockBurstTM


收发模式和直接收发模式


三种。



(1)Enhanced


ShockBurstTM


收发模式,在


Enhanced


ShockB urstTM


收发模式下,使用片


内的先入先出堆栈区,数据低 速从微控制器送入,但高速


(1Mbps)


发射,这样可以尽量 节






































,


因此,


使用低速的微控制器也能得到很高 的射频数据发射速率。


与射频协议相关的


所有高速信号处理都在 片内进行,这种做法有三大好处:尽量节能;低的系统费用


(


低 速


微处理器也能进行高速射频发射


)


; 数据在空中停留时间短,抗干扰性高。


Enhanced




ShockBurstTM


技术同时 也减小了整个系统的平均工作电流。在


Enhanced ShockBurstTM< /p>



发模式下,


NRF24L01


自动处理字头和


CRC


校验码。在接收数据时 ,自动把字头和


CRC


校验


码移去。< /p>


在发送数据时,


自动加上字头和


CRC< /p>


校验码,


在发送模式下,



CE


为高,


至少


10us< /p>



将时发送过程完成后。



Enhanced ShockBurstTM


发射流程


:


A.


把接收机的地址和要发送的数据按时序送入


NRF24L01




B.


配置


CONFIG


寄存器,使之进入发 送模式。



C.


微控制器把


CE


置高(至少


10us


),激发


NRF24L01


进行


En hanced


ShockBurstTM


发射;


< /p>


字头、


CRC


校验码

)



(3)


高速发射数据包;


(4)


发射完成,


NRF24L01< /p>


进入空闲状态。



Enhanced ShockBurstTM


接收流程



A.


配置本机地址和要接收的数据包大小;



B.


配置


CONFIG


寄存器,使之进入接收模式,把


CE


置高。



C. 130us


后,


NRF24L01


进入监视状态,等待数据包的到来。


< /p>


D.


当接收到正确的数据包


(

< p>
正确的地址和


CRC


校验码


)



NRF2401


自动把字头、< /p>


地址和


CRC


校验位移去。



E. NRF24L01


通过把

< br>STATUS


寄存器的


RX_DR


置位


(STATUS


一般引起微控制器中断

< br>)


通知微


控制器;



F.


微控制器把数据从


NewMsg_RF2401


读出;



G.


所有数据读取完毕后,可以清除


STATUS


寄存器。


NRF2401


可以进入四种主要的模式


之一 。



(2)ShockBurstTM


收发模式



ShockBurstTM


收发模式下,使用片内的先入先出堆栈区,数据低速从微控制器送入,


但高速

< p>
(1Mbps)


发射,这样可以尽量节能,因此,使用低速的微控制器也能 得到很高的射


频数据发射速率。与射频协议相关的所有高速信号处理都在片内进行,这种 做法有三大好


处:尽量节能;低的系统费用


(

< br>低速微处理器也能进行高速射频发射


)


;数据在空中停留 时


间短,


抗干扰性高。


nRF24L0 1



ShockBurstTM


技术同 时也减小了整个系统的平均工作电流。




ShockBurstTM


收发模式下,


nRF2401


自动处理字头和


CRC


校验码。


在接收数据时,



动 把字头和


CRC


校验码移去。在发送数据时,自动加上字头和< /p>


CRC


校验码,当发送过程完成


后,数据 准备好引脚通知微处理器数据发射完毕。



ShockBurstTM


发射流程:



A.


当微控制器有数据要发送时,其把


CE


置高,使


NRF24L01


工作 ;



B.


把接收机的地址和要发送的 数据按时序送入


NRF24L01




C.


微控制器把


CE


置低,激发


nRF24L01


进行

ShockBurstTM


发射;



D. nRF24L01



Shock BurstTM


发射,过程如下




D. N24L01



Enhanced ShockBurstTM


发射


(1)


给射频前端供电;


(2)


射频数据打包


(






给射频前端供电;


< p>
射频数据打包


(


加字头、


CRC


校验码


)




高速发射数据包;



发射完成,


nRF2401


进入空闲状态。



ShockBurstTM


接收流程



A.


配置本机地址和要接收的数据包大小;



B.


进入接收状态,把


CE


置高;



C. 200us

后,


NRF24L01


进入监视状态,等待数据包的到来;



D.


当接收到正确的数据包


(


正确的地址和


CRC


校验码


)



NRF24L01


自动把字头、地址和


CRC


校验位移去;



E. NRF24L01


通过把


DR1(


这个引脚一般引起微控制器中断


)


置高通知微控制器;



F.


微控制器把数据从


nRF2401


移出;

< p>


G.


所有数据移完,


NRF24L01



DR1


置低,此时 ,如果


CE


为高,则等待下一个数据包,


如果


CE


为低,开始其它工作流程。




3


)直接发送模式

< br>


A.


当微控制器有数据要发送时,把


CE


置高;



B. nRF2401


射频前端被激活;



C.


所有的射频协议必须在微控制器程序中进行处理


(

< p>
包括字头、地址和


CRC


校验


)




直接接收模式



A.


一旦


nRF2401


被配置为直接接收模式,


DATA


引脚将根据天线接收到的信号开始高低


变化


(


由于噪声的存在


)




B. CLK1


引脚也开始工作;



C. < /p>


一旦接收到有效的字头,


CLK1


引脚和


DATA


引脚将协调工作,把射频数据包以其被


发射时的数据从


DATA


引脚送给微控制器;



D.


这头必须是


8


位;



E. DR

引脚没用上,所有的地址和


CRC


校验必须在微控制器内部 进行。



2.


空闲模式



NRF24L01


的空闲模式是为了减小平均工作电流而设计,其最大的优点是,实现 节能的


同时,缩短芯片的起动时间。在空闲模式下,部分片内晶振仍在工作,此时的工作 电流跟


外部晶振的频率有关。



3.


关机模式



在关机模式下,为了得到最小的工作电流,一般此时的工作电流为


900nA


左右。关机


模式下,配置字的内容也会被保持在


NRF24L01


片内,这是该模式与断电状态最大的区别。





2.1.4.4 NRF24L01


配置过程



NRF2 401


的所有配置工作都是通过


SPI


完成,共有


30


字节的配置字。我们推荐


NRF24L01


工作于


Enhanced


ShockBurstTM


收发模式,


这种工作模式下,


系统的程序编制会更加简单,


并且稳定性也 会更高,因此,下文着重介绍把


NRF24L01


配置为


Enhanced ShockBurstTM


发模式的器件配置方法。


ShockBurstTM


的配置 字使


NRF24L01


能够处理射频协议,在配置完

< p>


成后,在


NRF24L01

工作的过程中,只需改变其最低一个字节中的内容,以实现接收模式和


发送模式之间 切换。



ShockBurstTM


的 配置字可以分为以下四个部分:



数据宽度:声明射频数据包中 数据占用的位数。这使得


NRF24L01


能够区分接收数据包


中的数据和


CRC


校验码;

< p>


地址宽度:


声明射频数据包中地址占用的位数。


这使得


NRF24L01


能够区分地址 和数据;



地址:接收数据的地址,有通道

0


到通道


5


的地址;



CRC


:使


NRF24L 01


能够生成


CRC


校验码和解码。< /p>



当使用


NRF24L01


片内的


CRC


技术时,要确保在配置字


(CONFIG



EN_CRC)

< br>中


CRC


校验被使


能,并且发送 和接收使用相同的协议。



2.1.4.5 NRF24L01


接口电路,见图


2-11





2-11 NRF24L01


接口电路



2.1.4.6 NRF24L01


控制程序





#include


//


对应引脚


>


sbit MISO =P1^3;


sbit MOSI =P1^4;


sbit SCK =P1^5;


sbit CE =P1^6;


sbit CSN =P3^7;


sbit IRQ =P1^2;


sbit LED2 =P3^5;


sbit LED1 =P3^4;


sbit KEY1 =P3^0;


sbit KEY2 =P3^1;


// SPI(nRF24L01) commands


#define READ_REG 0x00 // Define read command to register


#define WRITE_REG 0x20 // Define write command to register


#define RD_RX_PLOAD 0x61 // Define RX payload register address


#define WR_TX_PLOAD 0xA0 // Define TX payload register address


#define FLUSH_TX 0xE1 // Define flush TX register command


#define FLUSH_RX 0xE2 // Define flush RX register command


#define REUSE_TX_PL 0xE3 // Define reuse TX payload register command


#define NOP 0xFF // Define No Operation, might be used to read status register < /p>


//************************************** *************//


// SPI(nRF24L01) registers(addresses)


#define CONFIG 0x00 // 'Config' register address


#define EN_AA 0x01 // 'Enable Auto Acknowledgment' register address


#define EN_RXADDR 0x02 // 'Enabled RX addresses' register address


#define SETUP_AW0x03 // 'Setup address width' register address




#define SETUP_RETR 0x04 // 'Setup Auto. Retrans' register address


#define RF_CH 0x05 // 'RF channel' register address


#define RF_SETUP 0x06 // 'RF setup' register address


#define STATUS 0x07 // 'Status' register address


#define OBSERVE_TX 0x08 // 'Observe TX' register address


#define CD 0x09 // 'Carrier Detect' register address


#define RX_ADDR_P0 0x0A // 'RX address pipe0' register address


#define RX_ADDR_P1 0x0B // 'RX address pipe1' register address


#define RX_ADDR_P2 0x0C // 'RX address pipe2' register address


#define RX_ADDR_P3 0x0D // 'RX address pipe3' register address


#define RX_ADDR_P4 0x0E // 'RX address pipe4' register address


#define RX_ADDR_P5 0x0F // 'RX address pipe5' register address


#define TX_ADDR 0x10 // 'TX address' register address


#define RX_PW_P0 0x11 // 'RX payload width, pipe0' register address


#define RX_PW_P1 0x12 // 'RX payload width, pipe1' register address


#define RX_PW_P2 0x13 // 'RX payload width, pipe2' register address


#define RX_PW_P3 0x14 // 'RX payload width, pipe3' register address


#define RX_PW_P4 0x15 // 'RX payload width, pipe4' register address


#define RX_PW_P5 0x16 // 'RX payload width, pipe5' register address


#define FIFO_STATUS 0x17 // 'FIFO Status Register' register address


//--- -------------------------------------------------- -------


//


写一个字节到


24L01


,同时读出一个字节



uchar SPI_RW(uchar byte)


{


uchar bit_ctr;


for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit


{




MOSI = (byte & 0x80); // output 'byte', MSB to MOSI


byte = (byte << 1); // shift next bit into MSB..


SCK = 1; // Set SCK high..


byte |= MISO; // capture current MISO bit


SCK = 0; // ..then set SCK low again


}


return(byte); // return read byte


}


//


向寄存器

< br>reg


写一个字节,同时返回状态字节



uchar SPI_RW_Reg(BYTE reg, BYTE value)


{


uchar status;


CSN = 0; // CSN low, init SPI transaction


status = SPI_RW(reg); // select register


SPI_RW(value); // ..and write value to it..


CSN = 1; // CSN high again


return(status); // return nRF24L01 status byte


}


//


读出


bytes


字节的数据



uchar SPI_Read_Buf(BYTE reg, BYTE *pBuf, BYTE bytes)


{


uchar status,byte_ctr;


CSN = 0; // Set CSN low, init SPI tranaction


status = SPI_RW(reg); // Select register to write to and read status byte


for(byte_ctr=0;byte_ct r


pBuf[byte_ctr] = SPI_RW(0); //


CSN = 1;




return(status); // return nRF24L01 status byte


}


//


写入


bytes


字节的数据



uchar SPI_Write_Buf(BYTE reg, BYTE *pBuf, BYTE bytes)


{


uchar status,byte_ctr;


CSN = 0;


status = SPI_RW(reg);


for(byte_ctr=0; byte_ctr


SPI_RW(*pBuf++);


CSN = 1; // Set CSN high again


return(status); //


}


//


接收函数,返回


1


表示有数据收到,否则没有数据接受到



unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)


{


unsigned char revale=0;


// set in RX mode


SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); // Set PWR_UP bit, enable CRC(2 bytes) &


Prim:RX. RX_DR enabled..


CE = 1; // Set CE pin high to enable RX device


dalay130us();


sta=SPI_Read(STATUS); // read register STATUS's value


if(RX_DR) // if receive data ready (RX_DR) interrupt


{


CE = 0; // stand by mode


SPI _Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from




RX_FIFO buffer


revale =1;


}


SPI_RW_Reg(WRITE_REG+STATUS,sta);// clear RX_DR or TX_DS or MAX_RT interrupt


flag


return revale;


}


//


发送函数



void nRF24L01_TxPacket(unsigned char * tx_buf)


{


CE=0;


//SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // Writes


TX_Address to nRF24L01


//SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); //


RX_Addr0 same as TX_Adr for


SPI_Write_Buf(WR_TX_PLOAD,


tx_buf,


TX_PLOAD_WIDTH);


//


Writes


data


to


TX


payload


SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // Set PWR_UP bit, enable CRC(2 bytes) &


Prim:TX. MAX_RT & TX_DS enabled..


CE=1;


dalay10us();


CE=0;


}


//


配置函数



void nRF24L01_Config(void)


{


//initial io


CE=0; // chip enable




CSN=1; // Spi disable


SCK=0; // Spi clock line init high


CE=0;


SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); // Set PWR_UP bit, enable CRC(2 bytes) &


Prim:RX. RX_DR enabled..


SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);


SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // Enable Pipe0


SPI_RW_Reg(WRITE_REG + SETUP_AW, 0x02); // Setup address width=5 bytes


SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x1a); // 500us + 86us, 10 retrans...


SPI_RW_Reg(WRITE_REG + RF_CH, 0);


SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); // TX_PWR:0dBm, Datarate:1Mbps,


LNA:HCURR


SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH);


SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);


SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); CE=1; //


}


2.2


系统软件设计



2.2.1 DS18B20


程序的设计




1



DS18B20


初始化程序设计



主机总线

< p>
to


时刻发送一复位脉冲


(


最短为


480us


的低电平信号


)< /p>


接着在


tl


时刻释放


总线并进入接收状态


DSl820


在检测到总线的上升沿之后



等待


15-60


接着


DS1820



t2


时刻发出存在脉冲


(


低电平持续


60-240us)


如图中虚线所示,时序见图


2-12





2-12 DS18B20


初始化时序图



程序:



Init_DS18B20( void)//


初始化


ds1820


{




DQ = 1; //DQ


复位



_nop_();


_nop_(); //


稍做延时


2ms


DQ = 0; //


单片机将


DQ


拉低


,


发出复 位脉冲(要求


480us~960us)


Delay(70); //


精确延时


566us


DQ = 1; //


拉高总线< /p>


(


要求


16~60us)


Delay(5); //


延时


46us


presence = DQ; //


如果


=0


则初始化成功


=1


则初始化失败



Delay(25);


DQ = 1;


return(presence); //


返回信号,


0=presence,1= no presence


}





2



DS18B20


读程序设计



主机总线


to


时刻从高拉至低电平时总线只须保持低电平


l7t s


之后


15us


也就是说


tz


时刻前主机必须完成读位并在


to


后的


60us



120us


内释放总线读位子程序,见图


2-13






2-13


读时序



程序:



ReadOneChar(void)


{


unsigned char i=0;


unsigned char dat = 0;


for (i=8;i>0;i--)


{


DQ = 0; //


给脉冲信号



dat>>=1;


DQ = 1; //


给脉冲信号



if(DQ)


dat|=0x80;


delay(4);




}


return(dat);


}






3



DS18B20


的写程序设计



当主机总线


to


时刻从高拉至低电平时就产生写时间隙从< /p>


to


时刻开始


15us

< br>之内应将


所需写的位送到总线


DSl820



t1



15-60us< /p>


间对总线采样



若低电平写入的位是


0


见若


高电平写入的位是连续写

< p>
2


位间的间隙应大于


1us


,见图


2-14






2-14


写时序



2.2.2


数码管显示程序的设计



程序流程



系统上电







选信号



个位位选


打开



延时



显示十位



延时



显示百位




延时





















代码:





void display(int num1)


{
































unsigned int qianwei,baiwei,shiwei,gewei;


//if(num1<-1000)


重启



if(num1<=-100)


{



















}


else if(num1<=-10)


{









P0=table[(~num1+1)%10];


p2_3=0;


delay(1);


p2_3=1;


P0=table1[(~num1+1)/10];


p2_2=0;


delay(1);


P0=table[(~num1+1)%10];//


补码取反加

< br>1


p2_3=0;


delay(1);


p2_3=1;


P0=table1[((~num1+1)%100)/10];


p2_2=0;


delay(1);


p2_2=1;


P0=table[(~num1+1)/100];


p2_1=0;


delay(1);


p2_1=1;


P0=0x40;//


负号



p2_0=0;


delay(1);


p2_0=1;









































}


p2_2=1;


P0=0x40;//


负号



p2_1=0;


delay(1);


p2_1=1;


else if(num1<=0)


{



















}


else if(num1<10)


{







P0=table1[0];


p2_2=0;


delay(1);


p2_2=1;


P0=table[(~num1+1)];


p2_3=0;


delay(1);


p2_3=1;


P0=table1[0];


p2_2=0;


delay(1);


p2_2=1;


if(num1==0); //

< p>
如果为零去除


-




else


{






}


P0=0x40;//


负号



p2_1=0;


delay(1);


p2_1=1;








































}


P0=table[num1];


p2_3=0;


delay(1);


p2_3=1;


else if(num1<100)


{










}


else if(num1<1000)


{














}


else


P0=table[num1%10];


p2_3=0;


delay(1);


p2_3=1;


P0=table1[(num1%100)/10];


p2_2=0;


delay(1);


p2_2=1;


P0=table[num1/100];


p2_1=0;


delay(1);


p2_1=1;


P0=table[num1%10];


p2_3=0;


delay(1);


p2_3=1;


P0=table1[num1/10];


p2_2=0;


delay(1);


p2_2=1;

























{






















}


gewei=num1%10;


shiwei=num1%100/10;


baiwei=num1/100%10;


qianwei=num1/100/10;


P0=table[gewei];


p2_3=0;


delay(1);


p2_3=1;


P0=table1[shiwei];


p2_2=0;


delay(1);


p2_2=1;


P0=table[baiwei];


p2_1=0;


delay(1);


p2_1=1;


P0=table[qianwei];


p2_0=0;


delay(1);


p2_0=1;






3


串口通信



3.1


通信简介


< br>计算机与外界所进行的信息交换经常被人们称为通信,其基本方式可以分为并行通信



和串行通信两种。



并行通信是指 一次就可以同时传送一个数据字的传输方式


(


其中包含


8


位、


16


位,甚



至更多位的数据


)


。其优点是传输速度快;缺点是需要同时连接的线数多,尤其是在通信



距离较长时,传输线的成本会急剧增加。对于单片机而言,还需要 占用多条宝贵的引脚资



源。



串行通信是指把一个数据字逐位、顺序、分时进行的传输方式。其缺点是传送速度较

< p>


慢,假设并行传送


n


位数据所得要的时间是


T


,那么,串行传送同样数据的时间至少 为


nT




实 际工程中往往总是大于


nT


,原因是时间上还会需要额外的开销 。串行通信突出的优点就



是需要数量很少的传输线。此外,对 于单片机而言,串行通信的另一个重要优点就是,需



要占用的 引脚资源较少。串行通信又存在着异步通信和同步通信两种基本方式:



①异步方式。其特点是通信双方以一个字符


(


包括特定 附加位


)


作为数据传输单位,且发送


方 传送字符的间隔时间是不定的,在传送一个字符时总是以起始位开始,以停止位结束。


异 步通信传输格式见图


3-1






3-1


异步通信字符传输帧格式



由图


3-1


可知,一个字符单位除表 示字符信息的数据位外,还有若干个附加位:起始




(


一位,值恒为


0)


, 奇偶位


(


可选有无


)

< br>,停止位


(


长度


1



1.5



2


可选,值恒为


1)


。传



1


个字符必须以起始位开始,以停止位结束,这个过程称为 一帧。②同步方式。在数据


开始传输时,发送方先发送一个或两个特殊字符(称同步字符 ),当发送方和接收方达到


同步后,


就可以一个字符接一个字符 地发送一大块数据,


而不再需要用起始位和停止位了。


由于异步 通信每传送一个字符都加起、止信号等附加位,使其传输效率比较低,因此异步


通信一般 用在数据速率较慢的场合(如小于


10.2KB/s


)。在高速 传输时,一般应采取同步


协议。因此,在单片机与外围芯片之间的近距离通信中,同步通 信方式得到了广泛的应用




(


例如


SPI



I2C


等,均属于同步通信方式


)




由以上讨论可知,异步通信是指通信中两个字符间的时间间隔是不固定 的,而在同一



字符中两个相邻位代码间的间隔是固定的。但是 在同步通信中,每时每刻在链路上都有字



符信息传送,而且通 信中的每个字符间的时间间隔是相等的,此外,每个字符中各个相邻



位代码间的时间间隔也是固定的。



同 步通信以其高的传输效率和传输速度得到了广泛的应用。虽然,同步通信传输错误



校验码检错和纠错的能力比异步传输的单纯奇偶校验码有所提高,但由于传输帧内的信息



量大大增加


(


约 几百倍


)



因此对通信双方的时钟同步 要求甚严,


否则,


如果两者稍有差异,



几千位的累积误差会导致通信完全失败。


对于近距离的点对点数据通信,若不要求太高的数据传输率


(


例如不超过


9600B/s)




则通常采用设备简单、控制容易的异步传输为好。



3.2


单片机串口通信接口



3.2.1


单片机串口结构



1.


单片机中串行接口的结构、工作原理、工作方式

< br>51


单片机中的串行接口是一个全


< br>双工通信接口,即能同时进行发送和接收


[9]


。它可以 作


UART


(通用异步接收和发送器)



用,也可以作同步移位寄存器使用。其帧格式和波特率可通过软件编程设置。在使用上非



常方便灵活。


51


串行口主要由两个数据缓冲器


SBUF


、一个输入移位 寄存器、一个串行控


制寄存器


SCON


和一个波特率发生器


T1


等组成。其 结构见图


3-2





3-2 MCS-51


系列单片机串行口结构




串行口数据缓冲器


SBUF


是可以直接寻址的专用寄存器。在物理上,一个作发送缓冲


< /p>


器,一个作接收缓冲器。两个缓冲器共用一个口地址


99H


,由读写信号区分,


CPU



SUBF


时为发送缓冲器,读


SUBF


时为接收缓冲器。



接收缓冲器是双缓 冲的:它是为了避免在接收下一帧数据之前


,CPU


未能及时 响应接收器


的中断把上帧数据读走,而产生两帧数据重叠的问题而设置的双缓冲结构。对 于发送缓



冲器,为了保持最大传输速率,一般不需要双缓冲, 这是因为发送时


CPU


是主动的,不会




产生写重叠问题。特殊功能寄存器


SCON


用来存放串行口的控制和状态信息。


T1

作串行口


的波特率发生器,其波特率是否增倍可由特殊功能寄存器

< br>PCON


的最高位控制。



2.


串行通信过程


< br>(1)


接收数据的过程在进行通信时,当


CPU


允许接收时(即


SCON



REN


位置


1


时),



外界数据通过引脚

< p>
RXD



P3.0


)串行 输入,数据的最低位首先进入移位器,一帧接收完毕



再并行送入缓冲器


SBUF


中,同时将接收中断标志位


RI


置位,向


CPU


发出中断请求。


CPU


响应中断后,并用软件将


RI


位清除同时读走输入的数据。接着又开始下一帧的输入过程。



重复直至所有数据接收完毕。



(2)


发送数据的过程



CPU


要发送数据时,即将数据并行写入发送缓冲器


SBUF


中,同时启动数据由


T


X


D



P3.1




引脚串行发送,当一帧数据发送完即发送缓冲器空时,由硬件自动将 发送中断标志位


TI


置位,向


CPU


发出中断请求。


CPU


响应中断后,用软件将


TI


位清除, 同时又将下一帧数


据写入


SBUF


中,重复上述过程,直至所有数据发送完毕。



3.


串行口工作方式及帧格式



MCS51


单片机串行口可以通过软件设置四种工作方式:



(1)


方式


0


这种工作方式比较特殊


,


与常见的微型计算机的串行口不同< /p>


,


它又叫同步移位寄存器



输出方式。在这种方式下,数据从


RXD


端串行输出或输入,同步信号从


TXD


端输出


,


波特



率固定不变:为震荡频率的


1/12


。 该方式是以


8


位数据为一帧,没有起始位和停止位,先



发送或接收最低位。



(2)


方式


1


串行口采用该方式时


,


特别适合于点对点的异步通信。该方式 规定发送或接收一个字




10


位为一帧,即一个起始位,


8


个数据 位,一个停止位


,


波特率可以改变。



(3)


方式


2

采用这种方式


,


可以接收或发送


1 1


位数据


,



11


位为一帧


,


比方式

< p>
1


增加了一个数据




,


其余相同。第


9


个数据即


D8


位具有特别的用途


,


可以通过软件来控制它,再加特殊功



能寄存器


SCON


中的


SM2


位的配合,可使


51


单片机适用于多机通信。方式


2


波特率固定,



只有两种选择:为振荡频率的


1/32



1/64,



PCON


最高位选择。



(4)


方式


3


方式


3


与方式


2


完全类似

< br>,


惟一的区别是方式


3


波特率 可变


,


所以适用于多机通信。



3.2.2


单片机与


PC


机之间电平转换硬件接口



异步工作模式


USART


是进行产品 开发和系统设计中最常用的模式,这种模式就是常说



RS23 2C


。它的数据格式为


1


个起始位、


8


个或


9


个数据位、


1


个停止位。在本文中我 们


利用


USART


实现单片机与计算机之间的串行通讯。





51


单 片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口


通讯。进行 串行通讯时要满足一定的条件,比如电脑的串口是


RS232C


电平的。


RS232C


< p>
由美国电子工业协会(


EIA


)正式公布的、在异 步串行通信中应用最广泛的标准总线,它


包括了按位串行传输的电气和机械方面的规定, 适用于数据终端设备(


DTE


)和数据通讯

设备


(DCE)


之间的接口。


RS 232


串行信息格式为


10


位,


1


位起始位,


1


位奇偶校检位,


1




停止位,


8


位数据位。


RS232C


的机械指标规定:


RS232C


接口通向外部的连接器是一种




D


”型


25


针插头,在微机通讯中,通常使用的


RS232C


接口信号只有九根引脚,其引



脚见图


3-3





3-3 DB9


管脚图




RS232


总线连接距离通信:


15


米以内。适于短距离或带调制解调器的通信场合。其



逻辑电平对地是对称的,与


TTL


< p>
MOS


逻辑电平完全不同。


RS232C


电平是负逻辑电平(逻



0


:+


5V


~+


15V


,逻辑


1


:-


15V< /p>


~-


5V


),



而单片机的串口是


TTL


电平的,


TTL


为正


逻辑电平


(带负载时:


逻辑


1



+5V



+ 12V



逻辑


0



-5V



-12V



不带负载时:


逻辑


1



2.4V



逻辑< /p>


0



0.4V


) ,所以单片机和


PC


机进行通信时,两者之间必须有一个电平转换电路。



用专用


RS232C


电平和


TTL


电平转换芯片


MAX232



MAX232


封装图见图


3-4





3-4 MAX232


封装图




我们在这里采用了三线制连接串口:计算机的


9


针串口只连接其中的


3


根线:第


5




GND


、第


2


脚的


RX D


、第


3


脚的


TXD


。这是最简单的连接方法,但是对我们来说已经足够


使 用了。



连接方法:


MAX232


的第


10


脚和单片机的


11


脚连接,第


9


脚和单片机的


10


脚连接。



MAX232


的基本接线图见图


3-5







3-5 MAX232


的基本接线图





电平转换硬件接线图见图


3-6





3-6 RS232


电平和


TTL


电平转换电路




3.2.3


单片机串口通信设置及程序设计



在系 统中


,


单片机一般称为下位机


,


通常用来完成数据的采集和上传


,



PC


机、网络



设备 、数据库服务器组成的后台应用部分则称为上位机


,


对下位机的 上传数据进行分析并



处理。系统充分发挥了单片机在实时数据 采集和微机对数据处理显示以及


MCS-51


串行口



工作方式选择、中断标志、可 编程位的设置、波特率的倍增均是通过两个特殊功能寄存器



SCON



PCON


来控制的。下面首先来介绍一下这两个寄存器:





1.


电源和波特率控制寄存器


PCON


PCON


的地址是


87H

< p>
,只能进行字节寻址,不能按位寻址。


PCON


是为在


CHMOS


结构




51


系列单片机上实现电源控制而附加的,对


HMOS



51


系列单片机,只用了最高位,



其余位都是虚设的。


PCON


的最高位


D7


位作

< br>SMOD


,是串行口波特率的增倍控制位。当



SMOD=1


时,波特率加倍。例如在工作方式


2


下,若


SMOD=0


时,则波特率为


fosc/64





SMOD=1


时,波特率为


fosc/32


,恰好增大一倍。系统复位时,


SMOD


位为


0




2.


串行口控制寄存器


SCON


SCON


主要功能是串行通信方式选择,接收和发送控制及串 行口的状态标志指示等作



用,其各位见表


3-1





3-1 SCON


寄存器



9FH


SMO


9EH


SM1


9DH


SM2


9CH


REN


9BH


TB8


9AH


RB8


99H


TI


98H


TI




1



SCON.7



SCON.6



SM0 SM1



---


串行方式选择位见表


3-2



3-2 SCON


寄存器



SM0


SM1


方式



功能



0


0


方式


0


移位寄存器方式



0


1


1



1


0


1


方式


1


方式


2


方式


3


8


位异步通信方式



9


位异步通信方式



9


位异步通信方式



波特率



f


osc/12


可变



f


os c/32



f


osc/64


可变



(2)SCON.4



REN


位——可用软件允许


/


禁止串行接收


,REN=1



,


允许串行口接收数




,REN=0


< br>,


禁止串行口接收数据。



(3)SCON.5



SCON.3,SCON.2



SM2



TB8,RB8


位是实现多机通信的控制位。在



方式


0



,SM2


应设置为


0


,不用


TB8



RB8


位。在方式


1


,



SM2=0



,RB8


是接



收到的停止位;若


SM2=1



,


则只有收到有效的停止位才会激活


RI


使之置


1,


否则


RI




置位。在方式


2


和方式


3



,TB8


是发送的第


9


位数据


(D8),


可用软件置


1


和 置


0



RB8


是接收到的第


9


位数据


(D8),


这两位也可以作为奇偶校检位。当方式


2


或方式


3


处于接



收时


,



SM2=1,


且接收到的第


9


位数据为


0



,



RI


不置


1;



S M2=1,



RB8


也为


1



, RI



1,


当方式

2


或方式


3


处于多机通信时


,TB8



RB8


位可作为地址数据帧标志< /p>


位;一般约定地址帧为”


1


< p>
,


数据帧为”


0


”。



(4)SCON.1



TI



- --


作发送中断标志。



在方式


0



,


发送完


8


位数据后


,


由硬件置位;在其他方式中


,


在发送停止位之初


,






硬件置位。


TI


置位后可向


CPU


申请中断


,


任何方式中都必须由软件来清除


TI




(5)SCON.0



RI


位——作接收中断标志。



在方式


0



,


接收完


8


位数据后


,


由硬件置位;在其他方式中


,


在接收停止位的一半



时由硬件将


RI


置位


(


还应考虑


SM2


的设定< /p>


)



RI


被置位后可允许


CPU


申请中断


,


任何方



式都必须由软件来清除。



3.


各工作方式波特率的设置



在串行通信 中


,


收发双方对发送或接收的数据速率


(


即波特率


)


要有一定的约定。串行< /p>



口的工作方式可以通过编程选择


4 < /p>


种工作方式,各种工作方式下其波特率的设置均有所不



,


方式


0


和方式


2


波特率是固定的;而方式


1


和方式


3


的波特率是可变的


,


由定时器


T1


的溢出率控制。下面分别加以说明。



(1)


方式


0


和方式


2


在方式


0



,


每个机器周期发送或接收一位数据


,


因此波特率固定为振荡频率的



1/12,


且不受


SMOD


位的控制。



方式


2


的波特率要受


PCON



SMOD


位的控制


,



SMOD


设置为


0



,


波特率为振



荡频率的


1/64


即等于

< p>
fosc/64


;若


SMOD


设置为


1



,


则波特率为


fosc/32


。方式< /p>


2




波特率可用下式表示


:


波特率


=2SMOD


×


fosc/64


(2)


方式


1


和方式


3


MCS-51


串行口方式


1


和方式


3


的波特率由定时器


T1


的溢出率和


SMOD


位同时控



制。其波特率可用下式表示


:


波特率


=


定时器


T1


的溢出率


/N,


其中


N=32



16,


取决于


P CON



SMOD


的值。



SMOD=0



,N=16


。因此也可用下式表示


:


波特率


=(2SMOD /32)


×


T1


的溢出率



其中定时溢出率取决于计数 速率和定时器的预置值。计数速率与


TMOD


寄存器


C/T




设置有关。



通讯初始化程序设置如下:



TMOD=0x20;









TH1=0xfd;


TL1=0xfd;


TR1=1;


SM0=0;


SM1=1;


REN=1;


EA=1;


ES=1;PCON=0x00;


reconfirm-落伍的英文


reconfirm-落伍的英文


reconfirm-落伍的英文


reconfirm-落伍的英文


reconfirm-落伍的英文


reconfirm-落伍的英文


reconfirm-落伍的英文


reconfirm-落伍的英文



本文更新与2021-01-28 00:49,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/575668.html

基于单片机的无线温度采集系统的设计的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文