串行编程器源程序(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
VxWorks是WindRiver(风河)公司开发的嵌入式实时操作系统(RTOS),由于它的高实时性,所以广泛地应用于军事、工业控制、通信等领域;分析了VxWorks下PCI总线多功能数据采集卡的实现方法;以ADLINK的PCI7396数据采集卡为例,介绍PCI总线设备的配置空间,包括它的结构及访问方法,重点介绍PCI总线设备在VxWorks下驱动程序的开发步骤及编程要点,并对开发过程中的关键部分给予代码说明;在某综合控制系统中,开发的驱动程序运行稳定、可靠。
上传时间: 2013-11-02
上传用户:masochism
PCM-8506BS是一款基于PC/104总线的高性能同步采样多功能数据采集卡,它完全遵循PC/104总线规范。该采集卡采用了每通道专用的模数转换器(ADC)和信号处理电路的硬件架构,每个通道都有强大的处理能力和出色的精准度,可同步采样多路模拟信号,可以实现直流和动态信号测量的高度准确性。PCM-8506BS具有每通道600kSPS的同步采样速率,16位分辨率,2路模拟量输出、8路数字I/O和2个定时/计数器。其每个模拟量输入通道均有抗混叠滤波器以改善频域分析性能,有丰富的触发采集模式和触发源供选择,适用于多种高要求的数据采集场合,包括:电网监测、多相电机控制、高瞬变信号采集等。
上传时间: 2013-10-17
上传用户:bnfm
共享软件PROGISP(Ver1.4) 2005/12/28 支持编程器类型 1,多种并口(可以自定义)编程器(并口串行) 2,USBPROG编程器(usb串行) 3,并口并行编程器 特色: 1,速度较快(16k程序): 并口 读11秒 写11秒;USBPROG读2秒 写2秒。 2,USBPROG根据目标cpu自动调整三种下载速度(8k,187.5k,375k) 3,支持自定义ATMEL全系列cpu(avr+S5x 系列). 4,支持自定义熔丝信息提示功能 5,支持时钟校正及系列号生成功能 6,USBPROG还支持usb转串口功能
上传时间: 2013-12-11
上传用户:whenfly
共享软件PROGISP(Ver1.4+) 2006/1/14 支持编程器类型 1,多种并口(可以自定义)编程器(并口串行) 2,USBPROG编程器(usb串行) 3,并口并行编程器 4,usbasp 扩展功能 1,串口调试,超级终端 特色: 1,速度较快(16k程序): 并口 读11秒 写11秒;USBPROG读2秒 写2秒。 2,USBPROG根据目标cpu自动调整三种下载速度(8k,187.5k,375k) 3,支持自定义ATMEL全系列cpu(avr+S5x 系列). 4,支持自定义熔丝信息提示功能 5,支持时钟校正及系列号生成功能 6,USBPROG还支持usb转串口功能 附usb编程器的源代码
上传时间: 2013-12-12
上传用户:磊子226
充分体现了学生的诸多功能,提供了完整的解决方案和提供给编程人员正确的思考方法。是编程人员必看的方法论。设计方案超出了普通的原理
上传时间: 2015-05-11
上传用户:jing911003
单片机开发过程中用到的多功能工具,包括热敏电阻RT值--HEX数据转换;3种LED编码;色环电阻计算器;HEX/BIN 文件互相转换;eeprom数据到C/ASM源码转换;CRC校验生成;串口调试,带简单而实用的数据分析功能;串口/并口通讯监视等功能. 用C++ Builder开发,无须安装,直接运行,不对注册表进行操作。纯绿色软件。
上传时间: 2013-12-11
上传用户:希酱大魔王
usb编程器的全部资料,包括上位机程序及下位机源程序 支持编程器类型 1,多种并口(可以自定义)编程器(并口串行) 2,USBPROG编程器(usb串行) 3,并口并行编程器 4,usbasp 扩展功能 1,串口调试,超级终端 特色: 1,速度较快(16k程序): 并口 读11秒 写11秒;USBPROG读2秒 写2秒。 2,USBPROG根据目标cpu自动调整三种下载速度(8k,187.5k,375k) 3,支持自定义ATMEL全系列cpu(avr+S5x 系列). 4,支持自定义熔丝信息提示功能
上传时间: 2013-12-18
上传用户:silenthink
多线程编程实例,内设有若干多线程操作方法,学习LINUX中线程属性的设置。
上传时间: 2014-01-02
上传用户:13681659100
基于51单片机的多功能数字钟。时间,年月日,多组闹钟,议程。且外接24C04的EEPROM后可保存设置。蜂鸣器由I/O口接三极管放大后驱动。
上传时间: 2013-12-29
上传用户:dengzb84