硬體原理圖
硬體介面定義
**如下:
module seg_led_static_top(
input sys_clk,
input sys_rst_n,
output [5:0] seg_wei,
output [7:0] seg_duan
);wire time_flag;
//wire clk;
time_count u_time_count(
.sys_clk (sys_clk),
.sys_rst_n (sys_rst_n),
.time_flag (time_flag)
);seg_led_static u_seg_led_static(
.sys_clk (sys_clk),
.sys_rst_n (sys_rst_n),
.time_flag (time_flag),
.seg_wei (seg_wei),
.seg_duan (seg_duan)
);endmodule
module time_count(
input sys_clk,
input sys_rst_n,
output reg time_flag);
reg [24:0] time_num;
always @(posedge sys_clk or negedge sys_rst_n)begin
if(!sys_rst_n)
begin
time_num<=25'd0;
time_flag<=1'b0;
endelse begin
if(time_num<25'd25_000_000)begin
time_num<=time_num+1'b1;
time_flag<=1'b0;
endelse
begin
time_num<=25'd1;
time_flag<=1'b1;
endend
endendmodule
module seg_led_static(
input sys_clk,
input sys_rst_n,
input time_flag,
output reg [5:0] seg_wei,
output reg [7:0] seg_duan
);reg [3:0] seg_fsm;
always @(posedge sys_clk or negedge sys_rst_n)begin
if(!sys_rst_n)
seg_fsm<=4'd0;
else if(time_flag)
begin
seg_fsm<=seg_fsm+1'b1;
endelse
seg_fsm<=seg_fsm;
endalways @(posedge sys_clk or negedge sys_rst_n)begin
if(!sys_rst_n)
begin
seg_wei <=6'b000000; //低電平點亮數碼管
seg_duan <=8'b00000000;
endelse
case(seg_fsm) //共陽數碼管
/* 4'b0000: seg_duan <=8'b1100_0000; //0
4'b0001: seg_duan <=8'b1111_1001; //1
4'b0010: seg_duan <=8'b0100_1111;
4'b0011: seg_duan <=8'b0000_0000;
4'b0100: seg_duan <=8'b0000_0000;
4'b0101: seg_duan <=8'b0000_0000;
4'b0110: seg_duan <=8'b0000_0000;
4'b0111: seg_duan <=8'b0000_0000;
4'b1000: seg_duan <=8'b0000_0000;
4'b1001: seg_duan <=8'b0000_0000;
4'b1010: seg_duan <=8'b0000_0000;
4'b1011: seg_duan <=8'b0000_0000;
4'b1100: seg_duan <=8'b0000_0000;
4'b1101: seg_duan <=8'b0000_0000;
4'b1110: seg_duan <=8'b0000_0000;
4'b1111: seg_duan <=8'b0000)0000;
*/ 4'h0 : seg_duan <= 8'b1100_0000;
4'h1 : seg_duan <= 8'b1111_1001;
4'h2 : seg_duan <= 8'b1010_0100;
4'h3 : seg_duan <= 8'b1011_0000;
4'h4 : seg_duan <= 8'b1001_1001;
4'h5 : seg_duan <= 8'b1001_0010;
4'h6 : seg_duan <= 8'b1000_0010;
4'h7 : seg_duan <= 8'b1111_1000;
4'h8 : seg_duan <= 8'b1000_0000;
4'h9 : seg_duan <= 8'b1001_0000;
4'ha : seg_duan <= 8'b1000_1000;
4'hb : seg_duan <= 8'b1000_0011;
4'hc : seg_duan <= 8'b1100_0110;
4'hd : seg_duan <= 8'b1010_0001;
4'he : seg_duan <= 8'b1000_0110;
4'hf : seg_duan <= 8'b1000_1110;
default : seg_duan <= 8'b1100_0000;
endcase
endendmodule
**結果如下圖:
最終實現實驗任務!
(ps:除錯中 頂層時鐘不要連線同乙個模組的兩個埠 sys_clk 造成實驗問題)
fpga學習之數碼管顯示
1 設計需求 設計乙個數碼管驅動電路,是數碼管能夠顯示任意六位數。2 數碼管原理分析 現在的數碼管基本都是八段式的,也就是說由八個發光二極體組成的。如圖一所示,這是單個數碼管的原理圖 我們需要二極體顯示數字,只需要控制二極體的亮滅就行。以共陽極數碼管為例 給二極體低電平為點亮二極體 如圖二所示顯示數...
數碼管顯示實驗
實驗目的 通過實驗,掌握如何通過74hc595擴充套件io口,掌握如何運用動態掃瞄的方法驅動多位數碼管 實驗內容 判斷按鍵sw8 int1 是否按下,並對按鍵次數計數,顯示在數碼管之上 微控制器剛啟動後,數碼管顯示為全0,當第一次按下sw8後,數碼管顯示0001,當第二次按下sw8後,數碼管顯示00...
07數碼管靜態顯示
51微控制器記憶體是4k,52微控制器是8k,就是記憶體不一樣。數碼管的特點 1.自發光,亮度高,適合環境亮度低的場合使用 2.牢固,不怕衝擊。eg 呼喚機 數碼管是一種半導體發光器件,其基本單元是二極體。一般是3.3v,但是微控制器工作是5v,所以會 串聯乙個1k的電阻來保護。智慧型小車是共陽 拉...