版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上专心-专注-专业目目 录录精选优质文档-倾情为你奉上专心-专注-专业第一章第一章 概述概述第一节第一节 课题背景与意义课题背景与意义在现代农业和工业领域,经常需要对一些环境参数进行监测,以做出相应处理,确保设备和系统运行在最佳状态。随着科技的发展,对环境参数监测系统的要求也越来越高;因此基于传感器、单片机和无线通信芯片设计出一种无线环境参数监测系统十分的重要。光照强度是一个重要的环境参数,在工业和农业领域有着重要的应用,本课程设计介绍一种可以应用在许多领域的无线光照强度监测系统,实现对环境中的光照强度进行实时采集处理、无线传输与显示的功能。本文的主要研究工作集中在光照
2、强度监测系统的设计上,通过 C 语言编程对单片机进行控制,使单片机控制光照采集传感器、无线通信芯片和 LCD,实现系统功能。在本课题的基础上可以设计完成一个高速、方便、稳定的环境数据监测采集和传输系统,可以广泛应用于现代农业和工业领域。第二节第二节 课题设计要求与指标课题设计要求与指标本系统以环境光照强度为研究对象,应满足的要求与指标为:1、监测点光照强度测量精确,精度大于 0.1lux;2、将监测点的参数数据以无线方式发送至汇节点,并 LCD 显示,要求分立元件实现的无线传输距离大于 20cm,无线传输模块实现的传输距离大于1km;3、无线传输设备具有较强的抗干扰能力;4、设备具有较高的实时
3、性;5、设备功耗功耗较低。精选优质文档-倾情为你奉上专心-专注-专业第二章第二章 系统方案选择与确定系统方案选择与确定第一节第一节 硬件系统方案选择硬件系统方案选择系统硬件部分主要分为采集端和终端两个部分,采集端应包含:光照采集模块、MCU 模块、无线传输模块;终端应包括:MCU 模块、无线传输模块、LCD 显示模块。针对各个模块,分别有几种不同的方案,本节将各个模块的方案进行比较并确定最终方案。1、光照采集模块方案选择光照采集模块方案选择 系统要求采集环境内实时光照强度,并有一定的精确度,光照采集模块有下列两种方案: 方案一:采用光敏电阻及相关的外围电路,设计成的自制光照采集模块,用于采集环
4、境光照信息。使用光敏电阻的电路结构简单、实时性高、成本低,但是一般的光敏电阻精确度较低,难以达到课题的要求。 方案二:采用光照传感器 Po188 采集环境的光照信息。使用光照传感器Po188 的电路结构简单、实时性好、成本较低,灵敏度高、电流随光照度增强呈线性变化,采集精确度高,符合课题要求。故采用该方案。2、无线传输模块方案选择无线传输模块方案选择 系统要求采集端通过无线的方式将采集到的光照强度信息发送到终端,终端也是采用无线的方式接受采集端发来的数据。无线通信模块方案有下列几种方案: 方案一:通过自制的无线通信模块,但是由于是采用分立元件设计的自制精选优质文档-倾情为你奉上专心-专注-专业
5、无线通信模块,工作不稳定,抗干扰性差,不满足题目的要求,故不采用该方案。 方案二:采用无线串口进行无线数据通信,具有接口简单,只需利用单片机的串口就可建立无线通信,采用该模块成本较高,虽然能够满足题目要求,但是考虑到系统的成本,不采用该方案。方案三:采用无线收发模块 nRF24L01,该模块采用 SPI 接口可以很方便的与 MCU 建立通信,发送与接受只需通过简单的将控制指令通过 SPI 接口写入nRF24L01 就可以发送和接收数据。具有低的系统费用(低速微处理器也能进行高速射频发射),数据在空中停留时间短,抗干扰性高。故采用该方案。3、LCD 显示模块方案选择显示模块方案选择系统的终端需要
6、实时地将环境光照强度信息显示出来,选择 1602 液晶模块,该模块能够显示 32 个 ASCII 码,并且电路结构简单,能够满足系统的数据显示要求,故采用液晶 1602 进行数据显示。4、MCU 模块方案选择模块方案选择方案一:采用 51 系列单片机及其最小系统作为 MCU 模块,其特点是结构简单,使用的是 CISC 指令系统,冯诺依曼总线结构,系统功能易于实现,成本低,但是处理速度较慢,故不采用此方案。方案二:采用 AVR 系列单片机及其最小系统作为 MCU 模块,其特点是结构简单,使用的是 RISC 指令系统,哈佛结构总线结构,处理速度较快,更好的满足系统实时性的要求,同时功耗较低。故采用
7、该方案,我们选用的是ATmega16L 单片机。第二节第二节 软件系统方案选择软件系统方案选择 精选优质文档-倾情为你奉上专心-专注-专业软件系统采用模块化设计思想,分别使用 C 语言对对采集端和终端的MCU 进行编程。软件系统的编译环境采用的是采用 AVR 单片机 C 语言集成开发环境 code vision1.25.3,是 HP Info Tech 专为 AVR 系列单片机设计的一款低成本 C 语言编译器。它产生的代码非常严密,效率很高,不仅包括了 AVR 的 C 编译器,同时也是一个集成 IDE 的 AVR 开发平台,简称 CVAVR。基于高级语言开发单片机系统具有语言简洁,可读性强,可
8、移植性好,可进行结构化和模块化程序设计等优点。图 2-1 为 code vision1.25.3 的开发环境。图 2-1 code vision1.25.3 的开发环境精选优质文档-倾情为你奉上专心-专注-专业第三章第三章 系统硬件设计与实现系统硬件设计与实现系统硬件部分主要分为采集端和终端两个部分,采集端应包含:光照采集模块、MCU 模块、无线传输模块;终端应包括:MCU 模块、无线传输模块、LCD 显示模块。图 3-1 为系统硬件设计框图。 图 3-1 系统硬件设计框图第一节第一节 采集端硬件设计采集端硬件设计采集端主要由光照采集模块、MCU 模块,即 ATmega16L 最小系统、以及无
9、线传输模块构成,采集端电路图如图 3-2 所示。 终端 LCD 显示模块 (1602) MCU 模块 (ATmega16L) 无线传输模块 (nRF24L01) 采集端 光照采集模块 (Po188) MCU 模块 (ATmega16L) 无线传输模块 (nRF24L01)精选优质文档-倾情为你奉上专心-专注-专业 图 3-2 采集端硬件电路图 一、光照采集模块设计一、光照采集模块设计 采集端的光照采集模块的主要器件是光照传感器 Po188。 Po188 是一个光电集成传感器,典型入射波长为 p=520nm,内置双敏感元接收器,可见光范围内高度敏感,输出电流随照度呈线性变化。Po188 的主要特
10、性有:暗电流小,低照度响应,灵敏度高,电流随光照度增强呈线性变化;内置双敏感元,自动衰减近红外,光谱响应接近人眼函数曲线;内置微信号 CMOS 放大器、高精度电压源和修正电路,输出电流大,工作电压范围宽,温度稳定性好;可选光学纳米材料封装,可见光透过,紫外线截止、近红外相对衰减,增强了光学滤波效果;符合欧盟 RoHS 指令, 无铅、无镉等。光照采集模块 Po188 连接电路图如图 3-3 所示,Po188 输出特性曲线如图3-4 所示。精选优质文档-倾情为你奉上专心-专注-专业 图 3-3 Po188 电路图 图 3-4 Po188 输出特性曲线 二、二、ATmega16LATmega16L
11、最小系统模块设计最小系统模块设计 采集端和终端的 MCU 模块都由 ATmega16L 单片机及其最小系统。ATmega16是基于增强的 AVR RISC 结构的低功耗 8 位 CMOS 微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达 1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。 ATmega16L 最小系统主要由 ATmega16L 芯片、晶振电路、复位电路组成。ATmega16L 芯片的工作电压 2.7v-5.5v,我们采用的是 3.3v 供电,由电源电路提供。在 ATmega16L 芯片的 XTAL1 和 XTAL2 之间加
12、上 8M 的晶振,通过 30pf电容接地为单片机提供工作时钟。在 RESET 引脚加上低电平复位的复位电路,一开始上电的时候是自动上电复位,后来工作过程中通过复位开关实现手动复位。ATmega16L 最小系统如图 3-5 所示。精选优质文档-倾情为你奉上专心-专注-专业图 3-5 Atmega16L 最小系统 三、无线传输模块设计三、无线传输模块设计 无线传输模块使用的主要芯片是nRF24L01,nRF24L01是一款工作在2.42.5GHz世界通用ISM频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型SchockBurst模式控制器、功率放大器、晶体振荡器、调制器解调器。输出功率
13、频道选择和协议的设置可以通过SPI 接口进行设置。芯片电流消耗极低,当工作在发射模式下发射功率为-6dBm 时电流消耗为9.0mA,接收模式时为12.3mA掉电模式和待机模式下电流消耗更低。支持六路通道的数据接收,工作电压为1.9v3.6v。无线传输模块示意图如图3-6所示。在实际电路中我们使用的是集成的nRF24L01模块,如图3-7所示。 图3-6 nRF24L01与单片机连接示意图 图3-7 nRF24L01集成模块实物 精选优质文档-倾情为你奉上专心-专注-专业nRF24L01 集成模块有 8 个引脚,各个引脚的功能及与单片机的连接如表3-1 所示。引脚名称引脚功能描述与 Atmega
14、16L 连接1VSS电源接地(0V)2VDD电源电源(+3V)3CE数字输入RX 或 TX 模式选择PB24CSN数字输入SPI 片选信号PB15MOSI数字输入从 SPI 数据输入脚PB66MISO数字输出从 SPI 数据输出脚PB57SCK数字输入SPI 时钟PB78IRQ数字输出可屏蔽中断脚PD2 表 3-1 nRF24L01 集成模块引脚功能 在系统工作时,采集端单片机将光照传感器采集到的光照强度信息处理后传给采集端的无线传输模块,采集端的无线模块将 32 字节信息打包,通过无线传输协议发送,终端的无线传输模块接收,传给单片机,通过相关处理,显示结果。第第 2 节节 终端硬件设计终端硬
15、件设计终端主要由 LCD 显示模块、MCU 模块,即 ATmega16L 最小系统、以及无线传输模块构成,终端电路图如图 3-8 所示。精选优质文档-倾情为你奉上专心-专注-专业 图 3-8 终端硬件电路图终端中的 MCU 模块,ATmega16L 最小系统、无线传输模块的设计与采集端类似,故不再赘述,下面介绍一下终端中的 LCD 显示模块和变压电路。 一、一、LCD 显示模块设计显示模块设计终端中选用的是字符液晶显示器 1602,工作电压为 5V,两行显示,每行显示 16 个字符,一共有 16 个引脚,1602 引脚功能如表 3-2 所示。引脚符号功能说明1VSS一般接地2VDD接电源(+5
16、V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度) 。4RSRS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0时选择指令寄存器。5R/WR/W 为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或 EN)端为使能(enable)端,下降沿使能。7DB0底 4 位三态、 双向数据总线 0 位(最低位)8DB1底 4 位三态、 双向数据总线 1 位9DB2底 4 位三态、 双向数据总线 2 位10DB3底 4 位三态、 双向数据总线 3 位11DB4高 4 位三
17、态、 双向数据总线 4 位12DB5高 4 位三态、 双向数据总线 5 位13DB6高 4 位三态、 双向数据总线 6 位14DB7高 4 位三态、 双向数据总线 7 位(最高位) (也是 busy flag)15BLA背光电源正极16BLK背光 电源负极表 3-2 1602 引脚功能精选优质文档-倾情为你奉上专心-专注-专业在 1602 的引脚中,714 DB0-DB7 八位数据总线,三态双向。实际使用时,用的是 DB4-DB7 这四位数据线,这样节省了 ATmega16L 的 I/O 资源。因为液晶引脚是与单片机 PA 口相连的,PA 口只有八位,液晶 4、5、6 引脚分别接的 PA0、P
18、A1、PA2,剩下的只有五个口,所以用四位数据线分两次传送来缓解接口的紧张。1602 引脚示意图如图 3-9 所示,1602 与 ATmega16L 引脚连接示意图如图 3-10 所示。 图 3-9 1602 引脚示意图 图 3-10 1602 与 ATmega16L 引脚连接 二、变压电路设计二、变压电路设计变压电路部分的主要功能是给无线传输模块提供稳定的 3.3V 的电压,使其正常工作,在采集端的电路中也有变压电路,在这里一同介绍。系统使用的是 AMS1117 系列稳压器。AMS1117 系列稳压器有可调版与多种固定电压版,设计用于提供 1A 输出电流且工作压差可低至 1V。在最大输出电流
19、时,AMS1117 器件的压差保证最大不超过 1.3V,并随负载电流的减小而逐渐降低。AMS1117 的片上微调把基准电压调整到 1.5%的误差以内,而且电流限制也得到了调整,以尽量减少因稳压器和电源电路超载而造成的压力。AMS1117电路图如图 3-11 所示。精选优质文档-倾情为你奉上专心-专注-专业图 3-11 AMS1117 电路图第第 4 章章 系统软件设计与实现系统软件设计与实现第第 1 节节 程序整体设计程序整体设计系统软件部分主要是使用 C 语言对 ATmega6L 进行编程,使采集端的 MCU能够处理光照传感器 Po188 传递来的模拟电流信号,将其转换为数字信号;同时 MC
20、U 传递给无线传输传输模块,将光照信息发送出去。在终端,无线传输模块可以接收到采集端传来的光照信息,传递给 MCU 进行处理,最终显示在 LCD上面。系统程序的整体流程就是这样,下面分别给出采集端和终端的程序流程图,采集端程序流程图如图 4-1 所示,终端程序流程图如图 4-2 所示。精选优质文档-倾情为你奉上专心-专注-专业 图 4-1 采集端程序流程图 图 4-2 终端程序流程图我们将重点介绍光照采集与 AD 转换程序,无线传输程序以及 LCD 显示程序,并简单说明一下程序下载的方法,详细的程序代码将在附录中给出。第第 2 节节 光照采集与光照采集与 AD 转换程序设计转换程序设计 这部分
21、程序要求将光照采集模块采集到的电压信号转换成电流信号后经过函数转换成光照强度单位勒克斯。这里需要注意四个与数模转换 ADC 相关的I/O 寄存器:ADC 多路复用器选择寄存器 ADMUX、ADC 控制和状态寄存器ADCSRA、ADC 数据寄存器 ADCL 和 ADCH,这些寄存器在数模转换前都需要根据需求进行设置。光电函数关系即 Po188 特性曲线在第二章第一节中有所介绍,可以参考图3-4,下面给出本部分程序代码。unsigned int read_adc(unsigned char adc_input)float adc_data;ADMUX=adc_input|(ADC_VREF_TYP
22、E&0 xff);delay_us(10);ADCSRA|=0X40;while(ADCSRA&0 x10)=0);ADCSRA|=0X10;adc_data=ADCL;开始初始化外围设备设置NRF24L01进入接受模式是否接收到数据提取数据并送到LCD显示是否开始初始化外围设备设置NRF24L01进入发送模式读取温度和光照信息无线发射数据是否发射成功否是精选优质文档-倾情为你奉上专心-专注-专业adc_data=adc_data+ADCH*256;adc_data=(adc_data*2560.0/1024.0)/1000.0;adc_data=adc_data/330.0*
23、1000;if(adc_data=2.0)adc_data=800.0+(adc_data-2.0)*666.7;if(adc_data=1.5&adc_data=1.1&(adc_data=0.5&(adc_data1.1)adc_data=100.0+(adc_data-0.5)*333.3;if(adc_data0.5)adc_data=adc_data*200.0;adc_data=adc_data*10.0;return adc_data;第第 3 节节 无线传输程序设计无线传输程序设计MCU 与 nRF24L01 是通过 SPI 接口进行通信的,SPI 的接
24、口的读时序如图4-3 所示,写时序如图 4-4 所示,图中 Cn-SPI 指令位,Sn-状态寄存器位,Dn-数据位(注:由低字节到高字节,每字节中高位在前)。 图 4-3 SPI 写时序图 4-4 SPI 读时序在配置 nRF24L01 的寄存器之前一定要确保 nRF24L01 进入待机模式或掉电模式。nRF24L01 在接受模式的初始化函数为:void RX_Mode(void) nRF24L01_CE = 0; delay_us(130);精选优质文档-倾情为你奉上专心-专注-专业 write_register_onebyte(EN_AA, 0 x00); / Enable Auto.Ac
25、k:Pipe0 write_register_onebyte(EN_RXADDR, 0 x01); / Enable Pipe0 write_register_onebyte(SETUP_AW,0 x03); /ADDR WIDTH 5 BYTES write_register_onebyte(RF_CH, 40); / Select RF channel freq 2440Mhz write_register_onebyte(RX_PW_P0,TX_PLOAD_WIDTH); / Select same RX payload width as TX Payload width write_r
26、egister_onebyte(RF_SETUP, 0 x07); / TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR /write_register_onebyte(CONFIG, 0 x0f); / Set PWR_UP bit, enable CRC(2 bytes) & Prim:RX. RX_DR enabled. write_register_bytes(RX_ADDR_P0,flash_channel0,TX_ADR_WIDTH); / Use the same address on the RX device as the TX devic
27、e write_register_bytes(TX_ADDR,flash_channel0,TX_ADR_WIDTH); write_register_onebyte(CONFIG, 0 x0f); / Set PWR_UP bit, enable CRC(2 bytes) & Prim:RX. RX_DR enabled. write_register_onebyte(STATUS,0 xF0); /接收模式要为高电平 nRF24L01_CE = 1; delay_us(130);/ This device is now ready to receive one packet of
28、16 bytes payload from a TX device sending to addressnRF24L01 在发射模式的初始化函数为:void TX_Mode(void) write_register_onebyte(EN_AA,0 x01); / Enable Auto.Ack:Pipe0 write_register_onebyte(EN_RXADDR,0 x01); / Enable Pipe0 write_register_onebyte(SETUP_AW,0 x03); write_register_onebyte(SETUP_RETR,0 x0a);/1A / 500
29、us + 86us, 10 retrans. write_register_onebyte(RF_CH,40); / Select RF channel 40 write_register_onebyte(RF_SETUP,0 x07); / TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR write_register_onebyte(CONFIG,0 x0E); / Set PWR_UP bit, enable CRC(2 bytes) & Prim:TX. MAX_RT & TX_DS enabled. write_register_bytes
30、(RX_ADDR_P0,flash_channel0,TX_ADR_WIDTH); / RX_Addr0 same as TX_Adr for Auto.Ack精选优质文档-倾情为你奉上专心-专注-专业write_register_bytes(TX_ADDR,flash_channel0,TX_ADR_WIDTH);write_register_onebyte(CONFIG,0 x0E); / Set PWR_UP bit, enable CRC(2 bytes) & Prim:TX. MAX_RT & TX_DS enabled.write_register_onebyte(
31、STATUS,0XF0);第第 4 节节 LCD 显示程序设计显示程序设计LCD 显示程序比较简单,主要是 put 和 goto 语句的应用。代码如下:write_register_onebyte(STATUS,0 xF0); read_rx_palyoad(R_RX_PAYLOAD,data,5); lcd_gotoxy(0,0); lcd_putsf(light); for(i=0;i4;i+) lcd_gotoxy(i,1); lcd_putchar(datai); lcd_gotoxy(4,1); lcd_putsf(.); lcd_gotoxy(5,1); lcd_putchar(d
32、ata4); lcd_gotoxy(7,1); lcd_putsf(lux) delay_ms(100);第第 5 节节 程序下载程序下载Code Vision 软件在对项目编译成功后会在项目文件夹的 EXE 文件夹中生成.hex 文件,此文件可通过下载软件经下载线下载至单片机上。我们使用的是progisp1.72 烧写软件,它支持所有的 AVR 芯片的编程、支持 AT89S51,AT89S52支持自定义并口下载编程器、支持自定义串口的下载编程器、支持 STK500 编程器、支持 USBASP 编程器、支持并口的并行编程器、支持 USBProg 编程器、支持自定义编程芯片、支持自定义编程熔丝信
33、息提示信息、支持 USBProg 的在线升级(通过 USB 口)、支持 USBProg-C 实现脱机下载、支持命令行方式,可以直接嵌入其他 IDE 中使用、绿色软件,无需安装,占用资源少、支持自定义汉化信精选优质文档-倾情为你奉上专心-专注-专业息提示 、支持工程管理,可以将所有的配置数据与编程数据打包为单一文件。progisp1.72程序操作界面图 4-5 所示。图 4-5 progisp1.72 烧写软件第四章第四章 测试结果及讨论测试结果及讨论测试贯穿于硬件和软件的设计过程中,用于检查设计过程的出现的各种问题,下面介绍一下在设计过程我们对各个模块的测试过程与结果。第一节第一节 LCD 显
34、示测试显示测试LCD 显示测试的目的是测试 ATmega16L 单片机与 1602LCD 显示屏的连接是否正确,能否正确显示,测试程序为在液晶屏上显示两行固定数据。测试程序如下:精选优质文档-倾情为你奉上专心-专注-专业#include#include#asm.equ _lcd_port=0 x18 ;PORTB 数据寄存器地址#endasm#includeflashchardis_str=Hello World!;void main(void) char flash*str; str=dis_str; lcd_init(16); while(1) lcd_clear(); lcd_putsf
35、(Itsdisplaydemo.); lcd_gotoxy(0,1); lcd_putsf(str); if(*str+=0)str=dis_str; delay_ms(200); 在测试结果如图 4-6 所示,1602 上第一行显示“Itdemo” ,第二行显示“Hello word!” 。图 4-6 LCD 测试结果第二节第二节 光照采集与显示测试光照采集与显示测试光照采集测试的主要目的是测试系统的基础部分是否达到设计的要求。测试程序为不经过无线传输在液晶屏上实时显示光照强度。测试程序如下:#include#include#asm.equ _lcd_port=0 x18 ;PORTB 数据
36、寄存器地址#endasm#include#define ADC_VREF_TYPE 0 x40 Const unsigned char table=; unsigned int read_adc(unsigned 精选优质文档-倾情为你奉上专心-专注-专业char adc_input)float adc_data;ADMUX=adc_input|(ADC_VREF_TYPE&0 xff);delay_us(10);ADCSRA|=0X40;while(ADCSRA&0 x10)=0);ADCSRA|=0X10;adc_data=ADCL;adc_data=adc_data+AD
37、CH*256;adc_data=(adc_data*2560.0/1024.0)/1000.0;adc_data=adc_data/330.0*1000;if(adc_data=2.0)adc_data=800.0+(adc_data-2.0)*666.7;if(adc_data=1.5&adc_data=1.1&(adc_data=0.5&(adc_data1.1)adc_data=100.0+(adc_data-0.5)*333.3;if(adc_data0.5)adc_data=adc_data*200.0;adc_data=adc_data*10.0;retur
38、n adc_data;void port_init()DDRA=0XFE; /输入为 0,输出为1PORTA=0 xFE;PORTB=0 xFF;DDRB=0 xFF;void main(void) unsigned int adc,i,ad5; port_init(); lcd_init(16); ACSR=0X80; SFIOR=0X00; ADMUX=ADC_VREF_TYPE&0XFF; ADCSRA=0X86; while(1) lcd_gotoxy(0,0); lcd_putsf(light); adc=read_adc(0); for(i=0;i5;i+) ad4-i=a
39、dc%10; adc=adc/10; 精选优质文档-倾情为你奉上专心-专注-专业 for(i=0;i4;i+) lcd_gotoxy(i,1); lcd_putchar(tableadi); lcd_gotoxy(4,1); lcd_putsf(.); lcd_gotoxy(5,1); lcd_putchar(tablead4); lcd_gotoxy(7,1); lcd_putsf(lux); lcd_gotoxy(0,0); lcd_putchar(tabledata); delay_ms(200); 测试结果如图 4-7 所示,LCD 上显示实时的光照强度。图 4-7 光照采集与显示测试
40、结果心得体会心得体会本次通信系统综合设计的课题较为复杂,我们设计的过程也较为艰难,从一开始的确定方案、选择芯片、器材购买到后来的硬件软件系统的设计与实现,以及测试过程都比以往的课程设计要困难的多,我们不断发现问题、不断解决困难,在写这篇报告的时候我们已经完成了基础部分的设计,实现了基础部分的全部功能,发挥部分仍然在调试过程中。本次课程设计让我们深入理解了之前学习的单片机、数字电路以及 C 语言编程等知识;也充分锻炼了我们的能力,包括查阅资料的能力、学习芯片的能精选优质文档-倾情为你奉上专心-专注-专业力、动手动脑的能力;更重要的是课程设计锻炼了我们的毅力,一次一次来往于电子市场购买很更换材料,
41、一点一点焊接硬件,一行一行编写和修改程序代码,这些都让我们养成了坚持不懈的精神。这次课程设计使我们受益匪浅,在将来的学习、生活和工作中,这些知识、能力和精神将伴随我们面对更大的挑战,完成更艰巨的任务,实现人生的成功。在此要感谢指导老师张秀平对我们的悉心指导,更要感谢张老师在我们遇到挫折时对我们的鼓励和帮助。参考文献参考文献1 马潮. AVR 单片机嵌入式系统原理与应用实践M.北京航空航天大学出版社,20072 张友德 赵志英 涂时亮等. 单片微型机原理、应用与实验(第五版)M.复旦大学出版社,20083 康华光.电子技术基础模拟部分(第五版)M.高等教育出版社,20064 康华光.电子技术基础
42、数字部分(第五版)M.高等教育出版社,20065 On Elelctronics Co Ltd . Po188 光照传感器中文资料精选优质文档-倾情为你奉上专心-专注-专业6 ATmel 公司. Atmega16L 中文资料7 讯通科技 . nRF24L01 中文资料精选优质文档-倾情为你奉上专心-专注-专业附附 录录1、器件清单器件清单器件名称使用个数ATMEL mega16 单片机2单片机插槽28M 晶振2nRF24L01 无线发送接收模块2发光二极管4103uF 陶瓷电容430uF 陶瓷电容410uF 电解电容 4100uF 电解电容21k 电阻8500 电阻101117 变压芯片24
43、脚开关2105uF 陶瓷电容 21602 液晶屏1503 变阻器1排针若干排线若干导线若干二、工具清单二、工具清单1.镊子2.老虎钳3.螺丝刀4.电烙铁5.万用表6.数据下载线精选优质文档-倾情为你奉上专心-专注-专业三、实物图三、实物图四、程序代码四、程序代码1.发送端:发送端:#include includes.h#asm .equ _lcd_port=0 x1B ;PORTA#endasm #include #include #include #include NRF24L01.h#define ON 0#define OFF 1#define LIGHT PIND.4#define A
44、DC_VREF_TYPE 0 x40 const unsigned char table=;unsigned char data5;uchar test_temp;unsigned int read_adc(unsigned char adc_input)float adc_data;ADMUX=adc_input|(ADC_VREF_TYPE&0 xff);delay_us(10);ADCSRA|=0X40;while(ADCSRA&0 x10)=0);ADCSRA|=0X10;adc_data=ADCL;adc_data=adc_data+ADCH*256;adc_data
45、=(adc_data*2560.0/1024.0)/1000.0;adc_data=adc_data/330.0*1000;if(adc_data=2.0)adc_data=800.0+(adc_data-2.0)*666.7;if(adc_data=1.5&adc_data=1.1&(adc_data=0.5&(adc_data1.1)adc_data=100.0+(adc_data-0.5)*333.3;if(adc_data0.5)adc_data=adc_data*200.0;adc_data=adc_data*10.0;return adc_data;void
46、 Device_init(void) /进入发送模式 SPI_MasterInit(); Clear_rx();Clear_tx();TX_Mode();/发送模式void PORT_init(void) DDRA=0 xFE; PORTA=0 xFE; PORTB=0XFF; DDRB=0XBF; DDRD=0 xDF; PORTD=0 xFF;void main(void)unsigned int adc,i,ad6;ACSR=0 x80;SFIOR=0 x00;PORT_init();ADMUX=ADC_VREF_TYPE&0XFF;ADCSRA=0X86;Init_NRF24L
47、01(); Device_init(); TX_Mode();/发送模式 while (1) / Place your code here adc=read_adc(0); for(i=0;i5;i+) ad4-i=adc%10; adc=adc/10; 数据处理 data0= tablead0; data1=tablead1; data2=tablead2; data3=tablead3; data4=tablead4; write_tx_palyoad(data,5); delay_ms(1000); PORTD.5 = OFF; test_temp = Read_StatusByte(STATUS); if(test_temp & TX_DS) Clear_tx(); Clear_rx(); write_register_onebyte(STATUS,0XF0); /PORTD.5 = ON; 精选优质文档-倾情为你奉上专心-专注-专业 write_register_onebyte(CONFIG,0 x0E); test_temp = Read_StatusByte(CONFIG); if(test_temp = 0 x0E) PORTD.5 = ON; else PORTD.5 = OFF; ;2.接收端:接收
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 清理场地雇佣协议书
- 艺人演出经纪合同范本
- 筒易设备安装合同范本
- 汽车微维修合同范本
- 砌挡土墙用工合同范本
- 淘宝企业转让合同范本
- 玻璃吊装安全合同范本
- 花棒种子购销合同范本
- 汽车商家合同协议书
- 水洗厂洗涤合同范本
- 数据恢复违约合同范本
- 2025年西宁市城东区面向社会公开选拔社区工作人员笔试考试参考试题及答案解析
- 西红柿种植技术
- 第四章-集成运算放大电路
- 病毒性肝炎的免疫学检查
- 第一章(诱发电位概论)+第二章(体感诱发电位)(2013年)
- GB/T 27924-2011工业货架规格尺寸与额定荷载
- GB/T 25085.3-2020道路车辆汽车电缆第3部分:交流30 V或直流60 V单芯铜导体电缆的尺寸和要求
- GB/T 242-2007金属管扩口试验方法
- GB/T 20878-2007不锈钢和耐热钢牌号及化学成分
- 政治理论水平任职资格考试题库
评论
0/150
提交评论