1、第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 第第15章章 低频数字相位测量仪的低频数字相位测量仪的 设计与分析设计与分析 15.1 系统设计要求系统设计要求 15.2 系统设计方案系统设计方案 15.3 主要主要VHDL源程序和汇编语言程序源程序和汇编语言程序 15.4 系统仿真系统仿真/硬件验证硬件验证 15.5 设计技巧分析设计技巧分析 15.6 系统扩展思路系统扩展思路 第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 15.1 系统设计要求系统设计要求 设计并制作一个低频数字相位测量仪,其设计要求如下:(1)频率范围:2
2、0 Hz20 kHz。(2)相位测量仪的输入阻抗100 k。(3)允许两路输入正弦信号峰-峰值可分别在15 V范围内变化。(4)相位测量绝对误差2。第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 (5)具有频率测量及数字显示功能。(6)相位差数字显示:相位读数为0359.9,分辨力为0.1。第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 15.2 系统设计方案系统设计方案 15.2.1 总体设计方案 根据系统的设计要求,本系统可分为三大基本组成部分:数据采集电路、数据运算控制电路和数据显示电路。考虑到FPGA/CPLD具有集成度高
3、,I/O资源丰富,稳定可靠,可现场在线编程等优点,而单片机具有很好的人机接口和运算控制功能,本系统拟用FPGA/CPLD和单片机相结合,构成整个系统的测控主体。第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 图15.1 系统原理框图整形电路FPGA或CPLD数据采集电 路单片机数据运算控制电路数据显示电路AINSAIN整形电路BINSBIN第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 15.2.2 信号整形电路的设计 最简单的信号整形电路就是一个单门限电压比较器(如图15.2所示),当输入信号每通过一次零时触发器的输出就要产生一
4、次突然的变化。当输入正弦波时,每过一次零,比较器的输出端将产生一次电压跳变,它的正负向幅度均受到供电电源的限制,因此输出电压波形是具有正负极性的方波,这样就完成了电压波形的整形工作。第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 图15.2 采用单门限触发器的整形电路 761U2ALM339R7VCCAINSBINSBIN123J1CON3GND10 k5412GND3VCC2U2AR6VCC10 kAINLM339BVCCGND第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 为了避免过零点多次触发的现象,我们使用施密特触发器组成
5、的整形电路。施密特触发器在单门限电压比较器的基础上引入了正反馈网络。由于正反馈的作用,它的门限电压随着输出电压Uo的变化而改变,因此提高了抗干扰能力。本系统中我们使用两个施密特触发器对两路信号进行整形,电路图如图15.3所示。第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 图15.3 采用施密特触发器的整形电路 542312U1ALM339761U1BLM339R2R6510 VCCVCCAINSBINSBIN123J1CON3GND5 V5 VR3R1R8R510 kR4100 10 k10 kR7100 10 k10 kR9510 AIN第第1515章章 低
6、频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 15.2.3 FPGA数据采集电路的设计 FPGA数据采集电路的功能就是实现将待测正弦信号的周期、相位差转变为19位的数字量。FPGA数据采集的硬件电路我们可采用FPGA下载板来实现,该下载板包含FPGA芯片、下载电路和配置存储器,其电路结构可参见对应的FPGA下载板说明书。本电路主要是进行FPGA的硬件描述语言(HDL)程序设计。第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 根据系统的总体设计方案,FPGA数据采集电路的输入信号有:CLK系统工作用时钟信号输入端;CLKAA,CLKBB两路被测信号输
7、入端;EN单片机发出的传送数据使能信号,在EN的上升沿,FPGA向单片机传送数据;RSEL单片机发出的传送数据类型信号,当RSEL=0时,FPGA向单片机传送被测信号频率数据,当RSEL=1时,FPGA向单片机传送被测信号相位差数据。FPGA数据采集电路的输出信号有:DATA18.0FPGA到单片机的数据输出口,由输出控制信号EN和RSEL控制。第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 本数字式相位测量仪的要求是测试并显示输入信号频率范围在20 Hz20 kHz,测试并显示信号a、b的相位差,相位差的变化范围为0359.9,相位差的显示分辨力为0.1,要求
8、测量相位的绝对误差2。由此可知:第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 图15.4 FPGA数据采集电路系统组成框图 第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 15.2.4 单片机数据运算控制电路的设计 单片机数据运算控制电路的功能就是负责读取FPGA/CPLD采集到的数据,并根据这些数据计算待测正弦信号的频率及两路同频正弦信号之间的相位差,同时通过功能键切换,显示出待测信号的频率和相位差。第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 单片机数据运算控制电路的硬件可由单片机、晶振电路
9、、按键及显示接口电路等组成。我们在设计中考虑到,单片机具有较强的运算能力和控制能力的特点,因此使用单片机的P0口,P2口及P1.0、P1.1、P1.2、P1.3接收FPGA送来的对应于正弦信号的周期、相位差的19位数据信号,P1口的P1.7、P1.6接入两个轻触按键,完成功能选择与设置。该电路的工作原理是,单片机通过向FPGA发送数据传送指令,使FPGA按照单片机的要求发送数据,同时通过使用单片机的串口,将待显示的数据信息送给数据显示电路显示。其原理图如图15.5所示。第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 图15.5 单片机系统原理图 P10P11P1
10、2P13P14P15P16P17INT1INT0T1T0X2X1RESETRDWRVP/EAP00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27RXDTXDPSENPALE/U18051P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.71234567813121514311918VCCX1X2917163938373635343332D0D1D2D3D4D5D6D72122232425262728A8A9A10A11A12A13A14A15RXDTXDALE10113029C110 FR110 kS3SW_PBC330 pFC130 p
11、FCRYSTAL12MX2X1P1.7P1.6S1 SW_PBS2 SW_PBVCCGNDGND第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 单片机数据运算控制电路的软件设计思路是,单片机不断地从FPGA读取信号的周期和a、b信号相位差所对应的时间差,读取数据后进行有关计算,并通过转换后,送出给显示模块,实现频率和相位差的显示。单片机主程序流程图如图15.6所示。单片机在获取FPGA的数据时,开始的是一般的读取指令MOV指令,分别从单片机的P0口、P2口、P1口的低3位读入数据,组合为一个19位的二进制数据,通过控制口线P1.3、P1.5控制FPGA释放数据。
12、经过多次测试,采用这种方式获得了比较好的效果。单片机读取FPGA数据的程序流程图如图15.7所示。第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 图15.6 主程序流程图 开始初始化从FPGA读a信号周期和a、b信号下降沿的时间差计算a信号的频率和a、b信号的相位差送数据显示第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 图15.7 读FPGA数据程序流程图选通读a、b信号时间差打开闸门,FPGA释放数据P0、P2、P1分别读入数据并存入时间差数据缓冲区关闭闸门,禁止FPGA释放数据返回关闭闸门,禁止FPGA释放数据打开闸门,FP
13、GA释放数据P0、P2、P1分别读入数据并存入周期数据缓冲区选通a信号周期时间第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 单片机从FPGA读取信息后,对信息进行计算,算出信号a的频率,其流程图如图15.8所示。由于a、b信号是两路频率相同、相位不同的正弦波信号,因此经过整形电路后形成频率相同,时间上不重合的两路信号,这样,FPGA可以计数出两路信号的时间差从而可以计算出a、b信号的相位差,其程序流程图如图15.9所示。第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 图15.8 计算a的频率程序流程图 调用除法,计算100000
14、00/a 周期调用二进制BCD转换程序调用压缩BCD码转换为单字节BCD码程序存入数据到显示缓存返回第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 图15.9 计算a、b相位差的程序流程图调用乘法,计算3600tN调用除法,计算 N/a 周期调用二进制BCD转换程序调用压缩BCD码转换为单字节BCD码程序存入数据到显示缓存返回第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 最后单片机需要将信号送到输出端显示出来,即单片机通过显示子程序将信息送到显示电路显示出来,程序流程图如图15.10所示。第第1515章章 低频数字相位测量仪的低
15、频数字相位测量仪的设计与分析设计与分析 图15.10 显示程序流程图 显示开始显示频率,赋频率初始地址2FH.00?N显示相位差,赋相位初始地址Y特殊显示处理查表串行显示指针减10?退出显示YN第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 15.2.5 数据显示电路的设计 整个系统硬件电路中,单片机MCU与FPGA进行数据交换占用了P0口、P1口和P3口,因此数据显示电路的设计采用静态显示的方式,显示电路由8个共阳极七段数码管和8片1位串入8位并出的74LS164芯片组成。这种显示方式不仅可以得到较为简单的硬件电路,而且可以得到稳定的数据输出;这种连接方式不仅
16、占用单片机端口少,而且充分利用了单片机的资源,容易掌握其编码规律,简化了软件编程,在实验过程中,也体现出较高的可靠性。数据显示电路如图15.11所示。第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 图15.11 数据显示电路 abcdefgdpcomafeg bcddp12345678abcdefgdpU11DPYR11 kQ0Q1Q2Q3Q4Q5Q6Q7ABCLKMR345610111213dpgfedcba12RXDTXD74LS164abcdefgdpcomafeg bcddp12345678abcdefgdpU12DPYR21 kQ0Q1Q2Q3Q4Q5
17、Q6Q7ABCLKMR345610111213dpgfedcba1274LS164abcdefgdpcomafeg bcddp12345678abcdefgdpU13DPYR31 kQ0Q1Q2Q3Q4Q5Q6Q7ABCLKMR345610111213dpgfedcba1274LS164abcdefgdpcomafeg bcddp12345678abcdefgdpU17DPYR71 kQ0Q1Q2Q3Q4Q5Q6Q7ABCLKMR345610111213dpgfedcba1274LS164abcdefgdpcomafeg bcddp12345678abcdefgdpU18DYPR81 kQ0Q
18、1Q2Q3Q4Q5Q6Q7ABCLKMR345610111213dpgfedcba1274LS164U1U2U3U7U85 VVCC89898989895 VVCC第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 74LS164是一种8位高速串入/并出的移位寄存器,随着时钟信号的高低变化,串行数据通过一个2输入与门同步的送入,使用独立于时钟的主控复位端让寄存器的输出端变为低电平,并且采用肖特基钳位电路以达到高速运行的目的。并且还具有以下的特点:典型的35 MHz移位频率;异步主控复位;门控串行输入;同步数据传输;采用钳位二极管限制高速的终端;静电放电值大于3500
19、 V。第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 在本系统中,74LS164的连接方式为:74LS164的输出Q0Q7分别接LED数码管的dp、g、f、e、d、c、b、a,并且Q7连接下一个74LS164的A、B端,时钟CLK连接单片机的TXD端,第一片芯片的AB端连接单片机的RXD端,74LS164芯片的主控复位端接高电平VCC。在这种状态下,数码管的编码如表15.1所示。第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 表15.1 数码管的编码表 第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析
20、 15.3 主要主要VHDL源程序和汇编语言程序源程序和汇编语言程序15.3.1 FPGA的VHDL源程序清单 -SZXWYVHD LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SZXWY IS PORT(CLK:IN STD_LOGIC;CLKAA:IN STD_LOGIC;第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 CLKBB:IN STD_LOGIC;EN,RSEL:IN STD_LOGIC;CLKAC,CLKBC:OUT STD_LOGI
21、C;-仿真观测输出点,调试好后应去掉,以下同 CLKFC:OUT STD_LOGIC;-仿真观测输出用 DATAAC:OUT STD_LOGIC_VECTOR(18 DOWNTO 0);-仿真观测输出用 DATABC:OUT STD_LOGIC_VECTOR(18 DOWNTO 0);-仿真观测输出用第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 CLAC,CLBC:OUT STD_LOGIC;-仿真观测输出用 DAC:OUT STD_LOGIC_VECTOR(18 DOWNTO 0);-仿真观测输出用 CLRAC:OUT STD_LOGIC;-仿真观测输出用
22、ENAC:OUT STD_LOGIC;-仿真观测输出用 LOADAC:OUT STD_LOGIC;-仿真观测输出用 DATA:OUT STD_LOGIC_VECTOR(18 DOWNTO 0);第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 END ENTITY SZXWY;ARCHITECTURE ART OF SZXWY IS SIGNAL CLKF:STD_LOGIC;SIGNAL DATAA:STD_LOGIC_VECTOR(18 DOWNTO 0);SIGNAL DATAB:STD_LOGIC_VECTOR(18 DOWNTO 0);SIGNAL CL
23、B:STD_LOGIC;SIGNAL DA:STD_LOGIC_VECTOR(18 DOWNTO 0);SIGNAL CLRA:STD_LOGIC;SIGNAL ENA:STD_LOGIC;SIGNAL LOADA:STD_LOGIC;BEGIN第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 -信号分频模块 FPQ:BLOCK IS BEGIN PROCESS(CLK)IS VARIABLE TEMP:INTEGER RANGE 0 TO 4;VARIABLE CL:STD_LOGIC;BEGIN IF RISING_EDGE(CLK)THEN IF TEMP=
24、3 THEN TEMP:=0;CL:=1;ELSE TEMP:=TEMP+1;第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 CL:=0;END IF;END IF;CLKF=CL;CLKFC=CLKF;-仿真观测输出用 END PROCESS;END BLOCK FPQ;-控制信号产生模块 KZXH:BLOCK IS SIGNAL CLKA,CLKB:STD_LOGIC;SIGNAL CLA:STD_LOGIC;BEGIN 第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 CLKA=NOT CLKAA;CLKB=NOT CLKBB
25、;CLKAC=CLKA;-仿真观测输出用 CLKBC=CLKB;-仿真观测输出用 PROCESS(CLKA)IS BEGIN IF RISING_EDGE(CLKA)THEN CLA=NOT CLA;END IF;ENA=CLA;第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 LOADA=NOT CLA;CLAC=CLA;-仿真观测输出用 ENAC=ENA;-仿真观测输出用 LOADAC=LOADA;-仿真观测输出用 END PROCESS;PROCESS(CLKB)IS BEGIN IF RISING_EDGE(CLKB)THEN CLB=NOT CLB;EN
26、D IF;CLBC=CLB;-仿真观测输出用第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 END PROCESS;PROCESS(CLKA,CLA)IS BEGIN IF CLKA=0 AND CLA=0 THEN CLRA=1;ELSE CLRA=0;END IF;CLRAC=CLRA;-仿真观测输出用 END PROCESS;END BLOCK KZXH;第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 -时间检测模块 SJJC:BLOCK IS BEGIN PROCESS(ENA,CLRA,CLKF)IS BEGIN IF
27、CLRA=1 THEN DA=0000000000000000000;ELSIF RISING_EDGE(CLKF)THEN IF ENA=1 THEN DA=DA+1;END IF;END IF;第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 DAC=DA;-仿真观测输出用 END PROCESS;END BLOCK SJJC;-数据锁存模块 SJSC:BLOCK IS BEGIN PROCESS(CLB)IS-时间差数据进程 BEGIN IF CLBEVENT AND CLB=0 THEN DATAB=DA;END IF;第第1515章章 低频数字相位测量仪
28、的低频数字相位测量仪的设计与分析设计与分析 DATABC=DATAB;-仿真观测输出用 END PROCESS;PROCESS(LOADA)IS -提取周期数据进程 BEGIN IF RISING_EDGE(LOADA)THEN DATAA=DA;END IF;DATAACDATADATANULL;END CASE;END IF;END PROCESS;END BLOCK SCXZ;END ARCHITECTURE ART;第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 15.3.2 单片机的汇编语言源程序清单;SZXWY.ASMDATAH EQU 40H ;周
29、期的时间DATAL EQU 41HDATA2L EQU 42H ;时间差DATA2HEQU 43HDATA3 EQU 44HDATA33 EQU 45H第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 AD0EQU30H ;除法占用;乘法占用AD1 EQU31HAD2 EQU32HAD3 EQU33HAD4 EQU34HAD5 EQU35HAD6 EQU36H ADA EQU4FHADB EQU5FHADC EQU4DHADE EQU5DH第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 DSEL BIT P1.3FEN BIT P1
30、.5KEY1 BIT P1.7KEY2 BIT P1.6ALA BIT P3.5DISPBIT BIT 2FH.0 ORG 00H LJMP 100H ORG 100HMIAN:MOV 2FH,#01H第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MIAN1:NOP LCALL DUSHUJU ;读FPGA数据 LCALL ZHUNBEIZHOUQI ;装入频率除法数据 CLR 2FH.3 JNB 2FH.3,DIVDD1 LJMP CHCHU第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 DIVDD1:LCALL DIVD1
31、;计算频率 MOV 6FH,4FH MOV 6EH,4EH MOV 6DH,4DH MOV 6CH,4CH MOV 35H,4FH MOV 34H,4EH MOV 33H,4DH MOV 32H,4DH LCALL BCDST ;二进制转换为BCD码第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MOV R0,#30H MOV R1,#3FH MOV R7,#04H MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 MOV 33H,#0 MOV 34H,#0 MOV 35H,#0 MOV 36H,#0 LCALL BCD_2BCD MOV 70H
32、,#18第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MOV 71H,30H MOV 72H,31H MOV 73H,32H MOV 74H,33H MOV 75H,34H MOV 76H,35HMIANWC:LCALL X3600 ;装入相位计算数据 LCALL MULNM MOV 4AH,5AH ;将以X3600为初始地址单元的积送入除法缓冲区第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MOV 4BH,5BH MOV 4CH,5CH MOV 4DH,5DH MOV 4EH,5EH MOV 4FH,5FH MOV 5FH,
33、DATAL ;装入被测周期时间 MOV 5EH,DATAH MOV 5DH,DATA3 LCALL DIVD1 ;得到相位差值 MOV 35H,4FH MOV 34H,4EH第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MOV 33H,4DH MOV 32H,#0 LCALL BCDST ;二进制转换为BCD码 MOV R0,#30H MOV R1,#3FH MOV R7,#04H MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 MOV 33H,#0 MOV 34H,#0 MOV 35H,#0第第1515章章 低频数字相位测量仪的低频数字相位
34、测量仪的设计与分析设计与分析 MOV 36H,#0 LCALL BCD_2BCD MOV 78H,#16 MOV 79H,30H MOV 7AH,31H MOV 7BH,32H MOV 7CH,33H MOV 7DH,34H MOV 7EH,35HCHCHU:LCALL DISP第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 KEYCOD:JB P1.7,MIAN11 LCALL DELAY1 JNB P1.7,$CPL 2FH.0 LCALL DELAY2MIAN11:LCALL DELAY1 LCALL DELAY1 LCALL DELAY1 LJMP MI
35、AN1 PROC DUSHUJU第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 DUSHUJU:CLR DSEL CLR FEN MOV A,P0 MOV DATAL,A MOV A,P2 MOV DATAH,A MOV A,P1 ANL A,#00000111B MOV DATA3,A SETB DSEL SETB FEN NOP第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 CLR FEN MOV A,P0 MOV DATA2L,A MOV A,P2 MOV DATA2H,A MOV A,P1 ANL A,#00000111B
36、 MOV DATA33,A SETB FEN RET NOP ;PC值出错处理第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 NOP ;空操作 NOP ;空操作 LJMP MIAN ;重新复位起动 END PROC ZHUNBEIZHOUQI ZHUNBEIZHOUQI:;2N BYTE/N BYTE=N BYTE,HERE N=3 IN 31H;(4A,4B,4C,4D,4E,4FH)/(5D,5E,5FH)=(4D,4E,4FH)第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MOV 5FH,DATAL MOV 5EH,DAT
37、AH MOV 5DH,DATA3 MOV 4FH,#80H;低位 MOV 4EH,#96H MOV 4DH,#98H MOV 4CH,#00H MOV 4BH,#0H MOV 4AH,#0H RET NOP ;PC值出错处理第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 NOP ;空操作NOP ;空操作LJMPMIAN ;重新复位起动 END PROC MULNMMULNM:NOP ;N BYTES X M BYTES=N+M BYTES HERE N=3;M=3MOV30H,#03H ;(4D,4E,4FH)(5D,5E,5FH)=(5A5FH)MOV31H,
38、#03H第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MULTT:MOVA,AD0 MOVR3,AD1 MOVR2,A ADDA,R3 INCA MOVAD2,A MOVA,#ADB CLRC SUBBA,R3 MOVAD6,A MOVR1,A SUBBA,R2第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MOV AD5,A INCR2MULNMZ:MOV R1,#00H DECR1 DJNZ R2,MULNMZMULNMB:MOV R2,AD0 MOV R1,AD6 MOV R0,#ADA CLR00HMULNML:MOV
39、A,ADB第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 JZMULNMD MOV B,R0 MULAB ADDA,R1 MOV R1,A JNB00H,MULNM1 INCBMULNM1:MOVA,B DECR1 ADDC A,R1 MOVR1,A MOV 00H,C DECR0 DJNZ R2,MULNML第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MULNMD:MOV R0,AD5 CLR A MOV R2,AD2MULNMS:XCHA,R0 INCR0 DJNZ R2,MULNMS DJNZ R3,MULNMB RET
40、 NOP ;PC值出错处理NOP ;空操作第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 NOP ;空操作LJMP MIAN ;重新复位起动 END PROC X3600;N BYTES X M BYTES=N+M BYTES HERE N=3;M=3;(4D,4E,4FH)*(5D,5E,5FH)=(5A-5FH)X3600:MOV 4DH,DATA33 MOV 4EH,DATA2H第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MOV 4FH,DATA2L MOV 5DH,#00H MOV 5EH,#0EH MOV 5FH,#
41、10H RET NOP ;PC值出错处理NOP ;空操作NOP ;空操作LJMPMIAN ;重新复位起动 END 第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 PROC BCD_2BCDBCD_2BCD:NOPLOOP0:CLR A MOVA,R1 MOV B,A ;SWAP A ANL A,#0FH MOV R0,A INC R0 MOV A,B SWAP A ANL A,#0FH第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MOV R0,A DEC R1 INCR0 DJNZ R7,LOOP0 RET NOP ;PC值出错
42、处理 NOP ;空操作 NOP ;空操作 LJMPMIAN ;重新复位起动 END 第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 PROC DISP ;显示程序模块DISP:PUSH ACC PUSHPSW PUSHDPH PUSH DPL MOV A,76H CJNE A,#0,NOPB MOV 76H,#17 MOV A,75H CJNE A,#0,NOPB MOV 75H,#17第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MOV A,74H CJNE A,#0,NOPB MOV 74H,#17 MOV A,73H CJ
43、NEA,#0,NOPB MOV 73H,#17 MOV A,72H CJNE A,#0,NOPB MOV72H,#17 MOVA,71H CJNE A,#0,NOPB MOV 71H,#0第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MOV A,70H CJNE A,#0,NOPB MOV 70H,#17 NOPB:MOV A,7EH CJNE A,#0,NOPB1 MOV 7EH,#17 MOV A,7DH CJNE A,#0,NOPB1 MOV 7DH,#17第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MOV A,7CH
44、 CJNE A,#0,NOPB1 MOV 7CH,#17 MOV A,7BH CJNE A,#0,NOPB1 MOV 7BH,#17NOPB1:MOV R1,#70H ;起始显示地址为 JNB 2FH.0,DISXW JMPDISPP第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 DISXW:MOV R1,#78HDISPP:MOV R2,#7DISP1:MOV A,R1 MOV DPTR,#TAB MOVC A,A+DPTR JB 2FH.0,OKOK MOV B,A MOV A,R1 CJNE A,#7AH,NONO MOV A,B ANL A,#11110
45、111B JMP OKOK第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 NONO:MOV A,BOKOK:MOV SBUF,ADL1:JNB TI,DL1 CLR TI INC R1 DJNZ R2,DISP1 POP DPL POP DPH POP PSW POP ACC第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 RET NOP ;PC值出错处理 NOP ;空操作 NOP ;空操作LJMPMIAN ;重新复位起动TAB:DB 88H,0EBH,04CH,049H,2BH ;自制的显示模块 DB 19H,18H,0CBH,0
46、8H,09H DB 0AH,38H,9CH,68H,1CH,1EH,00FH,0FFH,2AH END第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 PROC DELAY1DELAY1:CLR ALA MOV R6,#64HDELAY11:MOV R7,#250 DJNZ R7,$DJNZ R6,DELAY11 SETB ALA RET NOP ;PC值出错处理 NOP ;空操作第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 NOP ;空操作 LJMP MIAN ;重新复位起动 END PROC DELAY2DELAY2:MOV
47、R6,#64HDELAY21:MOV R7,#250 DJNZ R7,$第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 DJNZ R6,DELAY21 RET NOP ;PC值出错处理NOP ;空操作 NOP ;空操作 LJMP MIAN ;重新复位起动 ENDPROC DIVD1第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 DIVD1:NOP;;2N BYTE/N BYTE=N BYTE,HERE N=3 IN 31H;(4A,4B,4C,4D,4E,4FH)/(5D,5E,5FH)=(4D,4E,4FH)MOV 30H,#0
48、6H ;被除数的字节数为6 AD0=06H MOV 31H,#03H ;除数的字节数第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 DIVPP:MOVA,AD1 MOV R2,A ;R2=03H RLA RLA RLA MOV R3,A ;R3=18H=24D CLR 0F0H;B.0=0 清标志位 CLR C ;C=0 第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 MOV A,#ADA SUBB A,R2 MOV AD3,A ;AD3=4CH MOV R1,#ADBDIVMB2B:MOV A,R1 JNZDIVM2B DECR
49、1 DJNZ R2,DIVMB2B SETB 0F0H RET第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 DIVM2B:MOV R2,AD1 MOV R1,#ADB MOV R0,AD3DIVM2L:MOV A,R0 SUBB A,R1 DECR0 DECR1 DJNZ R2,DIVM2L JNCDIVM20DIVM2D:LCALL SHIL1 JCDIVM2S第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 DIVM2C:MOV R0,AD3 MOV R1,#ADB MOV R2,AD1DIVM2CL:MOV A,R0 SUB
50、B A,R1 DECR0 DECR1 DJNZ R2,DIVM2CL JC DIVM2E第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 DIVM2S:INCADA MOV R2,AD1 MOV R0,AD3 MOV R1,#ADB LCALL SUBMBBDIVM2E:DJNZ R3,DIVM2D RETDIVM20:SETB 0F0H RET DB02H,12H 第第1515章章 低频数字相位测量仪的低频数字相位测量仪的设计与分析设计与分析 SHIL1:MOV R2,AD0 MOV R0,#ADASHIL1B:CLRCSHILL:MOV A,R0 RLC A