目录

银杏科技有限公司旗下技术文档发布平台
技术支持电话0379-69926675-801
技术支持邮件Gingko@vip.163.com
版本 日期 作者 修改内容
V1.0 2020-05-28 gingko 初次建立

实验八:计数器实验——呼吸灯

一、 实验目的与意义

  1. 掌握计数器原理及使用方法;
  2. 掌握ISE开发环境的使用。

二、 实验设备及平台

  1. iCore4TX 双核心板点击购买
  2. USB-CABLE(或相同功能)仿真器;
  3. Micro USB线缆;
  4. ISE开发平台;
  5. 电脑一台;

三、 实验原理

四、 代码讲解

//-------------------cnt1--------------------//
//对系统时钟进行计数
always@(posedge clk_25M or negedge rst_n)
	if(!rst_n)
	    cnt1<=13'd0;
	else	if(cnt1==13'd4999)
	    cnt1<=13'd0;
	else
	    cnt1<=cnt1+1'd1;
//------------------cnt2-------------------//
//对cnt1进行计数		
always@(posedge clk_25M or negedge rst_n)
	if(!rst_n)
	    cnt2<=13'd0;
	else if((cnt1==13'd4999)&&(cnt2==13'd4999))
	    cnt2<=13'd0;
	else if(cnt1==13'd4999)
	    cnt2<=cnt2+1'd1;
//-----------------flag--------------------//
//flag为1时led逐渐变亮,flag为0时逐渐变暗
reg flag;
always@(posedge clk_25M or negedge rst_n)
	if(!rst_n)
	    flag<=1'd0;
	else if((cnt2==13'd0)&&(cnt1==13'd0))
	    flag<=~flag;
//-----------------led--------------------//
//控制LED在哪个范围内亮和灭
always@(posedge clk_25M or negedge rst_n)
	if(!rst_n)
	    led_r<=1'd1;
	else if((flag==1'd1)&&(cnt2<cnt1))
	    led_r<=1'd0;
	else if((flag==1'd0)&&(cnt2>cnt1))
	    led_r<=1'd0;
	else 
	    led_r<=1'd1;

五、 实验步骤及实验结果

图8-1

  1. 将硬件正确连接,如图8-1所示。
  2. 将编写好的代码进行编译,并下载到开发板中;
  3. 观察实验现象——FPGA_LED逐渐变亮然后逐渐变暗,循环进行。

六、 拓展实验