代码

  • 格式:doc
  • 大小:41.50 KB
  • 文档页数:7

moduletttt(clk,reset,start,changed,sele,temp,segdat1,segdat2,segdat3,segdat4,segdat5,segdat6,segdat7,seg dat8);// 端口的定义//****************************time********************input clk,reset,start;reg [7:0] s;//输出的秒reg [7:0] m;//输出的分reg [24:0] count;reg clk_1Hz;always @(posedge clk) //clk 50MHzbegincount=count+1;if(count==25'd2*******)begincount=25'b0000000000000000000000000;clk_1Hz<=~clk_1Hz;//0.5s fanzhuan yixia 产生1hz的频率endendalways@(posedge clk_1Hz)beginif(reset)//低电平有效begin//复位s<=8'b00000000;m<=8'b00000000;endelse if(start)//start 信号低电平有效begins[3:0]<=s[3:0]+4'd1;if(s[3:0] >= 9)// 秒的低四位是9begins[3:0]<=4'd0; //清零s[7:4]<=s[7:4]+4'd1;if(s[7:4]>=5)begins[7:4]<=4'd0;m[3:0]<=m[3:0]+4'd1;if(m[3:0]>=9)beginm[3:0]<=4'd0; //清零m[7:4]<=m[7:4]+4'd1;if(m[7:4]>=5)begins[3:0]<=4'd0; //清零endendendendendend//***********************dangwei pinlv********************************* input[2:0] sele; //dang weiinput changed;reg [31:0] countpara;reg [31:0] counter;reg outclk;initialcountpara=32'd250000000;always @(posedge changed)begincase(sele)3'b000: countpara=32'd250000000;3'b001: countpara=32'd125000000;3'b010: countpara=32'd6*******;3'b011: countpara=32'd2*******;3'b100: countpara=32'd1*******;endcaseendalways@(posedge clk)begincounter=counter+1;if(counter>=countpara)beginoutclk=~outclk;counter=32'b0;endend//***************************licheng price fee***************************** input temp;reg [7:0] fee;reg [7:0] distance;always@(posedge outclk)beginif(reset)//低电平复位beginfee<=8'd0;distance<=8'd0;endif(start)//高电平有效begindistance[3:0]<=distance[3:0]+4'd1;// distance的低四位没有计到9的时候加一if(!temp)//temp==0,price=2beginfee[3:0] <= fee[3:0]+2;if(fee[3:0]>=8)beginfee[3:0] <= 4'd0;fee[7:4] <= fee[7:4] + 4'd1;if(fee[7:4]>=8)beginfee[7:4]<= 4'd0;endendendelse //temp==1,price=1beginfee[3:0] <= fee[3:0]+1;if(fee[3:0]>=9)beginfee[3:0] <= 4'd0;fee[7:4] <= fee[7:4] + 4'd1;if(fee[7:4]>=9)beginfee[7:4]<= 4'd0;endendendif(distance[3:0]>=4'd9)//判断低四位计到了9没有begindistance[3:0]<=4'd0;//计到9清零distance[7:4]<= distance[7:4]+4'd1;// distance的高四位没有计到9的时候加一if(distance[7:4]>=4'd9) //判断高四位计到了9没有begindistance[7:4]<=4'd0;// //计到9清零endend//fee<=(distance<<2);endend//****************************xianshi********************************* output [7:0] segdat1,segdat2,segdat3,segdat4,segdat5,segdat6,segdat7,segdat8;reg [7:0] segdat1,segdat2,segdat3,segdat4,segdat5,segdat6,segdat7,segdat8;/////////////////////////miao de ge wei///////////////////////////////////////always @(s[3:0])begincase(s[3:0])4'd0: segdat1=7'b1000000;//04'd1: segdat1=7'b1111001;//14'd2: segdat1=7'b0100100;//24'd3: segdat1=7'b0110000;//34'd4: segdat1=7'b0011001;//44'd5: segdat1=7'b0010010;//54'd6: segdat1=7'b0000010;//64'd7: segdat1=7'b1111000;//74'd8: segdat1=7'b0000000;//84'd9: segdat1=7'b0010000;//9endcaseend/////////////////////////miao de shi wei///////////////////////////////////////always @(s[7:4])begincase(s[7:4])4'd0: segdat2=7'b1000000;//04'd1: segdat2=7'b1111001;//14'd2: segdat2=7'b0100100;//24'd3: segdat2=7'b0110000;//34'd4: segdat2=7'b0011001;//44'd5: segdat2=7'b0010010;//54'd6: segdat2=7'b0000010;//64'd7: segdat2=7'b1111000;//74'd8: segdat2=7'b0000000;//84'd9: segdat2=7'b0010000;//9endcaseend/////////////////////////fen de ge wei/////////////////////////////////////// always @(m[3:0])begincase(m[3:0])4'd0: segdat3=7'b1000000;//04'd1: segdat3=7'b1111001;//14'd2: segdat3=7'b0100100;//24'd3: segdat3=7'b0110000;//34'd4: segdat3=7'b0011001;//44'd5: segdat3=7'b0010010;//54'd6: segdat3=7'b0000010;//64'd7: segdat3=7'b1111000;//74'd8: segdat3=7'b0000000;//84'd9: segdat3=7'b0010000;//9endcaseend///////////////////////// fen de shi wei/////////////////////////////////////// always @(m[7:4])begincase(m[7:4])4'd0: segdat4=7'b1000000;//04'd1: segdat4=7'b1111001;//14'd2: segdat4=7'b0100100;//24'd3: segdat4=7'b0110000;//34'd4: segdat4=7'b0011001;//44'd5: segdat4=7'b0010010;//54'd6: segdat4=7'b0000010;//64'd7: segdat4=7'b1111000;//74'd8: segdat4=7'b0000000;//84'd9: segdat4=7'b0010000;//9endcaseend/////////////////////////ju li de ge wei/////////////////////////////////////// always @(distance[3:0])begincase(distance[3:0])4'd0: segdat5=7'b1000000;//04'd1: segdat5=7'b1111001;//14'd2: segdat5=7'b0100100;//24'd3: segdat5=7'b0110000;//34'd4: segdat5=7'b0011001;//44'd5: segdat5=7'b0010010;//54'd6: segdat5=7'b0000010;//64'd7: segdat5=7'b1111000;//74'd8: segdat5=7'b0000000;//84'd9: segdat5=7'b0010000;//9endcaseend/////////////////////////ju li de shi wei/////////////////////////////////////// always @(distance[7:4])begincase(distance[7:4])4'd0: segdat6=7'b1000000;//04'd1: segdat6=7'b1111001;//14'd2: segdat6=7'b0100100;//24'd3: segdat6=7'b0110000;//34'd4: segdat6=7'b0011001;//44'd5: segdat6=7'b0010010;//54'd6: segdat6=7'b0000010;//64'd7: segdat6=7'b1111000;//74'd8: segdat6=7'b0000000;//84'd9: segdat6=7'b0010000;//9endcaseend///////////////////////// qian shu ge wei/////////////////////////////////////// always @(fee[3:0])begincase(fee[3:0])4'd0: segdat7=7'b1000000;//04'd1: segdat7=7'b1111001;//14'd2: segdat7=7'b0100100;//24'd3: segdat7=7'b0110000;//34'd4: segdat7=7'b0011001;//44'd5: segdat7=7'b0010010;//54'd6: segdat7=7'b0000010;//64'd7: segdat7=7'b1111000;//74'd8: segdat7=7'b0000000;//84'd9: segdat7=7'b0010000;//9endcaseend///////////////////////// qian shu shi wei/////////////////////////////////////// always @(fee[7:4])begincase(fee[7:4])4'd0: segdat8=7'b1000000;//04'd1: segdat8=7'b1111001;//14'd2: segdat8=7'b0100100;//24'd3: segdat8=7'b0110000;//34'd4: segdat8=7'b0011001;//44'd5: segdat8=7'b0010010;//54'd6: segdat8=7'b0000010;//64'd7: segdat8=7'b1111000;//74'd8: segdat8=7'b0000000;//84'd9: segdat8=7'b0010000;//9endcaseendendmodule//结束译码模块。