串行编程器源程序(Keil C语言)//FID=01:AT89C2051系列编程器//实现编程的读,写,擦等细节//AT89C2051的特殊处:给XTAL一个脉冲,地址计数加1;P1的引脚排列与AT89C51相反,需要用函数转换#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引脚排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//编程前的准备工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//编程结束后的工作,设置合适的引脚电平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//从P0口获得数据{ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//转换并设置P0口的数据{ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//读特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//写器件{//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //写一个单元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效验:循环读,直到读出与写入的数相同 { nTimeOut++; if(nTimeOut>1000)//超时了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//读器件{ BYTE Data;//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //读一个单元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return Data;} void Lock01()//写锁定位{ InitPro01();//先设置成编程状态//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 if(ComBuf[2]>=1)//ComBuf[2]为锁定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//设置pw中的函数指针,让主程序可以调用上面的函数{ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上传时间: 2013-11-12
上传用户:gut1234567
针对目前现有的无线通信铁鞋系统在使用过程中出现的问题,提出一种新型的智能铁鞋设计方案。该系统的拓扑结构由协调器和采集器节点构成,利用ZigBee无线传感器网络实现节点间的互联组网,采用CC2531作为协调器节点的核心控制芯片,CC2530作为采集器的核心控制芯片。此外,采用CC2591作为末端放大器,以提高发射功率,进一步增大传输距离(由传统的75 m提高到1 km以上)。最后,利用VC++和SQL Server 2005实现了控制室铁鞋检测控制系统上位机的设计。实践表明,该系统可靠性高、传输距离远,能满足现场需求。
上传时间: 2013-10-14
上传用户:Wwill
为了深入理解无线传感器网络在现代信息化战争中发挥的重要作用,本文在分析无线传感器网络的基本原理和特点的基础上,重点讨论了无线传感器网络在军事领域的应用优势与现阶段的主要应用情况,并总结了当前军事应用中无线传感器网络存在的问题。
上传时间: 2013-11-10
上传用户:eastgan
文中给出了一种基于无线传感器网络的监测与报警系统的设计。该系统利用无线通信模块进行数据传输,以实现组网的灵活性;采用CRC校验法保证传输的可靠性;采用查询驱动的智能化模块管理方式来降低能耗。实际应用表明,该系统特别适合于大面积、复杂环境下的数据采集与监测。
上传时间: 2013-10-17
上传用户:tzrdcaabb
设计并实现精准农业无线传感器网路,用于监测农作物生长环境。用高性能、超低功耗单片机MSP430F149设计温湿度和光照强度传感器节点;用高性能32位ARM处理器LM3S6918设计汇聚节点,采用无线射频器件CC1000实现数据的无线收发;针对汇聚节点能量不限的特点,改进传统MAC协议,提出并实现了一种新的MAC层通信协议。实验证明,该网络具有生命周期长、稳定性好的优点,可以满足精准农业的环境监测要求。
上传时间: 2013-11-25
上传用户:kinochen
针对无线传感器网络的节点能量有限,且在进行信息传输时存在数据冲突、传输延时等问题,提出并设计了基于最大生存周期的无线传感器网络数据融合算法。该算法将整个网络中的节点分成多个簇,并根据节点的传输范围,将每个簇中的节点均匀分布,每个节点根据自己的本地信息和剩余能量选择通信方式向簇头节点传输数据,从而形成传输数据的最短路径;并根据集中式TDMA(时分多址)调度模型,运用基于微粒群的Pareto优化方法,使得网络在完成规定的信息传输时每个节点耗费的平均时隙和平均能耗最优。仿真结果表明,上述算法不但可以最大化网络的生存时间,还可以有效的降低数据融合时间,减少网络延时。
上传时间: 2014-12-29
上传用户:看到了没有
无线传感器网络的迭代算法
上传时间: 2013-11-16
上传用户:标点符号
无线传感器网络是一种应用相关的网络。不同的应用背景需求不同的无线传感器网络节点。硬件的相关性太强不利于向其他平台移植。为解决该问题,利用硬件的模块化的设计思想,我们设计了一种开放的可扩展的无线传感器网络节点平台。该平台以MSP430F5438微处理器作为主控芯片,以CC2420作为射频控制芯片。实验证明该平台具有低功耗、开放式以及可扩展等特点。
上传时间: 2013-11-08
上传用户:fklinran
对CC1100无线模块的高效使用和安全稳定性问题进行了深入研究,提出了构建基于ARM的CC1100无线服务器的解决方案。建立了服务器架构模型,采用了将CC1100模块作为嵌入式Linux内核级模块的高级策略,开发了CC1100模块的底层内核驱动程序模块,完整实现了服务器的业务逻辑功能,并提供了B/S模式和C/S模式两种友好的上层用户接口。实际应用结果表明,该方案有效地解决了CC1100模块通信过程中的实时性和稳定性等问题,性能优越,用户操作方便。
上传时间: 2013-11-17
上传用户:emhx1990
无线传感器网络技术
上传时间: 2013-10-31
上传用户:Late_Li