数码管显示的实时时钟电路,4位数码管显示,1秒精度,显示范围从00分00秒到59分59秒,要有模块引用,Veriloghdl语言,附上引脚连接,使用7a35236-1芯片,时钟频率位100Mhz
时间: 2024-01-11 18:04:53 浏览: 34
好的,这里是一个使用 Verilog HDL 实现的、4 位数码管显示的实时时钟电路,1 秒精度,显示范围从 00 分 00 秒到 59 分 59 秒,使用 7a35236-1 芯片,时钟频率为 100MHz。
我们可以将这个电路分成三个模块:时钟模块、计数模块和显示模块。
时钟模块:
时钟模块需要产生一个 1 秒的时钟脉冲,我们可以使用 FPGA 内部的时钟 PLL 模块来实现。这里我们设置时钟频率为 100MHz,产生一个 1Hz 的时钟脉冲。代码如下:
```verilog
module clk_div(
input clk_in,
output reg clk_out
);
reg [25:0] counter;
always @(posedge clk_in) begin
counter <= counter + 1;
if (counter == 99999999) begin
counter <= 0;
clk_out <= ~clk_out; // 产生 1Hz 的脉冲
end
end
endmodule
```
计数模块:
计数模块需要一个计数器,用来记录当前时间。我们可以用一个 32 位的寄存器来存储当前时间的秒数,每次时钟脉冲到来时将其加 1。代码如下:
```verilog
module counter(
input clk,
input reset,
output reg [31:0] count
);
always @(posedge clk) begin
if (reset) begin
count <= 0;
end else begin
count <= count + 1;
end
end
endmodule
```
显示模块:
显示模块需要将计数器中的时间分解成分钟和秒钟,然后将其转换成数码管显示的格式。我们可以使用 BCD 码来表示分钟和秒钟,然后将其转换成数码管的控制信号。代码如下:
```verilog
module display(
input clk,
input reset,
input [31:0] count,
output reg [6:0] seg,
output reg [3:0] anode
);
reg [3:0] sec, min;
// 分钟和秒钟的 BCD 码转换
always @(*) begin
sec = {count[3:0], count[7:4]};
min = {count[11:8], count[15:12]};
end
// 数码管的控制信号生成
always @(posedge clk) begin
if (reset) begin
seg <= 7'b0000000;
anode <= 4'b1111;
end else begin
case (anode)
4'b1110: seg <= {7'b0000001, sec[3]};
4'b1101: seg <= {7'b0000001, sec[2]};
4'b1011: seg <= {7'b0000001, sec[1]};
4'b0111: seg <= {7'b0000001, sec[0]};
4'b1111: seg <= 7'b1111111;
endcase
if (anode == 4'b1111) begin
anode <= 4'b1110;
end else begin
anode <= anode << 1;
end
end
end
endmodule
```
最后,我们将三个模块连接起来,并使用 7a35236-1 芯片的引脚连接。代码如下:
```verilog
module top(
input clk,
input reset,
output reg [6:0] seg,
output reg [3:0] anode
);
wire clk_out;
clk_div div(clk, clk_out);
counter cnt(clk_out, reset, count);
display disp(clk_out, reset, count, seg, anode);
endmodule
```
7a35236-1 芯片的引脚连接如下:
```
clk -> PIN_1
reset -> PIN_2
seg[0] -> PIN_3
seg[1] -> PIN_4
seg[2] -> PIN_5
seg[3] -> PIN_6
seg[4] -> PIN_7
seg[5] -> PIN_8
seg[6] -> PIN_9
anode[0] -> PIN_10
anode[1] -> PIN_11
anode[2] -> PIN_12
anode[3] -> PIN_13
```
希望这个电路对你有所帮助!
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)