新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Lattice MXO2: 3-8譯碼器

        Lattice MXO2: 3-8譯碼器

        作者: 時間:2023-10-19 來源:電子森林 收藏

        在這個實驗里我們將學習如何用來實現

        本文引用地址:http://www.104case.com/article/202310/451767.htm

        硬件說明


        電路是數字電路的重要部分,電路的輸出只與輸入的當前狀態相關的邏輯電路,常見的有選擇器、比較器、譯碼器、編碼器、編碼轉換等等。在本實驗里以最常見的3-8譯碼器為例說明如何用實現。3-8譯碼器的真值表如下:

        從前面的實驗可以知道,當輸出信號到LED為高電平時LED熄滅,反之LED變亮。同時我們可以以開關的信號模擬3-8譯碼器的輸入,這樣控制開關我們就能控制特定的LED變亮。

        代碼


        // ********************************************************************
        // >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
        // ********************************************************************
        // File name    : decode38.v
        // Module name  : decode38
        // Author       : STEP
        // Description  : 3-8decode control LED
        // Web          : www.stepfpga.com 
        // 
        // --------------------------------------------------------------------
        // Code Revision History : 
        // --------------------------------------------------------------------
        // Version: |Mod. Date:   |Changes Made:
        // V1.0     |2017/03/02   |Initial ver
        // --------------------------------------------------------------------
        // Module Function:利用3路開關的狀態作為輸出,通過3-8譯碼實現控制LED燈的顯示。 
        module decode38 (sw,led); 	
        input [2:0] sw;							//開關輸入信號,利用了其中3個開關作為3-8譯碼器的輸入
        	output [7:0] led;						//輸出信號控制特定LED         
        	reg [7:0] led;                                                  
        	//定義led為reg型變量,在always過程塊中只能對reg型變量賦值         
        	//always過程塊,括號中sw為敏感變量,當sw變化一次執行一次always中所有語句,否則保持不變
        	always @ (sw)
        	begin
        		case(sw)                                                   //case語句,一定要跟default語句
        			3'b000:	led=8'b0111_1111;                         
        			//條件跳轉,其中“_”下劃線只是為了閱讀方便,無實際意義  
        			3'b001:	led=8'b1011_1111;                         
        			//位寬'進制+數值是Verilog里常數的表達方法,進制可以是b、o、d、h(二、八、十、十六進制)
        			3'b010:	led=8'b1101_1111;
        			3'b011:	led=8'b1110_1111;
        			3'b100:	led=8'b1111_0111;
        			3'b101:	led=8'b1111_1011;
        			3'b110: led=8'b1111_1101;
        			3'b111:	led=8'b1111_1110;
        			default: ;
        		endcase
        	end endmodule

        引腳分配


        綜合(synthesize)完成之后一定要配置的引腳到相應的外設。

        下載完程序后就可以實現3個開關控制不同LED燈的顯示,3-8譯碼器完成。

        小結


        實現了一個簡單的3-8譯碼器,在下一個數碼管顯示實驗我們將學習如何通過譯碼實現控制數碼管的顯示。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 深圳市| 乌兰县| 抚松县| 沁水县| 邛崃市| 新巴尔虎左旗| 尚义县| 财经| 海口市| 乌拉特中旗| 太白县| 太仆寺旗| 光泽县| 南雄市| 贵定县| SHOW| 湘西| 娄烦县| 湘潭市| 九江市| 清流县| 扎赉特旗| 瑞金市| 汾西县| 伽师县| 张家界市| 宜春市| 正定县| 当雄县| 宁津县| 澜沧| 保康县| 五峰| 蓝山县| 顺义区| 霍邱县| 息烽县| 于田县| 樟树市| 花垣县| 宜宾县|