




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 (5) 具有频率测量及数字显示功能。 (6) 相位差数字显示:相位读数为0359.9,分辨力为0.1。第1页/共106页15.2 系统设计方案 15.2.1 总体设计方案 根据系统的设计要求,本系统可分为三大基本组成部分:数据采集电路、数据运算控制电路和数据显示电路。考虑到FPGA/CPLD具有集成度高,I/O资源丰富,稳定可靠,可现场在线编程等优点,而单片机具有很好的人机接口和运算控制功能,本系统拟用FPGA/CPLD和单片机相结合,构成整个系统的测控主体。 第2页/共106页图15.1 系统原理框图整形电路FPGA或CPLD数据采集电 路单片机数据运算控制电路数据显示电路AINSAIN整
2、形电路BINSBIN第3页/共106页 15.2.2 信号整形电路的设计 最简单的信号整形电路就是一个单门限电压比较器(如图15.2所示),当输入信号每通过一次零时触发器的输出就要产生一次突然的变化。当输入正弦波时,每过一次零,比较器的输出端将产生一次电压跳变,它的正负向幅度均受到供电电源的限制,因此输出电压波形是具有正负极性的方波,这样就完成了电压波形的整形工作。 第4页/共106页图15.2 采用单门限触发器的整形电路 761U2ALM339R7VCCAINSBINSBIN123J1CON3GND10 k5412GND3VCC2U2AR6VCC10 kAINLM339BVCCGND第5页/
3、共106页 为了避免过零点多次触发的现象,我们使用施密特触发器组成的整形电路。施密特触发器在单门限电压比较器的基础上引入了正反馈网络。由于正反馈的作用,它的门限电压随着输出电压Uo的变化而改变,因此提高了抗干扰能力。本系统中我们使用两个施密特触发器对两路信号进行整形,电路图如图15.3所示。 第6页/共106页图15.3 采用施密特触发器的整形电路 542312U1ALM339761U1BLM339R2R6510 VCCVCCAINSBINSBIN123J1CON3GND5 V5 VR3R1R8R510 kR4100 10 k10 kR7100 10 k10 kR9510 AIN第7页/共10
4、6页 15.2.3 FPGA数据采集电路的设计 FPGA数据采集电路的功能就是实现将待测正弦信号的周期、相位差转变为19位的数字量。FPGA数据采集的硬件电路我们可采用FPGA下载板来实现,该下载板包含FPGA芯片、下载电路和配置存储器,其电路结构可参见对应的FPGA下载板说明书。本电路主要是进行FPGA的硬件描述语言(HDL)程序设计。 第8页/共106页 根据系统的总体设计方案,FPGA数据采集电路的输入信号有:CLK系统工作用时钟信号输入端;CLKAA,CLKBB两路被测信号输入端;EN单片机发出的传送数据使能信号,在EN的上升沿,FPGA向单片机传送数据;RSEL单片机发出的传送数据类
5、型信号,当RSEL=0时,FPGA向单片机传送被测信号频率数据,当RSEL=1时,FPGA向单片机传送被测信号相位差数据。FPGA数据采集电路的输出信号有:DATA18.0FPGA到单片机的数据输出口,由输出控制信号EN和RSEL控制。 第9页/共106页 本数字式相位测量仪的要求是测试并显示输入信号频率范围在20 Hz20 kHz,测试并显示信号a、b的相位差,相位差的变化范围为0359.9,相位差的显示分辨力为0.1,要求测量相位的绝对误差2。由此可知: 第10页/共106页图15.4 FPGA数据采集电路系统组成框图 第11页/共106页 15.2.4 单片机数据运算控制电路的设计 单片
6、机数据运算控制电路的功能就是负责读取FPGA/CPLD采集到的数据,并根据这些数据计算待测正弦信号的频率及两路同频正弦信号之间的相位差,同时通过功能键切换,显示出待测信号的频率和相位差。第12页/共106页 单片机数据运算控制电路的硬件可由单片机、晶振电路、按键及显示接口电路等组成。我们在设计中考虑到,单片机具有较强的运算能力和控制能力的特点,因此使用单片机的P0口,P2口及P1.0、P1.1、P1.2、P1.3接收FPGA送来的对应于正弦信号的周期、相位差的19位数据信号,P1口的P1.7、P1.6接入两个轻触按键,完成功能选择与设置。该电路的工作原理是,单片机通过向FPGA发送数据传送指令
7、,使FPGA按照单片机的要求发送数据,同时通过使用单片机的串口,将待显示的数据信息送给数据显示电路显示。其原理图如图15.5所示。第13页/共106页图15.5 单片机系统原理图 P10P11P12P13P14P15P16P17INT1INT0T1T0X2X1RESETRDWRVP/EAP00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27RXDTXDPSENPALE/U18051P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.71234567813121514311918VCCX1X2917163938373635343332D0D1D
8、2D3D4D5D6D72122232425262728A8A9A10A11A12A13A14A15RXDTXDALE10113029C110 FR110 kS3SW_PBC330 pFC130 pFCRYSTAL12MX2X1P1.7P1.6S1 SW_PBS2 SW_PBVCCGNDGND第14页/共106页 单片机数据运算控制电路的软件设计思路是,单片机不断地从FPGA读取信号的周期和a、b信号相位差所对应的时间差,读取数据后进行有关计算,并通过转换后,送出给显示模块,实现频率和相位差的显示。单片机主程序流程图如图15.6所示。 单片机在获取FPGA的数据时,开始的是一般的读取指令MOV指
9、令,分别从单片机的P0口、P2口、P1口的低3位读入数据,组合为一个19位的二进制数据,通过控制口线P1.3、P1.5控制FPGA释放数据。经过多次测试,采用这种方式获得了比较好的效果。单片机读取FPGA数据的程序流程图如图15.7所示。第15页/共106页图15.6 主程序流程图 开始初始化从FPGA读a信号周期和a、b信号下降沿的时间差计算a信号的频率和a、b信号的相位差送数据显示第16页/共106页图15.7 读FPGA数据程序流程图选通读a、 b信号时间差打开闸门,FPGA释放数据P0、P2、P1分别读入数据并存入时间差数据缓冲区关闭闸门,禁止FPGA释放数据返回关闭闸门,禁止FPGA
10、释放数据打开闸门,FPGA释放数据P0、P2、 P1分别读入数据并存入周期数据缓冲区选通a信号周期时间第17页/共106页 单片机从FPGA读取信息后,对信息进行计算,算出信号a的频率,其流程图如图15.8所示。 由于a、b信号是两路频率相同、相位不同的正弦波信号,因此经过整形电路后形成频率相同,时间上不重合的两路信号,这样,FPGA可以计数出两路信号的时间差从而可以计算出a、b信号的相位差,其程序流程图如图15.9所示。第18页/共106页图15.8 计算a的频率程序流程图 调用除法,计算10000000/a 周期调用二进制BCD转换程序调用压缩BCD码转换为单字节BCD码程序存入数据到显示
11、缓存返回第19页/共106页图15.9 计算a、b相位差的程序流程图调用乘法,计算3600tN调用除法,计算 N/a 周期调用二进制BCD转换程序调用压缩BCD码转换为单字节BCD码程序存入数据到显示缓存返回第20页/共106页 最后单片机需要将信号送到输出端显示出来,即单片机通过显示子程序将信息送到显示电路显示出来,程序流程图如图15.10所示。第21页/共106页图15.10 显示程序流程图 显示开始显示频率,赋频率初始地址2FH.00?N显示相位差,赋相位初始地址Y特殊显示处理查表串行显示指针减10?退出显示YN第22页/共106页 15.2.5 数据显示电路的设计 整个系统硬件电路中,
12、单片机MCU与FPGA进行数据交换占用了P0口、P1口和P3口,因此数据显示电路的设计采用静态显示的方式,显示电路由8个共阳极七段数码管和8片1位串入8位并出的74LS164芯片组成。这种显示方式不仅可以得到较为简单的硬件电路,而且可以得到稳定的数据输出;这种连接方式不仅占用单片机端口少,而且充分利用了单片机的资源,容易掌握其编码规律,简化了软件编程,在实验过程中,也体现出较高的可靠性。数据显示电路如图15.11所示。第23页/共106页图15.11 数据显示电路 abcdefgdpcomafeg bcddp12345678abcdefgdpU11DPYR11 kQ0Q1Q2Q3Q4Q5Q6Q
13、7ABCLKMR345610111213dpgfedcba12RXDTXD74LS164abcdefgdpcomafeg bcddp12345678abcdefgdpU12DPYR21 kQ0Q1Q2Q3Q4Q5Q6Q7ABCLKMR345610111213dpgfedcba1274LS164abcdefgdpcomafeg bcddp12345678abcdefgdpU13DPYR31 kQ0Q1Q2Q3Q4Q5Q6Q7ABCLKMR345610111213dpgfedcba1274LS164abcdefgdpcomafeg bcddp12345678abcdefgdpU17DPYR71 k
14、Q0Q1Q2Q3Q4Q5Q6Q7ABCLKMR345610111213dpgfedcba1274LS164abcdefgdpcomafeg bcddp12345678abcdefgdpU18DYPR81 kQ0Q1Q2Q3Q4Q5Q6Q7ABCLKMR345610111213dpgfedcba1274LS164U1U2U3U7U85 VVCC89898989895 VVCC第24页/共106页 74LS164是一种8位高速串入/并出的移位寄存器,随着时钟信号的高低变化,串行数据通过一个2输入与门同步的送入,使用独立于时钟的主控复位端让寄存器的输出端变为低电平,并且采用肖特基钳位电路以达到高速运
15、行的目的。并且还具有以下的特点: 典型的35 MHz移位频率; 异步主控复位; 门控串行输入; 同步数据传输; 采用钳位二极管限制高速的终端; 静电放电值大于3500 V。第25页/共106页 在本系统中,74LS164的连接方式为:74LS164的输出Q0Q7分别接LED数码管的dp、g、f、e、d、c、b、a,并且Q7连接下一个74LS164的A、B端,时钟CLK连接单片机的TXD端,第一片芯片的AB端连接单片机的RXD端,74LS164芯片的主控复位端接高电平VCC。在这种状态下,数码管的编码如表15.1所示。第26页/共106页表15.1 数码管的编码表 第27页/共106页15.3
16、主要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;第28页/共106页 CLKBB:IN STD_LOGIC; EN,RSEL:IN STD_LOGIC; CLKAC,CLKBC:OUT STD_LOGIC; -仿真观测输出点,调试好后应去掉,以下同 CLKFC:OUT STD_LO
17、GIC;-仿真观测输出用 DATAAC:OUT STD_LOGIC_VECTOR(18 DOWNTO 0); -仿真观测输出用 DATABC:OUT STD_LOGIC_VECTOR(18 DOWNTO 0); -仿真观测输出用第29页/共106页 CL AC,CLBC:OUT STD_LOGIC;-仿真观测输出用 DAC:OUT STD_LOGIC_VECTOR(18 DOWNTO 0); -仿真观测输出用 CLRAC:OUT STD_LOGIC;-仿真观测输出用 ENAC:OUT STD_LOGIC;-仿真观测输出用 LOADAC:OUT STD_LOGIC;-仿真观测输出用 DATA:O
18、UT STD_LOGIC_VECTOR(18 DOWNTO 0);第30页/共106页 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 CLB:STD_LOGIC; SIGNAL DA:STD_LOGIC_VECTOR(18 DOWNTO 0); SIGNAL CLRA:STD_LOGIC; SIGNAL ENA:S
19、TD_LOGIC; SIGNAL LOADA:STD_LOGIC; BEGIN第31页/共106页 -信号分频模块 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=3 THEN TEMP:=0;CL:=1; ELSE TEMP:=TEMP+1;第32页/共106页 CL:=0; END IF; END IF; CLKF=CL; CLKFC=CLKF;-仿真观测输出用 END PR
20、OCESS; END BLOCK FPQ; -控制信号产生模块 KZXH:BLOCK IS SIGNAL CLKA,CLKB:STD_LOGIC; SIGNAL CLA:STD_LOGIC; BEGIN 第33页/共106页 CLKA=NOT CLKAA; CLKB=NOT CLKBB; CLKAC=CLKA;-仿真观测输出用 CLKBC=CLKB;-仿真观测输出用 PROCESS(CLKA) IS BEGIN IF RISING_EDGE(CLKA) THEN CLA=NOT CLA; END IF; ENA=CLA;第34页/共106页 LOADA=NOT CLA; CLAC=CLA;-仿
21、真观测输出用 ENAC=ENA;-仿真观测输出用 LOADAC=LOADA;-仿真观测输出用 END PROCESS; PROCESS(CLKB) IS BEGIN IF RISING_EDGE(CLKB) THEN CLB=NOT CLB; END IF; CLBC=CLB;-仿真观测输出用第35页/共106页 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;
22、第36页/共106页 -时间检测模块 SJJC:BLOCK IS BEGIN PROCESS(ENA,CLRA,CLKF) IS BEGIN IF CLRA=1 THEN DA=0000000000000000000; ELSIF RISING_EDGE(CLKF) THEN IF ENA=1 THEN DA=DA+1; END IF; END IF;第37页/共106页 DAC=DA;-仿真观测输出用 END PROCESS; END BLOCK SJJC; -数据锁存模块 SJSC:BLOCK IS BEGIN PROCESS(CLB) IS -时间差数据进程 BEGIN IF CLBEV
23、ENT AND CLB=0 THEN DATAB=DA; END IF;第38页/共106页 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;第40页/共106页 15.3.2 单片机的汇编语言源程序清单 ;SZXWY.ASM DATAH EQ
24、U 40H ; 周期的时间 DATAL EQU 41H DATA2L EQU 42H ; 时间差 DATA2HEQU 43H DATA3 EQU 44H DATA33 EQU 45H第41页/共106页 AD0EQU30H ; 除法占用 ; 乘法占用 AD1 EQU31H AD2 EQU32H AD3 EQU33H AD4 EQU34H AD5 EQU35H AD6 EQU36H ADA EQU4FH ADB EQU5FH ADC EQU4DH ADE EQU5DH第42页/共106页 DSEL BIT P1.3 FEN BIT P1.5 KEY1 BIT P1.7 KEY2 BIT P1.6
25、 ALA BIT P3.5 DISPBIT BIT 2FH.0 ORG 00H LJMP 100H ORG 100H MIAN: MOV 2FH,#01H第43页/共106页 MIAN1: NOP LCALL DUSHUJU ; 读FPGA数据 LCALL ZHUNBEIZHOUQI ; 装入频率除法数据 CLR 2FH.3 JNB 2FH.3,DIVDD1 LJMP CHCHU第44页/共106页 DIVDD1:LCALL DIVD1 ; 计算频率 MOV 6FH, 4FH MOV 6EH, 4EH MOV 6DH, 4DH MOV 6CH, 4CH MOV 35H,4FH MOV 34H,
26、4EH MOV 33H,4DH MOV 32H,4DH LCALL BCDST ; 二进制转换为BCD码第45页/共106页 MOV R0,#30H MOV R1,#3FH MOV R7,#04H MOV 30H,#0 MOV31H,#0 MOV 32H,#0 MOV 33H,#0 MOV 34H,#0 MOV 35H,#0 MOV 36H,#0 LCALL BCD_2BCD MOV 70H,#18第46页/共106页 MOV 71H,30H MOV 72H,31H MOV 73H,32H MOV 74H,33H MOV 75H,34H MOV 76H,35H MIANWC: LCALL X3
27、600 ; 装入相位计算数据 LCALL MULNM MOV 4AH,5AH ; 将以X3600为初始地址单元的积送入除法缓冲区第47页/共106页 MOV 4BH,5BH MOV 4CH,5CH MOV 4DH,5DH MOV 4EH,5EH MOV 4FH,5FH MOV 5FH,DATAL ; 装入被测周期时间 MOV 5EH,DATAH MOV 5DH,DATA3 LCALL DIVD1 ; 得到相位差值 MOV 35H,4FH MOV 34H,4EH第48页/共106页 MOV 33H,4DH MOV 32H,#0 LCALL BCDST ; 二进制转换为BCD码 MOV R0,#3
28、0H MOV R1,#3FH MOV R7,#04H MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 MOV 33H,#0 MOV 34H,#0 MOV 35H,#0第49页/共106页 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,35H CHCHU: LCALL DISP第50页/共106页 KEYCOD: JB P1.7, MIAN11 LCALL DELAY1 JNB P1.7, $ CPL 2FH.0
29、LCALL DELAY2 MIAN11: LCALL DELAY1 LCALL DELAY1 LCALL DELAY1 LJMP MIAN1 PROC DUSHUJU第51页/共106页 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第52页/共106页 CLR FEN MOV A,P0 MOV DATA2L,A MOV A,P2 MOV DATA2H,A MOV A,P1 ANL A,
30、#00000111B MOV DATA33,A SETB FEN RET NOP ; PC值出错处理第53页/共106页 NOP ; 空操作 NOP ; 空操作 LJMPMIAN ; 重新复位起动 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)第54页/共106页 MOV 5FH,DATAL MOV 5EH,DATAH MOV 5DH,DATA3 MOV 4FH,#80H ; 低位 MOV
31、 4EH,#96H MOV 4DH,#98H MOV 4CH,#00H MOV 4BH,#0H MOV 4AH,#0H RET NOP ; PC值出错处理第55页/共106页 NOP ; 空操作NOP ; 空操作LJMPMIAN ; 重新复位起动 END PROC MULNM MULNM: NOP ;N BYTES X M BYTES = N+M BYTES HERE N=3;M=3MOV30H,#03H ;(4D,4E,4FH)(5D,5E,5FH)=(5A5FH)MOV31H,#03H第56页/共106页 MULTT:MOVA,AD0 MOVR3,AD1 MOVR2,A ADDA,R3 I
32、NCA MOVAD2,A MOVA,#ADB CLRC SUBB A,R3 MOVAD6,A MOVR1,A SUBB A,R2第57页/共106页 MOV AD5,A INCR2 MULNMZ:MOVR1,#00H DECR1 DJNZ R2,MULNMZ MULNMB: MOVR2,AD0 MOV R1,AD6 MOVR0,#ADA CLR00H MULNML:MOVA,ADB第58页/共106页 JZMULNMD MOV B,R0 MULAB ADDA,R1 MOV R1,A JNB00H,MULNM1 INCB MULNM1: MOVA,B DECR1 ADDC A,R1 MOVR1,
33、A MOV 00H,C DECR0 DJNZ R2,MULNML第59页/共106页 MULNMD:MOVR0,AD5 CLR A MOV R2,AD2 MULNMS: XCHA,R0 INCR0 DJNZ R2,MULNMS DJNZ R3,MULNMB RET NOP ; PC值出错处理 NOP ; 空操作第60页/共106页 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
34、4DH, DATA33 MOV 4EH, DATA2H第61页/共106页 MOV 4FH, DATA2L MOV 5DH,#00H MOV 5EH,#0EH MOV 5FH,#10H RET NOP ; PC值出错处理NOP ; 空操作NOP ; 空操作LJMPMIAN ; 重新复位起动 END 第62页/共106页 PROC BCD_2BCD BCD_2BCD: NOP LOOP0: 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第63页/共106页 MOV R0,A DE
35、C R1 INCR0 DJNZ R7,LOOP0 RET NOP ; PC值出错处理 NOP ; 空操作 NOP ; 空操作 LJMPMIAN ; 重新复位起动 END 第64页/共106页 PROC DISP ; 显示程序模块 DISP: PUSH ACC PUSH PSW PUSH DPH PUSH DPL MOV A,76H CJNE A,#0,NOPB MOV 76H,#17 MOV A,75H CJNE A,#0,NOPB MOV 75H,#17第65页/共106页 MOV A,74H CJNE A,#0,NOPB MOV 74H,#17 MOV A,73H CJNEA,#0,NOP
36、B MOV 73H,#17 MOV A,72H CJNE A,#0,NOPB MOV72H,#17 MOVA,71H CJNE A,#0,NOPB MOV 71H,#0第66页/共106页 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第67页/共106页 MOV A,7CH CJNE A,#0,NOPB1 MOV 7CH,#17 MOV A,7BH CJNE A,#0,NOPB1 MOV 7BH,#17
37、NOPB1: MOV R1,#70H ; 起始显示地址为 JNB 2FH.0 ,DISXW JMPDISPP第68页/共106页 DISXW:MOV R1,#78H DISPP: MOV R2,#7 DISP1: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,#11110111B JMP OKOK第69页/共106页 NONO: MOV A,B OKOK: MOV SBUF,A DL1: JNB TI,DL1 CLR TI INC R1 DJN
38、Z R2,DISP1 POP DPL POP DPH POP PSW POP ACC第70页/共106页 RET NOP ; PC值出错处理 NOP ; 空操作 NOP ; 空操作 LJMPMIAN ; 重新复位起动 TAB: DB 88H,0EBH,04CH,049H,2BH ; 自制的显示模块 DB 19H,18H,0CBH,08H,09H DB 0AH,38H,9CH,68H,1CH,1EH ,00FH,0FFH ,2AH END第71页/共106页 PROC DELAY1 DELAY1: CLR ALA MOV R6,#64H DELAY11:MOV R7,#250 DJNZ R7,$
39、 DJNZ R6,DELAY11 SETB ALA RET NOP ; PC值出错处理 NOP ; 空操作第72页/共106页 NOP ; 空操作 LJMP MIAN ; 重新复位起动 END PROC DELAY2 DELAY2: MOV R6,#64H DELAY21:MOV R7,#250 DJNZ R7,$第73页/共106页 DJNZ R6,DELAY21 RET NOP ; PC值出错处理NOP ; 空操作 NOP ; 空操作 LJMPMIAN ; 重新复位起动 END PROC DIVD1第74页/共106页 DIVD1:NOP; ; 2N BYTE / N BYTE = N B
40、YTE ,HERE N=3 IN 31H ; (4A,4B,4C,4D,4E,4FH)/(5D,5E,5FH)=(4D,4E,4FH) MOV30H,#06H ; 被除数的字节数为6 AD0=06H MOV31H,#03H ; 除数的字节数第75页/共106页 DIVPP: MOVA,AD1 M O V R 2 , A ; R2=03H RLA RLA RLA M O V R 3 , A ; R3=18H=24D CLR 0F0H ; B.0=0 清标志位 CLR C ; C=0 第76页/共106页 MOV A,#ADA SUBBA,R2 M O VA D 3 , A ; AD3=4CH M
41、OVR1,#ADB DIVMB2B: MOVA,R1 JNZDIVM2B DECR1 DJNZR2,DIVMB2B SETB0F0H RET第77页/共106页 DIVM2B: MOVR2,AD1 MOV R1,#ADB MOV R0,AD3 DIVM2L: MOVA,R0 SUBBA,R1 DECR0 DECR1 DJNZ R2,DIVM2L JNCDIVM20 DIVM2D:LCALL SHIL1 JCDIVM2S第78页/共106页 DIVM2C: MOVR0,AD3 MOV R1,#ADB MOV R2,AD1 DIVM2CL: MOVA,R0 SUBBA,R1 DECR0 DECR1
42、 DJNZ R2,DIVM2CL JC DIVM2E第79页/共106页 DIVM2S: INCADA MOV R2,AD1 MOV R0,AD3 MOV R1,#ADB LCALL SUBMBB DIVM2E: DJNZR3,DIVM2D RET DIVM20: SETB0F0H RET DB02H,12H 第80页/共106页 SHIL1: MOVR2,AD0 MOV R0,#ADA SHIL1B: CLRC SHILL: MOVA,R0 RLC A MOV R0,A DECR0 DJNZ R2,SHILL RET第81页/共106页 SUBMB: MOVR2,AD0 ; NO SIGN
43、N BYTES MINUSE N BYTES MOVR0,#ADA ; (.4FH)-(.5FH)=(.4FH) MOVR1,#ADB SUBMBB: CLRC SUBMB1: MOVA,R0 SUBBA,R1 MOVR0,A第82页/共106页 DECR0 DECR1 DJNZR2,SUBMB1 RET NOP ; PC值出错处理 NOP ; 空操作 NOP ; 空操作 LJMPMIAN ; 重新复位起动 END第83页/共106页 PROC BCDST BCDST: MOV R7,#32 CLR C MOV 3FH,#00H MOV 3EH,#00H MOV 3DH,#00H MOV 3C
44、H,#00H MOV 3BH,#00H MOV 3AH,#00H第84页/共106页 KKK: MOV A,35H RLC A MOV 35H,A MOV A,34H RLCA MOV 34H,A MOV A,33H RLCA MOV 33H,A第85页/共106页 MOV A,32H RLCA MOV 32H,A MOV A,3FH ADDC A,3FH DA A MOV 3FH,A MOV A,3EH ADDC A,3EH DA A MOV 3EH,A第86页/共106页 MOV A,3DH ADDC A,3DH DA A MOV 3DH,A MOV A,3CH ADDC A,3CH DA
45、 A MOV 3CH,A MOV A,3BH ADDC A,3BH DA A MOV 3BH,A第87页/共106页 MOV A,3AH ADDC A,3AH DA A MOV 3AH,A DJNZ R7,KKK RET NOP ; PC值出错处理NOP ; 空操作NOP ; 空操作LJMPMIAN ; 重新复位起动 END END第88页/共106页15.4 系统仿真/硬件验证 15.4.1 系统调试的方法 本系统既含有FPGA自编程硬件设计电路,又含有单片机控制电路,整个系统比较复杂,因此我们采用自底向上的调试方法,也就是先进行各个单元电路的软件仿真和硬件调试,在各个单元电路调试好后再进行
46、系统联调,最后进行硬件的编程固化及系统的组装。第89页/共106页 15.4.2 系统调试的软/硬件 (1) 系统设计开发软件:MAX+plus 10.0、伟福6000(WAVE 6000 for windows)。 (2) 单片机及FPGA/CPLD调试设备:PIV计算机、伟福E6000L单片机仿真器及POD8X5XP仿真头、GW48-CK EDA实验开发系统及EPF10K20TC144-4FPGA适配板、单片机最小系统、炜煌WH-500B程序编写加密器、GDS-820S数字存储示波器。 第90页/共106页 15.4.2 系统的有关仿真 图15.12是FPGA数据采集电路VHDL程序设计仿
47、真图。请读者自己对照程序进行仿真分析。第91页/共106页图15.12 FPGA数据采集电路仿真图 第92页/共106页 15.4.4 系统的硬件验证 1单元电路的调试 FPGA/CPLD数据采集电路的调试:使用MAX+plus 10.0、计算机、GW48-CK EDA实验开发系统等软件和设备,对FPGA/CPLD测控电路进行VHDL程序的调试、有关仿真以及编程下载,硬件测试等。第93页/共106页 单片机数据处理控制程序的调试:使用伟福6000(WAVE 6000 for windows)、计算机、伟福E6000L单片机仿真器及POD8X5XP仿真头等软件和设备,对单片机数据处理控制程序进行调试。第94页/共106页 2系统的联合调试 在各个单元电路调试好后即可进行系统联调,各联调设备的连接请参考相关内容。 3系统的硬件验证 系统联合调试成功后,可将单片机程序通过编程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 门诊报销面试题及答案
- 简谱旋律考试题及答案
- 黑热病考试题及答案
- java面试题及答案约瑟夫环
- 智能驾驶技术趋势-1
- 孩子公益意识提升技巧
- 提升孩子专注力技巧
- 家电公司质量追溯管理规定
- 2.5直线与圆的位置关系(第1课时位置关系、切线的判定与性质)(教学课件)数学苏科版九年级上册
- 保安队列训练培训课件
- 2025年上海市高考化学试卷(含答案)
- 《人工智能概论-面向通识课程》全套教学课件
- 三区人才面试题及答案大全
- 物业服务礼仪培训大纲
- 2025年舞台灯光设备项目市场调查研究报告
- 防火钢质门、卷帘门项目可行性研究报告-商业计划书
- 2024年云南师范大学辅导员考试真题
- 普查保密协议书
- 《初学者指南:美术基础课件》
- 冶金矿山采矿设计规范
- 配送车辆违章管理制度
评论
0/150
提交评论