收藏 分销(赏)

基于LCD显示的倒计时秒表设计.doc

上传人:仙人****88 文档编号:11578680 上传时间:2025-07-31 格式:DOC 页数:6 大小:111.50KB 下载积分:10 金币
下载 相关
基于LCD显示的倒计时秒表设计.doc_第1页
第1页 / 共6页
基于LCD显示的倒计时秒表设计.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
作品功能如下: 1、倒计时秒表具有置数功能,在相应按键作用下,可将倒计时的初始值设置在0—9999.999范围内,计到0时自动停止。 2、秒表计时范围0—9999.999秒,精度到ms。 3、LCD实时显示秒表计时值。 4、系统时钟采用实验板上提供的50MHz时钟信号源。 5、设计成同步电路模式。 模块一:分频(1ms)参见文件夹中的cout_1ms.v) module cout_1ms(clk,rst,clock); input rst,clk; output clock; reg clock; integer i; always @(posedge clk or negedge rst) begin if(~rst) clock<=0; else begin      i=i+1;      if(i==12500)      begin      clock<=~clock;      i=1;      end end end endmodule 模块二:置数按键控制(参见文件夹中的ce.v) module ce(set,seth,dain,outcome1,outcome2,outcome3,outcome4,outcome5,outcome6,outcome7); input set,seth; input[4:1] dain; output[4:1] outcome1=9,outcome2=9,outcome3=9, outcome4=9,outcome5=9,outcome6=9,outcome7=9; reg[4:1] outcome1,outcome2,outcome3, outcome4,outcome5,outcome6,outcome7; integer i=1,j=1; always@(posedge set) if(~seth) begin casez(i) 1:outcome1<=dain; 2:outcome2<=dain; 3:outcome3<=dain; 4:outcome4<=dain; 5:outcome5<=dain; 6:outcome6<=dain; 7:outcome7<=dain; endcase i=i+1; if(i==7)i=1; end else i=1; endmodule set的第一个脉冲对第七个9置数,通过拨码置数,可调范围0~9. set的第二个脉冲对第六个9置数,通过拨码置数,可调范围0~9. set的第三个脉冲对第五个9置数,通过拨码置数,可调范围0~9. set的第四个脉冲对第四个9置数,通过拨码置数,可调范围0~9. set的第五个脉冲对第三个9置数,通过拨码置数,可调范围0~9. set的第六个脉冲对第二个9置数,通过拨码置数,可调范围0~9. set的第七个脉冲对第一个9置数,通过拨码置数,可调范围0~9. 模块三:实现9999999~0的倒计数(参见文件夹中的counter_8gate.v) module counter_8gate(clk,rst,seth,en,stop,data1,data2,data3,data4,data5,data6,data7,outcome1,outcome2,outcome3,outcome4,outcome5,outcome6,outcome7); input clk,rst,en,stop,seth; input[4:1] data1,data2,data3,data4,data5,data6,data7; output[4:1] outcome1=9,outcome2=9,outcome3=9,outcome4=9,outcome5=9,outcome6=9,outcome7=9; reg[4:1] outcome1,outcome2,outcome3,outcome4,outcome5,outcome6,outcome7; integer i=1,j=1; reg[1:0] key_reg; wire key_en;   assign key_en=~key_reg[0] & key_reg[1]; always @(posedge clk or negedge rst) if(~rst)   key_reg<=2'b00; else   key_reg<={key_reg[0],en};   always@(posedge clk or negedge rst) begin if(~rst)    begin    outcome1=9;outcome2=9;outcome3=9;outcome4=9;    outcome5=9;outcome6=9;outcome7=9;i=1;j=2;    end else if(key_en||j>1)      begin      outcome1=outcome1-1;      j=2;      if(outcome1==4'b1111)                begin                outcome2=outcome2-1;                outcome1=9;                if(outcome2==4'b1111)                     begin                     outcome3=outcome3-1;                     outcome2=9;                          if(outcome3==4'b1111)                                 begin                                 outcome4=outcome4-1;                                 outcome3=9;                                      if(outcome4==4'b1111)                                          begin                                          outcome5=outcome5-1;                                          outcome1=4;                                               if(outcome5==4'b1111)                                                     begin                                                        outcome6=outcome6-1;                                                        outcome5=9;                                                              if(outcome6==4'b1111)                                                                  begin                                                                  outcome7=outcome7-1;                                                                  outcome6=9;                                                                      if(outcome7==4'b1111)                                                                            outcome7=9;                                                                         end                                                                                                              end                                           end                                   end                          end                    end       end       else if(seth)       begin       outcome1=data1;       outcome2=data2;       outcome3=data3;       outcome4=data4;       outcome5=data5;       outcome6=data6;       outcome7=data7;       end end always@(negedge stop) begin outcome1=outcome1;outcome2=outcome2;outcome3=outcome3;outcome4=outcome4; outcome5=outcome5;outcome6=outcome6;outcome7=outcome7; end endmodule 模块四:(分频,置数,倒计数整合模块)(参见文件中的counter.v)   模块五:LCD显示(参见文件夹中的LCD.v) LCD模块大家已经和熟悉,所以不做任何分析.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服