欢迎来到天天文库
浏览记录
ID:30140573
大小:155.58 KB
页数:4页
时间:2018-12-27
《实验十可控脉冲发生器》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验十可控脉冲发生器一、实验目的1.掌握脉冲发生器的设计原理。2.掌握脉冲接受和发送的方法。减法计数器脉冲发生控制预置数LOADcontrol计数显示脉冲输出clk接收脉冲器计数显示一、实验原理本次设计由发送脉冲模块和接收脉冲模块组成,发送脉冲模块可由用户设置一次发送过程中脉冲的个数,发送过程中由二极管显示输出脉冲并用数码管记录脉冲个数,接收脉冲模块接收脉冲并输出到数码管显示,接受脉冲模块和发送脉冲模块采用同一个时钟工作。二、实验内容1用VHDL语言设计可控脉冲发生器。2通过仿真或观察波形图验证设计的正确性。3编译下载验证结果。三、设计提示1注意IF语句的嵌套。2注意脉冲的消抖问题和接受脉冲模
2、块的采样方式。四、实验报告要求1写出可控脉冲发生器的VHDL源程序。2叙述模块间通讯的工作原理。3画出模块通讯的工作波形图.LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNTISPORT(CLK,LOAD:INSTD_LOGIC;LI,HI:INSTD_LOGIC_VECTOR(3DOWNTO0);LO,HO,LD,HD:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDENTITYCNT;ARCHITECTURECNOFCNTISSIGNALL_COUNT,H_COU
3、NT,L_D,H_D:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(LI,HI,LOAD,CLK)ISVARIABLELTEMP,HTEMP,L_T,H_T:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIF(LOAD='1')THENL_COUNT<=LI;H_COUNT<=HI;L_D<=(OTHERS=>'0');H_D<=(OTHERS=>'0');ELSIF(CLK'EVENTANDCLK='1')THENIF(LOAD='0')THENIF(L_COUNT>0)THENLTEMP:=L_COUNT-1;HTEMP:=H_COUNT
4、;ELSIF(H_COUNT>0)THENHTEMP:=H_COUNT-1;LTEMP:="1001";ELSELTEMP:=(OTHERS=>'0');HTEMP:=(OTHERS=>'0');ENDIF;IF(L_D<9)THENL_T:=L_D+1;ELSIF(H_D<9)THENL_T:=(OTHERS=>'0');H_T:=H_D+1;ELSEL_T:=(OTHERS=>'0');H_T:=(OTHERS=>'0');ENDIF;L_D<=L_T;H_D<=H_T;L_COUNT<=LTEMP;H_COUNT<=HTEMP;ENDIF;ENDIF;LO<=L_COUNT;HO<=H_
5、COUNT;LD<=L_D;HD<=H_D;ENDPROCESS;ENDARCHITECTURECN;说明LIHI,分别为输入的BCD低4位与高4位LO,HO为预置数减计数显示HO(3~0)接M4D~M4A;LO(3~0):M3D~M3ALD,HD为加计数显示HD(3~0)接M2D~M2A;LD(3~0):M1D~M1A使用时首先LI(K1~K4)HI(K5~K8)预置数,再然后LOAD(接K9)调为1,LED会显示预置数,再把LOAD改为0;接着就可以按脉冲了,比如预置数为12(00010010)M4M3显示由12变到0,M2M1显示由0变到12,和总为12;
此文档下载收益归作者所有