fifcou
t1
begi
ifloop33begi
loop30
um31e
d
else
begi
loop3loop31
um30e
d
e
d
elsebegi
loop30
um30e
d
always
egedgeclk
ifcou
ta
begi
ifloop43begi
loop40
um41e
d
else
begi
loop4loop41
um40e
d
e
d
elsebegi
loop40
um40e
d
e
dmodule
6、显示模块原理:同时输入计时模块的时间和闹钟模块的时间,选择m值,当m0时,指当前输出的是计时模块的时间;当m1时,指当前输出的是闹钟模块的时间;当m2时,指当前输出的是调节计时模块的时间;当m3时,指当前输出的是跑表计时的时间。
代码如下:
fastermoduleshowmi
1sec1ami
hour1ahourMSHMSLSHSLMHMLmi
sechourmodei
put70mi
1sec1ami
i
put70hour1ahouri
put30MSHMSLSHSLMHMLi
putmodeoutput70mi
secoutput70hourreg70mi
secreg70hourreg10m
alwaysposedgemodemode信号控制系统在三种功能间转换begi
ifm4m0elsemm1e
d
alwaysmi
1orsec1orami
orhour1orahourorm
begi
casem
0
begi
hourhour1mi
mi
1secsec1e
d
f1
begi
hourahourmi
ami
sec8hzze
d
2
begi
hourhour1mi
mi
1sec8hzze
d
3
begi
hourSHSLmi
MSHMSLsecMHMLe
d
e
dcase
e
d
e
dmodule
7、响铃模块
原理:同时输入计时模块的时间和闹钟模块的时间。当计时模块的时间快到达整点时,会产生响声;当计时模块的时分同时等于闹钟模块的时分时,也产生响铃。这时alert为1,如果在这时按住cha
ge键,可以屏蔽闹钟响铃。
代码如下:
ri
gmoduleri
gclkclk_1kmi
1sec1ami
hour1ahourcha
gealerti
put70mi
1sec1ami
i
put70hour1ahouri
putcha
geclkclk_1koutputalertwire70mi
1sec1ami
wire70hour1ahourwirecha
geregalert10alert20reg10sou
dregearwirealertwireclk_1kclk
alwaysposedgeclkifmi
1ami
hour1ahourami
ahourcha
geifsec130alert11elsealert10elsealert10
alwaysposedgeclk
begi
ifsou
d3
begi
sou
d0ear1e
d
ear信号用于产生或屏蔽声音
else
begi
sou
dsou
d1ear0e
d
ifmi
18h59sec18h54mi
1sec1
ifsec18h54alert2earclk_1k产生短音
elsealert2earclk_1k产生长音
felsealert20停止发声e
dassig
alertalert1clk_100Hzclk0alert2产生闹铃音或整点报时音assig
alertalert1clk_1kclk0alert2产生闹铃音或整点报时音e
dmodule
8、跑表模块
原理:输入该模块的是100Hz时钟信号。百分秒是模为100的BCD码计数器,为方便数码管显示,将百分秒的两位分别用4位的MSH(百分秒高位)MSL(百分秒低位)表示。这样MSHMSL就分别对应每一个数码管显示的BCD码。同理,r