點陣LED顯示屏控制系統(tǒng)
韓潤萍 陳小萍
摘要:介紹了一個以單片機(jī)DS80C320為控制器的點陣LED顯示屏控制系統(tǒng)。該系統(tǒng)采用RS-232/RS-485通信標(biāo)準(zhǔn),通過DS80C320的串行接口接收PC機(jī)的控制命令及顯示數(shù)據(jù),經(jīng)處理后控制LED顯示屏的掃描顯示。該系統(tǒng)采用了一種新型的大容量閃速存儲器29F040作為數(shù)據(jù)存儲器。本文中給出了該控制系統(tǒng)的軟硬件設(shè)計要點。
關(guān)鍵詞: 單片機(jī) LED顯示屏 DS80C320 FLASH存儲器
0 引言
LED電子顯示屏是隨著計算機(jī)及相關(guān)的微電子﹑光電子技術(shù)的迅猛發(fā)展而形成的一種新型信息顯示媒體。它利用發(fā)光二極管構(gòu)成的點陣模塊或像素單元組成可變面積的顯示屏幕,以可靠性高、使用壽命長、環(huán)境適應(yīng)能力強(qiáng)、性能價格比高、使用成本低等特點,在短短的十來年中,迅速成長為平板顯示的主流產(chǎn)品,在信息顯示領(lǐng)域得到了廣泛的應(yīng)用。
本文所設(shè)計的是一個同等灰度的單色條形顯示屏控制系統(tǒng),該控制系統(tǒng)以DS80C320為控制器,采用RS-232/RS-485通信標(biāo)準(zhǔn),可同時顯示4個16×16點陣漢字或8個16×8點陣的漢字﹑字符或數(shù)字。顯示方式有左移﹑右移﹑上移﹑下移﹑替換;顯示狀態(tài)包括移動速度﹑停留時間等。
DS80C320是美國DALLAS公司生產(chǎn)的與MCS-51系列完全兼容的單片微處理器產(chǎn)品。它與80C32具有完全相同的封裝,提供80C32具有的所有的功能,如I/O口,定時器/計數(shù)器,串行口等。此外它還提供了另一個全雙工串行接口,7個新的中斷,可編程看門狗定時器,掉電中斷和復(fù)位等。在此基礎(chǔ)上,DS80C320還增加了2個用于改善外部RAM數(shù)據(jù)存儲器存取數(shù)據(jù)的功能,即雙數(shù)據(jù)指針和可編程片外RAM存取周期擴(kuò)展功能。DS80C320可以工作在1MHZ~33MHZ的頻率范圍內(nèi)。普通8051的CPU的每個機(jī)器周期需要12個時鐘,而DS80C320的每個機(jī)器周期只需要4個時鐘。而且DS80C320采用了重新設(shè)計的微處理器內(nèi)核,去除了多余的時鐘和存儲周期,因此每一條指令的執(zhí)行時間都比原8051CPU快1.5至3倍,在相同的晶振頻率和代碼條件下,其運行速度平均提高2.5倍。此外DS80C320的雙數(shù)據(jù)指針結(jié)構(gòu)也將提高數(shù)據(jù)傳送的效率。在顯示系統(tǒng)中,由于掃描顯示與狀態(tài)控制、移動控制分時復(fù)用CPU,掃描顯示頻率不能低于 60 HZ,這就需要加快CPU執(zhí)行指令的速度。DS80C320具有高的工作頻率,高效的CPU內(nèi)核以及很短的機(jī)器周期,應(yīng)用于顯示控制系統(tǒng)中可以大大提高顯示效果,增強(qiáng)系統(tǒng)的穩(wěn)定性和可靠性。
1系統(tǒng)設(shè)計
顯示屏控制系統(tǒng)由顯示控制器和LED點陣顯示屏組成。控制系統(tǒng)的邏輯結(jié)構(gòu)框圖見圖1。
1)點陣顯示屏
點陣顯示屏每個單元由16個8×8點陣LED顯示模塊、行信號選擇譯碼器74HC138、驅(qū)動器74HC245、數(shù)據(jù)移位寄存器74HC595、行驅(qū)動器組成。16片8×8點陣LED顯示模塊組成一個64×16的LED點陣,用于同時顯示4個16×16點陣漢字或8個16×8點陣的漢字﹑字符或數(shù)字。單元顯示屏可以接收來自控制器(主控制電路板)或上一級顯示單元模塊傳輸下來的數(shù)據(jù)信息和命令信息,并可將這些數(shù)據(jù)信息和命令信息不經(jīng)任何變化地再傳送到下一級顯示模塊單元中,因此顯示板可擴(kuò)展至更多的顯示單元,用于顯示更多的顯示內(nèi)容。以下給出了一個顯示單元(64×16點陣)的顯示程序,當(dāng)級聯(lián)多個顯示單元時只需相應(yīng)地改變每行字節(jié)數(shù)即可。
DISP: MOV R0,#8 ;每行8字節(jié)
MOV DPL,R6 ;取顯示緩沖區(qū)首地址
MOV DPH,R7 ;
DIS: MOVX A,@DPTR ;取出顯示數(shù)據(jù)
CPL A ;數(shù)據(jù)取反
MOV SBUF1,A ;送出顯示數(shù)據(jù)
JNB TI1,$ ;
CLR TI1 ;
INC DPTR ;取下一個數(shù)據(jù)
DJNZ R0,DIS ;
SETB CLEAR ;74 HC595的消隱線
SETB STB ;74 HC595的鎖存線
ANL P1,#0FH ;
MOV A,LINE ;取行值
DIN: SWAP A ;
ORL P1,A ;送出行驅(qū)動信號
DISE: CLR STB ;
CLR CLEAR ;
2)顯示屏控制器
除單片機(jī)DS80C320外,顯示屏控制器的硬件電路部分由三個部分組成:外部存儲器
的擴(kuò)展、串行通信接口和LED顯示驅(qū)動及接口。控制器的組成框圖如圖2所示,采用DS80C320作為中央控制器,完成與PC機(jī)的通信,實現(xiàn)對顯示屏顯示數(shù)據(jù)和顯示狀態(tài)的控制。數(shù)據(jù)存儲器使用一片靜態(tài)RAM62256和一片FLASH存儲器29F040。29F040容量很大,可以用于存儲顯示的內(nèi)容,也可根據(jù)需要存儲漢字的點陣庫。控制器與計算機(jī)的連接根據(jù)通信距離的遠(yuǎn)近選用RS-232或RS-485標(biāo)準(zhǔn)總線接口。
靜態(tài)數(shù)據(jù)存儲器成本低﹑功耗小,讀寫速度快,但是掉電后片內(nèi)信息隨即丟失,在顯示控制系統(tǒng)中需要保存由PC機(jī)傳送過來的顯示數(shù)據(jù)信息,所以在系統(tǒng)中還擴(kuò)展了一塊FLASH存儲器。
閃速存儲器(Flash Memory)是一種非易失性存儲器,即使在供電電源關(guān)閉后仍能保持片內(nèi)信息。閃速存儲器集其它非易失性存儲器的特點于一身:與EPROM相比較,閃速存儲器具有明顯的優(yōu)勢——電可擦除和可重復(fù)編程,而不需要特殊的高電壓;與EEPROM相比較,閃速存儲器具有成本低、密度大的特點,其獨特的性能使其廣泛地運用于各個領(lǐng)域。
在系統(tǒng)設(shè)計中,選用容量為4Mbit的29F040。該芯片內(nèi)部由8個64Kbyte的讀寫塊組成,可分塊進(jìn)行讀、寫和擦除的操作。采用單電源+5V供電。
29F040與單片機(jī)的接口電路如圖3所示。29F040有19條地址線(A0~A18),最高三位(A16~A18)由P2口作為地址送出,通過74HC377八個D型鎖存器進(jìn)行鎖存。由于62256與29F040的低位地址重疊,所以需要片選控制。片選信號和最高三位地址一樣,也由P2口送出,74HC377鎖存輸出。尋址時采用兩次尋址方法,先將地址的最高三位地址線A16~A18和片選信號送出,鎖存,然后再尋址低16位地址。需要特別提出的是,系統(tǒng)中接有外部程序存儲器,對外部程序存儲器的操作連續(xù)不斷,P2口需要不斷地送出高八位地址,這時P2口不可能再作通用I/O口使用,所以片選信號和最高三位地址線只能一并作為地址線鎖存起來。用P3.4控制74HC377的片選,用單片機(jī)的讀信號作為74HC377的鎖存信號。這樣在一次讀操作后即可將放入高位地址的數(shù)據(jù)鎖存在74HC377的輸出端。
關(guān)于程序存儲器和靜態(tài)數(shù)據(jù)存儲器的擴(kuò)展電路、串行通信接口和LED顯示驅(qū)動及接口電路設(shè)計比較常規(guī),在此不加以介紹了。
2 軟件程序
軟件程序是整個控制系統(tǒng)的核心部分,是用匯編語言編寫的。整個軟件設(shè)計分為兩大功能塊:顯示部分和通信部分。顯示部分采用動態(tài)掃描的方式,實現(xiàn)對顯示屏要顯示的漢字、圖象、字符等數(shù)據(jù)信息進(jìn)行傳輸控制以及顯示等功能。與PC機(jī)的實時通信部分主要是利用單片機(jī)串口中斷接收和發(fā)送數(shù)據(jù)信息,實現(xiàn)與計算機(jī)的實時數(shù)據(jù)信息傳輸。其程序功能框圖如圖4所示。
程序中將數(shù)據(jù)存儲器分為三個區(qū):顯示緩沖區(qū)、數(shù)據(jù)存儲區(qū)和接收緩沖區(qū)。單片機(jī)通過串口中斷接收PC機(jī)傳來的數(shù)據(jù)(包括顯示內(nèi)容、顯示方式和顯示狀態(tài)),暫時存放在接收緩沖區(qū),經(jīng)分析處理后按一定的規(guī)律放入數(shù)據(jù)存儲區(qū)保存起來,然后再根據(jù)顯示方式依次從數(shù)據(jù)存儲器中取出數(shù)據(jù)放入顯示緩沖區(qū)中用于顯示。顯示采用逐行掃描的方式,因此掃描頻率需達(dá)到60HZ以上。多種顯示方式(左移﹑右移﹑上移﹑下移和替換等)的實現(xiàn)取決于從數(shù)據(jù)存儲區(qū)取出數(shù)據(jù)放入顯示緩沖區(qū)時取數(shù)的順序,左右移時每次從數(shù)據(jù)存儲區(qū)取出一位數(shù)移入顯示緩沖區(qū),上下移動時則每次取出一行數(shù)據(jù)移入,替換時每次取出整屏數(shù)據(jù)放入顯示緩沖區(qū)。掃描顯示時并不識別顯示緩沖區(qū)中的數(shù)據(jù),只是依次從顯示緩沖區(qū)中取出數(shù)據(jù)由串行口向顯示屏發(fā)送,并送出相應(yīng)的鎖存﹑消隱和行值信號,完成一次掃描。
通信部分的上位機(jī)軟件采用Visual Basic(簡稱VB)編程,使用VB在標(biāo)準(zhǔn)串口通信方面提供的具有強(qiáng)大功能的通信控件MSCOMM,該控件可設(shè)置串行通信的數(shù)據(jù)發(fā)送和接收,對串口狀態(tài)及串口通信的信息格式和協(xié)議進(jìn)行設(shè)置,直接利用PC機(jī)的RS-232/RS-485串口發(fā)送數(shù)據(jù)。為實現(xiàn)單片機(jī)與PC機(jī)的可靠通信,須保證雙方具有相同的數(shù)據(jù)格式和波特率。
值得注意的是,DS80C320內(nèi)部自帶看門狗定時器電路,軟件必須在所設(shè)置的時間間隔內(nèi)重新啟動該定時器,否則它將使CPU復(fù)位。
3結(jié)束語
本文設(shè)計的點陣LED顯示屏控制系統(tǒng)以單片機(jī)為基礎(chǔ),采用性能優(yōu)越的FLASH存儲器作為數(shù)據(jù)存儲器,利用RS-232/RS-485接口實現(xiàn)與PC機(jī)的實時數(shù)據(jù)傳輸。可實現(xiàn)漢字、字符及數(shù)字的五種顯示方式,三種移動速度的控制。在系統(tǒng)設(shè)計中還兼顧了單片機(jī)的抗干擾能力,有效地提高了系統(tǒng)運行的可靠性。該系統(tǒng)已運用于實際場合。