Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1955488
  • 博文数量: 356
  • 博客积分: 8284
  • 博客等级: 中将
  • 技术积分: 4580
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-15 20:25
个人简介

天行健,君子以自强不息

文章分类

全部博文(356)

文章存档

2018年(1)

2016年(4)

2015年(13)

2014年(14)

2013年(2)

2012年(25)

2011年(43)

2010年(65)

2009年(189)

分类:

2009-09-24 21:35:30

/*测试环境:quatersII7.2  FPGA:ED2开发版  GPIO0_0 外接频率输入
*/
module frequency (clk_x,clk,segdat1,segdat2,segdat3,segdat4,segdat5,segdat6,segdat7,segdat8);
input clk,clk_x;
output segdat1,segdat2,segdat3,segdat4,segdat5,segdat6,segdat7,segdat8;
reg [6:0] segdat1,segdat2,segdat3,segdat4,segdat5,segdat6,segdat7,segdat8;
reg [3:0] dispdat1,dispdat2,dispdat3,dispdat4;
reg [24:0] count;
reg [15:0] fosc,fosc_flash;
reg second;
reg flag;

initial
 begin
  segdat5=7'b1111111;
  segdat6=7'b1111111;
  segdat7=7'b1111111;
  segdat8=7'b1111111;
  flag=1'b0;
 end
////////////////////////////jiang shi  zhong fen  ping cheng 1 HZ////////////////////////////////////
always @ (posedge clk)
 begin
  count=count+1;
  if(count==25'd25000000)
   begin
    count=25'b0000000000000000000000000;
    second=~second;
   end
 end
 
 
///////////////////////display//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
/*
/////////////////////////jiang ping lv de mei yi  wei zhi  fu gei xiang ying de shu chu guan jiao//////////////////////////////////////////////////////
always @(count[11:10])
 begin
  
  case(count[11:10])
  2'b00: segdat1=fosc[3:0];
  2'b01: segdat2=fosc[7:4];
  2'b10: segdat3=fosc[11:8];
  2'b11: segdat4=fosc[15:12];
  endcase
 end
*/
/////////////////jiang shu chu ping lv de zhi fu gei wei xuan  chu ji cun qi///////////////////////////////////////////
always  @(count[11:10])
 begin
  case(count[11:10])
   2'b00: dispdat1=fosc[3:0];
   2'b01: dispdat2=fosc[7:4];
   2'b10: dispdat3=fosc[11:8];
   2'b11: dispdat4=fosc[15:12];
  endcase
 end
//////////////////////yong  wei xuan shu chu ji cun qi kong zhi segdat1 shu ma guan de ju ti shu chu zhi////////////////////////////////////////////////////
////////////////////////////////di yi ge shu ma guan de xian shi/////////////////////////////
always @(dispdat1)
 begin
  case(dispdat1)
  4'h0:         segdat1=7'b1000000;//0
  4'h1:   segdat1=7'b1111001;//1
  4'h2:   segdat1=7'b0100100;//2
  4'h3:   segdat1=7'b0110000;//3
  4'h4:   segdat1=7'b0011001;//4
  4'h5:   segdat1=7'b0010010;//5
  4'h6:   segdat1=7'b0000010;//6
  4'h7:   segdat1=7'b1111000;//7
  4'h8:   segdat1=7'b0000000;//8
  4'h9:   segdat1=7'b0010000;//9
  endcase
 end
////////////////////////////////di er ge shu ma guan de xian shi/////////////////////////
always @(dispdat2)
 begin
  case(dispdat2)
  4'h0:         segdat2=7'b1000000;//0
  4'h1:   segdat2=7'b1111001;//1
  4'h2:   segdat2=7'b0100100;//2
  4'h3:   segdat2=7'b0110000;//3
  4'h4:   segdat2=7'b0011001;//4
  4'h5:   segdat2=7'b0010010;//5
  4'h6:   segdat2=7'b0000010;//6
  4'h7:   segdat2=7'b1111000;//7
  4'h8:   segdat2=7'b0000000;//8
  4'h9:   segdat2=7'b0010000;//9
  endcase
 end
/////////////////////di san ge shu ma guan de xian shi/////////////////////////
always @(dispdat3)
 begin
  case(dispdat3)
  4'h0:         segdat3=7'b1000000;//0
  4'h1:   segdat3=7'b1111001;//1
  4'h2:   segdat3=7'b0100100;//2
  4'h3:   segdat3=7'b0110000;//3
  4'h4:   segdat3=7'b0011001;//4
  4'h5:   segdat3=7'b0010010;//5
  4'h6:   segdat3=7'b0000010;//6
  4'h7:   segdat3=7'b1111000;//7
  4'h8:   segdat3=7'b0000000;//8
  4'h9:   segdat3=7'b0010000;//9
  endcase
 end
 
//////////////////////di si ge shu ma guan de xian shi///////////////////////// 
 always @(dispdat4)
 begin
  case(dispdat4)
  4'h0:         segdat4=7'b1000000;//0
  4'h1:   segdat4=7'b1111001;//1
  4'h2:   segdat4=7'b0100100;//2
  4'h3:   segdat4=7'b0110000;//3
  4'h4:   segdat4=7'b0011001;//4
  4'h5:   segdat4=7'b0010010;//5
  4'h6:   segdat4=7'b0000010;//6
  4'h7:   segdat4=7'b1111000;//7
  4'h8:   segdat4=7'b0000000;//8
  4'h9:   segdat4=7'b0010000;//9
  endcase
 end
 
 
/* 
always
 begin
  fosc[3:0]=4'd0;
 end
*/

//ce ding  wei zhi xin hao clk_x de  ping lv ,bing jiang qi zhi chuan  gei fosc_flash//////////// 
 
always @  (posedge clk_x)
 begin
   
  if(second)
  begin
   flag=1;
   fosc_flash[3:0]=fosc_flash[3:0]+1;
    if(fosc_flash[3:0]>4'd9)
    begin
     fosc_flash[3:0]=4'd0;
     fosc_flash[7:4]=fosc_flash[7:4]+1;
      if(fosc_flash[7:4]>4'd9)
       begin
        fosc_flash[7:4]=4'd0;
        fosc_flash[11:8]=fosc_flash[11:8]+1;
         if(fosc_flash[11:8]>4'd9)
          begin
          fosc_flash[11:8]=4'd0;
          fosc_flash[15:12]=fosc_flash[15:12]+1;
          if(fosc_flash[15:12]>4'd9)
           fosc_flash[15:12]=4'd0;
          end
       end
    end
    
  end
  else if(flag)
   begin
      //if(flag)
    begin
     flag=0;
     fosc[15:0]=fosc_flash[15:0];
     fosc_flash[15:0]=16'h0;
    end
文件: frequency.rar
大小: 518KB
下载: 下载

   end
  
 end
 
 
endmodule
/*心得与体会
1、使用数码管时,要定义一个输出端口,若是七段数码管的话就定义输出端口7位,同时定义一个段码寄存器,先将要输出的值赋给段码寄存器,用case语句将要输出的值赋给输出管脚。(注意:实际上,段码寄存器的值和输出管脚的值是相等的,这里只是用了一种间接的方式将要输出的值显示出来)
如:
always  @(count[11:10])
 begin
  case(count[11:10])
   2'b00: dispdat1=fosc[3:0];
   2'b01: dispdat2=fosc[7:4];
   2'b10: dispdat3=fosc[11:8];
   2'b11: dispdat4=fosc[15:12];
  endcase
 end
 
 
always @(dispdat1)
 begin
  case(dispdat1)
  4'h0:         segdat1=7'b1000000;//0
  4'h1:   segdat1=7'b1111001;//1
  4'h2:   segdat1=7'b0100100;//2
  4'h3:   segdat1=7'b0110000;//3
  4'h4:   segdat1=7'b0011001;//4
  4'h5:   segdat1=7'b0010010;//5
  4'h6:   segdat1=7'b0000010;//6
  4'h7:   segdat1=7'b1111000;//7
  4'h8:   segdat1=7'b0000000;//8
  4'h9:   segdat1=7'b0010000;//9
  endcase
 end
上面的程序中时将检测到的值先赋给段码寄存器(如dispdat1,dispdat2...),再将段码寄存器的值赋给相应的书出管脚(如segdat1,segdat2...).这里用到的是case语句,在c语言里面用的是一个数组就可以很容易就实现。应注意次方面的技巧。
2、注意以下习程序的技巧:
always @(count[11:10])
 begin
  
  case(count[11:10])
  2'b00: segdat1=fosc[3:0];
  2'b01: segdat2=fosc[7:4];
  2'b10: segdat3=fosc[11:8];
  2'b11: segdat4=fosc[15:12];
  endcase
 end
上面的这段程序有一点向单片机里面的动态扫描,所不同的是,扫描的值是通过计数器count极短的跳变时间里面里完成的。这种语句使用得相当的广泛。“always @(count[11:10])
 
*/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
阅读(1531) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~