按下频率传送键,将数码管所显示的数值作为频率传送到PWM模块,设频率理论值范围10hz99990hz。
3、用于按键显示的数码管计数的计数采用十进制。设定的计数值由四位数码管动态显示,并且被设定的位选数码管‘’点亮,表明该数码管被选中。同时通电后,需利用移位复位功能将数码管清零。
五、系统分析:
1、根据原理图与原理框图:系统电路可分成4个主干模块:PWM模块、按键消抖模块、按键设定模块、数码管模块。
PWM:通过对正弦波采样存储并利用时钟分频再进行比较获得PWM波,同时分频系数由按键与数码管陪和共同反馈运算结果进行分频。
按键消抖:按键按下是会产生不稳定,设定何时的计数时间,再取按键拔起后获得的最后一次计数作为按键信号。
按键设定:按键计数,按下后数码管进行计数。移位复位,按下后数码管位选再移位与复位下一位数码管。频率传送,将数码管示数作为频率传送到PWM模块。
数码管:动态扫描,频率值显示在数码管上。
2、说明:数码管显示不稳定,使用前先用移位复位键将示数清零。测
六、程序设计:
fLIBRARYIEEEUSEIEEESTD_LOGIC_1164ALLUSEIEEESTD_LOGIC_UNSIGNEDALLUSEIEEENUMERIC_STDALL
ENTITYzxb_maoIS
PORTCLK
INSTD_LOGIC
RIGHTA
INSTD_LOGIC右移输入键
CNTFILT
INSTD_LOGIC频率选择键
RESTA
INSTD_LOGIC复位输入键
NUMA
INSTD_LOGIC按键计数输入键
PWMPWM_LED
OUTSTD_LOGICOUTSTD_LOGICLED亮灯
数码管的段数据
SMG
OUTSTD_LOGIC_VECTOR7DOWNTO0
DEN数码管的选通信号
OUTSTD_LOGIC_VECTOR3DOWNTO0
ENDzxb_mao
ARCHITECTUREsy
OFzxb_maoIS
sig
alabcd
i
tegerra
ge0to9输入数
sig
alc
t
i
tegerra
ge0to50000000调频频信号
sig
al
um
i
tegerra
ge0to9数码管显示计数
sig
al
um_1
i
tegerra
ge0to3数码管位移数
sig
alcou
t
i
tegerra
ge0to50000000晶振分频计数
sig
alcou
t_key
i
tegerra
ge0to2499键盘扫描分频
sig
alclkc
t
std_logic
可调分频时钟
sig
alcout1sig
alCOM
i
tegerra
ge0to255i
tegerra
ge0to255采样数据
sig
altmpsig
alkey1filtsig
alkey1c
t计数sig
alkey2filtsig
alkey2c
t行计数sig
alkey3filtsig
alkey3c
t计数
std_logic_vector5dow
to0std_logic按键NUMA消抖后得到的信号
i
tegerra
ge0to50000000用于对NUMA按键输入有效时间进行
std_logic按键RIGHTA消抖后得到的信号I
tegerra
ge0to50000000用于对RIGHT_按键输入有效时间进
std_logic按键CNTFILT消抖后得到的信号i
tegerra
ge0to50000000用于对LIFT_按键输入有效时间进行
sig
alcou
t1
i
tegerra
ge0to500000000
fsig
alcout2sig
alclk1hzsig
alclk100khz
r