reconfirm-落伍的英文
图
书
分类号:
密
级:
毕业设计
(
论文
)
基于单片机的无线温度采集系统的设计
DESIGN OF THE WIRELESS
TEMPERATURE
COLLECTION SYSTEM BASED ON
MCU
学
生
姓
名
班
级
学
号
p>
学
院
名
称
专
业
名
称
指
导
< 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
数据采集系统简单介绍
p>
.
.............................
.....................
1
2
温度采集系统的设计
............................................ .......... 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
数码管显示程序的设计
.
............................................ . 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
致谢
............................................ ......................... 50
参考文献
............
..................................................
... 51
附录
..............................................
....................... 52
附录
1
..
..................................................
.................
52
附录
2
..
..................................................
.................
57
附录
3
..
..................................................
.................
80
1
绪论
1.1
课题背景
在现代社会的生活环境中,
信息扮演着极其重要的角色。所谓信息就是人们即时获得
对自
己有用的数据。无论你生活在哪里,从事什么工作,无时无刻不在与信息打着交道。
自
18
世纪工业革命以来,工业发展
与是否能掌握技术有着密切的联系。在机械、精密制
造、化工
等行业,可以说那时几乎所有的工业部门都不得不考虑着技术领先的因素。但是
进入
20
世纪也就是人们说的信息社
会的到来技术虽然还是关键的因素,但是获得技术已
经不是靠
那种人们基本的手工操作了,信息是获得技术的关键所在,这就要求人们能在第
一时间获得数据。比如在气象部门、航空航天部门、以及现代农业……可以说现代社会生
活的各方面都对实时、即时的数据存在着依赖。今天,我们的生活环
境和工作环境有越来
越多称之为单片机的小电脑在为我们服务
。单片机在工业控制、尖端武器、通信设备、信
息处理、
p>
家用电器等各测控领域的应用中独占鳌头。
时下,
< br>家用电器和办公设备的智能化、
遥控化、模糊控制化己
成为世界潮流,而这些高性能无一不是靠单片机来实现的。采用单
片机来对数据采集进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以
大幅度提高被控数据的技术指标,从而能够大大提高产品的质量和数量。单片机以
其功能
强、体积小、可靠性高、造价低和开发周期短等优点,
成为自动化和各个测控领域中必不
可少且广泛应用的器件,尤
其在日常生活中也发挥越来越大的作用。温度是环境监测的重
要参数
,
在一些特定的场合常常需要对温度进行监测。很多温度监测环境范围大
,
测点距离
远
,
布线很不方便。本系统中把温度传感器
DS18B20
将采集到的温度值送给单片机进行处
理
,
通过
nRF2401
实现远程无线传输
,
在上位机的控制系统中
,
采用
RS-232
口作为计算机与
单
片机温度数据通信接口。本系统既能准确的测量温度
,
又能解决
测量距离上的问题,基
此,本绕基于单片机无线的温度采集系统展开应用研究工作。
p>
1.2
数据采集系统简单介绍
随着自动控制
、监测及远程控制的发展,数据采集越来越被广泛应用,如医疗、工业
等方面,数据采集是指将温度,压力,流量,位移等模拟量通过各种传感元件做适当转换
后,再经信号调理、采样、量化、编码、传输等步骤采集,转换成数字量后,
传给
PC
机
进行存储,处理,显示或打印的过程,相应的系统称为数据采集系统,可分为以下几种:
1.
基于通用微型计算机的数据采集系统
< br>
将采集来的信号通过外部的采样和
A/D
转换后的数字信号通过接口电路送入微机内
进行处理,然后再显示处理结果
或经过
D/A
转换输出,主要有以下几个特点
:
(
1)
系统较强的软、硬件支持。通用微型计算机系统所有的软硬件资源都可以用来支
p>
持系统进行工作。
(2)
具有自开发能力。
(3)
系
统的软硬件的应用配置比较小,系统的成本较高,但二次开发时,软硬件扩展
能力较好。
(4)
在工业环境中运行的可靠性差
,对安放的环境要求较高;程序在
RAM
中运行,易
受外界干扰破坏。
2.
基于单片机的数据采集系统
p>
它是由单片机及其些外围芯片构成的数据采集系统,是近年来微机技术快速发展的结
果,它具有如下特点
:
(1)
系统不具有自主开发能力,因此,系统的软硬件开发必须借助开发工具。
p>
(2)
系统的软硬件设计与配置规模都是
以满足数据采集系统功能要求为原则,因此系
统的软硬件应用配置具有最佳的性价比。系
统的软件一般都有应用程序。
(3)
系统的可靠性好、使用方便。应用程序在
ROM
中运行不会因
外界的干扰而破坏,
而且上电后系统立即进入用户状态。
3.
基于
DSP
数字信号微处理器的数据采集系统
DSP
数字信号微处理器从理论上而言就是一种单片机的形式
,常用的数字信号处理芯
片有两种类型,一种是专用
DSP
芯片,一种是通用
DSP
芯片。基于
DSP
数字信号微处理器
的数据采集系统的
特点如下
:
精度高、灵活性好、可靠性好、容易集成、分时复用
等,但
其价格不菲。
4.
基于混合型计算机采集系统
这是一种近年来随着
8
位单片机出现
而在计算机应用领域中迅速发展的一种系统结
构形式。它是由通用计算机
(PC
机
)
与单片机通过标
准总线
(
例如
RS-232-C
p>
标准
)
相连而
成。
单片机及其外围电路构成的部分是专为数据采集等功能的要求而配置的,主机则承担
数据
采集系统的人机对话、大容量的计算、记录、打印、图形显示等任务。混合型计算机
数据
采集系统有以下特点
:
(1)
通常具有自开发能力;
(2)
系统配置灵活,易构成各种大中型测控系统;
< br>
(3)
主机可远离现场而构成各种局域网络系统;
p>
(4)
充分利用主机资源,但不会占有主
机的全部
CPU
时间。
DS18B20
单
片
机
1
nRF
2401
模块
nRF
2401
模块
单
片
机
2
GSM
模块
2
温度采集系统的设计
2.1
系统硬件电路构成
身的温度采集系统,系统硬件电路由温度传感器、单片机、
NRF24L
01
、
RS-232
串口
通信和计算机组成。其原理框图见图
2-1
。
p>
DS18B20
数
< br>字温度传感器
模
块
NRF24L01
1
模
块
NRF24L01
2
单
片
机
1
单
片
机
2 <
/p>
无
线
无
线
单
片
机
3
PC
机
图
2-1
硬件电路原理框图
在单片机
1
的控制下,温度传感器把温度数据传至单片机
1
进行判断、显示并把有效的
数据通过单片机的串口传至单片机
2
。单片机
2
把收到的数据进行判断和显示,并控制
NRF24L01
无线模
块
1
把数据发射出去。无线模块
2
p>
收到数据后,把数据通过
SPI
通信传至单
片机
3
,单片机
3
在对数据进行再判断与显示。最后单片机
3
再把有效的数据通过
RS-232
串
< br>
口传至计算机,计算机对收到的数据进行采集和存储。
单片机主要是对温度传感器
DS18B20
进行控制,读取温度传感器的温度值,并把温度
值通过串口通信送入计算机。
NRF24L01
主要
对数据进行无线传输。由于
STC89
系列单片机
与
MCS-51
系列单片机兼容,并支持在线下载,线路简单,所以本系统采用
STC8
9C52
单片
机。
2.1.1
单片机部分
(一)单片机发展
单片机又称“
p>
MCU
”,其发展历程主要经历了以下五个阶段
[7]:
第一阶段
:
单片机的探
索阶段。这一阶段以
Intel
公司的
MCS-48
为代表。
MCS-48
的
推出是在工控领域的探索,参与这一探索的公司还有
Motorola,Z
iLong
等,都取得了满意
的效果。
第二阶段
:
单片机完善阶段。
< br>Intel
公司在
MCS-48
基础上推出了完善的、典型的
MCS-51
单片机系列。它
在以下几个方面奠定了典型的通用总线单片机体系结构。
(1
)
完善的外部总线。设置了经典的
8
位单片机的总线结构。
(2)CPU
外围功能单元的集中管理模式。
(3
)
体现工控特性的位地址空间、位操作方式。
(4)
指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。
第三阶段
:8
位单片机巩固发展及
16
位单片机推
出阶段,也是向微控制器发展的阶
段。
Intel
公司推出的
MCS-96
系列单片机
中,将一些用于测控系统的模数转换器、程序
运行监测器、脉宽调制器等纳入片中,体现
了单片机的微控制器特征。
第四阶段
:
微控制器的全面发展阶段。随着单片机在各个领域全面深入的发展和应用,
出现了高速、大寻址范围、强运算能力的
8
位、
16
位、
32
位通用型单片机,以及小型廉
价的专用型单片机。
第五阶段即现行阶段。单片机的首创公司
Intel
将其
MCS-51
系列中的
80C51
内核使
用权以专利互换或出售形式转让给世界许多著名
IC
制造厂商,如
Atmei
、
Philips
、
NEC
等,这样
80C51
就变成有众多制
造厂商支持的发展出上百种品种的大家族,现统称为
8051
系列,也有人简称为
51
系列。虽然世界上的
MCU
品种繁多,功能各异,开发装置也互不
兼容,但是客观发展表明
:80C51
系列单片机已成为单片机发展的主流。在单片机家族中,
80C51
系列是其中的佼佼者。
1998
年以
后系列单片机又出现了一个新的分支,称为系列
单片机。这种单片机是由美国
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
口缓冲器可接收,输出
p>
4
个
TTL
门电流,当
P2
口被写“
1
”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作
为输入时,
P2
口的管脚被外部拉低,将输出电流
,这是由于内部上拉的缘故。
P2
口当用
于外部程序存储器或
16
位地址外部数据存储器进行存取时,
P2
口输出地址的高八位。在
给出地址
“
1
”
时,
它利用内部上拉优势,
p>
当对外部八位地址数据存储器进行读写时,
P2
口
输出其特殊功能寄存器的内容。
P2
口在
FLASH
编程和校验时接收高
八位地址信号和控制
信号。
P3
口:
P3
口管脚是
8
个带内部上拉电阻的双向
I/O
口,可接收输出
4
个
TTL
门
电流。当
P3
口写入“
1
”后,它们被内部上拉为高电平,并用作输入。作为输入,由于
外部下拉为低电平,
P3
口将输出电流
(
ILL
)
这是由于上拉的缘故。
P3
口也可作为
ST89C52
的一些特殊功能口
,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
口同时为闪烁编程和编程校验接收一些控制信号。
RST
:复位输入。当振荡器复位时,要保持
RS
T
脚两个机器周期的高电平时间。
ALE/PROG
:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在
< br>FLASH
编程期间,此引脚用于输入编程脉冲。在平时,
ALE
端以不变的频率周期输出正脉
冲信号,此频率为振荡器频率的
1/6
。因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个
ALE
脉冲。如想禁止
ALE
的输
出可在
SFR 8EH
地址上置
0
。此时,
ALE
只有在执行
p>
MOVX
,
MOVC
指令是
ALE
才起作用。
另外,该引脚被略微拉高。如果微处理器在外部执行状态
ALE
禁止,置位无效。
PSEN
:外部程序存储器的选通信号。在由外部程序存储器读取指令期间,每个机器
< br>
周期两次
PSEN
有效。但在访问外部数据存储器时,这两次有效的
PSEN
信号将不出现。
EA
/VPP
:当
EA
保持低电平时,则
在此期间外部程序存储器(
0000H-FFFFH
),不管是
否
有内部程序存储器。注意加密方式
1
时,
EA
将内部锁定为
RESET
;当
EA
端保
持高电平时,
此间内部程序存储器。在
FLASH
编程期间,此引脚也用于施加
12V
编程电源(
VPP
)。
XTAL1
:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2
:来自反向振荡器的输出。
3.
振荡器特性
XTAL1
和
XTAL2
分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡
器。
石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,
XTAL2
应不接。由于输
入至内部时钟信号要通过一个二分频触发器,因此对外部时钟
信号的脉宽无任何要求,但
必须保证脉冲的高低电平要求的宽度。
4.
芯片擦除
整个
EPROM
阵列和三个锁定位的
电擦除可通过正确的控制信号组合,并保持
ALE
管
脚处于低电平
10ms
来完成。在芯
片擦除操作中,代码阵列全被写“
1
”且在任何非空存
储字节被重复编程以前,该操作必须被执行。
5.
编程算法
(
1
)地址线上输入欲编程的存储单元地址;
(
2
)在数据线上输入编程数据;
(
3
)加正确的控制信号组合;
p>
(
4
)在“高压”模式下使
VPP
为
12V
;
(
5
)在
AL
E
引脚上加一次负脉冲,可对
FLASH
< br>存储器的一个字节或保密位进行编程。编
程一个字节的周期是内部自定时的,典型
时间不会超过
1.5ms
。改变编程的存储单元地址
和编程数据重复步骤(
1
)~(
< br>5
),直到编程文件最后。此外,
STC89C52 <
/p>
设有稳态逻辑,
可以在零频率的条件下静态逻辑,支持两种软件可
选的掉电模式。在闲置模式下,
CPU
停
止工作,但
RAM
、定时器、计数器、串口和中断系统仍在
工作。在掉电模式下,保存
RAM
的
内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
6.
主要工作和内容安排
综上所述,本着实用、可靠、安全、简洁及经济等设计原则,设计开发了基于单片
机
STC89C52
的无线温度采集系统。
所做的工作主要包括:
1.
利用
DS18B20
温度传感器采集温度;
2.
制作一个基于
STC89C52
单片机的温度采集系统,并将采集信息数据通过
NRF24L0
1
无线传输模块传送给计算机,利用计算机对其进行实时显示、存储,以便进行数据分析
。
2.1.2
温度传感器部分
测量温度的关键是温
度传感器,温度传感器的发展主要大体经过了三个阶段:
1
传统
的分立式温度传感器(含敏感元件)
2
模拟集成温度传感器控制器
3
智能温度传感器。模
拟集成传感器是采用硅半导体集成工艺而制成的,因此亦称硅传感器或单片集成温度传感< p>
器。模拟集成温度传感器是在
20
世纪
80
年代问世的,它是将温度传
感器集成在一个芯片
上,可完成温度测量及模拟信号输出功能的专用
IC
。模拟集成温度传感器的主要特点是功
能单一(仅测量
温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功
耗等,适合远距
离测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内
外应用最为普遍
的一种集成传感器,典型产品有
AD590
、
< br>AD592
、
TMP17
、
p>
LM135
等。模拟
集成温度控制器主要
包括温控开关和可编程温度控制器,典型产品有
LM56
、
p>
AD22105
和
MAX6509
。某些增强型集成温度控制器例如
(TC652/653)
中还包含了刀转换器以及固化好的
程序,这与智能温度传感器有某些相似之
处。但它自成系统,工作时并不受微处理器的控
制,这是二者的主要区别。智能温度传感
器
(
亦称数字温度传感器
)
是在
20
世纪
90 <
/p>
年代中
期问世的。它是微电子技术、计算机技术和自动测试技术<
/p>
(ATE)
的结晶。目前,国际上已
开发
出多种智能温度传感器系列产品。智能温度传感器内部都包含温度传感器、
A/D
p>
转换
器、信号处理器、存储器
(
或寄存器
)
和接口电路。有的产品还带多路选择器
、中央控制器
(CPU)
、随机存取存储器
(RAM)
和只读存储器
(ROM)
。智能温度传感器的特点是能输出温度
数据及相关的温度控制量,适配各种微控制器<
/p>
(MCU)
;并且它是在硬件的基础上通过软件
< br>
来实现测试功能的,其智能化程度也取决于软件的开发水平。
目前,国际上新型温度传感器正从模拟式向数字式、从集成化向智能化和网络化的方
p>
向飞速发展。数字式温度传感器
DS18B20
正是朝着高精度、多功能、总线标准化、高可性
及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。
因此,智能温度传感器
DS18B20
作为温度测量装置己广泛应用于人民的日常生活和工农业
生产中。
2.1.2.1
DS18B20
简介
DS18B20
是美国半导体公司继之后最新推出的一种数字
化单总线器件,属于新一代适
配微处理器的改进型智能温度传
感器。
与传统的热敏电阻相比,
它能够直接读出被测温度,
p>
并且可根据实际要求通过简单的编程实现
9-12
位的数字值读数方式。可以分别在
93.75ms
和
750ms
内完成
9
位和
12
位的数字量,并且从
DS18B20
读出的信息或写入
DS18B20
的信
息仅需要一根口线
(
单线接口
)
读写,温度变
换功率来源于数据总线,总线本身也可以向所
挂接的
DS18B20
供电,而无需额外电源。因而使用
DS18B20
可使系统结构更趋简单,可靠
性更高
。同时其“一线总线”独特而且经济的特点,使用户可轻松地组建传感器网络,为
p>
测量系统的构建引入了全新的概念。
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
p>
)测温范围-
55
℃~﹢
< br>125
℃。固有测温分辨率为±
0.5
< br>℃。当在-
10
℃
~
+85
℃
范围内,可确保测量误差不超过
0.5
℃,在-
55
℃~﹢
125
℃范围内,测量误差也不超过
2
℃。
(
5<
/p>
)通过编程可实现
9
~
< br>12
位的数字读数方式。
(
6
)用户可自设定非易失性的报警上下限值。
< br>
(
7
)支持多点组网功能,多
个
DS18B20
可以并联在唯一的三线上,实现多点测温。
(
8
p>
)负压特性,即具有电源反接保护电路。当电源电压的极性反接时,能保护
< br>DS18B2
不会因发热而烧毁。但此时芯片无法正常工作。
(
9
)
DS18B20
的转换速率比较高,进行
9
位的温度
转换仅需
93.75ms
。
(
10
)适配各种单片机或系统。
(
11
)内含
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
)
ROM
与单线接口;
4
、高速暂存器,即便筏式
RAM
,用于
存放中间数据;
5
、
TH
触发寄存器和
TL
触发寄存器,分别
用来存储用户设定的温度上下
限值;
6
、存储和控制逻辑;
7
、
8
位循环冗余校验码(
CRC
< br>)发生器。
DQ
存储器与控制逻
辑
位
64<
/p>
ROM
温度传感器
高温触发器
TH
和
单
线
p>
输
高
速
低温触发器
TL
图
2-4 DS18B20
内部结构
(
1
)
64
位闪速的结构见表
2-1
。
表
2-1 64
位闪存的结构
高
8
位是
CRC
校验码,接着是每个器件的惟一的序号,共有
48
位,低
8
位是产品类
型的编号,前
56
位的这也是多个
DS18B20
可以采用一线进行通信的原因。
(<
/p>
2
)非易失性温度报警触发器
TH
p>
和
TL
,可通过软件写入用户报警上下限。
(
3
)高速
暂存存储器
DS18B20
温度传感器的内部存储器包括一个高速暂存
RAM
和一个非易失性的可电擦
除的的
E2RAM
。后者用于存储
TH
,
TL
值。数据先写入
RAM
,经校
验后再传给
E2RAM
。而配置
寄存器
为高速暂存器中的第
5
个字节,它的内容用于确定温度值的数
字转换分辨率,
DS18B20
工作时按此寄存器中的分辨率将
温度转换为相应精度的数值。该字节各位的定义
见表
2-2
p>
。
表
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
字节未用,表现
为全逻辑
1
;第
9
字节读出的是前面所有
8
个字节的
CRC
码,可用来保证通信正确。当
DS18B20
接收到温度转换命令后,开始启动转换。转换完成后的温度值就以
16
位带符号
扩展的二进制补码形式存储在高速暂存存储器的第
1,2
字节。单片机可通过单线接口读到
该数据
,读取时低位在前,高位在后。温度值格式见表
2-5
。
表
2-5
温度格式表
以
12
位转化为例说明温度高低字节存放形式及计算;
12
位转化后得到的
12
位数据,
存储在
DS18B20
的两个高低
8
位的
RAM
中,二进制中的前面
5
位是符号位。
如果测得的温
度大于
0
,这
5
位为
0
,即符号位<
/p>
S=0
,这时只要直接将测到的数值二进制位转换为十进制,
p>
再乘以
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
有六条控制命令,见表
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
p>
中。
读内部
RA
九字节内容
发出向内部
RAM
的第
3
、
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
的通讯协议,必须经历
三个步骤
:
每一次读写之前都要对
DS18B20
进行复位,复位成功后发送一条
ROM
指令,最
后发送
RAM
指令,这样才能对
DS18B20
进行预定的操作。
2.1.2.5
DS18B20
的测温原理
DS18B20
的测温原理见图
2-5
。
图
2-5 DS18B20
的内部测温电路原理图
图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号
< 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
。采用寄生电源供电方式时
VDD
端接地。由于单线制只有一根线,因
此发送接口必须是三态的。寄生电源供电方式,见图
2-6
。<
/p>
图
2-6 DS18B20
与单片机的接口电路
2.1.3 LED
数码管部分
p>
在日常生活中,我们对
LED
数码管并不陌
生。
LED
数码管已作为很多电子产品的通用器
件,如在仪表、汽车、机械电子及很多家用电子产品中都可以看到。在单片机的人机交流
界面中,
一般的输出方式有以下几种:
发光管、
LED
数码管、
液晶显示器。
发光管和
LED
数
码管比较常用,软硬件都比较简单。
2.1.3.1 LED
数码管简介
LED
数码管分共阳极与共阴极两种,其工作特点是,当笔段电
极接低电平,公共阳极
接高电平时,相应笔段可以发光。共阴极
LED
数码管则与之相反,它是将发光二极管的阴
极
(
负极
)
短接后作为公共
阴极。当驱动信号为高电平、
?
端接低电平时,才能发光。
p>
LED
的
输出光谱决定其发光颜色以及光辐
射纯度,也反映出半导体材料的特性。常见管芯材料有
磷化镓
(
GaP)
、
砷化镓
(GaAs)
、
磷砷化镓
(GaAsP)
、
氮化镓
(GaN)
等,
p>
其中氮化镓可发蓝光。
发光颜色不仅与管芯材料有关,还与所掺杂质
有关,因此用同一种管芯材料可以制成发出
红、橙、黄、绿等不同颜色的数码管。其他颜
色
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
数码管,
用
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
无线数据传输部分
随着我国国际地位和科研水平的不断提高,无需导线连接的无
线数据系统对用户有着
极大的吸引力。无线数据系统采用了能在局域范围内无线传输信息
的数字网络,在不改动
原有设施的前提下,将有效的数据信息准确、快速和安全地传送给
与会者。因此,无线数
据系统设备的设计得到了国内外相关领域厂商的广泛关注,未来,
无线数据系统很有可能
代替现有的有线数据系统,成为今后数据传输的主流。
要了解无线数据传输,
就得先了解无线传输技术。
下面大概
介绍一下几种常见的无
线传输技术:
1.U
段无线传输技术
超高频(
UHF -Ultra High Frequenc
y
)。
UHF
波段则是指频率为
300~3000MHz
的特高
频无线电波。
具有特点是:
1
)稳定性高
2
)写距离远
3
)讯速率较高
但
U
p>
段技术由于频段多、使用范围广,容易串频和被听,保密性较差。
2.
红外线技术
红外通讯技术的特点:
1
)它是目前在世界范围内被广泛使用的一种无线连接技术,被众多的硬件和软件平
< br>台所支持;
2
)通过数据电脉
冲和红外光脉冲之间的相互转换实现无线的数据收发。
3
p>
)主要是用来取代点对点的线缆连接;
4
)具有不能穿透障碍物的特性,有效保障了会议信息的安全与保密;
5
)安装方便快捷,成本低;
当然我们还是需要注意一下红外线技术的一些局限性。在进行系统安装时,设备距离
p>
红外信号收发器的距离通常比较短,大都在
10
米内,且应远离其它红外光源(如日光灯,
等离子屏等),以避免干扰。
技术
WAP
是
Wireless
Application Protocol
(即无线应用协议)的缩写。无线应用协议
也
称为无线应用程序协议,目前应用广泛,是在数字移动电话、
Internet
及其他个人数字助
理机
PDA
、计算机应用之间进行通信的开放性全球标准。
在工作方面,对于日理万机、经常
与时间竞赛的商务人士,
WAP
更能为用户提供市场
上最新的第一手信息,
完全配合用户的业务和工作需要。
< br>在生活方面,
无论用户身在何处,
都可以通过
WAP
上网,进行各项线上银行服务,在娱乐方面,
WAP
也为用户提供了崭新的消
费模式,无论您走到那里,都
可以随心所欲地与朋友甚至其他
WAP
用户,一起上网、玩游<
/p>
戏,一起分享
WAP
的乐趣。
BOSCH
的
DCN
无线
讨论系统采用的就是该无线技术。
通过倍受赞
誉的无线介入点能够为方圆
40
米(
164
英尺)左右的空间提供稳固如一的强大连接。
WAP
p>
既
可部署在会议室中心以获得最佳的覆盖率,也可以移动到会议室中
最适合的位置。
尽管
WAP
有其强大的优势,但是也必须指出
WAP
在技术角度上的局限性,主要存在于两
个
方面:
1
)
WAP
设备和
WAP
承载网络:
2
)
WAP
设备受
CPU
、随机访问存储器(
p>
RAM
)、只读存储器(
ROM
)和处理速度的限制。
3
)
WAP
承载网络是低功率的网络,一般在办公环境中的带宽
多为
11M
,。
WAP
承载网络
的固有特性是可靠性不高、稳定性不高和不可。
4.2.4G
频射技术
2.4G
无线技术,其频段处于
p>
2.405GHz-2.485GHz
之间。所以简称为
2.4G
无线技术。这个
频段里是国际规定的免费
频段,是不需要向国际相关组织缴纳任何费用的。这就为
2.4G
无
线技术可发展性提供了必要的有利条件。而且
2.4G
p>
无线技术不同于之前的
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
p>
功耗低
,
在以
-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
图
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
p>
收发模式和直接收发模式
三种。
(1)Enhanced
ShockBurstTM
收发模式,在
Enhanced
ShockB
urstTM
收发模式下,使用片
内的先入先出堆栈区,数据低
速从微控制器送入,但高速
(1Mbps)
发射,这样可以尽量
节
能
p>
,
因此,
使用低速的微控制器也能得到很高
的射频数据发射速率。
与射频协议相关的
所有高速信号处理都在
片内进行,这种做法有三大好处:尽量节能;低的系统费用
(
低
速
微处理器也能进行高速射频发射
)
;
数据在空中停留时间短,抗干扰性高。
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.
当接收到正确的数据包
(
正确的地址和
CRC
校验码
)
,
NRF2401
自动把字头、<
/p>
地址和
CRC
校验位移去。
E. NRF24L01
通过把
< br>STATUS
寄存器的
RX_DR
置位
(STATUS
一般引起微控制器中断
< br>)
通知微
控制器;
F.
微控制器把数据从
NewMsg_RF2401
读出;
G.
所有数据读取完毕后,可以清除
STATUS
寄存器。
NRF2401
可以进入四种主要的模式
之一
。
(2)ShockBurstTM
收发模式
ShockBurstTM
收发模式下,使用片内的先入先出堆栈区,数据低速从微控制器送入,
但高速
(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)
射频数据打包
(
加
给射频前端供电;
射频数据打包
(
加字头、
CRC
校验码
)
;
高速发射数据包;
p>
发射完成,
nRF2401
进入空闲状态。
ShockBurstTM
接收流程
A.
配置本机地址和要接收的数据包大小;
B.
进入接收状态,把
CE
置高;
C. 200us
后,
NRF24L01
进入监视状态,等待数据包的到来;
D.
当接收到正确的数据包
(
正确的地址和
CRC
校验码
)
,
NRF24L01
自动把字头、地址和
CRC
校验位移去;
p>
E. NRF24L01
通过把
DR1(
这个引脚一般引起微控制器中断
)
p>
置高通知微控制器;
F.
微控制器把数据从
nRF2401
移出;
G.
所有数据移完,
NRF24L01
把
DR1
置低,此时
,如果
CE
为高,则等待下一个数据包,
如果
CE
为低,开始其它工作流程。
(
3
)直接发送模式
< br>
A.
当微控制器有数据要发送时,把
CE
置高;
B.
nRF2401
射频前端被激活;
C.
所有的射频协议必须在微控制器程序中进行处理
(
包括字头、地址和
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
能够处理射频协议,在配置完
成后,在
NRF24L01
工作的过程中,只需改变其最低一个字节中的内容,以实现接收模式和
发送模式之间
切换。
ShockBurstTM
的
配置字可以分为以下四个部分:
数据宽度:声明射频数据包中
数据占用的位数。这使得
NRF24L01
能够区分接收数据包
中的数据和
CRC
校验码;
地址宽度:
声明射频数据包中地址占用的位数。
这使得
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
<
br>reg
当主机总线 <
br>之内应将 <
br>1
//
对应引脚
>
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
}
//
向寄存器
写一个字节,同时返回状态字节
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
}
//
p>
读出
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
}
//
p>
写入
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
初始化程序设计
主机总线
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; //
单片机将
p>
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
p>
)
DS18B20
的写程序设计
to
时刻从高拉至低电平时就产生写时间隙从<
/p>
to
时刻开始
15us
所需写的位送到总线
DSl820
在
t1
为
15-60us<
/p>
间对总线采样
若低电平写入的位是
p>
0
见若
高电平写入的位是连续写
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];//
补码取反加
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); //
如果为零去除
-
号
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
等,均属于同步通信方式
)
。
由以上讨论可知,异步通信是指通信中两个字符间的时间间隔是不固定
的,而在同一
字符中两个相邻位代码间的间隔是固定的。但是
在同步通信中,每时每刻在链路上都有字
符信息传送,而且通
信中的每个字符间的时间间隔是相等的,此外,每个字符中各个相邻
位代码间的时间间隔也是固定的。
同
步通信以其高的传输效率和传输速度得到了广泛的应用。虽然,同步通信传输错误
p>
校验码检错和纠错的能力比异步传输的单纯奇偶校验码有所提高,但由于传输帧内的信息
p>
量大大增加
(
约
几百倍
)
,
因此对通信双方的时钟同步
要求甚严,
否则,
如果两者稍有差异,
几千位的累积误差会导致通信完全失败。
对于近距离的点对点数据通信,若不要求太高的数据传输率
(
例如不超过
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
时),
外界数据通过引脚
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
位为一帧
,
比方式
1
增加了一个数据
位
,
其余相同。第
9
个数据即
D8
位具有特别的用途
p>
,
可以通过软件来控制它,再加特殊功
能寄存器
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
是
由美国电子工业协会(
EIA
)正式公布的、在异
步串行通信中应用最广泛的标准总线,它
包括了按位串行传输的电气和机械方面的规定,
适用于数据终端设备(
DTE
)和数据通讯
设备
(DCE)
之间的接口。
RS
232
串行信息格式为
10
位,
1
位起始位,
1
位奇偶校检位,
1
位
停止位,
8
位数据位。
RS232C
的机械指标规定:
RS232C
接口通向外部的连接器是一种
“
D
”型
25
针插头,在微机通讯中,通常使用的
RS232C
接口信号只有九根引脚,其引
脚见图
3-3
。
图
3-3 DB9
管脚图
RS232
总线连接距离通信:
15
米以内。适于短距离或带调制解调器的通信场合。其
逻辑电平对地是对称的,与
TTL
、
MOS
逻辑电平完全不同。
RS232C
p>
电平是负逻辑电平(逻
辑
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
根线:第
p>
5
脚
的
GND
p>
、第
2
脚的
RX
D
、第
3
脚的
TXD
。这是最简单的连接方法,但是对我们来说已经足够
使
用了。
连接方法:
MAX232
的第
10
脚和单片机的
11
脚连接,第
9
脚和单片机的
10
脚连接。
MAX232
的基本接线图见图
3-5
。
图
3-5 MAX232
的基本接线图
电平转换硬件接线图见图
3-6
p>
。
图
3-6
RS232
电平和
TTL
电平转换电路
3.2.3
单片机串口通信设置及程序设计
在系
统中
,
单片机一般称为下位机
,
通常用来完成数据的采集和上传
,
由
PC
机、网络
设备
、数据库服务器组成的后台应用部分则称为上位机
,
对下位机的
上传数据进行分析并
处理。系统充分发挥了单片机在实时数据
采集和微机对数据处理显示以及
MCS-51
串行口
工作方式选择、中断标志、可
编程位的设置、波特率的倍增均是通过两个特殊功能寄存器
SCON
和
PCON
来控制的。下面首先来介绍一下这两个寄存器:
1.
电源和波特率控制寄存器
PCON
PCON
的地址是
87H
,只能进行字节寻址,不能按位寻址。
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
时
p>
,
则只有收到有效的停止位才会激活
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
”
,
数据帧为”
0
”。
p>
(4)SCON.1
为
TI
位
-
--
作发送中断标志。
在方式
0
中
,
发送完
8
位数据后
,
由硬件置位;在其他方式中
,
在发送停止位之初
,
由
硬件置位。
TI
置位后可向
CPU
申请中断
,
任何方式中都必须由软件来清除
TI
。
(5)SCON.0
为
RI
位——作接收中断标志。
在方式
0
中
,
接收完
8
位数据后
,
由硬件置位;在其他方式中
,
在接收停止位的一半
时由硬件将
RI
置位
(
还应考虑
SM2
的设定<
/p>
)
。
RI
被置位后可允许
CPU
申请中断
p>
,
任何方
式都必须由软件来清除。
3.
各工作方式波特率的设置
在串行通信
中
,
收发双方对发送或接收的数据速率
(
即波特率
)
要有一定的约定。串行<
/p>
口的工作方式可以通过编程选择
4 <
/p>
种工作方式,各种工作方式下其波特率的设置均有所不
同
,
方式
0
和方式
2
波特率是固定的;而方式
1
和方式
3
的波特率是可变的
,
由定时器
T1
的溢出率控制。下面分别加以说明。
(1)
方式
0
和方式
2
在方式
0
时
,
每个机器周期发送或接收一位数据
,
因此波特率固定为振荡频率的
1/12,
且不受
SMOD
位的控制。
方式
2
的波特率要受
PCON
中
SMOD
位的控制
,
当
SMOD
设置为
0
时
,
波特率为振
荡频率的
1/64
即等于
fosc/64
;若
SMOD
设置为
1
时
,
则波特率为
fosc/32
。方式<
/p>
2
的
波特率可用下式表示
:
波特率
=2SMOD
×
fosc/64
(2)
方式
1
和方式
3
MCS-51
串行口方式
1
和方式
3
的波特率由定时器
T1
的溢出率和
SMOD
位同时控
制。其波特率可用下式表示
:
波特率
=
定时器
T1
的溢出率
/N,
其中
N=32
p>
或
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-落伍的英文
基于单片机的无线温度采集系统的设计的相关文章
-
爱心与尊严的高中作文题库
1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。
-
爱心与尊严高中作文题库
1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。
-
爱心与尊重的作文题库
1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有
-
爱心责任100字作文题库
1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它
-
爱心责任心的作文题库
1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它
-
- 三国志战略九游版下载
- 余华爱情经典语录
- 心情低落的图片压抑
- 经典古训100句图片大全
- 关于青春奋斗的名人名言鲁迅
- 三国群英单机版手游礼包码
- 不收费的情感挽回专家电话
- 新婚贺语怎么说祝福语
- 适合小学生包容的句子经典语录
- 开启美好一天的句子
- 林徽因传
- 结婚祝福语句句暖心
- 正能量的句子经典简短100
- 沈从文语录经典语录关于爱情
- 史铁生的简介和作品
- 打动人心的爱情句子:我的眼里容不了一粒沙
- 平凡的生活.简单的幸福的句子累并快乐着
- 母爱的最经典金句
- 相守一生不离不弃的句子
- 余华的作品值得初中生看吗
- 奇妙萌可珍珠公主变好
- 喝酒后的心情经典句子
- 努力挣钱的霸气图片
- 有深度有涵养的句子精选
- 高情商女人分手说的话
- 铁杆三国折扣平台和官方服互通吗
- 女人拼命挣钱经典句子一段话
- 郭老师经典语录猕猴桃
- 台湾刘墉作品经典语录
- 千古绝句最霸气古诗文
- 高中经典语录励志短句
- 每天的问候语图片大全周末
- 被感动的语句经典语录
- 三国志战略版灵犀官方客户端
- 一个人喝酒的文案高级感
- 活着好累好压抑的图片大全
- 高中佳句积累摘抄关于青春
- 男人无所谓忠诚女人无所谓正派是什么意思
- 电视剧三国演义司马懿名言名句
- 挽回女友的一封感动信
- 老公家庭暴力怎么治他以后不敢再家暴
- 感悟人生图片带字大图
- 努力干活的句子加油短句
- 励志名言100句经典
- 袁爷爷的真名叫什么
- 王者荣耀韩信操作视频
- 外墙蜘蛛人施工安全协议
- 酒与人生的经典句子英文
- 一天一句早安问候语
- 杨绛语录经典语录女人要明白
- 三国志战略版qq客户端
- 每天一句正能量励志经典语录
- 赚钱的最高境界一句话简短
- 夸别人的语句怎么说
- 作家情话经典语录
- 有幸相遇
- 不负遇见的句子
- 爱因斯坦曾经说过什么话
- ppt制作评语优缺点20条
- 三国演义诸葛亮火烧司马懿
- 想和老公沟通的心里话句子
- 小乔长相复原图
- 罗翔老师经典语录读书感悟
- 金钱衡量爱情经典语录短句
- 激励人心的正能量励志短句图片
- 祝天下母亲节祝福语句经典句子
- 修身养性的句子经典语录
- 赞美尽孝的人
- 男女之间有了肌肤之亲林徽因
- 最勾人心的情话句子
- 小学生自律的句子经典语录
- 灌篮高手樱木花道q版图片
- 刘备说过最有名的一句话
- 经典语录吃人
- 鲁迅的名言名句
- 晋江小说经典语录大全摘抄短句
- 余华的语录有哪些
- 送女朋友礼物贺卡情话简短
- 泰戈尔《永恒的青春》英文
- 老婆生日精辟短句文案
- 三毛说过的最美的情话关于吃饭
- 关于读书的好段摘抄
- 家国情怀名言名句摘抄现代名人
- 爸爸对儿子说的励志暖心话
- 句子摘抄经典语录简短霸气
- 对朋友的祝福语句短句
- 激励孩子的话语正能量一段话图片
- 圣经必背1000句
- 余华说过的励志语录
- 小学生作文语句不通顺怎么办
- 一句精辟的座右铭10字以内
- 王者荣耀诸葛亮所有皮肤
- 反省自己做错事的句子
- 晚辈祝福退休的经典语句简短
- 爸爸送给女儿生日的话
- 折扣手游平台app排行榜有奥特曼传奇
- 青春运动的句子简短励志
- 游戏爱情宣言经典语录
- 清晨朋友问候语大全
- 永不褪色的优雅杨绛经典语录图片
- 夫妻关系的句子
- 情侣说说秀恩爱短句一对古风
- 杨绛非常现实的一段话
- 让孩子优秀的三句话
- 杨绛语录经典语录爱情应该是一个灵魂对
- 四川话骂人的方言视频
- 莫言网上最火的一段话独处
- 林徽因爱情经典语录
- 王者荣耀男英雄泳装韩信
- 工作励志的句子经典语句2023
- 祝福健康的句子经典语录简短
- 大染坊全集在线观看搜狐视频
- 王者荣耀特效视频素材
- 赞美教练的句子经典语录
- 值得摘抄的名人名言鲁迅
- 激励努力的句子正能量短句
- 余华的励志语录
- 打动女人心的情话成语
- 夫妻沟通不了怎么办
- 夫妻之间相处之道感悟说说短句
- 和平精英七喵的奶多大
- 袁隆平说过的节约粮食经典语录
- 突然想发个感慨的说说男人
- 辞职祝福语句送朋友
- 感恩朋友的句子经典语录50字
- 杨绛先生最经典的一句话
- 小学生感恩的句子经典语录
- 情感视频素材库无水印9:16
- 莫泊桑经典语录山上的蒲公英
- 励志语录简短正能量及感悟
- 明星大侦探白敬亭的梗
- 马伊琍为什么离婚了
- 杨绛最经典的十句话图片高清
- 四字吉言大全图片
- 心灵鸡汤1000字励志文章大全
- 描写青春的惊艳段落200字
- 一起经历风雨夫妻句子老伴走了以后对妻子的告别
- 余华活着小说经典语录活着是一种力量
- 邪剑仙经典语录想赢不一定要有实力和本钱
- 赞美别人恩爱夫妻的句子经典语录图片
- 挽回对方的句子(精选80句)
- 干净短句暖心8字
- 喝酒高兴的句子经典句子
- 心情失落伤感的图片带字
- 七字吉言大全图片
- 成年说说经典语录图片
- 夫妻应该相互尊重相互理解相互包容
- 分居久了男人心理变化
- 恩爱夫妻的句子经典语录
- 心情突然很低落句子简短
- 伤感文案素材视频无水印网站
- 闺蜜的生日祝福最短
- 室雅兰香篆体书法作品欣赏
- 励志句子大全正能量短句
- 餐饮简短美句
- 如何点评别人的ppt汇报
- 杨绛写给中年女人的信原文
- 知否之盛老太太之子
- 禅语感悟人生的句子句句净化心灵
- 销售工作点评语句大全
- 莫言最透彻的一段话
- 浪漫而不烂俗的高级文案
- 杨绛语录经典语录图片高清
- 今天心情低落的句子简短图片
- 名人名句摘抄简短的
- 老公说心累了要离婚很坚决
- 人到中年的精辟感悟短语
- 袁隆平珍惜粮食的名言名句
- 张爱玲情话经典短句
- 夫妻间的甜蜜短句
- 骂蚊子的话语经典语句
- 心情低落说说发朋友圈图片带字
- 节约粮食缅怀袁隆平作文
- 一半烟火
- 所谓生活
- 一半清欢说说
- 劝人少喝酒的经典幽默句子
- 朋友问候语简短最美的句子图片
- 杨绛名言名句经典语录
- 杨绛语录经典关于爱情的句子
- 有深度有涵养的句子简短
- 618激励员工干劲的句子
- 十句鼓励的名人名言
- 不放弃不气馁的名言名句
- 彼此鼓励相互成长相互进步的诗句
- 夫妻冷战分居最好的解决方法
- 龙应台《目送》原文经典
- 王者荣耀高端局只承认四个上单
- 茶的句子经典语录图片
- 每天励志正能量句子
- 关于兴趣的教育名言名句大全
- 中年人的感悟人生的文案
- 大染坊男人无所谓忠诚是因为背叛的筹码太低什么意思
- 怎样抓住老公的心让他更爱你
- 李嘉诚的20句人生金句配图
- 名言名句摘抄大全
- 一键去除衣物看见身体p图软件
- 夫妻携手并肩共同努力的句子图片
- 诸葛亮的名言名句夫君子之行
- 家长点评怎么写简单点关于孩子做早餐