LED點陣屏顯示單元的設(shè)計與驅(qū)動控制
1 系統(tǒng)整體設(shè)計概述
系統(tǒng)原理框圖如圖1所示。由圖1可知, PC 機(jī)從上位機(jī)軟件發(fā)送指令和數(shù)據(jù), 通過串口RS232將數(shù)據(jù)傳輸?shù)絾纹瑱C(jī), 單片機(jī)對行驅(qū)動和列驅(qū)動發(fā)出控制命令, 對LED點陣屏進(jìn)行相應(yīng)的控制。外部時鐘電路可以用來讀取顯示的時間, 外部存期器件用于存儲LED點陣屏的輸出數(shù)據(jù), 在進(jìn)行控制操作時, 單片機(jī)可直接從此讀取數(shù)據(jù), 可脫機(jī)進(jìn)行顯示控制。通過按鍵不需經(jīng)過PC機(jī)可對LED點陣屏進(jìn)行簡單的人機(jī)交互。
2 系統(tǒng)硬件電路設(shè)計
系統(tǒng)硬件主要劃分為兩大部分: LED點陣屏接口電路, 構(gòu)建顯示單元及其驅(qū)動電路; 基于單片機(jī)mega16的控制系統(tǒng), 用于完成數(shù)據(jù)接收和控制LED點陣屏。
2. 1 LED點陣屏接口電路
圖2是8*8 LED點陣顯示屏的內(nèi)部結(jié)構(gòu)圖, 四個8*8點陣可以構(gòu)成一個16*16的點陣屏, 用于顯示漢字。8*8點陣屏顯示原理是利用行列導(dǎo)通其中的LED的而控制64個LED的亮滅。圖2中所示, 如果想要行1和列1 的LED 亮, 只需要行1通高電平, 列1低電平即可。LED 顯示屏幕就是依靠這樣的選取行列進(jìn)行各類圖形文字的變換。
圖4為LED點陣條屏的連接方式, 上下半屏8 ??8點陣的行線各自連接在一起構(gòu)成一個系統(tǒng)。此系統(tǒng)采用行掃描方式, 使用兩個3線8線譯碼器74HC138來分別驅(qū)動點陣的上8行和下8行。在點陣屏幕不大的情況下, 一般的單片機(jī)可以直接驅(qū)動點陣LED的亮滅,但是考慮擴(kuò)展為大屏幕尺寸時, 那么單片機(jī)的I/O 口不足以提供足夠的驅(qū)動電流, 如圖3 所示, 可在74HC138和點陣的行接口接上一個PNP型8550三極管開關(guān)電路用來提供足夠的電流, 當(dāng)74HC138發(fā)出低電平時, 三極管Q導(dǎo)通, LED_H輸出高電平。此時I/O口只需要提供幾毫安的灌入電流即可控制其通斷, 如果需要擴(kuò)展屏幕, 只需要將擴(kuò)展的上下半屏LED 點陣的行各自共聯(lián)到74HC138即可。
本系統(tǒng)采用74HC595鎖存器來對列線進(jìn)行驅(qū)動控制, 其帶有2級鎖存移位輸出功能。如圖3所示, LED 點陣的列線接到74HC595的8位并行輸出口上, 由單片機(jī)控制數(shù)據(jù)的輸出, 利用74HC595 的鎖存輸出功能, 電路共用同一個移位時鐘SCK 和數(shù)據(jù)鎖存時鐘RCK, 可級聯(lián)多片74HC595以構(gòu)成更大LED 點陣屏的列驅(qū)動電路。此結(jié)構(gòu)還可在75HC595的使能端通過PWM 波進(jìn)行灰度調(diào)節(jié)。
. 2 Mega16控制電路
主控制器主要是采用8 bitAVR單片機(jī)M ega16及其外圍電路來進(jìn)行控制, 主要器件接口如圖5所示。Mega1帶有四組32個I/O 口, 它的時鐘頻率可跑到16MH z, 可滿足系統(tǒng)控制的數(shù)據(jù)處理速度??刂齐娐返闹饕δ芫褪菍ED 接口進(jìn)行掃描控制, 發(fā)出移位SCK 時鐘信號和數(shù)據(jù)鎖存RCK 時鐘信號到74HC595上, 依照相應(yīng)的時序?qū)?4HC595發(fā)送漢字?jǐn)?shù)據(jù), 同時對74HC138進(jìn)行行選控制。電路外加一個74HC245芯片用以提高單片機(jī)對負(fù)載的驅(qū)動能力。PC 機(jī)通過串口和M ega16 進(jìn)行通信, 外部存儲器選用M icrochip公司的24C256 串行存儲器, 256 K 容量方便以后將漢字庫固化在里面, 需要顯示的字只需要查詢存儲器就能提取相應(yīng)的字模數(shù)據(jù)。同時加上DS1302時鐘芯片, 可以提取2100年前的年月日等時間數(shù)值, 以提供需要。
3 程序設(shè)計
程序設(shè)計主要包括三部分: 主程序, 串口中斷程序, 顯示子程序。首先進(jìn)入主程序, 初始化單片機(jī),如果串口有數(shù)據(jù)輸入, 則會進(jìn)入串口中斷程序接收數(shù)據(jù)。單片機(jī)在接收完數(shù)據(jù)后會進(jìn)入顯示子程序,輸出相應(yīng)的數(shù)據(jù)到LED 的行列驅(qū)動。圖6為三部分的程序流程圖。
4 總結(jié)
圖7中的顯示部分就是10個16*16點陣級聯(lián)而成的顯示屏。此結(jié)構(gòu)通用性強(qiáng), 依靠軟件可以實現(xiàn)漢字上下左右移動等功能, 而不需在LED 顯示單元的硬件上做任何改動。在顯示效果上, 可根據(jù)需求更改單片機(jī)上的控制程序即可, 大大加強(qiáng)了系統(tǒng)的穩(wěn)定性和實用性。經(jīng)實踐測試, 此種結(jié)構(gòu), 用一片8位單片機(jī), 在16MH z下, 至少能驅(qū)動32*160個點, 沒有抖屏現(xiàn)象。如果程序使用匯編語言, 速度將得到很大的提升, 能驅(qū)動更多點。
本文以高性能的Mega16芯片為硬件基礎(chǔ), 設(shè)計了LED顯示單元的硬件電路和控制電路, 實現(xiàn)了對單片機(jī)的控制、LED 屏幕的顯示等。下一步是完善其漢字的顯示特效, 以及上位機(jī)與單片機(jī)的實時通信等功能。根據(jù)此系統(tǒng)的結(jié)構(gòu)還可以進(jìn)一步擴(kuò)展成雙色, 全彩的LED點陣屏。
評論