基于89C51單片機(jī)的編碼譯碼顯示實(shí)驗(yàn)電路設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:當(dāng)前手工撥盤方式編碼譯碼顯示實(shí)驗(yàn)電路存在輸入信號(hào)不穩(wěn)定、控制性較差等缺點(diǎn),為了克服上述缺點(diǎn),電路設(shè)計(jì)采用89C51單片機(jī)為核心器件作為編碼信號(hào)發(fā)生器和自動(dòng)控制系統(tǒng)。通過Proteus平臺(tái)仿真和實(shí)驗(yàn)調(diào)試,電路能產(chǎn)生高質(zhì)量輸入信號(hào)和實(shí)現(xiàn)自動(dòng)控制,較好地解決了手工撥盤方式編碼譯碼顯示實(shí)驗(yàn)電路存在的缺陷。
關(guān)鍵詞:89C51單片機(jī);編碼譯碼;顯示;Proteus仿真
0 引言
在日常數(shù)字邏輯電路實(shí)驗(yàn)中編碼譯碼顯示實(shí)驗(yàn)電,路是編碼、譯碼、顯示三個(gè)電路的綜合運(yùn)用,在數(shù)字邏輯實(shí)驗(yàn)電路中具有重要的地位,在實(shí)驗(yàn)的過程中,時(shí)常會(huì)出現(xiàn)顯示結(jié)果的抖動(dòng),經(jīng)研究出現(xiàn)這種現(xiàn)象主要原因是:編碼電路的編碼信號(hào)輸入采用手工撥盤方式,產(chǎn)生的編碼輸入信號(hào)往往不穩(wěn)定;另外,電路控制性能較差,不能達(dá)到自動(dòng)復(fù)位,為此有必要對(duì)現(xiàn)有電路進(jìn)行改進(jìn),在電路的設(shè)計(jì)上采用89C51單片機(jī)為控制電路制作而成,自動(dòng)提供穩(wěn)定編碼輸入信號(hào),顯示結(jié)果穩(wěn)定性和電路控制性能大大提升,提高了教學(xué)實(shí)驗(yàn)質(zhì)量。
1 編碼譯碼顯示實(shí)驗(yàn)電路的基本結(jié)構(gòu)
編碼譯碼顯示電路的基本結(jié)構(gòu)如圖1所示,主要由控制電路、編碼信號(hào)發(fā)生器、編碼譯碼顯示電路等組成,控制電路產(chǎn)生編碼信號(hào)作為編碼譯碼顯示電路輸入信號(hào),譯碼電路將編碼信號(hào)轉(zhuǎn)換成對(duì)應(yīng)的七段數(shù)碼顯示信號(hào),送至LED數(shù)碼管顯示。
2 系統(tǒng)硬件設(shè)計(jì)
控制系統(tǒng)和編碼信號(hào)發(fā)生器采用89C51單片機(jī)實(shí)現(xiàn)。89C51性價(jià)比較高,采用12 MHz晶振,其內(nèi)部帶有4 KB的FLASH ROM,無(wú)須外擴(kuò)程序存儲(chǔ)器。編碼譯碼電路沒有大量運(yùn)算和暫存數(shù)據(jù)。89C51內(nèi)部的128 B片內(nèi)RAM已能滿足要求,無(wú)須外擴(kuò)片外RAM。系統(tǒng)硬件設(shè)計(jì)如圖2所示。
2.1 編碼信號(hào)發(fā)生器電路
編碼信號(hào)由89C51內(nèi)部編程控制,鍵盤輸入“0~8”從P0.0~P0.7口送給編碼器74LSl47,“9”從P2.O口送給編碼器,具體編碼見表1。
2.2 鍵盤設(shè)計(jì)
鍵盤采用4×3陣列結(jié)構(gòu)設(shè)計(jì),P1.0~P1.3為鍵盤掃描高4位,P1.4~P1.6為低4位。設(shè)計(jì)有“O~9”、Rst(復(fù)位)、Ser(順序)。列線通過電阻接正電源,并將行線所接的單片機(jī)的I/O口作為輸出端,而列線所接的I/O口則作為輸入。當(dāng)按鍵沒有按下時(shí),所有的輸出端都是高電平,代表無(wú)鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會(huì)被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下。
2.3 編碼譯碼顯示電路
編碼譯碼顯示電路主要由編碼器(74LS147)、六反相器(74AC04)、譯碼器(74LS247)、七段LED數(shù)碼管組成。編碼器74LS147的1~5腳,10~13腳為編碼輸入端,低電平有效,實(shí)驗(yàn)時(shí)可用接地作為低電平輸入;14,6,7,9腳為編碼輸出(反碼);16,8腳為電源正負(fù)極。
譯碼器74LS247的6,2,1,7腳為譯碼輸入(高電平有效);9~15為譯碼輸出;8,16腳為電源正負(fù)極。六反相器(74AC04)主要是解決編碼器74HC147和譯碼器74LS247信號(hào)匹配問題,共有6組輸入與輸出,只取其中4組。七段LED數(shù)碼管主要是顯示譯碼器輸出狀態(tài)。
電路主要原理是在74LS147的輸入011111111~111111110,編碼后得到4位反碼,經(jīng)74AC04反相后送到74LS247,由74LS247驅(qū)動(dòng)LED數(shù)碼管,正確時(shí)能顯示O~9。
3 系統(tǒng)軟件設(shè)計(jì)
軟件設(shè)計(jì)由初始化、鍵盤掃描、編碼程序三部分組成。開始進(jìn)行初始化,P0、P2口按復(fù)位狀態(tài)附值輸出,LED無(wú)顯示。然后4×3陣列式鍵盤開始進(jìn)行掃描,當(dāng)判斷有鍵按下時(shí),延時(shí)去鍵抖動(dòng),判斷是否務(wù)抖動(dòng),當(dāng)確定判斷是有鍵按下時(shí),等待閉合鍵釋放,保存鍵值。根據(jù)鍵值調(diào)用編碼程序,將表1對(duì)應(yīng)的編碼送到P0,P2口輸出,主程序流程圖如圖3所示。
當(dāng)按Ser(順序序列)鍵時(shí),依次按1~9編碼值送至PO,P2口,間隔O.5 s輸出。Ser編碼編碼子程序如下:
4 系統(tǒng)仿真與調(diào)試
Proteus是一個(gè)基于ProSpice混合模型仿真器的,完整的嵌入式系統(tǒng)軟、硬件設(shè)計(jì)仿真平臺(tái)。編碼譯碼顯示電路能很方便地在此平臺(tái)上進(jìn)行調(diào)試和仿真,延時(shí)時(shí)間同選用的單片機(jī)和所用晶體振蕩器有關(guān),在調(diào)試時(shí)須注意。
5 結(jié)語(yǔ)
提出了一款編碼譯碼顯示實(shí)驗(yàn)電路設(shè)計(jì),其控制系統(tǒng)和編碼信號(hào)發(fā)生器采用89C51單片機(jī)實(shí)現(xiàn),經(jīng)Pro-teus仿真和實(shí)驗(yàn)調(diào)試結(jié)果來看,大大改善了電路的性能,電路制作方便、操作簡(jiǎn)單,在數(shù)字邏輯電路實(shí)驗(yàn)教學(xué)中具有一定的推廣價(jià)值,電路主要不足是不能實(shí)現(xiàn)故障自動(dòng)檢查,如果能對(duì)電路故障進(jìn)行自動(dòng)檢測(cè),電路性能將更加完善。