等精度数字频率计的设计.doc

等精度数字频率计的设计

收藏

压缩包内文档预览:(预览前20页/共63页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:516567    类型:共享资源    大小:688.69KB    格式:RAR    上传时间:2015-11-12 上传人:QQ28****1120 IP属地:辽宁
6
积分
关 键 词:
机械毕业设计
资源描述:
等精度数字频率计的设计,机械毕业设计
内容简介:
等精度数字频率计的设计摘 要基于传统测频原理的频率计的测量精度将随着被测信号频率的下降而降低,在实用中有很大的局限性,而等精度频率计不但有较高的测量精度,而且在整个测频区域内保持恒定的测试精度。运用等精度测量原理,结合单片机技术设计了一种数字频率计,由于采用了屏蔽驱动电路及数字均值滤波等技术措施,因而能在较宽定的频率范围和幅度范围内对频率,周期,脉宽,占空比等参数进行测量,并可通过调整闸门时间预置测量精度。选取的这种综合测量法作为数字频率计的测量算法,提出了基于FPGA 的数字频率计的设计方案。给出了该设计方案的实际测量效果,证明该设计方案切实可行,能达到较高的频率测量精度。 关键词 等精度测量,单片机,频率计,闸门时间,FPGA攀枝花学院本科毕业设计(论文) ABSTRACTABSTRACTAlong with is measured based on the traditional frequency measurement principle frequency meter measuring accuracy the signalling frequency the drop but to reduce, in is practical has the very big limitation, but and so on the precision frequency meter not only has teaches the high measuring accuracy, moreover maintains the constant test precision in the entire frequency measurement region. Using and so on the precision survey principle, unified the monolithic integrated circuit technical design one kind of numeral frequency meter, because has used the shield actuation electric circuit and technical measure and so on digital average value filter, thus could in compared in the frequency range and the scope scope which the width decided to the frequency, the cycle, the pulse width, occupied parameter and so on spatial ratio carries on the survey, and might through the adjustment strobe time initialization measuring accuracy. Selection this kind of synthesis measured the mensuration took the digital frequency meter the survey algorithm, proposed based on the FPGA digital frequency meter design proposal. Has produced this design proposal actual survey effect, proved this design proposal is practical and feasible, can achieve the high frequency measurement precision Keywords Precision survey, microcontroller, frequency meter, strobe time,field programmable gate array攀枝花学院本科毕业设计(论文) 目录 目 录摘 要I ABSTRACTII 1 绪论1 2 系统设计方案2 2.1系统设计方案的选择2 2.1.1 频率测量模块2 2.1.2 周期测量模块42.1.3 脉宽测量模块42.1.4 占空比测量模块4 3 系统总体设计方案5 4 CPLD/FPGA测频专用模块的VHDL程序设计6 4.1 测频模块逻辑结构6 4.2 各模块功能和工作步骤如下:6 4.2.1 测频/测周期的实现74.2.2 控制部件设计74.2.3 脉冲宽度测量和占空比测量模块设计74.2.4 电路显示模块84.2.5 数码管的编码表105 单片机控制与运算程序的设计11 5.1 AT89C51RC单片机简介11 5.2 软件调试系统19 5.3具体试验过程20 5.3.1 第一次测试205.3.2 第二次计算225.4 系统调试的方法23 5.4.1 调试的软/硬件235.4.2 系统的仿真结果235.5 设计技巧分析24 5.6 系统扩展思路24 6 VHDL程序语言和FPGA简介26 6.1 vhdl程序语言介绍:26 6.2 FPGA 简介28 6.3 VHDL 在FPGA中的运用29 结论32附录A:单片机程序和VHDL程序33参考文献56致 谢57 IV1 绪论1 绪论 测量频率是电子测量技术中最常见的测量之一。不少物理量的测量, 如时间、速度等都涉及到或本身可转化为频率的测量。目前, 市场上有各种多功能、高精度、高频率的数字频率计, 但价格不菲。而在实际工程中, 并不是对所有信号的频率测量都要求达到非常高的精度。目前, 有三种常用的数字频率的测量方法: 直接测量法(以下称M法) 、周期测量法(以下称T法) 和综合测量法(以下称M /T法) 。M法是在给定的闸门时间内测量被测信号的脉冲个数, 进行换算得出被测信号的频率。T法是通过测量被测信号一个周期时间计时信号的脉冲个数, 然后换算出被测信号的频率。这两种测量法的精度都与被测信号有关, 因而它们属于非等精度测量法。而M /T法它通过测量被测信号数个周期的时间, 然后换算得出被测信号的频率, 克服了测量精度对被测信号的依赖性。M /T法的核心思想是通过闸门信号与被测信号同步, 将闸门时间控制为被测信号周期长度的整数倍。测量时, 先打开预置闸门, 当检测到被测信号脉冲沿到达时, 标准信号时钟开始计数。预置闸门关闭时, 标准信号并不立即停止计数, 而是等检测到被测信号脉冲沿到达时才停止, 完成被测信号整数周期的测量。测量的实际闸门时间与预置闸门时间可能不完全相同, 但最大差值不超过被测信号的一个周期。192 系统设计方案2 系统设计方案2.1系统设计方案的选择根据频率计的设计要求,我们可将整个电路系统划分为几个模块,频率测量模块,周期测量模块,脉宽测量模块,和占空比测量模块。标准频率发生电路采用高频率稳定度和高精度的晶镇作为标准频率发生器。如图所示。各模块的实现均有几种不同的设计方案。 图2.1 频率计组成模块框图2.1.1 频率测量模块直接测频法:把被测频率信号经脉冲整形电路处理后加到闸门的一个出入端,只有在闸门开通时间T(以秒计)内,被计数的脉冲送到十进制计数器进行计数;设计数器的值为N,则可得到被测信号频率为f=N/T,经分析,本测量在低频率的相对测量误差较大,即在低频段不能满足本设计的要求。组合测频法:这种方法可以在一定程度上弥补方法(1)中的不足,但是难以确定最佳分测点,且电路实现较复杂。倍频法:是指把频率测量范围分成多个频段,使用倍频技术,根据频段设置倍频系数,将经整形的低频信号进行倍频后在进行测量,对高频段则直接进行测量。倍频法较难实现。等精度测频法:其实现方式可用图2.2来说明。图中,预置门控信号是宽度为TPR的一个脉冲,CNT1和CNT2是两个可控计数器。标准频率信号从CNT1的时钟输出端CLK输入,其频率为fs,经整形后的被测信号从CNT2的时钟输入端CLK输入,设其实际频率为fx;当预置门控信号为高时,经整形后的被测信号的上升沿通过D触发器的Q端同时启动计数器CNT1和CNT2。CNT1和CNT2分别对被测信号(频率为fs)和标准频率信号(频率为fx)同时计数。当预置门信号为低时,随后而至的被测信号的上升沿将两个计数器同时关闭。设在一次预置门时间Tpr内对被测信号的计数值为Nx,对标准信号的计数值为Ns。则下式成立:fx/Nx=fs/Ns由此推得:fx=fs*Nx/Ns图2.2 等精度测频法原理框图若所测频率值为fx,其真实值为fxe,标准频率为fs,一次测量中,由于fx计数的起停时间都是该信号的上跳沿触发的,因此在Tpr时间内对fx的计数Nx无误差,在此时间内的计数Ns最多相差一个脉冲,即fx/Nx=fs/Ns,则下式成立: fxe/Nx=fs/Ns+et 可分别推得 fx=fs*Nx/Ns fxe=fs*Nx/Ns+et 根据相对误差的公式有:fxe/fxe=fxe-fx/fxe 经整理可得到:fxe/fxe=et/Ns因et1,故fxe/fxe1/Ns Ns=Tpr*fs根据以上分析,我们可知等精度测频法具有三个特点:1,相对测量误差与被测频率的高低无关;2,增大Tpr或fs可以增大Ns,减少测量误差,提高测量精度;3,测量精度与预置门宽度和标准频率有关,与被测信号的频率无关,在预置门和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法的测量精度不变; 经过综合考虑,结合设计需求,选用第种方案,即用等精度测频法来实现本设计频率测量。2.1.2 周期测量模块直接周期测量法:用被测信号经放大整形后形成的方波信号直接控制计数门控电路,使主门开放时间等于信号周期Tx,时标为Ts的脉冲在主门开放时间进入计数器。设在Tx期间计数值为N,可以根据以下公式来算得被测信号周期:Tx=N*Ts经误差分析,可得结论:用该测量法测量时,被测信号的频率越高,测量误差越大。等精度周期测量法:该方法在测量电路和测量精度上与等精度测量完全相同,只是在进行计算时公式不同,在周期1/T代换频率f即可,其计算公式为Tx=Ts*Ns/Nx从降低电路的复杂度及提高精度(特别是高频)上考虑,本设计拟采用方法测量被测信号的周期。2.1.3 脉宽测量模块在进行脉冲宽度测量时,首先经信号处理电路进行处理,限制只有信号的50%幅度及其以上部分才能输入数字测量部分。脉冲边沿被处理得非常陡峭,然后送入测量计数器进行测量。测量电路在检测到脉冲信号的上升沿时打开计数器,在下降沿是关闭计数器,设脉冲宽度为Twx,计算公式为:Twx=Nx/fs。2.1.4 占空比测量模块 测一次脉冲信号的脉宽,记录其值为Twx1,然后将信号反相,再测一次脉宽并记录起值为Twx2,通过下式计算占空比:占空比=Twx1/(Twx1+Twx2)*100%3 系统总体设计方案3 系统总体设计方案等精度数字频率计涉及到的计算包括加,减,乘,除,耗用的资源比较大,用一般中小规模CPLD/FPGA芯片难以实现。因此,我们选择单片机和CPLD/FPGA的结合来实现。电路系统原理框图如图所示,其中单片机完成整个测量电路的测试控制,数据处理和显示输出;CPLD/FPGA完成各种测试功能;键盘信号由AT89C51单片机进行处理,它从CPLD/FPGA读回计数数据并进行运算,向显示电路输出测量结果;显示器电路采用七段LED动态显示,由8个芯片74LS164分别驱动数码管。图3.1 等精度数字频率计电路系统原理框图系统的基本工作方式如下:P0是单片机与FPGA的数据传送通信口,P1口用于键盘扫描,实现各测试功能的转换;P2口为双向控制口。P3口为LED的串行显示控制口;系统设置5个功能键:占空比,脉宽,周期,频率,和复位。7个LED数码管组成测量数据显示器,另一个独立的数码管用于状态显示。BCLK 为测频标准频率为50MHz 信号输入端,由晶体震荡源电路提供。待测信号经放大整形后输入CPLD/FPGA 的TCLK。4 CPLD/FPGA测频专用模块的VHDL程序设计4 CPLD/FPGA测频专用模块的VHDL程序设计4.1测频模块逻辑结构利用VHDL程序设计的测频模块逻辑结构如图所示,其中有关的接口信号规定如下:TP(P2.7):TF=0 时等精度测频;TF=1 时测脉宽; CLR/TRIG(P2.6):当TF=0 时系统全清零功能;当TF=1 时CLRTRIG 的上跳沿将启动CNT2 ,进行脉宽测试计数; ENDD (P2.4):脉宽计数结束状态信号,ENDD=1计数结束;CHOICE(P3.2):自校/测频选择,CHOICE=1 测频;CHOICE=0自校; START(P2.5):当TF=0 时,作为预置门闸,门宽可通过键盘由单片机控制,START=1时预置门开;当TF=1时,START有第二功能,此时,当START=0时测负脉宽,当START=1时测正脉宽。利用此功能可分别获得脉宽和占空比数据。 EEDN(P2.3):等精度测频计数结束状态信号,EEND=0时计数结束。 SELP2.2(P2.2,P2.1,P2.0):计数值读出选通控制;当SEL2.0=“000”,“001”, “010”. “111”时,将CNT1,CNT2的计数值分8次,每次读出8位,并传达到单片机的P0口。图4.1 测频模块逻辑图4.2 各模块功能和工作步骤如下:4.2.1 测频/测周期的实现被测信号脉冲从CONTRL模块的FIN端输入,标准频率信号从CONTRL 的FSD端输入,CONTRL的CLR是此模块电路的工作初始化信号输入端。在进行频率或周期测量时,其工作步骤如下: 令TF=0,选择等精度测频,然后再CONTRL的CLR端加一正脉冲信号以完成测试电路状态的初始化。 由预置门控信号将CONTRL的START端置高电平,预置门开始定时,此时由被测信号的上沿打开计数器CNT1进行计数,同时使标准频率信号进入计数器CNT2。 预置门定时结束信号把CONTRL的START端置为低电平(由单片机来完成),在被测信号的下一次脉冲的上沿到来时,CNT1停止计数,同时关断CNT2对FS的计数。 计数结束后,CONTRL的EEND端将输出低电平来指示测量计数结束,单片机得到此信号后,即可利用ADRC(P2.2),ADRB(P2.1),ADRA(P2.0)分别读回CNT1 和CNT2的计数值,并根据精度测量公式进行运算,计算出被测信号的频率或周期值。4.2.2 控制部件设计如图所示,当D触发器的输入端START为高电平时,若FIN端来一个上升沿,则Q端变为高电平,导通FIN-CLK1和FSD-CLK2,同时EEND被置为高电平作为标志;当D触发器的输入端START为低电平时,若FIN端输入一个脉冲上沿,则FIN-CLK1与FSD-CLK2的信号通道被切断。图4.2 测频与测周期控制部分电路计数部件设计 图中的计数器CNT1/CNT2是32位二进制计数器,通过DSEL模块的控制,单片机可分4次将其32位数据全部读数。4.2.3 脉冲宽度测量和占空比测量模块设计 根据上述脉宽测量原理,设计如图(CONTRL)所示的电路原理示意图。该信号的上沿和下沿信号对应于未经处理时的被测信号50%幅度时的上沿和下沿.被测信号从FIN端输入,CLR为初始化信号 9 执行键盘命令 LJMP KKE1 DELAY1: MOV R1,#6FH WWW1: MOV R0,#0FFH NMN1: DJNZ R0,NMN1 DJNZ R1,WWW1 RETDELAY2: MOV R1,#0fFH WWW2: MOV R0,#0FFH NMN2: DJNZ R0,NMN2 DJNZ R1,WWW2 RETDELAY3: MOV R1,#0fFH WWW3: MOV R0,#0FFH WWW4: MOV R2,#00FH NMN5: DJNZ R2,NMN5 DJNZ R0,WWW4 DJNZ R1,WWW3 RET; 66666666666666666666666666666666666666666666666KN888: LJMP KN88 KCOM1: CJNE A,#00H,KN888 ; 键1控制 MOV 18H,#25H MOV 17H,#01H MOV 0BH,#00H MOV 0AH,#00H LJMP TESTF1 ; 测频率KNJ99: LJMP KN99KN88: CJNE A,#01H,KNJ99 ; 键2控制 RET ; 测占空比KAAN7: LJMP KAAN ; 测脉宽KN99: CJNE A,#02H,KAAN7 ; 键3控制 RET;PPPPPPPPPPPPPPPPPPPPPPPPPPPPPKAAN: CJNE A,#03H,KBBN ; 测相差 ; 键4控制 RETKBBN: CJNE A,#04H,KDDN ; 键5控制RETKDDN: CJNE A,#05H,KEEN ; 键6控制RETKEEN: CJNE A,#06H,KFFN ; 键7控制 RETKFFN: CJNE A,#07H,KZZN ; 键8控制KZZN: RET LJMP KKE1; LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL; 测频率; F = (TCLK X 50MHz ) X 1000000 / BCLKIF 1=3 TESTF: LCALL DELAY2 SETB P2.7 ; START 口预备 CLR P2.1 ; CL SETB P2.3 ; EEND: SETB P2.2 ; SPUL:选择CL为预置门控信号 CLR P2.0 SETB P2.0 CLR P2.0 ; 清零 SETB P2.1 ; CL : 预置门打开 WWTT: JNB P2.7,WWTT ; 测START口,为1,表明已经开始计数,否则继续等待LCALL DELAY1 ; 已经开始计数,设置计数时间 CLR P2.1 ; 设置CL为0,关闭预置门WWTT1: JB P2.7,WWTT1 ; 测START口,若为1,表明仍在计数,继续等待 CLR P2.1 ; 计数结束,可以读出计数结果ENDIFTESTF1: CLR P2.6 ; SEL2 : 读标准频率数 CLR P2.5 ; SEL1 CLR P2.4 ; SEL0 LCALL DELAY3 MOV A,P0 LCALL DELAY2 MOV 20H,A ; 读标准频率最底8位数SETB P2.4 ; SEL0 CLR P2.5 ; SEL1 CLR P2.6 ; SEL2LCALL DELAY3 MOV A,P0 LCALL DELAY2 MOV 21H,ACLR P2.4 ; SEL0 SETB P2.5 ; SEL1 CLR P2.6 ; SEL2LCALL DELAY3 MOV A,P0 LCALL DELAY2 MOV 22H,ASETB P2.4 ; SEL0 23H,22H,21H,20H 标准频率计数 SETB P2.5 ; SEL1 CLR P2.6 ; SEL2LCALL DELAY3 MOV A,P0 LCALL DELAY2 MOV 23H,A ; 读标准频率最高8位数 ; IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII CLR P2.4 ; SEL0 CLR P2.5 ; SEL1SETB P2.6 ; SEL2 读待测频率数 LCALL DELAY3 MOV A,P0 LCALL DELAY2 MOV 24H,ASETB P2.4 ; SEL0 CLR P2.5 ; SEL1 SETB P2.6 ; SEL2 LCALL DELAY3 MOV A,P0 LCALL DELAY2 MOV 25H,ACLR P2.4 ; SEL0 SETB P2.5 ; SEL1 SETB P2.6 ; SEL2 LCALL DELAY3 MOV A,P0 LCALL DELAY2 MOV 26H,ASETB P2.4 ; SEL0 27H,26H,25H,24H 待测频率计数 SETB P2.5 ; SEL1 SETB P2.6 ; SEL2 LCALL DELAY3 MOV A,P0 LCALL DELAY2 MOV 27H,A ; KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK计算TEST01:if 1=4 MOV 4AH,#2DH ;16H ; 50MHZ X 1000000 = 2D79883D2000H MOV 4BH,#79H ;0BCH MOV 4CH,#88H ;0C4H MOV 4DH,#3DH ;1EH MOV 4EH,#20H ;90H MOV 4FH,#00H MOV 4AH,#00H ;16H ; 50MHZ X 1000000 = 2D79883D2000H MOV 4BH,#00H ;0BCH MOV 4CH,#00H ;0C4H MOV 4DH,#0B7H ;1EH MOV 4EH,#1BH ;90H MOV 4FH,#00Hendif MOV 4AH,#00H ;00H ; 20MHZ = 01312D00H MOV 4BH,#00H ;00H MOV 4CH,#01H ;01H MOV 4DH,#31H ;31H MOV 4EH,#2DH ;2DH MOV 4FH,#00H ;00H MOV 5AH,#00H MOV 5BH,#00H MOV 5CH,27H MOV 5DH,26H MOV 5EH,25H MOV 5FH,24H LCALL MULNM ; 50MHZ X 1000000 = 2D79883D2000H MOV 44H,54H MOV 45H,55H MOV 46H,56H MOV 47H,57H MOV 48H,58H MOV 49H,59H MOV 4AH,5AH MOV 4BH,5BH MOV 4CH,5CH MOV 4DH,5DH MOV 4EH,5EH MOV 4FH,5FHMOV 5AH,#00H MOV 5BH,#00H MOV 5CH,23H MOV 5DH,22H MOV 5EH,21H MOV 5FH,20H LCALL DIVD1MOV 30H,4FH MOV 31H,4EH MOV 32H,4DH MOV 33H,4CH MOV 34H,4BH MOV 35H,4AH MOV 36H,#00H LCALL HEXBC; 00000000000000000000000000000 L43Y: MOV A,40H ; 显示 ANL A,#0FH MOV 72H,A MOV A,40H ANL A,#0F0H SWAP A MOV 73H,A MOV A,41H ANL A,#0FH MOV 74H,A MOV A,41H ANL A,#0F0H SWAP A MOV 75H,A MOV A,42H ANL A,#0FH MOV 76H,A MOV A,42H ANL A,#0F0H SWAP A MOV 77H,AMOV A,43H ANL A,#0FH MOV 78H,A MOV A,43H ANL A,#0F0H SWAP A MOV 79H,A LCALL DIRR00 SJMP $; LJMP TESTF ;RETDIRR00: PUSH DPL PUSH DPH ; 显示子程序 MOV R3,#08H MOV R1,#72HNOPOT0: MOVA,R1 ; CDIR MOV DPTR,#ZASU91 MOVC A,A+DPTR MOVR1,A INC R1 DJNZ R3,NOPOT0 MOV R1,#79H MOV R3,#08H JQO0: MOVA,R1 MOV SBUF,A JNB TI,$ CLR TI DEC R1 DJNZ R3,JQO0 POP DPH POP DPL RET; a,b,c,d,e,f,g,hZASU91:db 0c0h,0f9h,0a4h,0b0h,99h,92h db 82h,0f8h,80h,90h,88h db 83h,0c6h,0a1h,86h,8eh db 8ch,0bfh,0ffh,0ch,89h,0c7hBCDHEX : NOP ; N BYTES COMPRESSED BCD CODES TO M BYTES HEX CODES MOV 30H,#07H ; HERE N=M=7 BCD(49,4A,4B,4C,4D,4E,4FH)-HEX(49,4A,4B,4C,5D,5E,5FH) MOV 31H,#07H MOV R1,#ADB MOV R2,AD1 MOV R3,AD0 MOV A,#ADA CLR C SUBB A,R3 INC A MOV R0,A DBNZ: MOV R1,#00H DEC R1 DJNZ R2,DBNZ SJMP DBNB DBNJ: MOV R1,#ADB MOV R2,AD1 CLR 00H CLR A DBNM: XCH A,R1 MOV B,#64H MUL AB MOV C,00H ADDC A,R1 MOV R1,A MOV 00H,C MOV A,B DEC R1 DJNZ R2,DBNM DBNB:CLR A XCHD A,R0 XCH A,R0 SWAP A MOV B,#0AH MUL AB ADD A,R0 INC R0 DBNA:MOV R2,AD1 DEC R2 MOV R1,#ADB ADD A,R1 MOV R1,A DBNL:DEC R1 CLR A ADDC A,R1 MOV R1,A DJNZ R2,DBNL DJNZ R3,DBNJ RET DB 02H,12H; llllllllllllllllllllllllllllllllllllllllllllHEXBCD : NOP ; 7 BYTE HEX TO 8 BYTE BCD : HEX(3XH-30H)-BCD(4XH-40H) MUBTD: MOV R0,#40H MOV R7,#08H CLR A LOPP1: MOV R0,A INC R0 DJNZ R7,LOPP1MOV R7,#38H LOOP4: MOV R1,#30H MOV R6,#07H CLR CLOPP2: MOV A,R1 RLC A MOV R1,A INC R1 DJNZ R6,LOPP2MOV R5,#08H MOV R0,#40HLOOP3: MOV A,R0 ADDC A,R0 DA A MOV R0,A INC R0 DJNZ R5,LOOP3 DJNZ R7,LOOP4 RET; kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk DIVD1: NOP ; 2N BYTE / N BYTE = N BYTE ,HERE N=3 IN 31H MOV30H,#0CH ; (4A,4B,4C,4D,4E,4FH)/(5D,5E,5FH)=(4D,4E,4FH) MOV31H,#06H DIVPP: MOVA,AD1 MOVR2,A RLA RLA RLA MOVR3,A CLR0F0H CLRC MOVA,#ADA SUBBA,R2 MOVAD3,A MOVR1,#ADB DIVMB2B: MOVA,R1 JNZDIVM2B DECR1 DJNZR2,DIVMB2B SETB0F0H RET DIVM2B: MOVR2,AD1 MOVR1,#ADB MOVR0,AD3 DIVM2L: MOVA,R0 SUBBA,R1 DECR0 DECR1 DJNZR2,DIVM2L JNCDIVM20 DIVM2D: LCALL SHIL1 JCDIVM2S DIVM2C: MOVR0,AD3 MOVR1,#ADB MOVR2,AD1 DIVM2CL: MOVA,R0 SUBBA,R1 DECR0 DECR1 DJNZR2,DIVM2CL JCDIVM2E DIVM2S: INCADA MOVR2,AD1 MOVR0,AD3 MOVR1,#ADB LCALL SUBMBB DIVM2E: DJNZR3,DIVM2D RET DIVM20: SETB0F0H RET DB 02H,12HSHIL1: MOVR2,AD0 MOVR0,#ADA SHIL1B: CLRC SHILL: MOVA,R0 RLCA MOVR0,A DECR0 DJNZR2,SHILL RETCOMP2: MOVR1,#ADA ; TAKING CPL BYTE NUM. N IS IN 30H MOVR2,AD0 COMP2B: SETBC COMP2L: MOVA,R1 CPLA ADDCA,#00H MOVR1,A DECR1 DJNZR2,COMP2L RETADDMB: MOV R2,AD0 ; NO SIGN N BYTES ADDS N BYTES MOVR0,#ADA ; (.4FH)+(.5FH)=(.4FH) MOVR1,#ADB ADDMBB: CLRC ADDL: MOVA,R0 ADDCA,R1 MOVR0,A DECR0 DECR1 DJNZR2,ADDL RETSUBMB: MOVR2,AD0 ; NO SIGN N BYTES MINUSE N BYTES MOVR0,#ADA ; (.4FH)-(.5FH)=(.4FH) MOVR1,#ADB SUBMBB: CLRC SUBMB1: MOVA,R0 SUBBA,R1 MOVR0,A DECR0 DECR1 DJNZR2,SUBMB1 RET AD0 EQU30H AD1 EQU31H AD2 EQU32H AD3 EQU33H AD4 EQU34H AD5 EQU35H AD6 EQU36H ADA EQU4FH ADB EQU5FH ADC EQU4DH ADDV EQU5DHMULNM: NOP ; N BYTES X M BYTES = N+M BYTES HERE N=3;M=3 MOV30H,#06H ; (4D,4E,4FH)*(5D,5E,5FH)=(5A-5FH) MOV31H,#06HMULTT: MOVA,AD0 MOVR3,AD1 MOVR2,A ADDA,R3 INCA MOVAD2,A MOVA,#ADB CLRC SUBBA,R3 MOVAD6,A MOVR1,A SUBBA,R2 MOVAD5,A INCR2 MULNMZ: MOVR1,#00H DECR1 DJNZR2,MULNMZ MULNMB: MOVR2,AD0 MOVR1,AD6 MOVR0,#ADA CLR00H MULNML: MOVA,ADB JZMULNMD MOVB,R0 MULAB ADDA,R1 MOVR1,A JNB00H,MULNM1 INCB MULNM1: MOVA,B DECR1 ADDCA,R1 MOVR1,A MOV00H,C DECR0 DJNZR2,MULNML MULNMD: MOVR0,AD5 CLRA MOVR2,AD2 MULNMS: XCHA,R0 INCR0 DJNZR2,MULNMS DJNZR3,MULNMB RET; LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKEYII:LCALL KKS1 JNZ KLK1KNN1: LCALL DELAY LCALL DELAY SETB 28H.3 RETKKEYI:LCALL KKS1 JNZ KLK1KN1:LCALL DELAY LCALL DELAY LJMP KKEYIKLK1:LCALL DELAY LCALL DELAY LCALL KKS1 JNZ KLK2 LCALL DELAY LJMP KKEYIKLK2:NOP JB P1.0,NOK1 MOV A,#00H LJMP GOHMNOK1:NOP JB P1.1,NOK2 MOV A,#01H LJMP GOHMNOK2:NOP JB P1.2,NOK3 MOV A,#02H LJMP GOHMNOK3:NOP JB P1.3,NOK4 MOV A,#03H LJMP GOHMNOK4:NOP JB P1.4,NOK5 MOV A,#04H LJMP GOHMNOK5:NOP JB P1.5,NOK6 MOV A,#05H LJMP GOHMNOK6:NOP JB P1.6,NOK7 MOV A,#06H LJMP GOHMNOK7:NOP JB P1.7,KLK1 MOV A,#07HGOHM:PUSH ACCKLK3:LCALL DELAY LCALL KKS1 JNZ KLK3 LCALL DELAY LCALL KKS1 JNZ KLK3 POP ACC CLR 28H.3 RETKKS1:MOV P1,#0FFH NOP MOV A,P1 CPL A RETDELAY:MOV R1,#09HWWW:MOV R0,#0FFHNMN:DJNZ R0,NMN DJNZ R1,WWW RET; TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT NL0: MOV R0,#10H MOV R1,#0EHCLRRT: MOV R0,#12H INC R0 DJNZ R1,CLRRT RETENDLIBRARY IEEE; - 2004;GWDVPB 选择模式5USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY etester IS PORT (BCLK : IN STD_LOGIC; -标准频率时钟信号CLOCK2:P124 TCLK : IN STD_LOGIC; -PIO16 待测频率时钟信号:P39 CLR : IN STD_LOGIC; -PIO0 清零和初始化信号:P1 CLRO : BUFFER STD_LOGIC; CL : IN STD_LOGIC; -PIO1 当SPUL为高电平时,CL为预置门控信号,用于测频计数时间控制 -当SPUL为低电平时,CL为测脉宽控制信号,CL高电平时测高电平脉宽 -而当CL为低电平时,测低电平脉宽。:P2 CLO : BUFFER STD_LOGIC; SPUL : IN STD_LOGIC; -PIO2 测频或测脉宽控制:P3 SPULO : BUFFER STD_LOGIC; START : OUT STD_LOGIC; -PIO7:P10 EEND : OUT STD_LOGIC; -PIO3 由低电平变到高电平时指示脉宽计数结束:P4? START1 : OUT STD_LOGIC; -PIO7:P10 EEND1 : OUT STD_LOGIC; -PIO3 由低电平变到高电平时指示脉宽计数结束:P4, SEL : IN STD_LOGIC_VECTOR(2 DOWNTO 0); -PIO6/PIO5/PIO4:P7、P6、P5 -两个32位计数器计数值分8位读出多路选择控制 SELO : OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -PIO6/PIO5/PIO4:P7、P6、P5 SELE : IN STD_LOGIC_VECTOR(1 DOWNTO 0); -PIO6/PIO5/PIO4:P7、P6、P5 DATA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -PIO8/9/10/11/12/13/14/15 8位数据读出 DATA1 : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); -PIO8/9/10/11/12/13/14/15 8位数据读出 CLK:IN STD_LOGIC;SEC1:OUT STD_LOGIC;SEC2:OUT STD_LOGIC); -P11、P32、P33、P34、P35、P36、P37、P38END etester;ARCHITECTURE behav OF etester IS COMPONENT sec is port(CLK:in std_logic; SEC1:out std_logic; SEC2:OUT STD_LOGIC); end COMPONENT sec; SIGNAL BZQ : STD_LOGIC_VECTOR(31 DOWNTO 0); -标准计数器 SIGNAL TSQ : STD_LOGIC_VECTOR(31 DOWNTO 0); -测频计数器 SIGNAL ENA : STD_LOGIC; - 计数使能 SIGNAL MA : STD_LOGIC; SIGNAL CLK1 : STD_LOGIC; SIGNAL CLK2 : STD_LOGIC; SIGNAL CLK3 : STD_LOGIC; SIGNAL Q1 : STD_LOGIC; SIGNAL Q2 : STD_LOGIC; SIGNAL Q3 : STD_LOGIC; SIGNAL BENA : STD_LOGIC; SIGNAL PUL : STD_LOGIC; -脉宽计数使能 SIGNAL SS : STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN U0:SEC PORT MAP(CLK,SEC1,SEC2); START = ENA ; START1 = ENA ; DATA = BZQ(7 DOWNTO 0) WHEN SEL = 000 ELSE - 标准频率计数低8位输出 BZQ(15 DOWNTO 8) WHEN SEL = 001 ELSE BZQ(23 DOWNTO 16) WHEN SEL = 010 ELSE BZQ(31 DOWNTO 24) WHEN SEL = 011 ELSE - 标准频率计数最高8位输出 TSQ(7 DOWNTO 0) WHEN SEL = 100 ELSE -待测频率计数值最低8位输出 TSQ(15 DOWNTO 8) WHEN SEL = 101 ELSE TSQ(23 DOWNTO 16) WHEN SEL = 110 ELSE TSQ(31 DOWNTO 24) WHEN SEL = 111 ELSE -待测频率计数值最高8位输出 TSQ(31 DOWNTO 24) ; DATA1 = BZQ(15 DOWNTO 0) WHEN SELE = 00 ELSE BZQ(31 DOWNTO 16) WHEN SELE = 01 ELSE TSQ(15 DOWNTO 0) WHEN SELE = 10 ELSE TSQ(31 DOWNTO 16) WHEN SELE = 11 ELSETSQ(31 DOWNTO 16);- HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH BZH : PROCESS(BCLK, CLR) -标准频率测试计数器,标准计数器 BEGIN IF CLR = 1 THEN BZQ 0 ) ; ELSIF BCLKEVENT AND BCLK = 1 THEN IF BENA = 1 THEN BZQ = BZQ + 1; END IF; END IF; END PROCESS;- gggggggggggggggggggggggggggggggggggggggggggggggggggg TF : PROCESS(TCLK, CLR, ENA) -待测频率计数器,测频计数器 BEGIN IF CLR = 1 THEN TSQ 0 ); ELSIF TCLKEVENT AND TCLK = 1 THEN IF ENA = 1 THEN TSQ = TSQ + 1; END IF; END IF; END PROCESS;-FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PROCESS(TCLK,CLR) -计数控制使能触发器,CL为预置门控信号,同时兼作正负脉宽测试控制信号 BEGIN IF CLR = 1 THEN ENA = 0 ; ELSIF TCLKEVENT AND TCLK = 1 THEN ENA = CL ; END IF; END PROCESS;-OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO MA = (TCLK AND CL) OR NOT(TCLK OR CL) ; -测脉宽逻辑 CLK1 = NOT MA ; CLK2 = MA AND Q1 ; CLK3 = NOT CLK2 ; SS = Q2 & Q3 ;- HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH DD1: PROCESS(CLK1,CLR) BEGIN IF CLR = 1 THEN Q1 = 0 ; ELSIF CLK1EVENT AND CLK1 = 1 THEN Q1 = 1 ; END IF; END PROCESS;DD2: PROCESS(CLK2,CLR) BEGIN IF CLR = 1 THEN Q2 = 0 ; ELSIF CLK2EVENT AND CLK2 = 1 THEN Q2 = 1 ; END IF; END PROCESS;DD3: PROCESS(CLK3,CLR) BEGIN IF CLR = 1 THEN Q3 = 0 ; ELSIF CLK3EVENT AND CLK3 = 1 THEN Q3 = 1 ; END IF; END PROCESS;- HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:等精度数字频率计的设计
链接地址:https://www.renrendoc.com/p-516567.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!