CRENCPi
putCP
CRENoutput30Qreg30QalwaysposedgeCPor
egedge
CRbegi
if
CRQ4b0000elseifENQQelseifQ4b1001Q4b0000elseQQ1b1e
de
dmodule仿真波形如下:
f3、24进制模块由于扩展功能里有12和24模式的切换,所以设置一模式控制端口Sel,当Sel1时为12进制模式,当Sel0时为24进制模式。12和24进制的思想是一样的。以24进制为例,在
CR和EN有效时,当时钟高位大于2或分钟高位大于9或者时钟大于等于23时,时钟高位HourH置0,低位HourL置1;如果HourH2和HourL3成立则高位不变,低位加1;其余的如果HourL9;高位加1,低位置0;剩下的情况高位不变,低位加1。modulecou
ter24HourHHourL
CRENCPSeli
putCP
CRENSeloutput30HourHHourLreg30HourHHourLalwaysposedgeCPor
egedge
CRbegi
if
CRHourHHourL8h00elseifENHourHHourLHourHHourLelseifSel1begi
模式选择12进制begi
HourH4b0000HourL4b0001e
delseifHourH1HourL2begi
HourHHourHHourLHourL1b1e
delseifHourL9begi
HourHHourH1b1HourL4b0000e
delse复位使能
ifHourH1HourL9HourH1HourL2
fbegi
HourHHourHHourLHourL1b1e
de
delsebegi
24进制ifHourH2HourL9HourH2HourL3HourHHourL4b0000elseifHourH2HourL3begi
HourHHourHHourLHourL1b1e
delseifHourL9begi
HourHHourH1b1HourL4b0000e
delsebegi
HourHHourHHourLHourL1b1e
de
de
de
dmodule仿真波形如下:
4、分频成1Hz模块
由于系统供给时钟为50MHz时钟,为保证系统计数结果清晰可辨,可设计分频模块clk1hzclkCP,先将系统50MHz时钟clk(50MHz)分频为1Hz时钟。由于50M可以使用32位二进制来表示,定义clk为输入的50MHz时钟modulefe
pi
clkCP
fi
putclkoutputCPregCPi
itialbegi
CP1b0clk132d0e
dreg310clk1可以通过调节25000000的数值来调节输出的频率大小
alwaysposedgeclkifclk132d2begi
clk132d0CPCPe
delseclk1clk11b1e
dmodule由于这个仿真的时钟频率大,没有在波形里显示:
5、整点报时和仿电台报时模块将时分秒输入,因为没有使用蜂鸣器,所用的报时均用LED灯来显示,四声低音时在51秒、53秒、57秒、59秒、D亮;0时G亮;根据输入的Hour的数值使整点报时的灯Voice亮Hour下,9点闪烁9下。整点报时时控制灯闪烁的频率和秒的频率一样,为了实现闪烁必需有两倍的Hour数值的脉冲,设置变量N来实现计数,每次在00分00秒时,将两倍的Hour数值赋给
,每来一个脉冲就减1,直至
0时,正好有2Hour个脉冲,灯Voice可闪烁相应的次数。mor