亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于STC8F1K08S2 的串口驅動OLED 顯示系統(tǒng)設計*

        2022-06-02 14:41:16任克強王傳強
        電子器件 2022年1期
        關鍵詞:系統(tǒng)

        任克強,王傳強

        (江西理工大學信息工程學院,江西 贛州 341000)

        常用的顯示屏有LED、LCD、OLED 等[1-2],小型OLED 屏幕以其顯示效果好、顯示質量優(yōu)、價格便宜等特點,被廣泛地應用在小型嵌入式系統(tǒng)、單片機系統(tǒng)、電子產(chǎn)品等領域[3-5]。OLED 屏幕的驅動方式主要有8080 并口、IIC、SPI 等驅動方式[6-8]。對于8080 并口驅動方式,可使用高端處理器模擬8080接口時序或者使用帶有FSMC 接口的處理器完成驅動;對于IIC 和SPI 驅動方式,一些低端的處理器通過模擬時序也可以實現(xiàn)OLED 屏幕的驅動,但增加了處理器的負擔,并且OLED 屏幕顯示的字符、漢字、圖片等信息都需要取模后寫入到內部程序存儲器中,需占用大量的內存空間,對于內存較小的處理器,很容易被占滿,導致處理器無法處理其他任務[9-10]。

        針對上述問題,本文設計了一種串口控制的小型OLED 屏幕驅動顯示系統(tǒng)。該系統(tǒng)采用了低成本的MCU 方案,外擴FLASH 存儲器用于存儲16×16、24×24、32×32 三種尺寸的GB2312 中文字庫[11];系統(tǒng)通過串口通道完成與外界的數(shù)據(jù)交換,實現(xiàn)OLED 屏幕上數(shù)字、字符、漢字、圖像等信息的顯示;因此只需要具有串口功能的處理器或者通過IO 口模擬串口功能即可使用該系統(tǒng),從而使得OLED 屏幕的使用得到簡化,一般的處理器均可使用OLED屏幕,擴展了OLED 屏幕的適應性和應用范圍。

        1 系統(tǒng)硬件設計

        本文設計的OLED 驅動顯示系統(tǒng)主要由OLED屏幕、接口轉換電路、STC8F1K08S2 處理器和W25Q16 FLASH 存儲器組成。系統(tǒng)硬件組成如圖1所示。

        圖1 系統(tǒng)硬件框圖

        本文使用的STC8F1K08S2 處理器采用SOP16封裝,體積小,易于嵌入,不需要配合任何外圍電路即可使用;內置晶振,頻率可選,最小5.529 6 MHz,最大27 MHz,本文選用22.118 4 MHz;處理器有14個IO 接口,內置硬件SPI 電路,并使用內置SPI 實現(xiàn)W25Q16 數(shù)據(jù)讀寫。本文將OLED 屏幕通過硬件接口轉換為SPI 驅動接口,并使用處理器IO 模擬SPI 時序實現(xiàn)對OLED 的驅動,之所以沒有使用硬件SPI,主要是避免2 個SPI 器件在驅動中互相影響。

        W25Q16 內部Block 的內存劃分如表1 所示。

        表1 W25Q16 內部Block 劃分

        W25Q16 具有2 Mbyte 的FLASH 存儲空間,劃分為32 個Block,每個Block 有64 kbyte 空間[12]。在這些空間存儲了3 種尺寸 GB2312 字庫:256 kbyte 的16×16 尺寸字庫、576 kbyte 的24×24 尺寸字庫、1 024 kbyte 的32×32 尺寸字庫。字庫在FLASH 中地址分配如表2 所示,根據(jù)字庫的存儲地址和字庫尺寸,可以計算出不同字的偏移地址,根據(jù)偏移地址可以讀取字庫數(shù)據(jù)進行顯示。

        表2 字庫在FLASH 中地址分配

        小型OLED 屏幕有0.42、0.49、0.91、0.96、1.3 寸等多種不同尺寸,都可以通過硬件轉換成SPI 驅動方式與本系統(tǒng)連接。對于不同驅動IC 的OLED 屏幕,主要是屏幕的初始化不同,上層對屏幕的各種操作是相同的,因此可以根據(jù)不同驅動IC 調用不同初始化函數(shù)即可。本文采用0.96 寸驅動IC 為SSD1306 和1.3 寸驅動IC 為SH1106 兩種OLED 進行驅動測試。

        2 系統(tǒng)軟件設計

        系統(tǒng)軟件流程如圖2 所示。首先對系統(tǒng)和各個模塊進行初始化操作,打開串口接收中斷,然后進入系統(tǒng)控制部分,等待外部處理器發(fā)來的設置波特率指令,串口波特率控制指令如表3 所示,可通過發(fā)送對應的控制指令改變系統(tǒng)的波特率,從而可以適應不同性能的處理器,波特率設置完成后,將該波特率保存并覆蓋原有的默認波特率,系統(tǒng)初始默認波特率為9 600 bit/s。為了防止用戶設置外部處理器波特率出現(xiàn)不一致情況,在OLED 上電后會在屏幕顯示5 s 當前波特率。設置完波特率,等待串口接收來自外部的數(shù)據(jù)顯示和設置坐標指令:0x01 代表接收數(shù)字數(shù)據(jù),0x02 代表接收字符或者漢字數(shù)據(jù),0x03 代表接收圖像數(shù)據(jù);坐標軸為X軸和Y軸,X軸范圍0~127,Y軸范圍為0~7。通過指令對系統(tǒng)設置后,就開始接收來自外部處理器發(fā)來的數(shù)據(jù),驅動OLED 顯示相應的內容。

        表3 串口波特率控制指令

        圖2 系統(tǒng)軟件流程圖

        2.1 FLASH 字庫讀寫

        通過串口將字庫文件寫入W25Q16 FLASH 中,為了準確判斷字庫文件是否成功地寫入到FLASH中,首先獲取各尺寸字庫的結束地址(即尾地址),然后根據(jù)尾地址和存儲在W25Q16 中的首地址進行計算可得各尺寸字庫在W25Q16 中的尾地址,字庫尾地址如表4 所示。在寫入過程中,串口每接收到一個數(shù)據(jù),地址自動加1,通過地址對比,就可判斷字庫文件是否成功寫入。字庫寫入程序流程如圖3 所示,三種尺寸的字庫依次寫入,首先寫入16×16 的,從W25Q16 的0 地址開始寫,每寫入1 byte,地址數(shù)據(jù)加1,直到地址等于0x03FE41 完成16×16 字庫的寫入;然后設置偏移地址為 0x040000,并從0x040000 開始寫入24×24 字庫,每寫1 byte 地址加1,直到地址等于0x0CFC11 完成24×24 字庫寫入;最后設置偏移地址為0x0D0000,并從0x0D0000 開始寫入32×32 字庫,每寫1 byte 地址加1,直到地址等于0x1CF901 完成32×32 字庫寫入。

        表4 字庫尾地址

        圖3 字庫寫入程序流程圖

        在GB2312 中將漢字劃分為94 個區(qū),每個區(qū)有94 個位,即區(qū)和位。通過漢字的區(qū)和位就可以確定一個漢字在字庫中的偏移地址,然后就可以確定漢字的點陣數(shù)據(jù)。一個漢字是由兩個擴展的ASCII 碼表示,一個用來存放區(qū)碼,另一個用來存放位碼,也可以說漢字的高字節(jié)和低字節(jié),并且在區(qū)碼和位碼上分別加上了32,因此可以通過式(1)、式(2)求出漢字的區(qū)碼和位碼。

        計算出區(qū)碼和位碼,根據(jù)式(3)可獲取漢字在字庫中的偏移地址,然后通過訪問該偏移地址,即可獲取該地址中存放的漢字點陣數(shù)據(jù)。

        2.2 OLED 顯示驅動

        OLED 采用模擬4 線SPI 的方式進行驅動,驅動時序如圖4 所示。CS 在低電平時,芯片被選中,開始數(shù)據(jù)通信,在SCLK 低電平時,SDIN 作為信號線,而在每個SCLK 的上升沿,SDIN 會發(fā)出1 bit 數(shù)據(jù),在每個周期發(fā)送8 bit 的數(shù)據(jù),然后CS 拉高,完成一次數(shù)據(jù)通信。

        圖4 OLED 4 線SPI 驅動時序

        整個OLED 上層驅動主要包括波特率修改函數(shù)、顯示選擇函數(shù)、坐標定位函數(shù)、字體選擇函數(shù)、數(shù)字顯示函數(shù)、字符漢字顯示函數(shù)、圖像顯示函數(shù)。上述函數(shù)的數(shù)據(jù)均讀取自串口接收的數(shù)據(jù)。由于GB2312 中的每個字符都占有2 byte,因此對于單字節(jié)的字符可調用處理器內部的取模數(shù)據(jù),漢字調用外部FLASH 字庫數(shù)據(jù)。

        3 系統(tǒng)測試

        在硬件方面,整個系統(tǒng)與市場上較流行的小型OLED 模塊相差無幾,兩者對比如圖5 所示,左邊為本文設計制作的OLED 驅動系統(tǒng),右邊為市場上較流行的小型OLED 模塊。

        圖5 OLED 模塊對比圖

        為了測試本文設計的小型OLED 屏幕驅動顯示系統(tǒng)的性能,通過控制OLED 驅動顯示,并調整不同的波特率,對數(shù)字、字符、漢字、圖像進行測試。

        通過設定不同的坐標值,將不同尺寸的數(shù)字、字符、漢字進行顯示,顯示測試結果如圖6 所示。通過測試,整體顯示效果流暢,漢字、字符、數(shù)字能準確識別,顯示無亂碼現(xiàn)象,顯示位置可任意設置。

        圖6 不同尺寸字體顯示測試

        對圖像顯示進行測試,將一幅圖像完整顯示在屏幕上,測試結果如圖7 所示。顯示一張圖片,一次讀取的數(shù)據(jù)較多,由于不同波特率下數(shù)據(jù)讀取速率不同,因此圖片顯示的流暢度存在差異,在9 600 bit/s及以上波特率顯示效果較為流暢,刷新速率較快。在9 600 bit/s 以下波特率,顯示刷新速度較慢,在對速度要求不高的低端處理器可使用。

        圖7 圖像顯示測試

        4 結論

        OLED 屏幕被廣泛地應用在小型嵌入式系統(tǒng)、單片機系統(tǒng)、電子產(chǎn)品等,但OLED 屏幕的顯示內容需采用取字模的方式,很容易使得內存被占滿或溢出,并且OLED 屏幕的驅動也具有一定的復雜度。為方便用戶使用OLED 屏幕,本文采用MCU 控制方案,外加FLASH 芯片,通過串口對OLED 屏幕進行控制;可使用多種處理器通過串口或者模擬串口的方式進行OLED 屏幕驅動;本系統(tǒng)加入了3 種漢字字庫,大量節(jié)約了處理器的程序存儲空間;所有驅動都已載入本系統(tǒng),用戶不需考慮OLED 屏幕的驅動問題,只需通過串口發(fā)送指令數(shù)據(jù)即可完成驅動,簡化了OLED 屏幕的驅動使用。針對不同性能的處理器,可調節(jié)波特率,以適應不同處理器性能。由于使用串口通信,也可以使用藍牙等串口無線通信模塊,進行無線數(shù)據(jù)傳輸,拓展了OLED 的應用場景和適應范圍。經(jīng)測試整個系統(tǒng)運行穩(wěn)定可靠,可在不同波特率下正確接收串口指令和數(shù)據(jù),能夠正常顯示數(shù)字、字符、漢字和圖像,顯示效果流暢,能夠較好地滿足各種OLED 屏幕的顯示需求。

        猜你喜歡
        系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
        半沸制皂系統(tǒng)(下)
        FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一德系統(tǒng) 德行天下
        PLC在多段調速系統(tǒng)中的應用
        国产国语亲子伦亲子| 一区二区三区精品偷拍av| 国产一区二区三区尤物| 久久不见久久见免费视频6| 精品无码一区在线观看| 2021精品国产综合久久| 亚洲国产综合精品中文| 日日碰狠狠添天天爽超碰97久久| 久久露脸国产精品| 国产精品偷伦免费观看的| 久久五月精品中文字幕| 中文字幕亚洲精品一区二区三区| 久久精品麻豆日日躁夜夜躁| 亚洲亚洲网站三级片在线| 91桃色在线播放国产| 人妻无码第一区二区三区| 久久国产热这里只有精品| 国内自拍偷拍亚洲天堂| 天堂一区二区三区精品| 放荡的少妇2欧美版| 人与嘼av免费| 视频精品亚洲一区二区 | 亚洲无码美韩综合| 国产自拍在线观看视频| 国产成人精品白浆久久69| 色综合久久天天综线观看| 日韩国产自拍成人在线| 精品含羞草免费视频观看| 明星性猛交ⅹxxx乱大交| 欧美性爱一区二区三区无a| 激情视频在线观看好大| 轻点好疼好大好爽视频| 欧美中文字幕在线| av天堂手机一区在线| 优优人体大尺大尺无毒不卡| 性欧美大战久久久久久久久| 久久国产香蕉一区精品天美| 国产精品亚洲av高清二区| 4399理论片午午伦夜理片| 亚洲高潮喷水中文字幕| 自拍偷区亚洲综合第一页|