虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

4728.01

  • 基于单片机89S52的多功能计数器设计

    该系统由单片机89S52控制模块,程控宽带放大模块,整形模块,FPGA内频率、相位差测量模块等构成,采用等精度测频法测出频率和周期,可测量有效值为0.01~5V,频率范围1Hz~20MHz信号的频率、周期信号,精度高达10-6。采用计数法测量相位差,该系统可测量有效值0.5~5V,频率10Hz~100kHz信号的相位差,精度为1°。系统功能由按键控制,测量结果实时显示,人机界面友好。 Abstract:  The system consists of the following functional blocks:89S52microcontroller controlling module,programmable amplifier module,comparator module,frequency and phase difference testing module in the FPGA.The system use the equal accuracy frequency-examining technique it measures frequency and circle of signal which its ranges is from1Hz to20MHz and the amplitude of which its range is from0.01Vrms to5Vrms,precision is up to10-6.Using of count method,the system detects the phase difference of signal,the amplitude of whic its range is from0.5Vrms to5Vrms and the frequency of which its ranges is from10Hz to100kHz,precision is up to1°,The system functions is controlled by certain keys,measurement results are displayed in real-time and it is friendly interface.

    标签: 89S52 单片机 多功能 计数器

    上传时间: 2013-11-04

    上传用户:CHINA526

  • 基于单片机和FPGA的多功能计数器的设计

    以89S52单片机和EP1C6Q240C8型FPGA为控制核心的多功能计数器,是由峰值检波、A/D转换、程控放大、比较整形、移相网络部分组成,可实现测量正弦信号的频率、周期和相位差的功能。多功能计数器采用等精度的测量方法,可实现频率为1Hz~10MHz、幅度为0.01~5Vrms的正弦信号的精确测频,以及频率为10Hz~100kHz、幅度为0.5~5Vrms的正弦信号精确测相。液晶显示器能够实时显示当前信号的频率、周期和相位差。该多功能计数器精度高,界面友好,实用性强。 Abstract:  A multi-function counter,which uses89S52MCU and EP1C6Q240C8FPGA as a control core,consists of peak detector,A/D conversion,program-controlled amplification,compared shaping and phase-shifting network part.The counter measures the frequency,period and phase of sinusoidal signal.With the equal precision method,the multi-function counter achieves the precise frequency measurement of the sinusoidal signal which its frequency is from1Hz to10MHz,its amplitude is from0.01Vrms to5Vrms,as well as the accurate phase measurement of the sinusoidal signal which its frequency is from10Hz to100kHz,its amplitude is from0.5Vrms to5Vrms.The LCD monitor real-time displays the frequency,period and phase difference of current signal.The multi-function counter features high precision,friendly interface,and strong practical.

    标签: FPGA 单片机 多功能 计数器

    上传时间: 2013-11-15

    上传用户:gy592333

  • PHILIPS公司80C51系列单片机与众不同的4大特点是什

    1.UART增加2个新的特性,即帧错误检测和多机通信中的从机地址自动识别。(1)帧错误检测可用于UART检查工作方式1、2和3时的停止位。例如,由于UART通信线路上的噪声或者2个MCU同时发送可能引起停止位的丢失。(2)多机通信中的从机地址自动识别功能即是说只允许该地址从机被硬件中断,而不是由软件进行地址比较的,那么自动地址识别可以减少为UART服务所需要的MCU时间。与此同时使用广播地址可以一次寻址所有的从处理器。2.4个中断优先级:IPH和IP结合使用决定了每个中断的优先级,00、01、10、11的排列依次由低到高组成4级中断优先权。3.双DPTR指针:可用于寻址外部数据存储器。通过对AUCR1的DPS位编程,以实现对2个16位DPTR寄存器的切换。4.将AUXR.0置位,禁止ALE的信号输出,从而达到降低单片机本身的EMI电磁干扰。

    标签: PHILIPS 80C51 单片机

    上传时间: 2013-10-23

    上传用户:hj_18

  • 基于单片机控制的充电电池容量测试电路的设计

    摘要:随着电子技术的发展,镍镉和镍氢等充电电池的使用愈来愈多,购买和使用充电电池时,电池容量(Ah)成为人们关注的指标.本文采用一种基于AT89C2051单片机制作的电池容量测试电路,可对镍镉和镍氢等充电电池的容量进行自动测试,并以数字形式显示其测试结果,测量范围为0.01—9.99Ah.分析了电路硬件与软件设计实现,具有一定的实用价值.关键词:电池容量;单片机;硬件;软件

    标签: 单片机控制 充电电池 容量测试 电路

    上传时间: 2013-10-22

    上传用户:wsf950131

  • 基于AT89C51单片机的高精度测温系统的研制

    摘要:对特殊的环境温度进行测量.不仅要求测量的实时性.而且要求测量的精确度.使测量的温度达到既定的标准。因此作者介绍了一种应用铂电阻进行高精度的温度测量系统.系统中以PT100铂电阻作为测温传感器.采用最小二乘法来消除测温系统的非线性.并应用24位高性能模数转换器AD7714对所输入的模拟信号进行模/数转换。AD转换器AD7714的应用保证了0.001摄氏度的测量分辨率.最小二乘法的非线性优化使系统的测量误差小于0.01%。关键词:温度测量 AD7714 AT89C51 单片机 非线性优化 最小二乘法 铂电阻

    标签: 89C C51 AT 89

    上传时间: 2013-11-20

    上传用户:dongbaobao

  • 基于LabVIEW的血铅分析仪开发

    介绍应用虚拟仪器技术开发的血铅检测分析系统,该系统不仅造价低,且性能大大优于传统血铅分析仪。随着计算机技术的飞速发展,测试技术的精确度和灵活性都大为提高,并向着数字化和智能化发展。近年来,强大的面向对象的程序开发工具的出现,使编写大规模程序更加简洁和容易,也为虚拟仪器的出现提供了前提。虚拟仪器是当前测控领域的热点,已广泛应用于航天、通信、生物工程、电子、机械等领域。采用虚拟仪器技术构建的测试仪器开发效率高,可维护性强;测试精度、稳定性和可靠性都能够得到充分保证;具有很高的性价比,节省投资,便于设备更新和功能的转换与扩充。虚拟仪器用图形化编程软件LabVIEW进行开发。LabVIEW是一个通用的编程系统,它不但具有一般的数学运算、逻辑运算和输入输出功能,还带有专门的用于数据采集和仪器控制的库函数和开发工具,以及专业的数学分析程序包,可以满足复杂的工程计算和分析需要。在LabVIEW虚拟平台上进行仪器开发不但可行而且简单方便。本文将介绍在LabVIEW虚拟平台上开发的一套血铅分析仪。铅是人体惟一不需要的微量元素,它几乎对人体所有的器官都能构成损害。即使人体内有0.01μg的铅存在,也会对健康造成损害。而且,人们即便脱离了铅污染环境或经治疗使血铅水平明显下降,受损的器官和组织也不能修复。医生特别指出,并不是一定有什么临床症状才表明已有铅中毒发生。所以,铅对人体的危害十分严重并且不容易被察觉,检查人体铅的含量在临床上有着相当重要的意义。因此,血铅分析仪的开发有着深远的现实意义和工程意义。

    标签: LabVIEW 分析仪

    上传时间: 2013-10-26

    上传用户:6546544

  • AT89S52芯片的编程

    编程AT89S51或52芯片,如下图放置AT89S52芯片,插好并口线和USB线或外接电源也可,这里我们用了USB取电,按右下电源切换开关给GB-01系统供电。

    标签: 89S S52 AT 89

    上传时间: 2013-11-10

    上传用户:ardager

  • 74系列选型参考资料

    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 六反相器(有施密特触发器)

    标签: 74系列 选型 参考资料

    上传时间: 2013-10-28

    上传用户:rocketrevenge

  • 串行编程器源程序(Keil C语言)

    串行编程器源程序(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;}

    标签: Keil 串行 C语言 编程器

    上传时间: 2013-11-12

    上传用户:gut1234567

  • 基于FPGA的多功能频率计的设计

    基于Altera公司FPGA芯片EP2C8Q208,嵌入MC8051 IP Core,用C语言对MC8051 IP Core进行编程,以其作为控制核心,实现系统控制。在FPGA芯片中,利用Verilog HDL语言进行编程,设计了以MC8051 IP Core为核心的控制模块、计数模块、锁存模块和LCD显示模块等几部分,实现了频率的自动测量,测量范围为0.1Hz~50MHz,测量误差0.01%。并实现测频率、周期、占空比等功能。  

    标签: FPGA 多功能 频率计

    上传时间: 2013-10-14

    上传用户:1214209695