用的是论坛上的测试程序FPGA开发板DIY 测试程序 下载后用QuartusII写入开发板运行
首先打开QuartusII点击出现
再点击出现
选中文件*.sof点击键出现如图
然后点击(记得一定要打开板子上的电源开关啊)会出现下图
你看看板的LED灯是不是已经开始亮了。后面的几个操作时一样的。
第一个LED闪烁灯测试
第二个LED流水灯测试
第三个蜂鸣器测试
这个没有照片可拍的了是声音,我不会上传的方法
第四个数码管测试
第五个音乐播放器测试
我没有LCD屏所以没有测试等有了再上传
这是软件界面
这是器件选择
这是编程器的选择
这是不用管脚的设置
在定义引脚是我是先将程序编译一下用到那个再从电路原理图中找到就行了
程序代码:
module led(led);
output[7:0]led;
assign led=8'b0101_0101;
endmodule
这个程序是控制2、4、6、8LED灯亮的
作业:
如果将程序中的8'b0101_0101改成8'b1010_1010就可以控制1、3、5、7LED灯亮了(教程中用always命令的也是改的这个)
运行后如下
8'b0101_0101
8'b1010_1010
总结:
0表示LED灯灭
1表示LED灯亮
源代码下载:LED.rar
源代码:
module led_water(sys_clk,
sys_rstn,
led
);
//input,output
input sys_clk; //clk,50MHz
input sys_rstn; //rest
output[7:0]led; //led output
reg [7:0] led ; //led
reg [24:0] delay_cnt;
always@(posedge sys_clk or negedge sys_rstn)
begin
if(!sys_rstn)
delay_cnt<=25'd0;
else
begin
if(delay_cnt==25'd24999999)
delay_cnt<=25'd0;
else
delay_cnt<=delay_cnt+1'b1;
end
end
always@(posedge sys_clk or negedge sys_rstn)
begin
if(!sys_rstn)
led<=8'b11111111;
else
begin
if(delay_cnt==25'd24999999)
begin
led<=led>>1;
if(led==8'b00000000)
led<=8'b11111111;
end
else
led<=led;
end
end
endmodule
运行结果(向左流水)
作业:
向右流水是将 led<=led>>1中“>>”改成“<<”就可以了
向右流水视频:
视频地址:http://union.bokecc.com/flash/single/290666218ACBA694_B5DD850405B1CC89_false_EEA982EE6B20F4D1_1/player.swf
源代码下载:LED_water.rar
实验五(按键控LED)
说明:按下一个key亮一个led灯
代码:
module key_led(
key_in,
led
);
input[7:0]key_in;
output[7:0]led;
reg[7:0]led;
reg[7:0]buffer;
always@(key_in)
begin
buffer=key_in;
case(buffer)
8'b11111110:led=8'b11111110;
8'b11111101:led=8'b11111101;
8'b11111011:led=8'b11111011;
8'b11110111:led=8'b11110111;
8'b11101111:led=8'b11101111;
8'b11011111:led=8'b11011111;
8'b10111111:led=8'b10111111;
8'b01111111:led=8'b01111111;
default led=8'b11111111;
endcase
end
endmodule
运行结果
下载分享:key_led.rar
代码:
module shuma(
sm_seg,
sm_bit,
clk);
input clk;
output [7:0] sm_seg;
output [7:0] sm_bit;
reg [7:0] sm_seg;
reg [7:0] sm_bit;
reg [3:0] disp_dat;
reg [36:0] count;
always@(posedge clk)
begin
count=count+1'b1;
sm_bit=8'b00000000;
end
always@(count[24])
begin
disp_dat={count[28:25]};
end
always@(disp_dat)
begin
case(disp_dat)
4'h0:sm_seg=8'hc0;//0
4'h1:sm_seg=8'hf9;//1
4'h2:sm_seg=8'ha4;//2
4'h3:sm_seg=8'hb0;//3
4'h4:sm_seg=8'h99;//4
4'h5:sm_seg=8'h92;//5
4'h6:sm_seg=8'h82;//6
4'h7:sm_seg=8'hf8;//7
4'h8:sm_seg=8'h80;//8
4'h9:sm_seg=8'h90;//9
4'ha:sm_seg=8'h88;//a
4'hb:sm_seg=8'h83;//b
4'hc:sm_seg=8'hc6;//c
4'hd:sm_seg=8'ha1;//d
4'he:sm_seg=8'h86;//e
4'hf:sm_seg=8'h8e;//f
endcase
end
endmodule
运行结果
下载分享:shumaguan.rar
实验七(动态显示数码管)
源代码 :
module shuma(clk,
rstn,
sm_seg,
sm_dig);
input clk;
input rstn;
output [7:0] sm_seg;
output [7:0] sm_dig;
reg [7:0] sm_seg;
reg [7:0] sm_dig;
reg[15:0]cnt_scan;
reg[4:0] buffer;
always@(posedge clk or negedge rstn)
begin
if(!rstn)
begin
cnt_scan<=0;
end
else
begin
cnt_scan<=cnt_scan+1'b1;
end
end
always@(cnt_scan)
begin
case(cnt_scan[15:13])
3'b000:sm_dig=8'b11111110;
3'b001:sm_dig=8'b11111101;
3'b010:sm_dig=8'b11111011;
3'b011:sm_dig=8'b11110111;
3'b100:sm_dig=8'b11101111;
3'b101:sm_dig=8'b11011111;
3'b110:sm_dig=8'b10111111;
3'b111:sm_dig=8'b01111111;
endcase
end
always@(sm_dig)
begin
case(sm_dig)
8'b11111110:buffer=0;
8'b11111101:buffer=1;
8'b11111011:buffer=2;
8'b11110111:buffer=3;
8'b11101111:buffer=4;
8'b11011111:buffer=5;
8'b10111111:buffer=6;
8'b01111111:buffer=7;
default:buffer=8;
endcase
end
always@(buffer)
begin
case(buffer)
4'h0:sm_seg=8'hc0;//0
4'h1:sm_seg=8'hf9;//1
4'h2:sm_seg=8'ha4;//2
4'h3:sm_seg=8'hb0;//3
4'h4:sm_seg=8'h99;//4
4'h5:sm_seg=8'h92;//5
4'h6:sm_seg=8'h82;//6
4'h7:sm_seg=8'hf8;//7
4'h8:sm_seg=8'h80;//8
4'h9:sm_seg=8'h90;//9
4'ha:sm_seg=8'h88;//a
4'hb:sm_seg=8'h83;//b
4'hc:sm_seg=8'hc6;//c
4'hd:sm_seg=8'ha1;//d
4'he:sm_seg=8'h86;//e
4'hf:sm_seg=8'h8e;//f
endcase
end
endmodule
运行结果:
源代码下载分享:shumaguandong.rar
用case实现的
关键代码:
always @ (posedge clk)
begin
case(state)
5'b00000: led=8'b11111111;
5'b00001: led=8'b00000000;
5'b00010: led=8'b10000000;
5'b00011: led=8'b11000000;
5'b00100: led=8'b11100000;
5'b00101: led=8'b11110000;
5'b00110: led=8'b11111000;
5'b00111: led=8'b11111100;
5'b01000: led=8'b11111110;
5'b01001: led=8'b11111111;
5'b01010: led=8'b00000000;
5'b01011: led=8'b11111111;
5'b01100: led=8'b00000001;
5'b01101: led=8'b00000010;
5'b01110: led=8'b00000100;
5'b01111: led=8'b00001000;
5'b10000: led=8'b00010000;
5'b10001: led=8'b00100000;
5'b10010: led=8'b01000000;
5'b10011: led=8'b10000000;
5'b10100: led=8'b11111111;
5'b10101: led=8'b00000000;
5'b10111: led=8'b10000001;
5'b11000: led=8'b11000011;
5'b11001: led=8'b11100111;
5'b11010: led=8'b11111111;
5'b11011: led=8'b00011000;
5'b11100: led=8'b00111100;
5'b11101: led=8'b01111110;
5'b11110: led=8'b11111111;
5'b11111: led=8'b00000000;
endcase
state=state+1;
end
实现的视频:
视频地址:http://union.bokecc.com/flash/single/290666218ACBA694_3E75C2E921037A8C_false_EEA982EE6B20F4D1_1/player.swf
源代码分享:chanLED.rar
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |