摘 要 本設(shè)計(jì)使用AT89C51系列高速單片機(jī)作為主控制模塊,利用簡(jiǎn)單的外圍電路來驅(qū)動(dòng)16×64的點(diǎn)陣LED顯示屏。
關(guān)鍵詞 單片機(jī) 動(dòng)態(tài)顯示 點(diǎn)陣電子
一、芯片介紹
1. 8051系列的單片機(jī)
AT89系列單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。
管腳說明:
VCC:供電電壓。
GND:接地。
P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。
P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。
P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。
P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。
P3口也可作為AT89C51的一些特殊功能口,如下所示:
P3.0 RXD(串行輸入口)
P3.1 TXD(串行輸出口)
P3.2 /INT0(外部中斷0)
P3.3 /INT1(外部中斷1)
P3.4 T0(記時(shí)器0外部輸入)
P3.5 T1(記時(shí)器1外部輸入)
P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)
P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)
P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。
RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。
ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。
PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。
/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;
XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。
XTAL2:來自反向振蕩器的輸出
2 .74HC138
譯碼器是組合邏輯電路的一個(gè)重要的器件,74HC138的輸出是低電平有效,故實(shí)現(xiàn)邏輯功能時(shí),輸出端不可接或門及或非門,74HC138與前面不同,其有使能端,故使能端必須加以處理,否則無法實(shí)現(xiàn)需要的邏輯功能。
3 .74HC595
74HC595是八位串行輸入,平行輸出的位移緩存器,平行輸出為三態(tài)輸出。引腳SER是串行數(shù)據(jù)的輸入端。引腳SRCLK是移位寄存器的移位時(shí)鐘脈沖,再起上升沿發(fā)生移位,并將ER的下一個(gè)數(shù)據(jù)輸入最低位。RCLK是輸出鎖存器的輸入信號(hào),其上升沿將移位寄存器的輸出信號(hào)輸入到輸出鎖存器。引腳E是輸出三態(tài)門的開放信號(hào),只有當(dāng)其為低是鎖存器的輸出才開放;否則為高阻態(tài)。/SRCLR信號(hào)時(shí)移位寄存器的清零輸入端,當(dāng)其為低時(shí)移位寄存器的輸出全部為0。芯片的輸出點(diǎn)為O0~O7,最高位O7可作為多篇74HC595級(jí)聯(lián)應(yīng)用時(shí)向上一級(jí)的級(jí)聯(lián)輸出。
二、系統(tǒng)程序設(shè)計(jì)
顯示屏軟件的主要功能是向屏體提供顯示數(shù)據(jù),并產(chǎn)生各種控制信號(hào),是屏幕按設(shè)計(jì)的要求顯示。
根據(jù)軟件分層次設(shè)計(jì)的原理,可把顯示屏的軟件系統(tǒng)分為兩大層:第一層是底層的顯示驅(qū)動(dòng)程序;第二層是上層的系統(tǒng)應(yīng)用程序。顯示驅(qū)動(dòng)程序負(fù)責(zé)想屏體送顯示數(shù)據(jù),并負(fù)責(zé)產(chǎn)生行掃描信號(hào)和其他控制信號(hào),配合完成LED顯示屏的掃描工作。
1.顯示驅(qū)動(dòng)程序
顯示驅(qū)動(dòng)程序在進(jìn)入中斷后首先要對(duì)定時(shí)器T0重新賦初值,以保證顯示屏刷新頻率的穩(wěn)定。
16行掃描格式的顯示屏刷新頻率(幀頻)的計(jì)算公式如下:
刷新頻 = 1/16 × T0溢出率 = 1/16 × fosc/12(65536 — t0)
其中:fosc 為晶振頻率;t0 為定時(shí)器T0初值(工作在16位定時(shí)器模式)。
其次,顯示驅(qū)動(dòng)程序查詢當(dāng)前點(diǎn)亮的行號(hào),從顯示緩存區(qū)內(nèi)讀取下一行的顯示數(shù)據(jù),并通過串口發(fā)送給移位寄存器。
為消除在切換行顯示數(shù)據(jù)時(shí)產(chǎn)生拖尾現(xiàn)象,驅(qū)動(dòng)程序先要關(guān)閉顯示屏,即消隱,等顯示數(shù)據(jù)輸入輸出鎖存器并鎖存后,再輸出新的行號(hào),重新打開顯示。
2.系統(tǒng)主程序
系統(tǒng)主程序開始后,首先對(duì)系統(tǒng)環(huán)境進(jìn)行初始化,包括設(shè)置串口、定時(shí)器、中斷和端口。然后開始顯示文字或圖案。
三、調(diào)試及性能分析
調(diào)試及性能分析
LED顯示屏硬件電路只要器件質(zhì)量可靠,引腳焊接正確,一般無需調(diào)試即可正常工作。軟件部分需要調(diào)試的主要有顯示屏刷新頻率及顯示效果兩部分。顯示屏刷新率由定時(shí)器T0的溢出率和單片機(jī)晶振頻率決定。
從理論上來說,24Hz以上的刷新頻率就能看到連續(xù)穩(wěn)定的顯示,刷新率越高,顯示越穩(wěn)定,但顯示驅(qū)動(dòng)程序占用的CPU時(shí)間也越多。
該方案設(shè)計(jì)的4個(gè)16×16點(diǎn)陣LED圖文顯示屏,電路簡(jiǎn)單,成本較低,且可方便地?cái)U(kuò)展成多字的顯示屏。顯示屏各點(diǎn)亮度均勻、充足,顯示圖形或文字穩(wěn)定、清晰,還可通過修改代碼改變顯示方式,用靜止、移入移出等多種方式顯示圖形或文字。
四、總結(jié)
在本設(shè)計(jì)中我用簡(jiǎn)短的C程序在LED顯示屏實(shí)現(xiàn)了漢字的中英文切換顯示。在設(shè)計(jì)中采用的芯片有AT89C51、74HC595、74HC138、APM4953和4個(gè)16×16LED點(diǎn)陣顯示器。其特點(diǎn):①內(nèi)容能中英文切換循環(huán)顯示。②硬件結(jié)構(gòu)簡(jiǎn)單,應(yīng)用廣泛。③LED數(shù)碼管動(dòng)態(tài)掃描顯示,工作效率高,價(jià)格低廉等。
作者簡(jiǎn)介:
李成浩(1991~)男,安徽馬鞍山人,本科在讀,專業(yè):電子信息工程。