测温并24l01无线传输设计.doc

上传人:re****.1 文档编号:542297229 上传时间:2023-05-08 格式:DOC 页数:17 大小:835.51KB
返回 下载 相关 举报
测温并24l01无线传输设计.doc_第1页
第1页 / 共17页
测温并24l01无线传输设计.doc_第2页
第2页 / 共17页
测温并24l01无线传输设计.doc_第3页
第3页 / 共17页
测温并24l01无线传输设计.doc_第4页
第4页 / 共17页
测温并24l01无线传输设计.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《测温并24l01无线传输设计.doc》由会员分享,可在线阅读,更多相关《测温并24l01无线传输设计.doc(17页珍藏版)》请在金锄头文库上搜索。

1、河南大学物理与电子学院开放实验室单片机设计报告河南大学物理与电子学院开放实验室单片机设计报告测温并24L01无线传输设计 设计人:开放实验室入室人员8目 录0 前言11 系统组成与功能11.1系统组成11.1.1 AT89C52单片机11.1.2 18B20测温芯片11.1.3 24L01模块21.1.4 四位一体八段共阴数码管、无源蜂鸣器、74LS13831.2 系统功能61.3 系统功能扩充62 系统原理62.1无线发射仿真图62.2 无线接收仿真图72.3 实物照片73 程序流程图83.1 测温程序流程图83.2 发射程序流程图93.3 接收程序流程图104 具体程序114.1测温程序1

2、14.2 发射板部分程序114.3 接收板部分程序135 主要元件清单145.1 发射板其他主要元件145.2 接收板其他主要元件146 结论157测温并无线收发心得15参考文献15测温并24L01无线传输开放实验室入室人员(河南大学物理与电子学院,河南 开封,475004)0 前言温度的测试技术已经成熟,已经满足了人们的大部分需求,然而在某些工作场合下,我们更想知道与自己不在一个地方的温度,以便进行温度调控,更好更方便地生产生活,因此,温度的传输就成为了我们要考虑的内容了。此单片机项目设计中,我们就基于24L01模拟温度的无线传输,经过调试,试验,已经实现了预期功能,同时也实现了对生产生活中

3、温度预警的模拟功能。1 系统组成与功能1.1 系统组成本系统主要有AT89C52单片机、复位按键、无源蜂鸣器、18B20芯片、24L01模块、四位一体共阴8段数码管等元件组成。1.1.1 AT89C52单片机AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),兼容标准MCS-51指令系统。图1-1 单片机引脚图AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以

4、按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。 引脚图如图1-1所示1.1.2 18B20测温芯片图1-2 18B20测温芯片 DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。DS18B20 共有三种形态的存储器资源:ROM 只读存储器,用于存放 DS18B20ID 编码; RAM 数据暂存器,用于内部计算和数据存取; EEPROM 非易失性, 记忆体,用于存放长期需要保存的数据.1.1.3 24L01模块NRF24L01是工作于2.42.5GHz世界通用的ISM频段的单片无线收发器芯片。无线

5、收发器芯片包括:频率发生器、增强型SchockBurst模式控制器、功率放大器、晶体振荡器、调制器、解调器。输出功率、频道选择和协议的设置可以通过SPI接口进行设置.其拥有极低的电流消耗:当工作在发射模式下发射功率为-6dBm时电流消耗为9mA,接收模式为12.3mA。图1-3其引脚功能:引脚名称引脚功能描述1CE数字输入RX或TX模式选择2CSN数字输入SPI片选信号3SCK数字输入SPI时钟4MOSI数字输入从SPI数据输入脚5MISO数字输出从SPI数据输出脚6IRQ数字输出可屏蔽中断脚7VDD电源电源(+3V)8VSS电源接地(0V)1.1.4 四位一体共阴数码管图1-4其引脚图为:无

6、源蜂鸣器图1-5无源蜂鸣器是蜂鸣器的一种,区别于有源蜂鸣器,无源蜂鸣器是内部不带振荡源的蜂鸣器,是一体化结构的电子讯响器,在电路中的图形符号位H或者HA。无源蜂鸣器是靠压电效应的原理来发声的,压电材料,一般常见的是各种压电陶瓷. 这种材料的特别之处在于,当电压作用于压电材料时,就会随电压和频率的变化产生机械变形.另一方面,当振动压电陶瓷时,则会产生电荷.就是说这种材料能把机械变形和电荷相互转化,压电式蜂鸣器里面的起振片,就是一种压电陶瓷.如上所述,要让它振动,除了压电陶瓷本身,还需要适当大小和频率变化的电压作用于压电陶瓷.压电式(有源)蜂鸣器内部带有多谐振荡器,可以产生 1.52.5kHZ 的

7、电压信号. 由此压电式蜂鸣器才能发声。 74LS138 3-8译码器图1-674LS138:当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。A、B、C译码地址输入端G1选通端/(G2A)、/(G2B)选通端(低电平有效)Y0-Y7译码输出端(低电平有效)1.2 系统功能本设计的主要功能是用18B20测温传送至单片机中存储,在发射端数码管显示温度,并通过24L01发射模块无线传输,在一定距离内放置接收板利用接收模块进行接收,同时显示温度值。1.2 系统功能扩充本设计的主要功能扩充:实现报警功能

8、 ,当所测温度超过预定值时,接收端的蜂鸣器报警提示;并且在发射端拥有七彩指示灯,当所测温度不发生变化时,指示灯会熄灭,以提示温度已恒定。2 系统原理本设计主要原理是单片机采集18B20测得的温度,同时将数据传给24L01的发射模块,并通过另一单片机控制24L01接收模块的接收,同时显示所测温度值。2.1 18B20测温与24L01发射模块仿真图说明:24L01无线模块不能实现真正的仿真,上图中的NRF24L01仅作示意,但是数码管能正常仿真2.2 24L01接收模块仿真图2.3 实物照片测温并发射效果图,测温为12.2度。右下边带晶振的模块为收发模块。接收信号并显示效果图,显示为12.2度,等

9、于发射温度,实验成功。3 程序流程图发射板与接收板分别执行各自功能,各有各自的单片机控制,由24L01收发模块作为他们的关联。3.1 测温程序流程图开 始初始化数码管DB18B20复位读取 温度处理 温度数码管显示温度2s结 束3.2发射端程序流程图开 始初 始 化读取18B20的温度处 理 温 度温度存入24L0发射数组数组值是否改变24L01发射数码管显示温度值指示灯闪烁是否结 束3.3接收端程序流程图开 始初始化24L01接收准备24L01接收接收数据存入数组数码管显示温度是否大于20蜂鸣器唱一首歌是否唱歌定时时间是否到了是否结 束4 主要程序源代码4.1 温度采集处理主要部分函数#in

10、clude reg51.h/*DS18B20复位函数*/ow_reset(void);/*DS18B20写命令函数*/void write_byte(uchar val);/*DS18B20读1字节函数*/uchar read_byte(void);/*读出温度函数*/read_temp();/*温度数据处理函数*/work_temp();main();4.2 发送模块主要程序#include reg51.h/*NRF24L01初始化void init_NRF24L01(void); /程序太长不宜写在报告中,完整程序请 /联系QQ154401855(或154401856)下载/*主函数*/m

11、ain() int f=0;uchar a3;int t;while(1) uchar t=0;uchar i=1;long int j=0;Disdata=0xFF;/初始化端口discan=0xff;led=0;for(h=0;h4;h+)displayh=0;/开始显示0000ow_reset(); init_NRF24L01() ;write_byte(0xCC);/Skip ROMwrite_byte(0x44);/发转换命令if(f=0)for(h=0;h500;h+) scan();f=1;/每次重新初始化,重新装载数据,最大限度地消除干扰,/同时只有第一次初始化显示0000 再

12、次初始化时数码管并不再显示0000read_temp();/读出DS18B20温度数据work_temp();/处理温度数据 i=display0;/把发射数组中的第1个数设为i TxBuf0=i; i=display1;/把发射数组中的第2个数设为i TxBuf1=i; i=display2;/把发射数组中的第3个数设为i TxBuf2=i; i=display3;/把发射数组中的第4个数设为i TxBuf3=i;if(a0=TxBuf0&a1=TxBuf1&a2=TxBuf2) ;elseled=1;/ 温度不变时指示灯不再闪烁,温度变化,指示灯开始闪烁for(t=0;t3;t+) at=

13、TxBuft; nRF24L01_TxPacket(TxBuf);/ Transmit Tx buffer data一次发完数组中的20个数for(h=0;h500;h+) scan();/显示温度2 s 4.3接收端模块主要程序 void main(void)long int j=0;char k;p=1;for(h=0;h4;h+)RxBufh=0;/开始显示0000init_NRF24L01() ; /2401初始化Delay(2000);while(1)SetRX_Mode(); nRF24L01_RxPacket(RxBuf); /一次收完20个数,放在RxBuf20中/接收到数据 for(k=0;k4;k+)Dis

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号