摘要:随着电子技术的发展,镍镉和镍氢等充电电池的使用愈来愈多,购买和使用充电电池时,电池容量(Ah)成为人们关注的指标.本文采用一种基于AT89C2051单片机制作的电池容量测试电路,可对镍镉和镍氢等充电电池的容量进行自动测试,并以数字形式显示其测试结果,测量范围为0.01—9.99Ah.分析了电路硬件与软件设计实现,具有一定的实用价值.关键词:电池容量;单片机;硬件;软件
上传时间: 2013-10-22
上传用户:wsf950131
摘要:对特殊的环境温度进行测量.不仅要求测量的实时性.而且要求测量的精确度.使测量的温度达到既定的标准。因此作者介绍了一种应用铂电阻进行高精度的温度测量系统.系统中以PT100铂电阻作为测温传感器.采用最小二乘法来消除测温系统的非线性.并应用24位高性能模数转换器AD7714对所输入的模拟信号进行模/数转换。AD转换器AD7714的应用保证了0.001摄氏度的测量分辨率.最小二乘法的非线性优化使系统的测量误差小于0.01%。关键词:温度测量 AD7714 AT89C51 单片机 非线性优化 最小二乘法 铂电阻
上传时间: 2013-11-20
上传用户:dongbaobao
介绍应用虚拟仪器技术开发的血铅检测分析系统,该系统不仅造价低,且性能大大优于传统血铅分析仪。随着计算机技术的飞速发展,测试技术的精确度和灵活性都大为提高,并向着数字化和智能化发展。近年来,强大的面向对象的程序开发工具的出现,使编写大规模程序更加简洁和容易,也为虚拟仪器的出现提供了前提。虚拟仪器是当前测控领域的热点,已广泛应用于航天、通信、生物工程、电子、机械等领域。采用虚拟仪器技术构建的测试仪器开发效率高,可维护性强;测试精度、稳定性和可靠性都能够得到充分保证;具有很高的性价比,节省投资,便于设备更新和功能的转换与扩充。虚拟仪器用图形化编程软件LabVIEW进行开发。LabVIEW是一个通用的编程系统,它不但具有一般的数学运算、逻辑运算和输入输出功能,还带有专门的用于数据采集和仪器控制的库函数和开发工具,以及专业的数学分析程序包,可以满足复杂的工程计算和分析需要。在LabVIEW虚拟平台上进行仪器开发不但可行而且简单方便。本文将介绍在LabVIEW虚拟平台上开发的一套血铅分析仪。铅是人体惟一不需要的微量元素,它几乎对人体所有的器官都能构成损害。即使人体内有0.01μg的铅存在,也会对健康造成损害。而且,人们即便脱离了铅污染环境或经治疗使血铅水平明显下降,受损的器官和组织也不能修复。医生特别指出,并不是一定有什么临床症状才表明已有铅中毒发生。所以,铅对人体的危害十分严重并且不容易被察觉,检查人体铅的含量在临床上有着相当重要的意义。因此,血铅分析仪的开发有着深远的现实意义和工程意义。
上传时间: 2013-10-26
上传用户:6546544
编程AT89S51或52芯片,如下图放置AT89S52芯片,插好并口线和USB线或外接电源也可,这里我们用了USB取电,按右下电源切换开关给GB-01系统供电。
上传时间: 2013-11-10
上传用户:ardager
74系列选型参考 00 四2 输入与非门01 四2 输入与非门(OC)02 四2 输入与非门03 四2 输入与非门(OC)04 六反相器05 六反相器(OC)06 六高压输出反相缓冲器/驱动器(OC,30V)07 六高压输出缓冲器/驱动器(OC,30V)08 四2 输入与门09 四2 输入与门(OC)10 三3 输入与非门11 三3 输入与门12 三3 输入与非门(OC)13 双4 输入与非门(有施密特触发器)14 六反相器(有施密特触发器)
上传时间: 2013-10-28
上传用户:rocketrevenge
串行编程器源程序(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
基于Altera公司FPGA芯片EP2C8Q208,嵌入MC8051 IP Core,用C语言对MC8051 IP Core进行编程,以其作为控制核心,实现系统控制。在FPGA芯片中,利用Verilog HDL语言进行编程,设计了以MC8051 IP Core为核心的控制模块、计数模块、锁存模块和LCD显示模块等几部分,实现了频率的自动测量,测量范围为0.1Hz~50MHz,测量误差0.01%。并实现测频率、周期、占空比等功能。
上传时间: 2013-10-14
上传用户:1214209695
移动通信的相关知识。
上传时间: 2013-10-28
上传用户:himbly
01-接入分册• 01-ATM和DSL接口配置• 02-CPOS接口配置• 03-POS接口配置• 04-以太网接口配置• 05-WAN接口配置• 06-ATM配置• 07-DCC配置• 08-DLSW配置• 09-帧中继配置• 10-GVRP配置• 11-HDLC配置• 12-LAPB和X.25 配置• 13-链路聚合配置• 14-MODEM配置• 15-端口镜像配置• 16-PPP配置• 17-网桥配置• 18-ISDN配置• 19-MSTP配置• 20-VLAN配置• 21-端口隔离配置• 22-动态路由备份配置• 23-逻辑接口配置
上传时间: 2013-11-25
上传用户:europa_lin
ABB变频说明书
上传时间: 2013-11-12
上传用户:1037540470