版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、无线投票器的设计摘要:本设计以直流电压源为核心,stc89c52rc增强型单片机为主控制器,单片机系统是无线投票器的核心。它通过软件的运行来控制整个系统的工作,从而完成设定的功能。通过三个数字键盘来进行投票,三个按键之中任意两个按下系统便认为投票通过,用24l01无线模块发射出去。在接收端,可由液晶屏lcd1602显示实际投票结果,当三个按键中任意两个按下时,系统在1602液晶上显示pass,反之显示down.实际测试结果表明,本系统实际应用于投票领域。关键词:无线;投票器;单片机;24l01;stc89c52rcthe design of wireless voting device abs
2、tract: in this design, the dc voltage source as the core, stc89c52rc enhancedmicrocontroller-based controller, microcontroller system is the core of the wirelessvoting device. it through the operation of the software to control the instrument, thus completing the set function. three numeric keypad t
3、o vote on any two of three keypress thinks that voted to launch out using 24l01 wireless module. be lcdlcd1602 displays the actual voting results at the receiving end, when any two of thethree buttons is pressed, the system in the 1602s lcd display pass, contrary showdown. actual test results show t
4、hat this system is actually used in the voting field.keywords: wireless; voting machine; microcontroller; 24l01; stc89c52rc 目 录1 引言12 设计要求及方案论证22.1 设计要求22.2 设计方案及论证22.2.1 控制模块方案及论证22.2.2 显示模块方案及论证23.系统的硬件电路设计43.1 主控制器模块的设计43.2 nrf24l01无线模块的设计53.3 按键控制模块的设计73.4 液晶显示模块的设计83.4.1 lcd1602主要管脚介绍83.4.2 lcd
5、1602控制指令93.4.3 液晶显示程序设计103.4.4 读写控制时序如表6所示103.4.5 lcd1602的一般初始化过程113.4.6 lcd1602与单片机连接图113.5 振荡电路设计模块的设计123.6 晶振电路与复位电路设计123.6.1 晶振电路123.6.2 复位电路133.7 电源模块的设计144 系统软件设计164.1 用c语言开发单片机的优势164.2 系统程序设计流程图164.3 软件编译与调试174.4 液晶显示程序设计194.5 nrf24l01模块程序设计205 调试结果与分析245.1 测试仪器245.2 测试方法245.3 调试过程与分析245.4 测试
6、结论24参考文献25附 录26谢 辞45461 引言近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动 传统控制检测日新月益更新。投票器,是投票反馈系统中的终端设备,是一种代替常规会议举手表决,会议举手投票,民主举手选举的一种装置。投票器系统主要由:基站,软件,终端设备三部分组成。可以自由选择实名投票与非实名投票。使用时,与会者只需按动手中投票器上对应的,“赞同”“反对”或者“弃权”即可,相应的投票结果会在电脑中记录并实时显示的屏幕上,从而公平公正的展现出来。随着无线技术的发展,以及有线投票器的不方便性,无线投票器逐渐取代了有线投票器的市场。基于单片机与无线技术的投票器的设计制
7、作过程,以mcs-51系列单片机为控制核心设计投票系统的投票发射器与接收器。投票发射器由单片机、三个按键、三个指示灯和nrf24l01模块等组成.三个键分别表示不按代表反对,按下代表同意。投票器把投票结果信息编码后通过nrf24l01发射出去,接收器接收后,辨别发射传输的信息,若三个按键之中任意两个按下系统便认为投票通过,可由液晶屏lcd1602显示实际投票结果,当三个按键任意两个按下时,系统在lcd1602液晶上显示pass,反之显示down。2 设计要求及方案论证2.1 设计要求单片机在各种电子产品中的应用已经越来越广泛,很多的电子产品利用单片机所取得的便利性得到了人们的好评,针对多路数据
8、采集系统的要求提出了以下的方案:设计一款能进行远程无线投票的设备,由2个投票端和一个控制端所组成,模拟远程投票。2.2 设计方案及论证2.2.1 控制模块方案及论证方案一:采用各类数字电路来组成键盘控制系统,进行信号处理,如选用cpld等可编程逻辑器件。本方案电路复杂,灵活性不高,效率低,不利于系统的扩展,对信号处理比较困难。方案二:采用stc89c52rc单片机作为这个系统的控制单元,可方便利用单片机内部的定时器等各种资源,方便程序的编写和无线射频模块的操作。 比较以上两种方案的优缺点,方案一采用中、小规模器件实现系统的数控部分,使用的芯片很多,造成控制电路内部接口信号繁琐,中间相互关联多,
9、抗干扰能力差。在方案二中采用单片机完成整个数控部分的功能,也便于系统功能的扩展5。2.2.2 显示模块方案及论证方案一:使用数码管显示使用多位数码管显示,显示不灵活。方案二:使用lcd1602液晶显示液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点。本方案采用lcd1602,它具有两行显示,每行显示16个字符,采用单+5v供电,外围电路简单,价格便宜,具有很高的性价比。而数码管虽然便宜,但显示单调。占用过多的i/o。综上所述,得到系统整体结构框图如图1所示。图1 系统整体结构框图3.系统的硬件电路设计3.1 主控制器模块的设计【2】本设计采用pdip封装的stc89c52rc芯片为
10、主控制器,该芯片正常工作电压为5v,支持的最高时钟频率为80mhz,flash程序存储器为8kb,ram数据存储器为512b,内置看门狗电路,支持isp/iap6。本单片机具有以下优点:(1) 超低功耗。 掉电模式:典型功耗为0.5ua,可由外部中断唤醒,中断返回后,继续执行原程序。 空闲模式:典型功耗为2ma。 正常工作模式:典型功耗为4ma-7ma。(2) 超强抗干扰。i/o口、电源、时钟、看门狗、复位电路都是经过特殊处理。宽电压,不怕电源抖动,工作电压范围为3.4 6v。高抗静电(高esd保护),轻松过2000v。快速冲干扰。stc89c52rc芯片引脚图如图2所示。 图2 stc89c
11、52rc芯片引脚图控制部分是系统整机协调工作和智能化管理的核心部分,采用stc89c52rc单片机实现控制功能是其关键,采用单片机不但方便监控,并且大大减少硬件设计。由于本设计分两个板子但上面的单片机最小系统电路是一样的,所以在此仅以发射板单片机电路为例,stc89c52rc芯片原理图如图3所示。图3 stc89c52rc芯片原理图3.2 nrf24l01无线模块的设计【10】nrf24l01 是 nordic 公司最近生产的一款无线通信通信芯片,采用 fsk 调制,内部集成nordi自己的 enhanced short burst 协议。可以实现点对点或是 1 对 6 的无线通信。无线通信速
12、度可以达到 2m(bps)。nordic 公司提供通信模块的 gerber 文件,可以直接加工生产。嵌入式工程师或是单片机爱好者只需要为单片机系统预留 5 个 gpio,1 个中断输入引脚,就可以很容易实现无线通信的功能,非常适合用来为 mcu 系统构建无线通信功能。发射数据时,首先将nrf24l01配置为发射模式:接着把接收节点地址tx_addr和有效数据tx_pld按照时序由spi口写入nrf24l01缓存区,tx_pld必须在csn为低时连续写入,而tx_addr在发射时写入一次即可,然后ce置为高电平并保持至少10s,延迟130s后发射数据;若自动应答开启,那么nrf24l01在发射数
13、据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址tx_addr一致)。如果收到应答,则认为此次通信成功,tx_ds置高,同时tx_pld从tx fifo中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(arc)达到上限,max_rt置高,tx fifo中数据保留以便在次重发;max_rt或tx_ds置高时,使irq变低,产生中断,通知mcu。最后发射成功时,若ce为低则nrf24l01进入空闲模式1;若发送堆栈中有数据且ce为高,则进入下一次发射;若发送堆栈中无数据且ce为高,则进入空闲模式2。 接收数据时,首先将nrf24l01配置为接收模式,接
14、着延迟130s进入接收状态等待数据的到来。当接收方检测到有效的地址和crc时,就将数据包存储在rx fifo中,同时中断标志位rx_dr置高,irq变低,产生中断,通知mcu去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若ce变低,则nrf24l01进入空闲模式1。nrf24l01内部结构如图4所示,nrf24l01模块电路图如图5所示,nrf24l01指令系统由6所示。图4 nrf24l01结构图 图5 nrf24l01模块电路 图6 nrf24l01指令列表3.3 按键控制模块的设计本设计中,采用独立按键对单片机核心芯片stc89c52rc进行输入控制
15、。各按键分别一端接地,一端接单片机引脚。实现功能:三个键分别表示不按代表反对,按下代表同意。键盘控制电路原理图如图7所示。图7 键盘控制电路原理图3.4 液晶显示模块的设计【1】3.4.1 lcd1602主要管脚介绍显示模块用于接收机实时显示投票结果。这里采用1602液晶显示屏,其主要参数为:显示容量(16*2个字符),芯片工作电压(4.5-5.5v),工作电流(2.0ma),模块最佳工作电压(5.0v)11。lcd1602共有16个引脚,lcd1602管脚功能介绍表如表1所示表1 lcd1602管脚功能介绍表引脚图符号状态功能1vss电源地2vdd电源+5v3v0对比度控制端4rs输入寄存器
16、选择5r/w输入读、写操作6e输入使能信号7db0三态数据总线(lsb)8db1三态数据总线9db2三态数据总线10db3三态数据总线11db4三态数据总线12db5三态数据总线13db6三态数据总线14db7三态数据总线(msb)15leda输入背光+5v16ledk输入背光地说明:v0: 液晶显示器对比度调整端,接正电源的对比度最弱,接地电源是对比度最高,对比度过高时会产生“鬼影”使用时可以通过一个10k的电位器调整对比度。rs: 寄存器选择,高电平时选择数据存储器;低电平时选择指令寄存器。r/w:读写信号线,高电平时进行读操作,低电平进行写操作。当rs和r/w共同为低电平时可以写入指令或
17、者显示地址;当rs为高电平,r/w为低电平时可以写入数据。e: 使能端,当e端由高电平跳变成低电平时,液晶模块执行命令。3.4.2 lcd1602控制指令1.清屏指令如表2所示表2 清屏指令表rsr/wdb7db6db5db4db3db2db1db00000000001功能: 清除液晶显示器,即将ddram的内容全部填入空白的ascii码20h; 光标归位,即将光标撤回液晶显示屏的左上方; 将地址计数器(ac)的值设为0。2.显示开关控制表如表3所示表3 显示开关控制表rsr/wdb7db6db5db4db3db2db1db00000001dcb功能:设置显示,光标及闪烁开,关其中:d表示显示
18、:1为开,0为关;c表示光标:1为开,0为关d表示闪烁:1为开,0为关3. 光标,画面移动表如表4所示表4 光标,画面移动表rsr/wdb7db6db5db4db3db2db1db0000000s/cr/l*功能:光标,画面移动,不影响ddram其中:s/c=1,画面平移一个字符位s/c=0,光标平移一个字符位r/l=1:右移;r/l=0:左移4 功能设置表如表5所示表5 功能设置表rsr/wdb7db6db5db4db3db2db1db000001dlnf*功能:工作方式设置其中:dl=1,8位数据接口;dl=0四位数据接口; n=1,两行显示;n=0,一行显示;f=1,5 10点阵字符;f
19、=0,5 7点阵字符3.4.3 液晶显示程序设计1.读操作时序如图8所示图8 读操作时序2.写操作时序如图9所示图9 写操作时序3.4.4 读写控制时序如表6所示 表6 读写控制时序表rsr/we功能00下降沿写指令代码01高电平读忙标志和ac码10下降沿写数据11高电平读数据3.4.5 lcd1602的一般初始化过程1延时15ms2写指令38h3写指令08h:显示关闭4写指令01h:显示清屏5写指令06h:显示光标移动设置6写指令0ch:显示开及光标设置3.4.6 lcd1602与单片机连接图lcd1602与单片机连接图的连接图如图10所示。图10 lcd1602与单片机连接图数据线db0-
20、db7连接单片机的p0口; rs、r/w,e,3条控制线分别接单片机的p2.5、p2.6、p2.7口。电阻r3用来设置背光的亮度。3.5 振荡电路设计模块的设计单片机的工作是在统一的脉冲控制下的进行的。这个脉冲就是由单片机控制器的时钟电路发出的,即时钟电路用于产生单片机工作所需的时钟信号。单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。时钟电路用于产生单片机工作的时钟信号。而时钟电路又各分为两种,即内部时钟方式和外部时钟方式。本设计采用内部时钟方式此种方式时,单片机内接一个高增益反向放大器构成内部振荡器。引脚xtal1和xta
21、l2分别此放大器的输入端和输出端。同时在xtal1和xtal2两端跨接晶体或陶瓷谐振器构成稳定的自激振荡器,其发出的脉冲信号直接送入到内部时钟发生器。电容c1和c2通常选择为(30或10)pf左右;外接陶瓷谐振器时则选为47pf左右。电容c1和 c2对频率有微调作用。为了减少寄生电容,更好地保证振荡器可靠地工作,谐振器和电容应安装得与单片机芯片尽可能的近。内部时钟发生器实际上是一个二分频的触发器,该二分频为单片机提供一个二相的时钟信号即相位信号1(p1)和相位信号2(p2),驱动cpu产生执行指令功能的机器周期。这里我们采用的是12mhz晶振,也就时说单片机的时钟周期为1/12us,指令周期为
22、1us。晶体振荡器的频率越高,振荡频率就越高12,振荡电路原理图如图11所示。图11 振荡电路原理图3.6 晶振电路与复位电路设计3.6.1 晶振电路晶振电路为单片机at89c51工作提供时钟信号,芯片中有一个用于构成内部振荡器的高增益反相放大器,引脚xtal1和xtal2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振荡器一起构成自激振荡器。电路中的外接石英晶体及电容c5、c6接在放大器的反馈回路中构成并联振荡电路,系统的晶振电路如图3.3所示。由于外接电容c5、c6的容量大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石
23、英晶体,电容的容量大小范围为;如果使用陶瓷谐振,则电容容量大小为。本设计中使用石英晶体,电容的容值设定为30pf。3.6.2 复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分合过程中引起的抖动而影响复位。单片机在启动时都需要复位,以使cpu及系统各部件处于确定的初始状态,并从初态开始工作。at89c51的复位信号是从rest引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果rest引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则cp
24、u就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位,本设计采用的是手动按钮复位。手动按钮复位需要人为在复位输入端rest上加入高电平,采用的办法是在rest端和正电源vcc之间接一个按钮。当人为按下按钮时,则vcc的+5v电平就会直接加到rest端,系统复位。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,设计完全能够满足复位的时间要求。复位电路中sw-pb为手动复位开关,电容ch1可避免高频谐波对电路的干扰。 cpu内部复位电路因为 mcs-51系列单片机采用高电平复位方式,其内部复位电路如图3-15所示,高电平复位脉冲rst引脚输入到内部施密特触发器整形后,送cp
25、u内部复位电路。cpu在每一个机器周期的s5p2相采样施密特触发器的输出端,若为高电平,则强迫机器进入复位状态。为了保证cpu内部各个单元电路可靠复位,rst引脚复位脉冲高电平维持时间必须大于等于2个机器周期(即24个振荡周期)13。内部复位电路如图12所示。 图12 内部复位电路 外部复位电路可以使用rc分立元件或微处理器监控芯片构成mcs-51单片机的外部复位电路14。本设计中采用rc分立元件构成mcs-51外部复位电路,外部复位电路图电路如图13所示。图13 外部复位电路按下复位按键k20时,电容c3通过r1放电,当电容放电结束后,rst引脚电位由r1、r2分压比决定。由于r2r1,因此
26、rst引脚为高电平,cpu进入复位状态。松开复位按键后,电容c3充电,rst引脚电位下降,使cpu脱离复位状态15。r1的作用在于限制复位按钮瞬间电容c3的放电电流,避免产生火花,以保护按钮的触点。单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的rst引脚上出现24个时钟振荡脉冲以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,在设计复位电路时,通常使rst保持高电平。只要rst保持高电平,则单片机就循环复位16。3.7 电源模块的设计本设计两块板子都是用usb供电方式,以usb接口接收电脑或充电器5v电源,输入后经过100uf和0.1uf电容滤波后,提供
27、给系统。电源模块电路图如图14所示。图14 电源模块电路图4 系统软件设计4.1 用c语言开发单片机的优势【7】c语言是一种编译型的结构化程序设计语言,具有简单的语法结构和强大的处理功能,具有运行速度快、编译效率高,移植性好和可读性强等多种优点,可以实现对系统便件的直接操作。用c语言来编写目标系统软件,可以大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而开发出大规模、高性能的应用系统17。4.2 系统程序设计流程图此系统中用到单片机的部分功能:键盘扩展,程序中断,i/o控制等。主程序基本没什么是可做,但因键盘扫描时通过程序查询的方式来实现的,所以在主程序中要调用键盘扫描程序。发
28、射板系统流程图如图15所示,接收板流程图如图16所示图15 发射板流程图图16 接收板程序流程图4.3 软件编译与调试keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用c来开发,体会更加深刻。本设计软件编译使用的是uvision2编译器。选择cpu型号窗口中选择cpu生产厂家及芯片型号。这里选择的是atmel公司的at89c52芯片。选择芯片界面设置如图17所示。图17 选择芯片界面设置程序代码编写完后需要编译链接生成目标代码,然后进行硬件调试或模
29、拟仿真,编译代码可以点击或键盘的快捷键f7。编译后的结果如图18所示。图18 软件编译结果界面 编译软件后,要对代码进行下载到stc89c52rc单片机中。这里选用的是stc-isp下载软件,stc程序下载界面如图19所示。图19 stc程序下载界面4.4 液晶显示程序设计lcd1602己很普遍了,市面上字符液晶绝大多数基于hd44780液晶芯片的,控制原理就是完全相同的,hd44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶,字符型lcd通常有14条引脚线或16条引脚线的lcd,多出来的2条是背光电源线vcc和地线gnd,其控制原理与14条引脚线的lcd完全一样的。hd4478
30、0的指令共11条指令:1、 清屏指令清楚液晶显示器,即将ddram的内容全部填入“空白”的ascii码20h。2、 光标归位即将光标撤回液晶显示屏的左上方;将地址计数器(ac)的值设为0;保持ddram的内容不变。3、 进入模式设置指令功能:设定每次定入1位数据后光标的移动方向,并且设定每次写入的一个字符是否移动。4、 显示开关控制指令5、 设定显示屏或光标移动方向指令功能:是光标移动或使整个显示屏幕移位。6、 功能设定指令功能:设定数据总线位数、显示的行数及字符。7、 设定cgram地址指令功能:设定下一个要存入数据的cgram的地址。8、 设定ddram地址指令功能设定下一个要存入数据的d
31、dram的地址。9、 读取忙信号或ac地址指令功能:读取忙碌信号bf的内容,bf=1表示液晶显示器忙,暂时无法接受单片机送来的数据或指令;读取地址计数器(ac)的内容。10、 数据写入ddram或cgram指令功能将字符写入ddram,以使液晶显示屏显示出相对应的字符;将使用者自己设计的图形存入cgram。11、 从cgram或ddram读出数据的指令功能:读取ddram或cgram中的内容。lcd1602液晶显示模块的流程图如图20所示。图20 lcd1602液晶显示模块的流程图4.5 nrf24l01模块程序设计该射频模块集成了nordic公司生产的无线射频芯片nrf24l01:1支持2.
32、4ghz的全球开放ism频段,最大发射功率为0dbm22mbps,传输速率高3功耗低,等待模式时电流消耗仅22ua4多频点(125个),满足多点通信及跳频通信需求5在空旷场地,有效通信距离:25m(外置天线)、10m(pcb天线)6工作原理简介:发射数据时,首先将nrf24l01配置为发射模式,接着把地址tx_addr和数据tx_pld按照时序由spi口写入nrf24l01缓存区,tx_pld必须在csn为低时连续写入,而tx_addr在发射时写入一次即可,然后ce置为高电平并保持至少10s,延迟130s后发射数据;若自动应答开启,那么nrf24l01在发射数据后立即进入接收模式,接收应答信号
33、。如果收到应答,则认为此次通信成功,tx_ds置高,同时tx_pld从发送堆栈中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(arc_cnt)达到上限,max_rt置高,tx_pld不会被清除;max_rt或tx_ds置高时,使irq变低,以便通知mcu。最后发射成功时,若ce为低,则nrf24l01进入待机模式1;若发送堆栈中有数据且ce为高,则进入下一次发射;若发送堆栈中无数据且ce为高,则进入待机模式2。接收数据时,首先将nrf24l01配置为接收模式,接着延迟130s进入接收状态等待数据的到来。当接收方检测到有效的地址和crc时,就将数据包存储在接收堆栈中,同
34、时中断标志位rx_dr置高,irq变低,以便通知mcu去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若ce变低,则nrf24l01进入空闲模式1。nrf24l01无线模块的软件流程图如图21所示。开始上电 有数据包 在fifo?ce=1? ard消除了? 待机模式i 停止?重试次数是否等于arc 待机模式ii 有数据包在fifo?置位tx_ds irq 发射模式发送数据包 待机模式i ce=1? 有数据包在fifo? ce=1? 发射处理 自动重发使能? no_ack有效? 接收处理 置位max_rt irq 接收模式 应答是否接收到? 发射模式 重发上一
35、次数据包 应答 加载了? 发射处理 置位tx_ds irq 把ack加载到接收fifo yes 图21 nrf24l01无线模块的软件流程图5 调试结果与分析5.1 测试仪器万用表,数字示波器。5.2 测试方法在运算放大器7输出端上测量电压;数字示波器测试纹波电压。5.3 调试过程与分析在本次毕业设计过程中,由于使用的是宏晶的stc89c52rc芯片,这个系列的程序下载只需通过max232下载接口就可以。使得本次设计中硬件仿真变的就比较简单,因为有了硬件仿真工具就可以随时修改程序,通过一步一步的调试来达到最后的目的,同时尤其学会了分部调试的思想,这就使得当遇到问题时不会觉得无从下手,不会觉得那
36、么迷茫,使调试变得比较有条理。 在检查完硬件电路没有短路、断路的情况下,接通电源,并且测试各个集成片的电源电压是否符合要求,以及单片机晶振是否起振,只有晶振正常起振单片机才能工作,通过检测,上述情况均正常。5.4 测试结论当三个按键任意两个按下后,接收板1602液晶屏上,能准确显示通过信息,实测传输有效距离超过10米。参考文献1 赵亮.液晶显示模块lcd1602应用j .电子制作,2007年3月2 高伟.at89c51单片机原理及应用(第一版)m.北京:国防工业出版社,2008,71-753 潘永雄.新编单片机原理与应用m.西安电子科技大学出版社,2007-02,1925,65664 江太辉.
37、mcs-51系列单片机原理与应用m. 广州:华南理工大学出版社,1900-01,40455 汤竞南,沈国琴.51单片机c语言开发与实例m. 北京:人民邮电出版社,2008-02,14,89956 张萌,和湘,姜斌.单片机应用系统开发综合实例(第一版)m.北京:清华大学出版社,2007,94-977 谭浩强.c程序设计(第二版) m .北京:清华大学出版社,2006-018 白伦博,陈栋,宋爱慧.一种无线通信系统中无线信号传输间歇时发射数据突发的方法z.cn1627658:,2005.9张默晗,张北,王天亮.无线信号传输装置及传输方法z.cn101694740a:,2010.10 张默晗,张北,
38、王天亮. 无线信号传输装置z. cn201514694u: ,2010. 11 林群尧. 无线信号传输装置z. cn301028800: ,2009.12 nordic semiconductor. nrf24l01 single chip 2.4 ghz transceiver product specificationeb/ol. july 200713 时志云,盖建平,王代华,等新型高速无线射频器件nrf24l01及其应用国外电子元器件,2007(8):42-4414 丁永红,孙运强.基于nrf2401的无线数传系统设计j.国外电子测量技术,2008,27(4):45-47.15 英庆,
39、王代华,张志杰.基于nrf24l01的无线数据传输系统j.现代电子技术,2008,31(7):68-82.附 录附录1:系统总体电路图1.发射板电路原理图:2.接收板电路原理图:3.实物图:图1.没有按键按下时,表示三票反对,显示“down” 图2.任意一个按键按下时,表示一票赞成,两票反对,显示“pass”图3.任意两个按键按下时,表示两票赞成,一票反对,显示“pass”图4.三个按键都按下时,表示三票赞成,显示“pass”附录2:发射板系统源代码 程序:/*-#include #include typedef unsigned char uchar;typedef unsigned cha
40、r uint;/*nrf24l01端口定义*sbit miso=p15;sbit mosi=p14;sbitsck =p13;sbitce =p11;sbitcsn=p12;sbitirq=p16;sbit lcd_rs =p25;sbit lcd_rw =p26;sbit lcd_e =p27;/*按键*sbitkey1=p31;sbitkey2=p33;sbitkey3=p35;/*数码管位选*sbitled1=p32;sbitled2=p34;sbitled3=p36;/*nrf24l01*#define tx_adr_width 5 / 5 uints tx address width
41、#define rx_adr_width 5 / 5 uints rx address width#define tx_pload_width 20 / 20 uints tx payload#define rx_pload_width 20 / 20 uints tx payload#define lcd_data p0uint const tx_addresstx_adr_width= 0x34,0x43,0x10,0x10,0x01;/本地地址uint const rx_addressrx_adr_width= 0x34,0x43,0x10,0x10,0x01;/接收地址/*nrf24l
42、01寄存器指令*#define read_reg 0x00 / 读寄存器指令#define write_reg 0x20 / 写寄存器指令#define rd_rx_pload 0x61 / 读取接收数据指令#define wr_tx_pload 0xa0 / 写待发数据指令#define flush_tx 0xe1 / 冲洗发送 fifo指令#define flush_rx 0xe2 / 冲洗接收 fifo指令#define reuse_tx_pl 0xe3 / 定义重复装载数据指令#define nop 0xff / 保留/*spi(nrf24l01)寄存器地址*#define config 0x00 / 配置收发状态,crc校验模式以及收发状态响应方式#define en_aa 0x01 / 自动应答功能设置#define en_rxaddr 0x02 / 可用信道设置#define setup_aw 0x03 / 收发地址宽度设置#define setup_retr 0x04 / 自动重发功能设置#define rf_ch 0x05 / 工作频率设置#define rf_setup 0x06 / 发射速率、功耗功能设置#defi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年规范化工程维修协议样本
- 2024年度防火涂料施工承包协议
- 2024公司股东股权转让协议
- 2024商业合作协议模板
- 2024届安徽省阜阳市第一中学高三高考全真模拟卷(七)数学试题
- 2024年专业建材购销协议格式
- 2023-2024学年重庆一中高三招生统考(二)数学试题模拟试卷
- 2024年幼儿照护服务协议范例
- 2024专业不锈钢定制加工协议范本
- 2024定制大客车租赁业务协议
- 十二指肠溃疡伴穿孔的护理查房
- 市场营销策划(本)-形考任务三(第八~十章)-国开(CQ)-参考资料
- 中信证券测评真题答案大全
- 部编版小学六年级道德与法治上册全册知识点汇编
- 数字时代的数字化政府
- 文旅推广短片策划方案相关7篇
- 2023-2024学年高中主题班会燃激情之烈火拓青春之华章 课件
- 中医药文化进校园-中医药健康伴我行课件
- 市政管道开槽施工-市政排水管道的施工
- 居住建筑户型分析
- 机电一体化职业生涯
评论
0/150
提交评论