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

毕业设计111等精度数字频率计的设计

收藏

压缩包内文档预览:(预览前20页/共61页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:545746    类型:共享资源    大小:896.04KB    格式:ZIP    上传时间:2015-12-01 上传人:QQ28****1120 IP属地:辽宁
6
积分
关 键 词:
电气电子毕业设计论文
资源描述:
毕业设计111等精度数字频率计的设计,电气电子毕业设计论文
内容简介:
摘 要 I 等精度数字频率计的设计 摘 要 基于传统测频原理的频率计的测量精度将随着被测信号 频率的下降而降低,在实用中有很大的局限性,而等精度频率计不但有较 高的测量精度,而且在整个测频区域内保持恒定的测试精度。 运用等精度测量原理,结合单片机技术 设计了一种数字频率计,由于采用了屏蔽驱动电路及数字均值滤波等技术措施,因而能在较宽定的频率范围和幅度范围内对频率,周期,脉宽,占空比等参数进行测量,并可通过调整闸门时间预置测量精度。 选取的这种综合测量法作为数字频率计的测量算法,提出了基于 FPGA 的数字频率计的设计方案。给 出了该设计方案的实际测量效果,证明该设计方案切实可行,能达到较高的频率测量精度。 关键词 等精度测量,单片机,频率计,闸门时间 , FPGA nts ABSTRACT Along 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 nts目 录 III 目 录 摘 要 I ABSTRACT II 1 绪论 1 2 系统设计方案 2 2.1系统设计方案的选择 2 2.1.1 频率测量模块 2 2.1.2 周期测量模块 4 2.1.3 脉宽测量模块 4 2.1.4 占空比测量模块 4 3 系统总体设计方案 5 4 CPLD/FPGA 测频专用模块的 VHDL 程序设计 6 4.1 测频模块逻辑结构 6 4.2 各模块功能和工作步骤如下 : 6 4.2.1 测频 /测 周期的实现 7 4.2.2 控制部件设计 7 4.2.3 脉冲宽度测量和占空比测量模块设计 7 4.2.4 电路显示模块 8 4.2.5 数码管的编码表 10 5 单片机控制与运算程序的设计 11 5.1 AT89C51RC 单片机简介 11 5.2 软件调试系统 19 5.3具体试验过程 20 5.3.1 第一次测试 20 5.3.2 第二次计算 22 5.4 系统调试的方法 23 5.4.1 调试的软 /硬件 23 5.4.2 系统的仿真结果 23 5.5 设计技巧分析 24 5.6 系统扩展思路 24 6 VHDL 程序语言和 FPGA 简介 26 6.1 vhdl 程序语言介绍 : 26 6.2 FPGA 简介 28 6.3 VHDL 在 FPGA 中的运用 29 nts结论 32 附录 A: 单片机程序 和 VHDL 程序 33 参考文献 56 致 谢 57 nts1 绪论 1 1 绪论 测量频率是电子测量技术中最常见的测量之一。不少物理量的测量 , 如时间、速度等都涉及到或本身可转化为频率的测量。目前 , 市场上有各种多功能、高精度、高频率的数字频率计 , 但价格不菲。而在实际工程中 , 并不是对所有信号的频率测量都要求达到非常高的精度。 目前 , 有三种常用的 数字频率的测量方法 : 直接测量法 (以下称 M法 ) 、周期测量法 (以下称 T法 ) 和综合测量法 (以下称 M /T法 ) 。 M法是在给定的闸门时间内测量被测信号的脉冲个数 , 进行换算得出被测信号的频率。 T 法是通过测量被测信号一个周期时间计时信号的脉冲个数 , 然后换算出被测信号的频率。这两种测量法的精度都与被测信号有关 , 因而它们属于非等精度测量法。而 M /T法它通过测量被测信号数个周期的时间 , 然后换算得出被测信号的频率 , 克服了测量精度对被测信号的依赖性 。 M /T法的核心思想是通过闸门信号与被测信号同步 , 将闸门时间 控制为被测信号周期长度的整数倍。测量时 , 先打开预置闸门 , 当检测到被测信号脉冲沿到达时 , 标准信号时钟开始计数。 预置闸门关闭时 , 标准信号并不立即停止计数 , 而是等检测到被测信号脉冲沿到达时才停止 , 完成被测信号整数周期的测量。 测量的实际闸门时间与预置闸门时间可能不完全相同 , 但最大差值不超过被测信号的一个周期 。 nts本科毕业设计(论文) 2 2 系统设计方案 2.1 系统设计方案的选择 根据频率计的设计要求,我们可将整个电路系统划分为几个模块, 频率测量模块,周期测量模块,脉宽测量模块,和占空比测量模块。标准频率发生电路采用高 频率稳定度和高精度的晶镇作为标准频率发生器。 如图所示。各模块的实现均有几种不同的设计方案。 图 13.1 频率计组成模块框图标准频率信号发生电路脉冲宽度测量电路脉冲信号处理电路占空比测量电路前置放大电路 波形整形电路控制与数据处理电路显示电路稳压电源频率、周期测量电路被测信号输入预置门控信号图 2.1 频率计组成模块框图 2.1.1 频率测量模块 直接测频法:把被测频率信号经脉冲整形电路处理后加到闸门的一个出入端,只有在闸门开通时间 T(以秒计)内,被计数的脉冲送到十进制计数器进行计数;设计数器的值为 N,则可得到被测信号频率为 f=N/T,经分析,本测量在低频率的相对测量误差较大,即在低频段不能满足本设计 的要求。 组合测频法:这种方法可以在一定程度上弥补方法( 1)中的不足,但是难以确定最佳分测点,且电路实现较复杂。 倍频法:是指把频率测量范围分成多个频段,使用倍频技术,根据频段设置倍频系数,将经整形的低频信号进行倍频后在进行测量,对高频段则直接进行nts2 系统设计方案 3 测量。倍频法较难实现。 等精度测频法:其实现方式可用图 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 图 13.2 等精度测频法原理框图标准频率信号预置门控信号 QD清零信号被测信号CNT2OUT2CLRCLKCLKENCNT1OUT1CLRCLKCLKEN图 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 nts因 et 1,故 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% nts3 系统总体设计方案 5 3 系统总体设计方案 等精度数字频率计涉及到的计算包括加,减,乘,除,耗用的资源比较大,用一般中小规模 CPLD/FPGA 芯片难以实现。因此,我们选择单片机和CPLD/FPGA 的结合来实现。电路系统原理框图如图所示,其中单片机完成整个测量电路的测试控制,数据处理和显示输出; CPLD/FPGA 完成各种测试功能;键盘信号由 AT89C51 单片机进行处理,它从 CPLD/FPGA 读回计数数据并进行运算,向显示电路输出测量结果;显示器电路采用七段 LED 动态显示,由 8个芯片74LS164分别驱动数码管。 图 13.3 等精度数字频率计电路系统原理框图信 号 放 大 与整 形 电 路T C L KB C L K显 示 驱 动 7 4 L S 1 6 4 8晶振C P L D / F P G A电源P0P2P 1 . 0 P 1 . 3R E TA T 8 9 C 5 1单 片 机P 3 . 0 P 3 . 1占 空 比 脉宽 周期 频率88复位5 0 M H z待 测 信 号数 码 显 示 L E D 8图 3.1 等精度数字频率计电路系统原理框图 系统的基本工作方式如下: P0 是单片机与 FPGA 的数据传送通信口, P1 口用于键盘扫描,实现各测试功能的转换; P2口为双向控制口。 P3口为 LED 的串行显示控制口;系统设置 5个功能键:占空比,脉宽,周期,频率,和复位。 7个 LED 数码管组成测量数据显示器,另一个独立的数码管用于状态显示。 BCLK 为测频标准频率为 50MHz 信号输入端,由晶体震荡源电路提供。 待测信号经放大整形后输入 CPLD/FPGA 的 TCLK。 nts 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口。 C H K FF INC H O ISF O U TF INS T A R TC L RF S DC L K 1E E N DC L K 2C L R CC L RC L KQ 3 1 .0 C N T 1Q 1 3 1 .0 Q 2 3 1 .0 S E L 2 .0 O O 7 .0 C L RQ 3 1 .0 C N T 2C L KC L RS T A R TF IN P U LE N D DC O N T R L2C L K 2F S DC N LP U LC L K O U TG A T EF IN C O N T R LD S E L2 4427O U T P U T4 1E E N D9O U T P U T4 2O O 7 .0 O U T P U T4 3E N D D61 01 41 5C H E KFF IN P U TC H O IC EIN P U TV C CIN P U TV C CIN P U TV C CIN P U TV C CIN P U TV C CIN P U TV C CIN P U TV C CIN P U TV C CS T A R TC L R T R IGF S T DS E L 2 .0 T F1 81 61 71 92 08图 4.1 测频模块逻辑图 4.2 各模块功能和工作步骤如下 : nts4 CPLD/FPGA 测频专用模块的 VHDL 程序设计 7 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 的信号通道被切断。 图 13.5 测频与测周期控制部分电路D QCCLRCFSDCLK2EENDCLK1CLRSTARTFIN图 4.2 测频与测周期控制部分电路 计数部件设计 图中的计数器 CNT1/CNT2 是 32位二进制计数器,通过 DSEL模块的控制,单片机可分 4次将其 32 位数据全部读数 。 4.2.3 脉冲宽度测量和占空比测量模块设计 nts 根据上述脉宽测量原理,设计如图( CONTRL)所示的电路原理示意图。该信号的上沿和下沿信号对应于未经处理时的被测信号 50%幅度时的上沿和下沿 .被测信号从 FIN 端输入 ,CLR 为初始化信号 9 执行键盘命令 LJMP KKE1 DELAY1: MOV R1,#6FH WWW1: MOV R0,#0FFH NMN1: DJNZ R0,NMN1 DJNZ R1,WWW1 RET DELAY2: MOV R1,#0fFH WWW2: MOV R0,#0FFH NMN2: DJNZ R0,NMN2 DJNZ R1,WWW2 RET DELAY3: MOV R1,#0fFH WWW3: MOV R0,#0FFH WWW4: MOV R2,#00FH nts NMN5: DJNZ R2,NMN5 DJNZ R0,WWW4 DJNZ R1,WWW3 RET ; 66666666666666666666666666666666666666666666666 KN888: LJMP KN88 KCOM1: CJNE A,#00H,KN888 ; 键 1 控制 MOV 18H,#25H MOV 17H,#01H MOV 0BH,#00H MOV 0AH,#00H LJMP TESTF1 ; 测频率 KNJ99: LJMP KN99 KN88: CJNE A,#01H,KNJ99 ; 键 2 控制 RET ; 测占空比 KAAN7: LJMP KAAN ; 测脉宽 KN99: CJNE A,#02H,KAAN7 ; 键 3 控制 RET ;PPPPPPPPPPPPPPPPPPPPPPPPPPPPP KAAN: CJNE A,#03H,KBBN ; 测相差 ; 键 4 控制 RET KBBN: CJNE A,#04H,KDDN ; 键 5 控制 RET KDDN: CJNE A,#05H,KEEN ; 键 6 控制 RET KEEN: CJNE A,#06H,KFFN ; 键 7 控制 RET KFFN: CJNE A,#07H,KZZN ; 键 8 控制 KZZN: RET LJMP KKE1 ; LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL ; 测频率 ; F = (TCLK X 50MHz ) X 1000000 / BCLK IF 1=3 nts附录 A: 部分程序编写 35 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 ; 计数结束,可以读出计数结果 ENDIF TESTF1: 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 ; SEL2 LCALL DELAY3 MOV A,P0 LCALL DELAY2 MOV 21H,A CLR P2.4 ; SEL0 SETB P2.5 ; SEL1 nts CLR P2.6 ; SEL2 LCALL DELAY3 MOV A,P0 LCALL DELAY2 MOV 22H,A SETB P2.4 ; SEL0 23H,22H,21H,20H 标准频率计数 SETB P2.5 ; SEL1 CLR P2.6 ; SEL2 LCALL DELAY3 MOV A,P0 LCALL DELAY2 MOV 23H,A ; 读标准频率最高 8 位数 ; IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII CLR P2.4 ; SEL0 CLR P2.5 ; SEL1 SETB P2.6 ; SEL2 读待测频率数 LCALL DELAY3 MOV A,P0 LCALL DELAY2 MOV 24H,A SETB P2.4 ; SEL0 CLR P2.5 ; SEL1 SETB P2.6 ; SEL2 LCALL DELAY3 MOV A,P0 LCALL DELAY2 MOV 25H,A CLR P2.4 ; SEL0 SETB P2.5 ; SEL1 SETB P2.6 ; SEL2 LCALL DELAY3 MOV A,P0 LCALL DELAY2 MOV 26H,A nts附录 A: 部分程序编写 37 SETB 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,#00H endif 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 nts 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,5FH MOV 5AH,#00H MOV 5BH,#00H MOV 5CH,23H MOV 5DH,22H MOV 5EH,21H MOV 5FH,20H LCALL DIVD1 MOV 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 ; 显示 nts附录 A: 部分程序编写 39 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,A MOV A,43H ANL A,#0FH MOV 78H,A MOV A,43H ANL A,#0F0H SWAP A MOV 79H,A LCALL DIRR00 SJMP $ ; LJMP TESTF ;RET DIRR00: PUSH DPL PUSH DPH ; 显示子程序 MOV R3,#08H MOV R1,#72H ntsNOPOT0: MOV A,R1 ; CDIR MOV DPTR,#ZASU91 MOVC A,A+DPTR MOV R1,A INC R1 DJNZ R3,NOPOT0 MOV R1,#79H MOV R3,#08H JQO0: MOV A,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,h ZASU91: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,0c7h BCDHEX : 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 nts附录 A: 部分程序编写 41 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 nts MOV R1,A DJNZ R2,DBNL DJNZ R3,DBNJ RET DB 02H,12H ; llllllllllllllllllllllllllllllllllllllllllll HEXBCD : 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,LOPP1 MOV R7,#38H LOOP4: MOV R1,#30H MOV R6,#07H CLR C LOPP2: MOV A,R1 RLC A MOV R1,A INC R1 DJNZ R6,LOPP2 MOV R5,#08H MOV R0,#40H LOOP3: 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 nts附录 A: 部分程序编写 43 MOV 30H,#0CH ; (4A,4B,4C,4D,4E,4FH)/(5D,5E,5FH)=(4D,4E,4FH) MOV 31H,#06H DIVPP: MOV A,AD1 MOV R2,A RL A RL A RL A MOV R3,A CLR 0F0H CLR C MOV A,#ADA SUBB A,R2 MOV AD3,A MOV R1,#ADB DIVMB2B: MOV A,R1 JNZ DIVM2B DEC R1 DJNZ R2,DIVMB2B SETB 0F0H RET DIVM2B: MOV R2,AD1 MOV R1,#ADB MOV R0,AD3 DIVM2L: MOV A,R0 SUBB A,R1 DEC R0 DEC R1 DJNZ R2,DIVM2L JNC DIVM20 DIVM2D: LCALL SHIL1 JC DIVM2S DIVM2C: MOV R0,AD3 MOV R1,#ADB MOV R2,AD1 nts DIVM2CL: MOV A,R0 SUBB A,R1 DEC R0 DEC R1 DJNZ R2,DIVM2CL JC DIVM2E DIVM2S: INC ADA MOV R2,AD1 MOV R0,AD3 MOV R1,#ADB LCALL SUBMBB DIVM2E: DJNZR3,DIVM2D RET DIVM20: SETB 0F0H RET DB 02H,12H SHIL1: MOV R2,AD0 MOV R0,#ADA SHIL1B: CLR C SHILL: MOV A,R0 RLC A MOV R0,A DEC R0 DJNZ R2,SHILL RET COMP2: MOV R1,#ADA ; TAKING CPL BYTE NUM. N IS IN 30H MOV R2,AD0 COMP2B: SETB C COMP2L: MOV A,R1 CPL A ADDC A,#00H MOV R1,A DEC R1 DJNZ R2,COMP2L nts附录 A: 部分程序编写 45 RET ADDMB: MOV R2,AD0 ; NO SIGN N BYTES ADDS N BYTES MOV R0,
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:毕业设计111等精度数字频率计的设计
链接地址:https://www.renrendoc.com/p-545746.html

官方联系方式

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

网站客服QQ:2881952447     

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

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

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