串行编程器源程序(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
计算机部件要具有通用性,适应不同系统与不同用户的需求,设计必须模块化。计算机部件产品(模块)供应出现多元化。模块之间的联接关系要标准化,使模块具有通用性。模块设计必须基于一种大多数厂商认可的模块联接关系,即一种总线标准。总线的标准总线是一类信号线的集合是模块间传输信息的公共通道,通过它,计算机各部件间可进行各种数据和命令的传送。为使不同供应商的产品间能够互换,给用户更多的选择,总线的技术规范要标准化。总线的标准制定要经周密考虑,要有严格的规定。总线标准(技术规范)包括以下几部分:机械结构规范:模块尺寸、总线插头、总线接插件以及按装尺寸均有统一规定。功能规范:总线每条信号线(引脚的名称)、功能以及工作过程要有统一规定。电气规范:总线每条信号线的有效电平、动态转换时间、负载能力等。总线的发展情况S-100总线:产生于1975年,第一个标准化总线,为微计算机技术发展起到了推动作用。IBM-PC个人计算机采用总线结构(Industry Standard Architecture, ISA)并成为工业化的标准。先后出现8位ISA总线、16位ISA总线以及后来兼容厂商推出的EISA(Extended ISA)32位ISA总线。为了适应微处理器性能的提高及I/O模块更高吞吐率的要求,出现了VL-Bus(VESA Local Bus)和PCI(Peripheral Component Interconnect,PCI)总线。适合小型化要求的PCMCIA(Personal Computer Memory Card International Association)总线,用于笔记本计算机的功能扩展。总线的指标计算机主机性能迅速提高,各功能模块性能也要相应提高,这对总线性能提出更高的要求。总线主要技术指标有几方面:总线宽度:一次操作可以传输的数据位数,如S100为8位,ISA为16位,EISA为32位,PCI-2可达64位。总线宽度不会超过微处理器外部数据总线的宽度。总数工作频率:总线信号中有一个CLK时钟,CLK越高每秒钟传输的数据量越大。ISA、EISA为8MHz,PCI为33.3MHz, PCI-2可达达66.6MHz。单个数据传输周期:不同的传输方式,每个数据传输所用CLK周期数不同。ISA要2个,PCI用1个CLK周期。这决定总线最高数据传输率。5. 总线的分类与层次系统总线:是微处理器芯片对外引线信号的延伸或映射,是微处理器与片外存储器及I/0接口传输信息的通路。系统总线信号按功能可分为三类:地址总线(Where):指出数据的来源与去向。地址总线的位数决定了存储空间的大小。系统总线:数据总线(What)提供模块间传输数据的路径,数据总线的位数决定微处理器结构的复杂度及总体性能。控制总线(When):提供系统操作所必需的控制信号,对操作过程进行控制与定时。扩充总线:亦称设备总线,用于系统I/O扩充。与系统总线工作频率不同,经接口电路对系统总统信号缓冲、变换、隔离,进行不同层次的操作(ISA、EISA、MCA)局部总线:扩充总线不能满足高性能设备(图形、视频、网络)接口的要求,在系统总线与扩充总线之间插入一层总线。由于它经桥接器与系统总线直接相连,因此称之为局部总线(PCI)。
上传时间: 2013-11-09
上传用户:nshark
在现场控制中,现场的各种参数经常需要实时的显示和存储,如果能与计算机通信,这些问题将迎刃而解。
上传时间: 2013-11-03
上传用户:chenhr
由于近些年来智能电网的大力发展需求出现了各种自动抄表系统的应用方案,但各有不足之处未能真正在我国广泛采用。为了实现智能电网自动抄表系统的真正应用,设计了一种易于实现的、网络开销小并低功耗的无线网络,它采用ARM和MCU作为自动抄表系统的无线集中器硬件平台,并搭配Sub-GHz的射频收发模块,集中器与节点设备之间采用自定义协议的自动组网形式, 可实现50个节点自动灵活组网,而且网络开销小只占用4 k存储空间。整个系统具有实用性和应用性强的特点。
上传时间: 2013-10-17
上传用户:fqscfqj
文中旨在研究一种新式抽油烟机的智能变频技术,通过对烹饪环境的综合分析,确定所需排风量,进而以一个最适宜的转速进行排烟,达到节能降耗的目的。采用神经网络控制器,在无被控对象数学模型情况下,实现转速与油烟、蒸汽两输入变量的非线性映射。仿真和实物测试结果显示:采用神经网络控制能较好实现厨房环境的实时调控,能够快速响应,具有良好的动态和稳态性能。
上传时间: 2013-10-27
上传用户:haohao
接入网是电信网的最末端,直接连接最终用户。从传输层上看,与干线和城域传输网相同,不外乎以太网和传统电路E1接入两种。但接入网毕竟面对的是最终用户,需求是千差万别的,决不仅仅体现在传输内容上。因此,各电信运营商纷纷推出各种接入业务种类,针对不同的用户需求,在传输带宽、质量和价格等方面提供差异性的接入服务。表1列出了一些基本的业务类型和基本特点。由此可见,在接入网市场,产品如何与业务紧密结合显得尤为重要。
上传时间: 2013-11-17
上传用户:qitiand
一种基于ATmega16和FC222-CH的无线水位检测系统。该系统由无线通信模块、电源模块、AD转换模块、上位机模块组成,实现了水位的无线检测、运行故障报警等功能,并配以自行设计的LabVIEW 8.5上位机显示界面,使整套开发系统兼备可视化与实时性的双重要求。
上传时间: 2014-12-29
上传用户:agent
近几年国内重大的安全事件,不再是过去操作系统漏洞或网络攻击威胁,而是逐渐转向企业网络对外的Web站点,例如:网络在线交易网站、企业的电子商务网站与企业内部的ERP、CRM系统等,均是Web系统服务(SQL Injection)的问题。 信息资产就和企业其它重要的资产一样,对企业而言是非常具有价值的,应该被妥善加以保护并可被审核。由于信息系统面临着许多安全的威胁,因此对信息系统安全风险应加以管理,以降低系统所提供信息的不及时性、不完整性与不正确性,并设置适当控制及保存审核档案记录,以便及时发现并追踪恶意行为,防范入侵与攻击,进而确保信息系统的安全。
上传时间: 2013-10-16
上传用户:lijianyu172
概述了软件无线电的发展和应用,为满足雷达中频接收机的数字化要求,介绍了C频段微波统一测控系统中应用软件无线电思想设计数字化中频接收机的方案,对其基本原理和实现的关键技术做了分析,最后给出了应用FPGA和DSP等器件实现该接收机的具体方法。整个系统集成度高,可靠性好,使用灵活,已在多个某型C频段统一测控系统中得到了应用。
上传时间: 2013-10-27
上传用户:fairy0212
曾一度被认为是小众现象的智能手机,正在日益推动全球移动生态系统。根据Gartner的研究,2009年手机出货量超过12亿部,其中智能手机达1.724亿部,比2008年增加了23.8% 。此外,Forward Concepts预测到2014年,智能手机出货量每年将增长24%。 移动网络运营商、移动电话OEM厂商、手机芯片供应商,以及面向移动用户的应用与服务提供商均认为智能手机对于他们的财富增长至关重要。现代的智能手机操作系统提供了丰富且开放的应用平台,已经成就了全新的应用与服务类别,对开发商和运营商具有强大的吸引力。
上传时间: 2014-12-30
上传用户:dancnc