摘 要:文章提出了一種基于STM32為核心處理器的LED點(diǎn)陣屏系統(tǒng)的設(shè)計(jì)。該系統(tǒng)包括主控模塊、信號傳輸模塊、時鐘模塊RTC、電源模塊、顯示模塊和2個16*64點(diǎn)陣屏等。系統(tǒng)通過上位機(jī)進(jìn)行信息的傳輸以及對其中任意一塊點(diǎn)陣屏進(jìn)行控制,從而顯示出漢字、ASCⅡ碼字符等,可以廣泛應(yīng)用于廣告屏、公告牌等。
關(guān)鍵詞:STM32;LED點(diǎn)陣屏;上位機(jī);RTC
引言
LED是一種通過控制半導(dǎo)體發(fā)光二極管的顯示方式,由很多個小燈組成,靠燈的亮滅來顯示字符,是六十年代末七十年代初發(fā)展起來的。LED顯示屏是一種新的顯示媒體,用來顯示文字、圖形、圖像等各種信息,廣泛應(yīng)用于車站、商場、醫(yī)院、賓館和其它公共場所。它的 優(yōu)點(diǎn)是亮度高、工作電壓低、功耗小、微型化、易與集成電路匹配、驅(qū)動簡單、壽命長、耐沖擊、性能穩(wěn)定。傳統(tǒng)LED多以51單片機(jī)控制為主,但是由于這類單片機(jī)的運(yùn)行速度、功耗等問題,已經(jīng)難以滿足顯示區(qū)域較大、顯示內(nèi)容相對復(fù)雜的應(yīng)用場合。文章針對上述問題,研究的是基于STM32的LED電子屏的顯示,不論對自己就業(yè)還是對我國LED顯示技術(shù)的發(fā)展都有非?,F(xiàn)實(shí)與積極的意義。
1 系統(tǒng)總體設(shè)計(jì)
LED顯示系統(tǒng)主要由上位機(jī)、無線傳輸模塊、單片機(jī)、時鐘芯片及點(diǎn)陣顯示模塊組成,總體框圖如圖1所示。系統(tǒng)通過上位機(jī)進(jìn)行信息的傳輸并對其中任意一塊點(diǎn)陣屏進(jìn)行控制,從而顯示出漢字、圖形等。
文章說的LED顯示指的是LED圖文顯示,LED圖文屏的主要特點(diǎn)是控制LED中的二極管的通斷,而不控制LED發(fā)亮程度。不管是圖形還是文字,都與組成這些圖形或文字的各點(diǎn)所在位置相對應(yīng)的LED是否發(fā)光有關(guān)。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 核心控制模塊
本系統(tǒng)采用ST公司推出的STM32F103VET6,內(nèi)置高速存儲器(64K RAM,512K Flash),具有100引腳LQFP封裝。STM32采用ARM最新的Cortex-M3內(nèi)核,處理速度可達(dá)72MHz,其ROM和RAM也是目前同類型板載主芯片中容量最大的。具有豐富的I/O資源,而且其外圍電路簡單,在片內(nèi)即可實(shí)現(xiàn)所有控制。STM32F103VET6共有80個通用I/O端口,4 個定時器,2 個 I2 C 接口,3個 UART 接口,2個 SPI 接口,為以后的擴(kuò)展提供了條件。
2.2 無線傳輸模塊
HC-12無線串口通信模塊是新一代的多通道嵌入式無線數(shù)傳模塊。模塊最大發(fā)射功率為100mW(20dBm),5000bps空中波特率下接收靈敏度-116dBm,開闊地1000米的通信距離。產(chǎn)品特點(diǎn):遠(yuǎn)距離無線傳輸,工作頻率范圍(433.4-473.0MHz,多達(dá)100個通信頻道),發(fā)射功率(可設(shè)置8檔功率),其原理圖如圖2所示。
圖2中,一共有9個引腳,其中引腳1接直流電源3.2-5.5V;引腳2、7、8接公共地;引腳3為數(shù)據(jù)接收端RXD口;引腳4為無線數(shù)據(jù)發(fā)送端TXD口;引腳5通過SW1接地進(jìn)入?yún)?shù)設(shè)置狀態(tài),懸空則退出;引腳6為天線接口;引腳9無連接,用于固定。
2.3 時鐘模塊
本系統(tǒng)采用單片機(jī)自身攜帶的時鐘模塊。RTC可以通過STRB/LDRB指令將8位BCD碼數(shù)據(jù)送至CPU,這些BCD數(shù)據(jù)包括秒,分,時,日期,星期,月和年。能夠?yàn)槿藗兲峁┚_的實(shí)時時間,或者為電子系統(tǒng)提供精確的時間基準(zhǔn)。其原理框圖如圖3所示。
圖3中,RTC由兩部分組成:APB1接口部分以及RTC核心部分。RTC核心部分又分為預(yù)分頻模塊和一個32位的可編程計(jì)數(shù)器。首先,通過設(shè)置寄存器RCC_APB1ENR的PWREN和BKPEN位來打開電源和后備接口的時鐘;其次,電源控制寄存器(PWR_CR)的DBP位來使能對后備寄存器和RTC的訪問;接著,初始化復(fù)位BKP寄存器;然后,設(shè)置RTCCLK;將RTC輸入時鐘選擇為LSE時鐘輸入并使能RTC,等待RTC和APB時鐘同步;最后,配置RTC時鐘參數(shù)。
2.4 點(diǎn)陣屏模塊
該系統(tǒng)有兩塊16*64LED點(diǎn)陣屏。每一塊采用16個LED8*8顯示屏,構(gòu)成16行*64列點(diǎn)陣顯示模塊。采用74HC138三-八譯碼器和74HC595移位寄存器。一個16*64的顯示屏可以顯示各種文字或單色圖像,全屏能顯示4個漢字。由138和595的信號,控制二極管的亮、滅來顯示出所要求的字符、漢字。
在圖4中,列驅(qū)動采用移位寄存器74HC595芯片,一塊16*64的點(diǎn)陣屏需要8片74HC595??梢园汛休斎氲?位數(shù)據(jù)并行輸出,第1片595的串行輸出接到第2片595的串行輸入端,同理,其他引腳的連接方式一樣,通過這種級聯(lián)的方式,把8個595芯片連在一起,同時每個595芯片的并行輸出連接8個LED的列。
行驅(qū)動采用74HC138和74HC4953芯片,需要兩片138和8片4953。74HC138功能是控制掃描的,輸入A、B和OE信號輸出4個信號來控制2片4953。2片138的16路輸出分別通過4953的驅(qū)動用于選通相應(yīng)的行,實(shí)現(xiàn)對行的控制。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件由在單片機(jī)主控程序協(xié)調(diào)下,由通信程序;時針修改及讀取程序;點(diǎn)陣信息顯示程序等組成。
3.1 總體軟件流
LED顯示主要流程如圖6所示。一開始主程序需要進(jìn)行初始化。然后可以校準(zhǔn)時間并顯示;確認(rèn)按鍵之后獲取的內(nèi)容,即可顯示;上位機(jī)數(shù)據(jù)傳輸至下位機(jī)進(jìn)行顯示。
3.2 子程序設(shè)計(jì)
3.2.1時鐘模塊初始化部分程序編寫
void RCC_Config(void)
{
SystemInit();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
}
3.2.2 LED顯示緩沖部分程序編寫
u8 DisBuf[16][LedNum_X + 2]; /* 顯示緩沖區(qū) */
unsigned char EffectBuf[16][LedNum_X];/* 效果緩沖區(qū),用于實(shí)現(xiàn)不同顯示效果 */
3.2.3 無線模塊程序編寫
模塊參數(shù)設(shè)置AT指令
測試指令:AT
更改串口波特率指令:AT+Bxxxx
更改模塊串口通透模式:AT+FUx
獲取模塊所有參數(shù):AT+Rx
設(shè)置串口通信的數(shù)據(jù)位數(shù)、檢驗(yàn)位、停止位:AT+Uxxx
4 系統(tǒng)調(diào)試結(jié)果
文章完成了系統(tǒng)的軟、硬件設(shè)計(jì),包括各個硬件模塊電路設(shè)計(jì)和軟件中系統(tǒng)初始化、傳輸數(shù)據(jù)、顯示驅(qū)動程序,設(shè)置了無線模塊、字模提取。實(shí)現(xiàn)了LED的顯示功能,下圖為STM32控制顯示屏的顯示效果。
5 結(jié)束語
文章介紹了基于STM32的LED顯示系統(tǒng)的硬軟件構(gòu)成,該系統(tǒng)采用STM32F103為控制核心,傳遞數(shù)據(jù),用74HC138三-八譯碼器和74HC595移位寄存器來驅(qū)動兩塊16*64點(diǎn)陣屏,對其中任意一塊點(diǎn)陣屏進(jìn)行控制,從而顯示出漢字、ASCⅡ碼字符等。
參考文獻(xiàn)
[1]李志明,檀永,等.STM32嵌入式系統(tǒng)開發(fā)實(shí)戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2013.
[2]韓旭,王娣.C語言從入門到精通[M].北京:清華大學(xué)出版社,2010.
[3]馬忠梅,等.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2007.
[4]任全會,黃根嶺.基于STM32LED書寫點(diǎn)陣屏設(shè)計(jì)與實(shí)現(xiàn)[J].鄭州鐵路職業(yè)技術(shù)學(xué)院學(xué)報,2012,24(1):34-36.
[5]林秀明,秦德茂,等.基于STM32實(shí)現(xiàn)多區(qū)域顯示的LED點(diǎn)陣屏的設(shè)計(jì)[J].西部交通科技,2015,5(94):75-82.
[6]劉志龍,吳昊.STM32F103ZET6芯片在LED顯示屏控制應(yīng)用中的探索[J].科技創(chuàng)新與應(yīng)用,2014(4):30-31.