999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STC8F1K08S2 的串口驅動OLED 顯示系統設計*

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

任克強,王傳強

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

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

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

1 系統硬件設計

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

圖1 系統硬件框圖

本文使用的STC8F1K08S2 處理器采用SOP16封裝,體積小,易于嵌入,不需要配合任何外圍電路即可使用;內置晶振,頻率可選,最小5.529 6 MHz,最大27 MHz,本文選用22.118 4 MHz;處理器有14個IO 接口,內置硬件SPI 電路,并使用內置SPI 實現W25Q16 數據讀寫。本文將OLED 屏幕通過硬件接口轉換為SPI 驅動接口,并使用處理器IO 模擬SPI 時序實現對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 所示,根據字庫的存儲地址和字庫尺寸,可以計算出不同字的偏移地址,根據偏移地址可以讀取字庫數據進行顯示。

表2 字庫在FLASH 中地址分配

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

2 系統軟件設計

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

表3 串口波特率控制指令

圖2 系統軟件流程圖

2.1 FLASH 字庫讀寫

通過串口將字庫文件寫入W25Q16 FLASH 中,為了準確判斷字庫文件是否成功地寫入到FLASH中,首先獲取各尺寸字庫的結束地址(即尾地址),然后根據尾地址和存儲在W25Q16 中的首地址進行計算可得各尺寸字庫在W25Q16 中的尾地址,字庫尾地址如表4 所示。在寫入過程中,串口每接收到一個數據,地址自動加1,通過地址對比,就可判斷字庫文件是否成功寫入。字庫寫入程序流程如圖3 所示,三種尺寸的字庫依次寫入,首先寫入16×16 的,從W25Q16 的0 地址開始寫,每寫入1 byte,地址數據加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 個區,每個區有94 個位,即區和位。通過漢字的區和位就可以確定一個漢字在字庫中的偏移地址,然后就可以確定漢字的點陣數據。一個漢字是由兩個擴展的ASCII 碼表示,一個用來存放區碼,另一個用來存放位碼,也可以說漢字的高字節和低字節,并且在區碼和位碼上分別加上了32,因此可以通過式(1)、式(2)求出漢字的區碼和位碼。

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

2.2 OLED 顯示驅動

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

圖4 OLED 4 線SPI 驅動時序

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

3 系統測試

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

圖5 OLED 模塊對比圖

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

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

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

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

圖7 圖像顯示測試

4 結論

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

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 亚洲免费毛片| 国产aaaaa一级毛片| 国产福利一区视频| 91精品人妻互换| 伊人AV天堂| 亚洲国产精品日韩专区AV| 性色一区| 在线无码私拍| 小蝌蚪亚洲精品国产| 亚洲天堂色色人体| 高清免费毛片| 精品伊人久久久香线蕉| 久久一级电影| 国产欧美一区二区三区视频在线观看| 妇女自拍偷自拍亚洲精品| 免费一极毛片| 老司机午夜精品视频你懂的| 黄色成年视频| 白丝美女办公室高潮喷水视频| 亚洲精选无码久久久| 亚洲Aⅴ无码专区在线观看q| 日本人妻一区二区三区不卡影院 | 国产亚洲欧美日本一二三本道| 国内精品自在欧美一区| 国产美女精品一区二区| 手机在线看片不卡中文字幕| 一本视频精品中文字幕| 国产成人高清精品免费软件| 91在线无码精品秘九色APP| 亚洲色成人www在线观看| 四虎成人在线视频| 国产网站在线看| 老司国产精品视频| 91口爆吞精国产对白第三集| 国产午夜精品一区二区三| 无码人妻免费| 日韩天堂网| 欧洲高清无码在线| 男女性色大片免费网站| 蝌蚪国产精品视频第一页| 91国内视频在线观看| 国产91九色在线播放| 日韩在线网址| 国产一级片网址| 色噜噜综合网| 天堂在线www网亚洲| 成人国内精品久久久久影院| 青青青伊人色综合久久| 91久久偷偷做嫩草影院电| 亚洲中文字幕国产av| 国产伦精品一区二区三区视频优播 | 狠狠色噜噜狠狠狠狠奇米777| 亚洲伊人电影| 久久久久亚洲精品成人网| 久久国产精品77777| 国产美女精品一区二区| 亚洲人在线| 亚洲无码91视频| 欧美午夜理伦三级在线观看| 成人午夜免费观看| 国产乱人伦AV在线A| 亚洲色无码专线精品观看| 夜夜高潮夜夜爽国产伦精品| 亚洲精品视频网| 日日噜噜夜夜狠狠视频| 亚洲人成高清| 国产精品第一区| 97视频在线精品国自产拍| 久操中文在线| 伊人久久大香线蕉综合影视| 9啪在线视频| 亚洲人成在线免费观看| 亚洲美女高潮久久久久久久| 国产农村妇女精品一二区| 全部免费毛片免费播放| 国产理论精品| 97超级碰碰碰碰精品| 人妻无码中文字幕第一区| 中文字幕在线观| 18禁黄无遮挡网站| 性网站在线观看| 亚洲成aⅴ人片在线影院八|