周琦
摘 要:以Keil for ARM集成開發環境為基礎,以STM32F103C8T6單片機為核心,設計LCD12864液晶顯示系統,能在屏幕的任意位置對字符及圖形進行顯示,且具備貪吃蛇游戲等相關功能。另外,該LCD顯示系統具有較強的操作便捷性,且具有較低能耗、較快速度和較高的性價比。本文淺析了基于STM32F103C8T6單片機的LCD顯示系統設計,以期為LCD顯示系統設計提供借鑒。
關鍵詞:單片機;LCD;顯示系統
當前,終端顯示器在諸多領域得到了日漸廣泛的應用。同時,人們對于所使用的終端顯示器提出了較高的要求。具有較小體積和較低能耗,且具有較高清晰度的LCD顯示器具有顯著的應用優勢,深受人們青睞。以單片機為核心的LCD顯示系統具備簡單的硬件結構,生產成本相對較低,且控制較為便捷,廣泛應用于嵌入式系統中。本文主要基于STM32F103C8T6單片機,對LCD顯示系統進行設計。
一、系統硬件設計
LCD顯示系統方框圖如下圖1所示:
(一)Keil MDK以及STM32F103C8T6單片機
Keil MDK為集成開發環境,具備在線調試以及鏈接、編譯等功能,能實現對啟動代碼的自動配置,操作相對簡單,且具有優越性能,廣泛應用于嵌入式系統。[1]STM32F103C8T6單片機的寬電壓實際供電范圍保持在2.0V~3.6V之內,其最大CPU功率為72MHz,配備有單周期的硬件除法以及乘法指令,還配備有中斷系統,具備編程功能。同時,該單片機還配備有兩種存儲器,一種是FLash存儲器,容量為64KB,一種是SRAM存儲器,容量為20KB。另外,該單片機還具備多種類型的片內外設,諸如定時器、DMA控制器、IIC接口等。[2]該單片機不僅具有成本較低,且具有較快的速度和較高的性價比。
(二)LCD12864液晶顯示屏
LCD12864液晶顯示屏采用串行數據接口,其工作電壓保持在2.8V到5.5V范圍之內,采用128×64像素,以黑白色作為其顯示顏色,以藍色作為背光顏色,且不帶字庫。模塊內部對ST7565P控制器進行采用,此類控制器具有較低的功耗,在省電模式下,其最大工作電流為5μA,顯示模塊具備的引腳接口共有8個,對主控制器I/O相應的占用數量相對較少。
(三)LCD12864液晶顯示屏與STM32F103C8T6單片機的硬件連接
LCD12864液晶顯示屏與STM32F103C8T6單片機的硬件連接極為簡單。LCD12864液晶顯示屏引腳編號1~5相應的控制端口,能與STM32F103C8T6單片機相應的GPIO口進行直接連接,第8引腳為LCD相應的背光電源端口,借助單片機相應的I/O口對三級管導通進行控制,據此對通斷背光電源進行控制,實現對功耗的有效節省。[3]單片機 STM32F103C8T6 與 LCD12864 的硬件連接圖如下圖2所示:
二、系統軟件設計
系統軟件設計涵蓋LCD初始化、數據命令編寫、字符畫點顯示等相關程序設計。在液晶顯示模塊開展工作前,要對之實施初始化,諸如對液晶進行復位,對偏壓比以及顯示對比度等各項參數進行確定等,在此基礎上,才能對字符以及圖形進行顯示。針對液晶顯示模塊對數據、命令進行寫入,要強調寫入時序,嚴格遵循相關時序,對驅動程序進行編寫。對程序進行設計時,為增強移植的便捷性,可對相關引腳相應的操作實施宏封裝。
寫數據相應的功能函數void LCD12864_WriteData的實現方法相同于寫命令相應的功能函數,將片選打開后,對寫數據LCD_A0_1()進行選擇。
對LCD液晶驅動程序進行設計,要在屏幕任意位置對一個點進行顯示,據此實現復雜性更強的功能。每次對數據進行寫入均包含8個點相應的信息,且LCD顯示模塊未對讀控制端口進行配置,無法借助讀數據命令實現對其他7點實際狀態的了解,難以實現最終目的。對此,可在單片機相應的內存區對數據空間進行開辟,并對顯示器各點相應的顯示情況進行記錄。
液晶模塊未對字庫進行配置,對字符進行顯示之前,要在單片機相應的存儲空間中對字模進行儲存,并基于任意坐標對一個點的現實,實現對字符的有效現實。
三、實例設計
基于LCD12864驅動程序,將STM32F103C8T6單片機作為系統控制核心,即具備貪吃蛇游戲的相應功能。該游戲程序主要具備鍵盤掃描、LCD12864驅動以及數據處理子程序模塊。在該游戲中,可將貪吃蛇和食物視作各不相同的兩個對象,可借助結構體變量對其屬性進行描述,將游戲功能作為依據,對大模塊整體實施劃分,形成不同子模塊,并對各子模塊各自的功能函數進行編寫,由主模塊函數對之進行調用。在程序設計過程中,將貪吃蛇的長度定義為15,將貪吃蛇具體的運動區域長度定義為20個單位,將其寬度定義為15個單位。另外,借助單片機相應的AD采樣引腳基于懸空狀態實施采樣,對AD值進行獲取,并經由相關運算實現對隨機數的獲取。
四、結語
綜上所述,STM32F103C8T6單片機性能良好,LCD12864具有較為簡單的硬件接口,對單片機相應的I/O口資源占用較少,且單片機能為其他外設提供充足的硬件資源,顯示系統能在不同場合進行應用。另外,系統對C語言進行采用實施程序設計,具有較強的移植性。
參考文獻:
[1]楊偉,肖義平.基于STM32F103C8T6單片機的LCD顯示系統設計[J].微型機與應用,2014(20):29-31.
[2]陳素芹,余紅英,萬鸞飛,等.基于STM32F103C8T6的USB直流充電器設計[J].重慶工商大學學報:自然科學版,2016,33(2):45-48.
[3]梁亞峰.面向實訓設備管理的指紋鎖控系統設計[J].成都航空職業技術學院學報,2015,31(3):50-53.