在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

            Lattice MXO2: 計(jì)時(shí)控制

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

            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://www.biyoush.com/article/202311/452858.htm

            計(jì)時(shí)控制


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

            硬件說明


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

            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秒倒計(jì)時(shí)計(jì)數(shù)器 
            module counter(
            	clk				,    //時(shí)鐘
            	rst				,    //復(fù)位
            	hold			,    //啟動(dòng)暫停按鍵
            	seg_led_1		,    //數(shù)碼管1
            	seg_led_2		,    //數(shù)碼管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;   //按鍵消抖后信號(hào)
            	reg			hold_flag;    //按鍵標(biāo)志位
            	reg			back_to_zero_flag	; //計(jì)時(shí)完成信號(hào)
            	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)作標(biāo)志信號(hào)產(chǎn)生
            	always @ (posedge hold_pulse)
            		if(!rst==1)
            			hold_flag <= 0;
            		else
            			hold_flag <= ~hold_flag;
            	//計(jì)時(shí)完成標(biāo)志信號(hào)產(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秒倒計(jì)時(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
            	//計(jì)時(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


            引腳分配


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

            信號(hào)引腳
            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

            小結(jié)


            本實(shí)驗(yàn)主要介紹了的實(shí)現(xiàn)方式,并且包含了復(fù)位與暫停功能,讀者可自行修改程序內(nèi)部的時(shí)鐘參數(shù)來調(diào)節(jié)計(jì)時(shí)時(shí)間。下一節(jié)將介紹PWM調(diào)制技術(shù)的應(yīng)用呼吸燈。



            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉