欢迎来到天天文库
浏览记录
ID:3144006
大小:149.50 KB
页数:12页
时间:2017-11-19
《基于cpld实现的dds频率计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于STC89C51和CPLD实现的DDS与频率计键盘输入DDSSTC89C51LCD1602显示电路频率计系统框图功能描述:以STC89C51为控制核心,实现任意频率值fa(小于10KHz)的输入,经单片机出来后,生成相应的频率字,然后送给DDS模块,DDS模块开始工作,生成以频率值fs;但键盘测频键按下后,单片机控制频率计,让其开始控制,频率计输出值送回单片机处理,得出测量到的频率值fc,最后单片机控制LCD1602显示人为输入的频率值fa和频率计测得的频率值fc,两个值的差异可以直观的显示出系统的误差。基于CPLD/FPG
2、A的DDS原理图如下:基于CPLD/FPGA的频率计的原理图如下:DDS模块代码:(1)MUX832LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMUX832ISPORT(DATAINN:INSTD_LOGIC_VECTOR(7DOWNTO0);clk:instd_logic;DATAOUTT:OUTSTD_LOGIC_VECTOR(31DOWNTO0);SELL:INSTD_LOGIC_VECTOR(1DOWNTO0));ENDMUX832;ARCHITECTUREbehavOFMU
3、X832ISBEGINPROCESS(SELL,DATAINN,clk)BEGINifclk'eventandclk='1'thenCASESELLISWHEN"00"=>DATAOUTT(7DOWNTO0)<=DATAINN;WHEN"01"=>DATAOUTT(15DOWNTO8)<=DATAINN;WHEN"10"=>DATAOUTT(23DOWNTO16)<=DATAINN;WHEN"11"=>DATAOUTT(31DOWNTO24)<=DATAINN;ENDCASE;endif;ENDPROCESS;ENDbehav;
4、(2)32位加法器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYADDER32BISPORT(A:INSTD_LOGIC_VECTOR(31DOWNTO0);B:INSTD_LOGIC_VECTOR(31DOWNTO0);S:OUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDADDER32B;ARCHITECTUREbehavOFADDER32BISBEGINS<=A+B;ENDbehav;(3)32位寄
5、存器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYREG32BISPORT(LOAD:INSTD_LOGIC;DIN:INSTD_LOGIC_VECTOR(31DOWNTO0);DOUT:OUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDREG32B;ARCHITECTUREbehavOFREG32BISBEGINPROCESS(LOAD,DIN)beginIFLOAD'EVENTANDLOAD='1'THENDOUT<=DIN;ENDIF;ENDPROCESS;E
6、NDbehav;频率计模块代码:(1)标准频率计数器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYBZHHISPORT(BCLK:INSTD_LOGIC;--FsBENA:INSTD_LOGIC;CLR:INSTD_LOGIC;--清零BZQ:inOUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDBZHH;ARCHITECTUREbehavOFBZHHISBEGINPROCESS(BCLK,CLR)--标
7、准频率计数开始BEGINIFCLR='1'THENBZQ<=(OTHERS=>'0');ELSIFBCLK'EVENTANDBCLK='1'THENIFBENA='1'THENBZQ<=BZQ+1;ENDIF;ENDIF;ENDPROCESS;ENDbehav;(2)待测频率计数器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYTTFFISPORT(TCLK:INSTD_LOGIC;--FsENA:INSTD_LOGIC;CL
8、R:INSTD_LOGIC;--清零TSQ:inOUTSTD_LOGIC_VECTOR(31DOWNTO0));ENDTTFF;ARCHITECTUREbehavOFTTFFISBEGINPROCESS(TCLK,CLR,ENA)BEGINIFCLR='1'TH
此文档下载收益归作者所有