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