新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于51單片機(jī)和可編程邏輯器件實(shí)現(xiàn)LED顯示屏

        基于51單片機(jī)和可編程邏輯器件實(shí)現(xiàn)LED顯示屏

        作者: 時(shí)間:2011-11-12 來(lái)源:網(wǎng)絡(luò) 收藏

        2.3 LED顯示驅(qū)動(dòng)時(shí)序信號(hào)的產(chǎn)生

        CPLD 與LED點(diǎn)陣的驅(qū)動(dòng)電路接口如圖 所示,其中:CS為3-8譯碼器片選信號(hào);OE為BMI5026輸出使能信號(hào),控制LED點(diǎn)陣是否能被點(diǎn)亮;LE為驅(qū)動(dòng)芯片數(shù)據(jù)鎖存信號(hào);sck為移位脈沖,將CPLD串行輸出的紅綠數(shù)據(jù)串行移入MBI5026(移位寄存器);A-D為雙3-8譯碼器構(gòu)成的4-16譯碼器的數(shù)據(jù)輸入,實(shí)現(xiàn)顯示行選通控制; sdr為紅數(shù)據(jù)信號(hào)線;sdb為綠數(shù)據(jù)信號(hào)線。
        其工作過程為:S3狀態(tài),sck脈沖置0,sdr和sdb分別輸出一位數(shù)據(jù);S4狀態(tài)時(shí),sck置 1,紅和綠數(shù)據(jù)分別移入相應(yīng)移位寄存器BMI5026,若不足8位時(shí),返回S3狀態(tài),若不足一行時(shí),返回S1狀態(tài),讀下一個(gè)字節(jié),若完成一行數(shù)據(jù)移位過程,則轉(zhuǎn)S5狀態(tài);S5狀態(tài)時(shí),置le為0,將BMI5026的緩沖寄存中一個(gè)顯示行的點(diǎn)陣數(shù)據(jù)送輸出寄存器,同時(shí)置cs1有效,控制第hcnt行的點(diǎn)陣顯示,然后判斷一屏內(nèi)容是否顯示完成,返回s1狀態(tài)。圖4為完整的有限狀態(tài)機(jī)的狀態(tài)圖。

        下面給出體驅(qū)動(dòng)時(shí)序信號(hào)對(duì)應(yīng)的Verilog HDL程序代碼:

        s3: begin
        sck=1'b0;
        sdr= SDA color[0];
        sdb= SDC color[1];
        OE=1'b1; CE=1'b1;
        state=s4;
        end
        s4: begin // 移位輸出到
        sck = 1'b1;
        shcnt = shcnt +1'b1;
        if (shcnt = = 0)
        begin
        addr=addr+1'b1; //讀完一個(gè)字節(jié)地址記數(shù)器加1
        byte=byte+8'b1;
        if(byte= = nrow)// 如果讀完一行數(shù)據(jù)
        begin
        oe1=1'b1;//關(guān)LED顯示
        cs=1'b1;
        le=1'b0;//驅(qū)動(dòng)芯片寫入數(shù)據(jù)
        byte = 8'b0;
        state=s5;//讀完一行數(shù)據(jù)則顯示
        end
        else state=s1;
        end
        else state=s3; //當(dāng)前字節(jié)移位輸出
        end
        s5: begin
        sck=1'b0;
        le=1'b0;
        counter=hcnt;
        OE=1'b1;
        CE=1'b0;
        if(addr = = nscreen)
        addr=0;
        oe1=1'b0;
        cs=1'b0;
        state =s1;
        end

        基于<a class=51單片機(jī)實(shí)現(xiàn)" src="http://editerupload.eepw.com.cn/fetch/20140120/219667_3_0.jpg" onload="javascript:if(this.width>500)this.style.width=500;" border=0>

        4系統(tǒng)測(cè)試及仿真

        系統(tǒng)的開發(fā)調(diào)試環(huán)境是:?jiǎn)纹瑱C(jī)部分在KeilC51下調(diào)試,CPLD部分在Maxplus10下調(diào)試。LED顯示屏的掃描控制模塊的Verilog HDL源程序編寫完成后,在ALTERA公司Maxplus10可以先進(jìn)行軟件仿真,以觀察各信號(hào)是否符合硬件電路所需的時(shí)序要求。圖5為掃描模塊 CLPD仿真結(jié)果,符合設(shè)計(jì)要求。通過JTAG接口下載到ATF1508AS后,系統(tǒng)工作正常。

        5 結(jié)束語(yǔ)

        基于Verilog HDL實(shí)現(xiàn)的LED顯示屏掃描控制模塊,應(yīng)用于我們開發(fā)LED大屏幕電子信息顯示屏系統(tǒng),簡(jiǎn)化了系統(tǒng)結(jié)構(gòu),提高性了性價(jià)比。該LED顯示屏在實(shí)際應(yīng)用中具有良好的顯示效果,畫面清晰、性能穩(wěn)定,已經(jīng)在學(xué)校的多個(gè)部門得到應(yīng)用。


        上一頁(yè) 1 2 3 下一頁(yè)

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 延吉市| 玉山县| 马关县| 砚山县| 乐安县| 枣阳市| 垣曲县| 青田县| 靖江市| 铁力市| 长海县| 乌鲁木齐市| 桂阳县| 溧水县| 崇信县| 汝城县| 太仓市| 阿克陶县| 永胜县| 三门峡市| 赞皇县| 岳阳市| 天祝| 合山市| 平陆县| 西峡县| 泽普县| 辽源市| 尤溪县| 青州市| 荆州市| 犍为县| 荣昌县| 屯门区| 武山县| 易门县| 永城市| 邵东县| 孝昌县| 嵊州市| 河北区|