<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Lattice MXO2: 計時(shí)控制

Lattice MXO2: 計時(shí)控制

作者: 時(shí)間:2023-11-14 來(lái)源:電子森林 收藏

Warning: file_get_contents(https://www.eetree.cn/wiki/_media/%E8%AE%A1%E6%97%B6%E5%99%A8%E6%A1%86%E5%9B%BE.png?w=800&tok=0acdce): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /var/www/html/www.edw.com.cn/www/rootapp/controllerssitemanage/ManagecmsController.php on line 2057

本文引用地址:http://dyxdggzs.com/article/202311/452858.htm

計時(shí)控制


在之前的實(shí)驗中我們掌握了如何進(jìn)行時(shí)鐘分頻、如何進(jìn)行數碼管顯示與按鍵消抖的處理,那么在本節實(shí)驗之中,我們將會(huì )實(shí)現一個(gè)籃球賽場(chǎng)上常見(jiàn)的24秒。

硬件說(shuō)明


在之前的實(shí)驗中我們?yōu)樽x者詳細介紹過(guò)MXO2板卡上的按鍵、數碼管、LED等硬件外設,在此不再贅述。本節將實(shí)現由數碼管作為顯示模塊,按鍵作為控制信號的輸入(包含復位信號和暫停信號),Lattice MXO2 4000HC作為控制核心的籃球讀秒系統,實(shí)現框圖如下:

Verilog代碼


// ********************************************************************
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
// ********************************************************************
// File name    : counter.v
// Module name  : counter
// Author       : STEP
// Description  : 
// Web          :  
// 
// --------------------------------------------------------------------
// Code Revision History : 
// --------------------------------------------------------------------
// Version: |Mod. Date:   |Changes Made:
// V1.0     |2017/03/02   |Initial ver
// --------------------------------------------------------------------
// Module Function:24秒倒計時(shí)計數器 
module counter(
	clk				,    //時(shí)鐘
	rst				,    //復位
	hold			,    //啟動(dòng)暫停按鍵
	seg_led_1		,    //數碼管1
	seg_led_2		,    //數碼管2
	led                  //led); 	
	input 	clk,rst;
	input	hold; 	
	output 	[8:0]	
	seg_led_1,seg_led_2;
	output 	reg	[7:0]	led; 	
	wire		clk1h;        //1Hz時(shí)鐘
	wire		hold_pulse;   //按鍵消抖后信號
	reg			hold_flag;    //按鍵標志位
	reg			back_to_zero_flag	; //計時(shí)完成信號
	reg   		[6:0]   seg		[9:0];  
	reg			[3:0]	cnt_ge;      //個(gè)位
	reg			[3:0]	cnt_shi;     //十位 	
	initial 
	begin
		seg[0] = 7'h3f;	   //  0
		seg[1] = 7'h06;	   //  1
		seg[2] = 7'h5b;	   //  2
		seg[3] = 7'h4f;	   //  3
		seg[4] = 7'h66;	   //  4
		seg[5] = 7'h6d;	   //  5
		seg[6] = 7'h7d;	   //  6
		seg[7] = 7'h07;	   //  7
		seg[8] = 7'h7f;	   //  8
		seg[9] = 7'h6f;	   //  9/*若需要顯示A-F,解除此段注釋即可
		seg[10]= 7'hf7;	   //  A
		seg[11]= 7'h7c;	   //  b
		seg[12]= 7'h39;    //  C
		seg[13]= 7'h5e;    //  d
		seg[14]= 7'h79;    //  E
		seg[15]= 7'h71;    //  F*/
	end 
 
 	// 啟動(dòng)/暫停按鍵進(jìn)行消抖
	debounce  U2 (
				.clk(clk),
				.rst(rst),
				.key(hold),
				.key_pulse(hold_pulse)
				);
	// 用于分出一個(gè)1Hz的頻率	
	divide #(.WIDTH(32),.N(12000000)) U1 ( 
			.clk(clk),
			.rst_n(rst),      
			.clkout(clk1h)
			);
    //按鍵動(dòng)作標志信號產(chǎn)生
	always @ (posedge hold_pulse)
		if(!rst==1)
			hold_flag <= 0;
		else
			hold_flag <= ~hold_flag;
	//計時(shí)完成標志信號產(chǎn)生
	always @ (*)
		if(!rst == 1)
			back_to_zero_flag <= 0;
		else if(cnt_shi==0 && cnt_ge==0)
			back_to_zero_flag <= 1;
		else
			back_to_zero_flag <= 0;
    //24秒倒計時(shí)控制
	always @ (posedge clk1h or negedge rst) begin
		if (!rst == 1) begin
			cnt_ge <= 4'd4;
			cnt_shi <= 4'd2; 
			end
		else if(hold_flag == 1)begin
			cnt_ge <= cnt_ge;
			cnt_shi <= cnt_shi;
			end			
		else if(cnt_shi==0 && cnt_ge==0) begin
			cnt_shi <= cnt_shi;
			cnt_ge <= cnt_ge;
			end
		else if(cnt_ge==0)begin
			cnt_ge <= 4'd9;
			cnt_shi <= cnt_shi-1;end
		else
			cnt_ge <= cnt_ge -1;
		end
	//計時(shí)完成點(diǎn)亮led
	always @ ( back_to_zero_flag)begin
		if (back_to_zero_flag==1)
			led = 8'b0;
		else
			led = 8'b11111111;
		end 	assign seg_led_1[8:0] = {2'b00,seg[cnt_ge]}; 	
		assign seg_led_2[8:0] = {2'b00,seg[cnt_shi]}; 
 endmodule


引腳分配


設置好復位鍵可消抖的按鍵,編譯完成后下載,通過(guò)按鍵就可以翻轉LED。你也可以定義多個(gè)按鍵控制多個(gè)LED,還可以比較不加按鍵消抖情況下實(shí)際的效果對比如何。

信號引腳
clkC1
rstL14
holdM13
segled1[0]C12
segled1[1]B14
segled1[2]J1
segled1[3]H1
segled1[4]H2
segled1[5]B12
segled1[6]A11
segled1[7]K1
segled1[8]A12
segled2[0]A10
segled2[1]C11
segled2[2]F2
segled2[3]E1
segled2[4]E2
segled2[5]A9
segled2[6]B9
segled2[7]F1
segled2[8]C9

小結


本實(shí)驗主要介紹了的實(shí)現方式,并且包含了復位與暫停功能,讀者可自行修改程序內部的時(shí)鐘參數來(lái)調節計時(shí)時(shí)間。下一節將介紹PWM調制技術(shù)的應用呼吸燈。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>