当前位置:   article > 正文

基于FPGA的数字秒表设计(含程序)

基于fpga的数字秒表设计

目录

题目要求:

时钟部分程序如下:

工程RTL原理图

全部模块图

题目要求:

(1)利用6位数码管显示时钟分钟秒钟;

(2)具备启停功能;

(3)具备按键消抖功能;

(4)具备按键时间修改功能。

FPGA电子时钟_1(程序讲解) 基本时钟_哔哩哔哩_bilibiliicon-default.png?t=N2N8https://www.bilibili.com/video/BV1XX4y1f7Mr/?vd_source=31778cba24e1fac01ae28d82171a65ed

单单做一个时钟显示就显得十分简单,仅仅是一个进制的设计,秒钟低位满9进1,秒钟高位满5进1等等。

秒钟低位想要1秒加一下就需要一个1hz的时钟信号,通过系统时钟分频得到。

增加启停功能,有两个位置可以进行控制,一个是控制1hz时钟的产生,只要暂停了1hz信号,那么根据1hz信号进行改变的值全部都暂停了,二是在每一个时钟增加暂停动作。前者在没有时间修改或者其他操作的时候适合采用,可以使代码极其简洁,后者更适合在停止过程中有特殊要求,因为时钟没有停止,程序方便处理特殊要求。

无论是按键的启停还是时间修改都需要对按键进行消抖处理。

按键消抖程序https://blog.csdn.net/m0_59487432/article/details/124872245?spm=1001.2014.3001.5502

用两个按键进行时间的修改,一个用来选择修改哪一个时钟位,另一个用来对当前时钟位进行修改,当然用最简单的逻辑可以选择多个按键,一个按键控制一个时钟位,但是这样浪费硬件资源,这里不采纳。

时钟部分程序如下:

  1. module watch(
  2. input clk,
  3. input clk_1hz,
  4. input rstn,
  5. input shape_stop,
  6. input [2:0]choice,
  7. input [3:0]amend,
  8. output reg [3:0] clk_miaol,
  9. output reg [3:0] clk_miaoh,
  10. output reg [3:0] clk_fenl,
  11. output reg [3:0] clk_fenh,
  12. output reg [3:0] clk_shil,
  13. output reg [3:0] clk_shih
  14. );
  15. reg [3:0]miaol,miaoh,fenl,fenh,shil,shih;
  16. reg [3:0]regmiaol,regmiaoh,regfenl,regfenh,regshil,regshih;
  17. always@(posedge clk or negedge rstn)
  18. begin
  19. if(!rstn)
  20. begin
  21. clk_miaol<=0;
  22. clk_miaoh<=0;
  23. clk_fenl<=0;
  24. clk_fenh<=0;
  25. clk_shil<=0;
  26. clk_shih<=0;
  27. regmiaol<=0;
  28. regmiaoh<=0;
  29. regfenl<=0;
  30. regfenh<=0;
  31. regshil<=0;
  32. regshih<=0;
  33. end
  34. else if(!shape_stop)
  35. case(choice)
  36. 0:begin clk_shih<=amend;regshih<=amend;end
  37. 1:begin clk_shil<=amend;regshil<=amend;end
  38. 2:begin clk_fenh<=amend;regfenh<=amend;end
  39. 3:begin clk_fenl<=amend;regfenl<=amend;end
  40. 4:begin clk_miaoh<=amend;regmiaoh<=amend;end
  41. 5:begin clk_miaol<=amend;regmiaol<=amend;end
  42. endcase
  43. else
  44. begin
  45. clk_miaol<=miaol;
  46. clk_miaoh<=miaoh;
  47. clk_fenl<=fenl;
  48. clk_fenh<=fenh;
  49. clk_shil<=shil;
  50. clk_shih<=shih;
  51. regmiaol<=miaol;
  52. regmiaoh<=miaoh;
  53. regfenl<=fenl;
  54. regfenh<=fenh;
  55. regshil<=shil;
  56. regshih<=shih;
  57. end
  58. end
  59. always@(posedge clk_1hz or negedge rstn)
  60. begin
  61. if(!rstn)
  62. miaol<=0;
  63. else if(!shape_stop)
  64. miaol<=regmiaol;
  65. else if(miaol<9)
  66. miaol<=miaol+1;
  67. else
  68. miaol<=0;
  69. end
  70. always@(posedge clk_1hz or negedge rstn)
  71. begin
  72. if(!rstn)
  73. miaoh<=0;
  74. else if(!shape_stop)
  75. miaoh<=regmiaoh;
  76. else if(miaoh<5&&miaol==9)
  77. miaoh<=miaoh+1;
  78. else if(miaol==9)
  79. miaoh<=0;
  80. end
  81. always@(posedge clk_1hz or negedge rstn)
  82. begin
  83. if(!rstn)
  84. fenl<=0;
  85. else if(!shape_stop)
  86. fenl<=regfenl;
  87. else if(fenl<9&&miaoh==5&&miaol==9)
  88. fenl<=fenl+1;
  89. else if(fenl==9&&miaoh==5&&miaol==9)
  90. fenl<=0;
  91. end
  92. always@(posedge clk_1hz or negedge rstn)
  93. begin
  94. if(!rstn)
  95. fenh<=0;
  96. else if(!shape_stop)
  97. fenh<=regfenh;
  98. else if(fenh<5&&fenl==9&&miaoh==5&&miaol==9)
  99. fenh<=fenh+1;
  100. else if(fenh==5&&fenl==9&&miaoh==5&&miaol==9)
  101. fenh<=0;
  102. end
  103. always@(posedge clk_1hz or negedge rstn)
  104. begin
  105. if(!rstn)
  106. shil<=0;
  107. else if(!shape_stop)
  108. shil<=regshil;
  109. else if(shih==2&&shil>=3&&fenh==5&&fenl==9&&miaoh==5&&miaol==9)
  110. shil<=0;
  111. else if(shil<9&&fenh==5&&fenl==9&&miaoh==5&&miaol==9)
  112. shil<=shil+1;
  113. else if(shil==9&&fenh==5&&fenl==9&&miaoh==5&&miaol==9)
  114. shil<=0;
  115. end
  116. always@(posedge clk_1hz or negedge rstn)
  117. begin
  118. if(!rstn)
  119. shih<=0;
  120. else if(!shape_stop)
  121. shih<=regshih;
  122. else if(shih==2&&shil>=3&&fenh==5&&fenl==9&&miaoh==5&&miaol==9)
  123. shih<=0;
  124. else if(shih<2&&shil==9&&fenh==5&&fenl==9&&miaoh==5&&miaol==9)
  125. shih<=shih+1;
  126. end
  127. endmodule

工程.v文件资源https://download.csdn.net/download/m0_59487432/85685001?spm=1001.2014.3001.5503

需要帮助加QQ:2943115420

工程RTL原理图

全部模块图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/550212
推荐阅读
相关标签
  

闽ICP备14008679号