|
发表于 2009-9-20 22:19:24
|
显示全部楼层
新手的话还是玩玩周生生的 EasyFPGA030开发平台 比较合算,99RMB,两顿KFC就OK了,还可以半价买些芯片,上面的资料不少,都很实在,如果能结合数字电路这本书来学,很有收获。
不过A3P030的资源实在有点少,一个计数器加一个译码器就耗了1/5。有图有真相:
(原文件名:digit.jpg)
代码:
/**************************************************************
** 模块名称:digita 功能描述:使一个数码管显示数字和字母
**************************************************************/
module LED(
clk48M, //48M时钟输入
RSTn, //复位信号,高电平复位
DIGIT //数码管输出
);
input clk48M;
input RSTn;
output [7:0] DIGIT;
reg [22:0] count; //分频计数器
reg [7:0] DIGIT;
reg [3:0] cach;
always@(posedge clk48M or negedge RSTn)
begin
if(!RSTn) //异步复位
begin
cach<=4'b0000;
DIGIT<=8'h0;
count<=23'h0;
//计数器赋初值
end
else
begin
count<=count+1;
if(count==23'hff_ff_ff)
begin
cach<=cach+1;
count<=0;
case(cach) //七段译码
4'h0:DIGIT <= 8'hc0; //显示0
4'h1:DIGIT <= 8'hf9; //显示1
4'h2:DIGIT <= 8'ha4; //显示2
4'h3:DIGIT <= 8'hb0; //显示3
4'h4:DIGIT <= 8'h99; //显示4
4'h5:DIGIT <= 8'h92; //显示5
4'h6:DIGIT <= 8'h82; //显示6
4'h7:DIGIT <= 8'hf8; //显示7
4'h8:DIGIT <= 8'h80; //显示8
4'h9:DIGIT <= 8'h90; //显示9
4'ha:DIGIT <= 8'h88; //显示a
4'hb:DIGIT <= 8'h83; //显示b
4'hc:DIGIT <= 8'hc6; //显示c
4'hd:DIGIT <= 8'ha1; //显示d
4'he:DIGIT <= 8'h86; //显示e
4'hf:DIGIT <= 8'h8e; //显示f
endcase
end
end
end
endmodule |
|