這是一道電子設(shè)計競賽的題目,覺著挺有意思就試著制作了出來,下面是題目要求:
然后下面是演示效果,這里只拍了基礎(chǔ)部分,發(fā)揮部分沒來得及錄像,但都實現(xiàn)出來了:
然后下邊是設(shè)計報告,懶得再改就直接發(fā)上來了:
摘要 本設(shè)計基于16位超低功耗單片機MSP430G2553,使用74HC595串行驅(qū)動一塊16×16的LED點陣屏,由單片機控制LED點陣屏逐行逐點進行掃描,通過光敏三極管構(gòu)成的光筆將LED點陣屏上掃描產(chǎn)生的光信號轉(zhuǎn)化為電信號,并將其送入單片機自帶的ADC10模塊進行模數(shù)轉(zhuǎn)換,根據(jù)設(shè)定的閾值電壓可以判斷光筆的接觸點坐標,并實現(xiàn)“點亮、擦除、劃亮、反顯、整屏擦除、筆畫擦除、連寫多字、對象拖移”等功能,此外還可以使用上位機顯示并控制LED點陣屏的運行狀態(tài),本設(shè)計具有功耗低、使用簡單、可靠性高等特點。
關(guān)鍵詞 MSP430 LED點陣 光敏三極管 74HC595
1 設(shè)計背景及意義
隨著計算機技術(shù)的發(fā)展,各種硬件設(shè)備也是日新月異、層出不窮。在輸入設(shè)備中,為了應(yīng)對手寫文字輸入與繪畫輸入的需求,出現(xiàn)了各種手寫繪畫輸入設(shè)備,包括手寫板、繪圖板等。隨著電腦的普及和網(wǎng)絡(luò)的流行,人們對網(wǎng)上信息訪問量迅速上升,但用鍵盤快速打字,對還不熟悉電腦的人們來說真是件費力又費心的事。
LED顯示器分為圖文顯示器和視頻顯示器,均由LED矩陣塊組成。圖文顯示屏可與計算機同步顯示漢字、英文文本和圖形;視頻顯示屏采用微型計算機進行控制,圖文、圖像并茂,以實時、同步、清晰的信息傳播方式播放各種信息,還可顯示二維、三維動畫、錄像、電視、VCD節(jié)目以及現(xiàn)場實況。LED顯示屏顯示畫面色彩鮮艷,立體感強,靜如油畫,動如電影,廣泛應(yīng)用于車站、碼頭、機場、商場、醫(yī)院、賓館、銀行、證券市場、建筑市場、拍賣行、工業(yè)企業(yè)管理和其它公共場所。
2 方案比較與選擇
2.1 主控制器的選擇與比較
方案一:采用低功耗的MSP430G2553為主控制器,內(nèi)置具有基準、采樣與保持以及自動掃描功能的10位200-ksps的A/D轉(zhuǎn)換器,晶振頻率達到32kHz,運行速度較快。內(nèi)置的16位定時器、多達24個支持觸摸感測的I/O引腳,一個通用型模擬比較器以及采用通用串行通信接口的內(nèi)置通信能力。
方案二:采用STC89C52單片機,成本低,程序書寫簡單易控制,晶振頻率為12MHz,其運行速度相對較慢,需外接AD,且為8位CPU,內(nèi)存空間相對較少。
方案三:采用STM32單片機為主控制器,速度快,具有72MHz的CPU工作頻率和很強的運算能力,可實現(xiàn)點陣屏的高速掃描的一些復雜控制,但其功率相對較高,功能實現(xiàn)起來相對復雜。
經(jīng)比較,選擇方案一為主控制器。
2.2 光筆檢測的選擇與比較
方案一:采用循環(huán)掃描LED點陣顯示屏,光筆通過光敏三極管檢測光信號的方式。LED點陣顯示屏在CPU的控制下不斷掃描,當光筆檢測到所在點處的光信號時產(chǎn)生電流,傳回單片機產(chǎn)生相應(yīng)的電壓值且與程序所設(shè)定的電壓值相比較,單片機對LED點陣顯示屏上的點進行相應(yīng)的操作。
方案二:采用點陣顯示屏檢測光筆所帶LED產(chǎn)生的光信號的方式。串行驅(qū)動只占用一個I/O口但速度相對較慢且亮度較低。并行驅(qū)動占用大量I/O口且功耗大,且MSP430無法提供足夠的I/O口,因此采用串行驅(qū)動。而串行驅(qū)動下LED點陣無法實現(xiàn)測光。
經(jīng)比較,采用方案一作為光筆檢測的方案。
2.3 操作方式的選擇與比較
方案一:采用獨立按鍵與上位機結(jié)合。獨立按鍵編程簡單但每個按鍵占用一個I/O口,因此結(jié)合上位機來擴展功能,同時實現(xiàn)了上位機對本系統(tǒng)的操作。
方案二:為了節(jié)省I/O口,通常將按鍵排列成矩陣形式,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。采用矩陣按鍵,提高了I/O口利用率但軟件編程較為復雜,且本設(shè)計并不需要很多按鍵。
經(jīng)比較,采用方案一作為本設(shè)計的操作方式。
3 總體設(shè)計
控制器的控制方式是:當光筆感應(yīng)無效時,一直顯示原有的數(shù)據(jù),采用動態(tài)掃描的方式顯示,由定時器控制屏幕的掃描,即以一定的頻率對屏幕進行整屏掃描,這樣顯示和掃描交替進行。掃描開始時才判斷光筆的感應(yīng)是否有效,以免在顯示的時候也產(chǎn)生中斷。在省電模式中,也由定時器來控制,其中掃描定時中斷和省電定時中斷在開機時就一直工作,省電模式就是在設(shè)定的時間內(nèi)光筆沒有感應(yīng)到LED發(fā)光時,就會取消顯示的功能,同時關(guān)閉省電定時器,就剩下定時掃描。當光筆感應(yīng)有效時,產(chǎn)生外部中斷,同時開啟省電計時器,而且使顯示功能生效,此時又是顯示和掃描交替進行。
光筆檢測LED點陣顯示屏的光信號,單片機對接收到的產(chǎn)生的電壓信號分析后對LED點陣顯示屏進行相應(yīng)的操作。開啟上位機操作程序后將顯示進行操作的點同時可控制LED點陣顯示屏完成相應(yīng)的功能。總體設(shè)計框架如下:
4 硬件設(shè)計
4.1 光筆檢測電路
光筆檢測電路由光敏三極管構(gòu)成,光電流大,響應(yīng)時間短,且其靈敏度非常高,易判斷所在處LED在點陣屏中的坐標,而光敏電阻及光敏二極管靈敏度相對較低且響應(yīng)速度慢,此設(shè)計具有一定的速度要求,故采用光敏三極管檢測光信號。
4.2 LED點陣顯示屏
本設(shè)計所采用16×16LED點陣顯示屏,由4個8×8的共陽型點陣構(gòu)建。由于其自帶4片74HC595,故此設(shè)計直接采用74HC595進行驅(qū)動,避免外加芯片使電路復雜。74HC595是一個8位串入并出的移位寄存器和一個8位輸出鎖存器的結(jié)構(gòu),數(shù)據(jù)在SH_CP(移位寄存器時鐘輸入)的上升沿輸入到移位寄存器中,在ST_CP(存儲器時鐘輸入)的上升沿輸入到存儲寄存器中去,兩部分互不干擾,可輸出數(shù)據(jù)的同時移入數(shù)據(jù)。由于74HC595為8位并行輸出,因此16×16點陣顯示屏分別需要2片控制行,2片控制列。
4.3 主控制器MSP430G2553
MSP430系列單片機是美國德州儀器(TI)1996年開始推向市場的一種16位超低功耗、具有精簡指令集(RISC)的混合信號處理器(Mixed Signal Processor)。之所以稱之為混合信號處理器,是由于其針對實際應(yīng)用需求,將多個不同功能的模擬電路、數(shù)字電路模塊和微處理器集成在一個芯片上,以提供“單片機”解決方案。
MSP430G2553系列是超低功耗混合信號微控制器,具有內(nèi)置的16位定時器、多達24個支持觸摸感測的I/O引腳、一個通用型模擬比較器以及采用通用串行通信接口的內(nèi)置通信能力。此外,MSP430G2553系列成員還具有一個10位模數(shù)(A/D)轉(zhuǎn)換器。
5 軟件設(shè)計
5.1 主程序設(shè)計
主程序包括對系統(tǒng)初始化且進行動態(tài)掃描,液晶顯示,以及“反顯”、“擦除”、“睡眠”基本要求功能下數(shù)據(jù)處理程序。其中點陣不斷被掃描,在極短的時間內(nèi)被點亮,完成一次AD轉(zhuǎn)換后立即熄滅,由于掃描時間極短,只會產(chǎn)生人眼幾乎不可見的掃描微亮。檢測按下控制下的功能,當單片機內(nèi)部AD檢測到產(chǎn)生的電壓值大于設(shè)定值時,視為光筆與LED點陣相接觸,按照預先編寫的程序完成相應(yīng)操作。
5.2 擴展設(shè)計
本設(shè)計完成了“反顯”、“連寫多字”、“對象拖移”、“休眠”等功能并可實現(xiàn)上位機操作?!胺达@”功能下,當光筆接收到光信號所在的點已被點亮時,再次被檢測到后所在點熄滅。“連寫多字”功能下,分別書寫四個字存儲后可進行回放?!皩ο笸弦啤惫δ芟?,用光筆在LED點陣屏上進行拖動即可進行各個方向上的畫面拖移?!靶菝摺惫δ芟庐斘催M行操作達到所設(shè)定的時間時,顯示屏會停止掃描并保持其休眠前的圖像。
5.3上位機設(shè)計
上位機與下位機之間通過MSP430G2553自帶的USCI模塊中的硬件串口進行通信,上位機通過C#語言進行編寫。每當單片機檢測到光筆的觸發(fā)信號后,便會將實際的觸發(fā)位置發(fā)送給電腦,上位機程序接收到數(shù)據(jù)后將對其進行解析,并在電腦屏幕上顯示出觸發(fā)點的坐標和圖形化表示的實際位置。同理,上位機程序也可以對單片機進行控制,通過發(fā)送預先編制的指令代碼,用戶便可以使用電腦對LED點陣進行控制。單片機接受到來自串口的數(shù)據(jù)后會觸發(fā)串口接收中斷,根據(jù)收到的指令不同將會相應(yīng)響應(yīng)的函數(shù)執(zhí)行不同的操作。
6 系統(tǒng)測試與結(jié)果
6.1 基本要求的測試與結(jié)果
軟件調(diào)試無誤后對搭建好的系統(tǒng)供電,初始化復位進入“書寫”模式。當光筆觸碰LED點陣顯示屏后可顯示光筆所走過的路徑,同時上位機顯示走過點的坐標。快速穩(wěn)定劃過后可實現(xiàn)1s點亮16個點,“劃亮”功能未精確實現(xiàn)。選擇按鍵二進入“反顯”模式可看到被點亮的地方變暗而為點亮的地方變亮,再次按鍵可退出此模式?!罢敛脸笨赏ㄟ^復位鍵實現(xiàn)也可通過按鍵三實現(xiàn)。
經(jīng)測試,系統(tǒng)工作正常。
6.2 擴展要求的測試與結(jié)果
對系統(tǒng)進行上電初始化復位后進行書寫,然后再次經(jīng)過所書寫過的路徑可發(fā)現(xiàn)被點亮的燈熄滅,“擦除”模式下工作正常。清屏后分別書寫四個字并且保存,選擇進入“連寫多字”模式后可以進行四個字的復現(xiàn)。選擇按鍵一進入“拖移”模式后利用光筆上下左右拖動,屏幕圖像隨之移動且跟隨性較好。預先設(shè)置休眠時間,當控制器檢測到一定時間后LED點陣未進行一定的操作時會進入“休眠”模式,退出此模式可以通過復位或者上位機“喚醒”功能。
經(jīng)測試,系統(tǒng)工作正常。
6.3 其他擴展要求的測試與結(jié)果
對系統(tǒng)進行上電初始化復位后進行書寫后,上位機能夠準確顯示所在點的坐標并顯示其在屏幕上的動態(tài)位置?;疽蠹皵U展要求中的內(nèi)容上位機均可實現(xiàn)。選擇進入“貪吃蛇”游戲后LED點陣顯示屏進入游戲模式,通過四個獨立按鍵操作控制游戲。
經(jīng)測試,系統(tǒng)工作正常。
7 設(shè)計總結(jié)
在LED點陣書寫屏的設(shè)計過程中,雖然發(fā)現(xiàn)不少問題,但卻因此學到很多東西,基本了解了整個嵌入式開發(fā)的流程。最初在練習設(shè)計一些功能簡單的電路時,從電源到主控制器,驅(qū)動及外圍電路,盡管都是功能單一的模塊,但卻因為核心芯片不同要采用不同的上電電壓及上下拉電阻及濾波電容,原理圖做好時PCB布線又會讓人身臨線路的迷宮。總體來說,這次設(shè)計開發(fā)讓我感覺到動手實踐與理論聯(lián)合的重要性,綜合能力有所提高,這些都促使我們向電子設(shè)計邁進了一步。
這次設(shè)計讓我感觸最深的應(yīng)該是軟件的調(diào)試,控制器的功能越多,程序的內(nèi)容就越復雜,在編寫程序時,最好不要把整體的功能都寫好了之后再去和硬件結(jié)合調(diào)試,這樣如果出現(xiàn)了問題將非常的不好排除故障;最好的方法是編好了某一個功能之后,就要和硬件結(jié)合起來,去驗證程序的對錯,這樣檢測起來就大大降低了檢錯的范圍,同時也提高了工作的效率,逐步的把這些功能累加起來,就能很好的完成我們的目標了。
8 參考文獻
[1] 吳運昌. 模擬電子線路基礎(chǔ)[M]. 廣州:華南理工大學出版社,2004.
[2] 李建忠. 單片機原理及應(yīng)用[M]. 西安:西安電子科技大學,2002.
[3] 賈立新. 電子設(shè)計與實踐[M]. 北京:清華大學出版社,2007.
[4] 童詩白. 模擬電子技術(shù)基礎(chǔ)[M]. 北京:高等教育出版社,2003.
[5] 胡壽松. 自動控制原理[M]. 北京:科學出版社,2007.
最后附上上位機和下位機的源碼供大家交流學習:
下位機:LED Matrix.zip 上位機:LED Monitor.zip