基于STM32LED書(shū)寫(xiě)點(diǎn)陣屏設(shè)計(jì)與實(shí)現(xiàn)
摘要: 本文介紹了一種利用ARM 系列主流32 位微處理器STM32 作為控制核心的LED 書(shū)寫(xiě)點(diǎn)陣屏設(shè)計(jì)。系統(tǒng)包括主控模塊、光筆模塊、鍵盤(pán)模塊、顯示模塊、電源模塊和32 × 32LED 點(diǎn)陣屏等。系統(tǒng)通過(guò)鍵盤(pán)進(jìn)行功能切換,用光電三極管作為光筆的感應(yīng)器件,從而實(shí)現(xiàn)LED 點(diǎn)陣屏"點(diǎn)亮、劃亮、反顯、整屏擦除、筆畫(huà)擦除、連寫(xiě)多字、對(duì)象拖移、亮度自動(dòng)調(diào)節(jié)、超時(shí)休眠"等功能。
近年來(lái),隨著信息產(chǎn)業(yè)的高速發(fā)展,點(diǎn)陣LED 顯示屏已廣泛應(yīng)用于金融行業(yè)、郵電行業(yè)、體育館、廣告業(yè)等各種廣告發(fā)布和信息顯示系統(tǒng),成為信息傳送的重要手段。本文介紹的LED 書(shū)寫(xiě)點(diǎn)陣屏,不但可以像普通顯示屏一樣作為信息輸出設(shè)備,而且可以通過(guò)光筆直接在LED 顯示屏上進(jìn)行信息輸入,普通的顯示屏也具有"手寫(xiě)"的功能了。
1 硬件系統(tǒng)設(shè)計(jì)
本系統(tǒng)總體框圖如圖1 所示,由鍵盤(pán)與顯示模塊、光筆模塊、LED 點(diǎn)陣屏模塊、STM32 控制模塊、電源模塊五部分組成。
圖1 總體方案方框圖
1. 1 核心控制模塊
本系統(tǒng)以STM32F103VCT6 為控制核心。
STM32 是32 位微處理器,具有低功耗,中斷延遲小,高性能等特點(diǎn)。STM32 處理器采用了指令預(yù)測(cè)和流水線技術(shù),它的取指、譯碼和執(zhí)行是同時(shí)進(jìn)行的,分支預(yù)測(cè)給流水線提供連續(xù)的指令流,流水線可以不斷地執(zhí)行有效指令,因此STM32 的速度比8051 快得多; STM32 處理器內(nèi)部集成鎖相環(huán)可實(shí)現(xiàn)最大72MHZ 的工作頻率,為實(shí)現(xiàn)高速的系統(tǒng)響應(yīng)( 高速的掃描) 提供了基礎(chǔ); 其內(nèi)置的兩個(gè)看門(mén)狗定時(shí)器( 獨(dú)立看門(mén)狗和窗口看門(mén)狗) 使系統(tǒng)更加穩(wěn)定[1].STM32F103VCT6 有1 個(gè)12 位的us 級(jí)的A /D 轉(zhuǎn)換器,9 個(gè)定時(shí)器,2 個(gè)I2C 接口,5個(gè)UART 接口,3 個(gè)SPI 接口,為以后的擴(kuò)展提供了條件。
1. 2 光筆電路設(shè)計(jì)
人眼能分辨刷屏次數(shù)為24 次,根據(jù)經(jīng)驗(yàn)本系統(tǒng)點(diǎn)陣屏的刷屏速度采用每秒70 次的經(jīng)驗(yàn)刷屏次數(shù),即70Hz,故要求光筆的反應(yīng)速度大于70Hz.掃描方式是每一時(shí)刻只有一個(gè)點(diǎn)點(diǎn)亮,并且這個(gè)亮點(diǎn)朝一個(gè)方向移動(dòng),這時(shí)主控掃描的速度是1M.使用的點(diǎn)陣屏為32 ×32.當(dāng)每秒刷屏次數(shù)超過(guò)24 次時(shí)才看不出點(diǎn)陣屏閃爍,在本系統(tǒng)中每秒刷屏68 次,所以光電器件所要達(dá)到的頻率最小為68Hz,光電三極管( 3DU33) 靈敏度高,響應(yīng)時(shí)間短,光敏三極管輸出的脈沖經(jīng)過(guò)74HC14 整形輸出。光筆電路圖如圖2 所示:
圖2 光筆原理示意圖
1. 3 LED 點(diǎn)陣屏模塊
32 × 32 LED 點(diǎn)陣屏電路原理框圖如圖3 所示。
STM32 主控器I /0 口作為點(diǎn)陣屏模塊的輸入控制信號(hào),其中OE 為使能端,CLK 為時(shí)鐘線,LT 為鎖存信號(hào),DA 為數(shù)據(jù)線,A、B、C、D 為行選通地址線[2].電路中74HC245 起總線緩沖作用,2 片74HC138 構(gòu)成4 - 16 譯碼器,實(shí)現(xiàn)16 路的行選通,選通信號(hào)經(jīng)由4953MOS 管激勵(lì)為行驅(qū)動(dòng),行驅(qū)動(dòng)為H1 ~ H16,每一行驅(qū)動(dòng)負(fù)責(zé)32 × 32 點(diǎn)陣兩行的選通( 如H1 控制第1 行和第17 行,H2 控制第2 行和第18 行) .串行數(shù)據(jù)由74HC245 緩沖后,送入級(jí)聯(lián)的74HC595 串并轉(zhuǎn)換和驅(qū)動(dòng),電路中共設(shè)計(jì)有8 片74HC595,其中4 片用于第1 行~ 第16 行的列數(shù)據(jù)轉(zhuǎn)換,另外4 片用于第17 行~ 第32 行的列數(shù)據(jù)轉(zhuǎn)換。
圖3 LED 點(diǎn)陣屏電路原理框圖
2 軟件系統(tǒng)設(shè)計(jì)
STM32 系列微控制器采用C 語(yǔ)言進(jìn)行程序設(shè)計(jì),開(kāi)發(fā)調(diào)試環(huán)境為Keil MDK.主程序流程圖如圖4 所示。
圖4 主程序流程圖
當(dāng)系統(tǒng)上電后,LCD 與LED 點(diǎn)陣屏分別顯示各自的開(kāi)機(jī)界面。與此同時(shí),STM32 對(duì)鍵盤(pán)進(jìn)行掃描。
任何狀態(tài),按下"背光"鍵就可打開(kāi)或關(guān)閉液晶的背光燈,此功能使得該點(diǎn)陣屏在夜間也可以隨意使用,白天可以將背光手動(dòng)關(guān)閉,減小功耗,節(jié)約能源。
當(dāng)"設(shè)定"鍵按下后,進(jìn)入功能選擇顯示界面。
此時(shí)按上下鍵可進(jìn)行功能選擇。依次進(jìn)入點(diǎn)亮、劃亮、反顯、整屏擦除、筆畫(huà)擦除、連寫(xiě)多字、對(duì)象拖移、設(shè)定休眠時(shí)間、調(diào)節(jié)亮度等功能。指示圖標(biāo)在哪種功能前閃動(dòng),代表該功能被選中,點(diǎn)陣屏即可在系統(tǒng)控制下執(zhí)行相應(yīng)功能。在任何一種功能下,按下"確定"鍵即可顯示光筆位置的坐標(biāo)。此功能在各項(xiàng)功能下均可跟隨光筆坐標(biāo),以便快速確定光筆所在位置。
在連寫(xiě)多字功能中,每寫(xiě)好一個(gè)字后,按下自定義的"1"鍵將寫(xiě)好的字存儲(chǔ)至相應(yīng)的數(shù)據(jù)緩沖區(qū),四個(gè)字寫(xiě)完后,用光筆靠近點(diǎn)陣屏給STM32 一個(gè)信號(hào)即可將已存儲(chǔ)的四個(gè)字逐個(gè)輪流顯出。為方便書(shū)寫(xiě),加快書(shū)寫(xiě)速度,字體存儲(chǔ)后,當(dāng)光筆靠近點(diǎn)陣屏?xí)r,給予自動(dòng)清屏。在對(duì)象拖移功能中,先圈定對(duì)象,用光筆在對(duì)象上選定坐標(biāo)參考點(diǎn)進(jìn)行拖動(dòng),判斷光筆當(dāng)前坐標(biāo)與參考點(diǎn)坐標(biāo)的關(guān)系,對(duì)圈定對(duì)象對(duì)應(yīng)的RAM 區(qū)數(shù)據(jù)進(jìn)行相應(yīng)的操作[4],之后更新參考點(diǎn)坐標(biāo)值,重復(fù)上述指令,直至對(duì)象拖移結(jié)束。
在調(diào)節(jié)亮度功能下,點(diǎn)陣屏可根據(jù)環(huán)境自動(dòng)改變亮度。操作人員也可根據(jù)需要手動(dòng)調(diào)節(jié),并保持該亮度[4].
3 測(cè)試方案與測(cè)量結(jié)果
3. 1 測(cè)量設(shè)備
主要的測(cè)量設(shè)備有直流穩(wěn)壓源YB1730、數(shù)字式萬(wàn)用表( FLUKE 15B) 、萬(wàn)用表SJ47100MHz 和雙通道示波器( TeKtronix TDS2012B) .測(cè)量單位是秒表,精度0. 01s.
3. 2 實(shí)際測(cè)量結(jié)果
3. 2. 1 點(diǎn)亮、擦除。
"點(diǎn)亮"模式如表1 所示。
表1 "點(diǎn)亮"模式
[!--empirenews.page--]
結(jié)果顯示: 點(diǎn)亮點(diǎn)準(zhǔn)確,坐標(biāo)顯示準(zhǔn)確。
"擦除"模式如表2 所示。
表2 "擦除"模式
3. 2. 2 屏亮調(diào)節(jié)。
屏亮調(diào)節(jié)測(cè)試如表3 所示。
表3 屏亮調(diào)節(jié)測(cè)試
4 結(jié)束語(yǔ)
本系統(tǒng)以STM32F103VCT6 作為控制核心,用74HC245、74HC595、74HC138、74HC04 與4953 驅(qū)動(dòng)32 × 32LED 點(diǎn)陣屏,用光筆來(lái)檢測(cè)LED 點(diǎn)陣屏的掃描從而確定相應(yīng)點(diǎn)的坐標(biāo),用觸摸屏切換各個(gè)功能并顯示當(dāng)前的坐標(biāo)和功能模式。經(jīng)過(guò)功能測(cè)試表明本系統(tǒng)的硬件穩(wěn)定,功能完善,采用C 語(yǔ)言編程實(shí)現(xiàn)了點(diǎn)亮、劃亮、反顯、整屏擦除、筆畫(huà)擦除、連寫(xiě)多字、對(duì)象拖移、顯示屏亮度的自動(dòng)調(diào)節(jié)以及超時(shí)自動(dòng)關(guān)屏等基本功能和發(fā)揮功能,還實(shí)現(xiàn)了"畫(huà)圓"和"填充"創(chuàng)新功能。本系統(tǒng)以低廉的成本和邏輯性極強(qiáng)的程序?qū)崿F(xiàn)LED 顯示屏的"手寫(xiě)"功能,其功能還有很強(qiáng)的可擴(kuò)展性,具有廣泛的應(yīng)用前景。