基于fpga的多功能电子万年历毕业设计(编辑修改稿)内容摘要:

图 215 多路选择模块的波形仿真图 输入端口 功能 TimeSet_EN 时间设置使能信号 hour1,hour0 自动模式中当前时间的小时数输入 minute1,minute0 自动模式中当前时间的分钟数输入 second0,second1 自动模式中当前时间的秒数输入 开 始 依输入条件,判断是自动显示时间,或显示调整后的时间 Timeset_EN=1。 显示设置后的时间 显示自动模式时的时间 结 束 hour_set1,hour_set0 时间设置后的小时数输入 minute_set1,minute_set0 时间设置后的分钟数输入 second_set1,second_set0 时间设置后的秒数输入 输入端口 功能 hour_1,hour_0 当前需要显示的小时输出 minute_1,minute_0 当前需要 显示的分钟输出 second_0,second_1 当前需要显示的秒输出 表 216 多路选择模块的端口说明 时间显示动态位选模块 time_disp_select 该模块用来分时显示时间数据,但是在选择合适的时间间隔下,人眼并不能分辨出是分时显示的,这样显示的方式可以降低功耗,结构功能图如 217 所示,波形仿真图如 218所示。 图 217 时间显示动态位选模块的结构功能图 图 218(a) 时间显示动态位选模块的波形仿真图 图 218(b) 时间显示动态位选模块的波形仿真图 TimeSet_EN 表示时间设置使能, Time_EN 表示时间自动显示使能,clk_1kHz 用于动态显示时间, clk_200Hz 用于闪烁显示时间,timeset_disp_drive 表 示 时 间 设 置 数 据 显 示 的 同 步 信 号 ,time_disp_select 表示显示动态位选输出信号。 当 TimeSet_EN 为 0,Time_EN 为 1 时,以 clk_1kHz 为是时钟信号,输出自动显示的时间,按位依次显示;当 TimeSet_EN 为 1, Time_EN 为 0 时,则以 clk_200Hz为时钟信号,输出以 timeset_disp_drive 对 应的位置。 显示模块 disp_data_mux 模块是时间、日期等数据用数码管显示的控制与数据传输模块,包括数据的传输以及 BCD 码的译码等 ,结构功能图如 219 所示,波形仿真图如 420 所示。 图 219 显示模块的结构功能图 显示原理采用的是七段数码管的现实原理,如 220 所示: 图 220 七段数码管的显示原理 图 221 显示模块的波形仿真图 秒表模块 stopwatch 该模块实现秒表的功能,在实际中,可以通过改变自动工作模式下的时间的计数时钟的频率来实现秒表的功能,流程图如 222 所示,结构功能图如 223 所示,波形仿真图如 224 所示。 图 222 秒表模块的流程图 图 223 秒表模块的结构功能图 开 始 EN=1。 秒表工作状态 时间自动工作状态 结 束 图 224 秒表功能的波形仿真图 EN 表示秒表使能控制信号, clk1 表示自动工作模式的时钟信号,clk2 表示秒表工作模式的时钟信号,故当 EN 为有效信号 1 时,输出F_out 与 clk2 同,即处于秒表工作状态,同理 EN 为 0 时,输出 F_out与 clk1 同,即处于自动工作状态。 日期显示与设置模块 date_main 该模块实现日期的显示和日期的调整与设置,结构功能图如 225所示。 图 225 时间显示与设置模块的结构功能图 日期自动工作模块 autodate 该模块实现的是日期的自动工作功能,结构功能图如 226 所示,波形仿真图如 227 所示。 图 226 日期自动工作模块的结构功能图 图 227(a) 日期自动工作模块的波形仿真图 图 227(b) 日期自动工作模块的波形仿真图 日期设置模块 setdate 该模块用于日期,结构功能图如 228 所示。 图 228 日期设置模块的结构功能图 闹钟模块 alarmclock 该模块实现的功能包括闹钟的设置以及闹钟时间到后的提示,流程图如 229 所示,结构功能图如 230 所示,波形仿真图如 231 所示。 图 229 闹钟模块的流程图 图 230 闹 钟模块的结构功能图 图 231 闹钟模块的波形仿真图 开 始 设置的闹钟与当前时间比较 alarm=1’b1 闹钟工作 alarm=1’b0 闹钟不工作 EN=1 disp_drive3’b101? disp_drive=disp_drive+3,b1 disp_drive=3’b0 根据不同的disp_drive 选择在不同的位置上的数值加 1 结 束 EN 为闹钟设置使能, clk_200Hz 用于设置中的闪烁显示的时钟,其中还定义了 hour_set1, hour_set0, minute_set1, minute_set0,second_set1, second_set0,用来表示已经设置好的闹钟时间。 闹钟一直处于工作状态,当前时间( hour1, hour0, minute1, minute0, second1,second0)与设置的闹钟时间相比较,当小时、分钟、秒钟的时间完全相同时,则闹铃响,输出信号 alarm 为有效信号 1。 SW1 和 SW2是调整键,分别控制位选和数值的调整。 分频模块 fdiv 该模块完成全局时钟信号分频输出 200Hz、 60Hz、 1Hz 的三种时钟信号 ,流程图如 232 所示,结构功能图如 233 所示,波形仿真图如 234 所示。 图 233 分频模块的结构功能图 图 234 分频模块的波形仿真图 图 232 分频模块的流程图 顶层模块图 将各个主模块综合成电子万年历系统,其包括: fdiv 分频模块,maincontrol 主控制模块, stopwatch 秒表模块, time_auto_and_set 时间及其设置模块, date_main 日期及其设置模块, alarmclock 闹钟模块,time_disp_select 时间显示动态位选模块及 disp_data_mux 显示模块,该顶层电路 Top 如图 235 所示。 开始,输入 1kHz 时钟信号 posedge clk CNT4? 输出 200Hz时钟信号f200Hz CNT=CNT+1 posedge f200Hz CNT22? CNT2=CNT2+1 输出 60Hz时钟信号 posedge f200Hz CNT3199? CNT3=CNT3+1 输出 1Hz 时钟信号 结 束 ENc lk 1c lk 2F _o uts t op w at c hins t 2D at e_ENdat e_dis p_c lkday _END at e_Set _ENSW 1SW 2m ont h1[ 3. . 0]m ont h0[ 3. . 0]day 1[ 3. . 0]day 0[ 3. . 0]D is p_s elec t _dat e[ 5. . 0]dat e_m ainins t 4c lk _1k H zc lk _200H zT im e_ENT im eSet _ENt im es et _dis p_driv e[ 2. . 0]t im e_dis p_s elec t [ 5. . 0]t im e_dis p_s elec tins t 6c lk f 200H zf 60H zf 1H zf divins t 5SW 3 T im epiec e_ENT im eSet _ENSt opw at c h_ENAlarm c loc k _END at e_END at eSet _ENm ainc ont rolins t 3C LKT im ep iec e_ ENT im eS et _E NSW 1SW 2D ay _E Nho ur_ 1[ 3. . 0]ho ur_ 0[ 3. . 0]m inu t e_ 1[ 3. . 0]m inu t e_ 0[ 3. . 0]s ec on d_ 1[ 3. . 0]s ec on d_ 0[ 3. . 0]T im eS et _d is p_ dri v e[ 2. . 0]t im e_ au t o_ an d_ s etins t 1ENSW 1SW 2c lk _200H zhour1[ 3. . 0]hour0[ 3. . 0]m inut e1[ 3. . 0]m inut e0[ 3. . 0]s ec ond1[ 3. . 0]s ec ond0[ 3. . 0]alarmalarm c loc k _dis p_s elec t [ 5. . 0]alarm c loc kins t 11T im ep iec e_ ENT im eSe t _ENSt op w at c h_ ENt im e_ dis p_ s ele c t [ 5. . 0]Alarm c loc k _ENala rm c loc k _d is p_ s ele c t [ 5. . 0]ho ur1 [ 3. . 0]ho ur0 [ 3. . 0]m inu t e1 [ 3. . 0]m inu t e0 [ 3. . 0]s ec on d1 [ 3. . 0]s ec on d0 [ 3. . 0]D at e_ END at eSe t _ENda t e_ dis p_ s ele c t [ 5. . 0]m on t h1 [ 3. . 0]m on t h0 [ 3. . 0]da y 1[ 3. . 0]da y 0[ 3. . 0]dis p_ s ele c t [ 5. . 0]dis p_ da t a[ 6. . 0]dis p_ da t a_ m uxins t 8G N DC loc kIN P U TG N DSW 3IN P U TG N DSW 1IN P U TG N DSW 2IN P U TalarmO U T P U Tdis p_ s ele c t [ 5. . 0]O U T P U Tdis p_dat a[ 6. . 0]O U T P U T 图 235 顶层电路 Top 三、附录 电子万年历系统的 Verilog HDL 语言程序设计 部分代码 module maincontrol(clk,SW3,Timepiece_EN,TimeSet_EN,Stopwatch_EN,Alarmclock_EN,Date_EN,DateSet_EN)。 output Timepiece_EN。 //时间自动显示使能 output TimeSet_EN。 //时间调整与设置使能 output Stopwatch_EN。 //秒钟功能使能 output Alarmclock_EN。 //闹钟时间设置使能 output Date_EN。 //时期显示使能 output DateSet_EN。 //日期调整与设置使能 input SW3。 //功能号选择 input clk。 reg Timepiece_EN。 reg TimeSet_EN。 reg Stopwatch_EN。 reg Alarmcloc。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。