国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LCD-STM32液晶顯示中英文-(7.字模及顯示原理)

這篇具有很好參考價值的文章主要介紹了LCD-STM32液晶顯示中英文-(7.字模及顯示原理)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

字模介紹

什么是字模

字模的構(gòu)成

字模顯示原理

字模制作

如何制作字模

字模尋址公式

存儲字模文件


字模介紹

什么是字模

????????有了編碼,我們就能在計算機(jī)中處理、存儲字符了,但是如果計算機(jī)處理完字符后直接以編碼的形式輸出,人類將難以識別。因此計算機(jī)與人交互時,一般會把字符轉(zhuǎn)化成人類習(xí)慣的表現(xiàn)形式進(jìn)行輸出,如顯示、打印的時候。

????????但是如果僅有字符編碼,計算機(jī)還不知道該如何表達(dá)該字符,因為字符實際上是一個個獨特的圖形,計算機(jī)必須把字符編碼轉(zhuǎn)化成對應(yīng)的字符圖形人類才能正常識別,因此我們要給計算機(jī)提供字符的圖形數(shù)據(jù),這些數(shù)據(jù)就是字模,多個字模數(shù)據(jù)組成的文件也被稱為字庫。計算機(jī)顯示字符時,根據(jù)字符編碼與字模數(shù)據(jù)的映射關(guān)系找到它相應(yīng)的字模數(shù)據(jù),液晶屏根據(jù)字模數(shù)據(jù)顯示該字符。

字模的構(gòu)成

????????已知字模是圖形數(shù)據(jù),而圖形在計算機(jī)中是由一個個像素點組成的,所以字模實質(zhì)是一個個像素點數(shù)據(jù)。為方便處理,我們把字模定義成方塊形的像素點陣,且每個像素點只有0和1這兩種狀態(tài)(可以理解為單色圖像數(shù)據(jù))。

????????下圖兩個寬、高為16x16的像素點陣組成的兩個漢字圖形,其中的黑色像素點即為文字的筆跡。計算機(jī)要表示這樣的圖形,只需使用16x16個二進(jìn)制數(shù)據(jù)位,每個數(shù)據(jù)位記錄一個像素點的狀態(tài),把黑色像素點以“1”表示,無色像素點以“0”表示即可。這樣的一個漢字圖形,使用16x16/8=32個字節(jié)來就可以記錄下來。

LCD-STM32液晶顯示中英文-(7.字模及顯示原理),STM32_LCD原理及應(yīng)用,stm32,嵌入式硬件,單片機(jī),LCD

????????16x16的“字”的字模數(shù)據(jù)以C語言數(shù)組的方式表示,見下面的代碼,在這樣的字模中,以兩個字節(jié)表示一行像素點,16行構(gòu)成一個字模。

LCD-STM32液晶顯示中英文-(7.字模及顯示原理),STM32_LCD原理及應(yīng)用,stm32,嵌入式硬件,單片機(jī),LCD

字模顯示原理

????????如果使用LCD的畫點函數(shù),按位來掃描這些字模數(shù)據(jù),把為1的位以黑色來顯示(也可以使用其它顏色),為0的數(shù)據(jù)位以白色來顯示,即可把整個點陣還原出來,顯示在液晶屏上。

????????為方便講解,編寫一個使用串口printf利用字模打印字符到串口上位機(jī)的實驗,實驗效果如下:

LCD-STM32液晶顯示中英文-(7.字模及顯示原理),STM32_LCD原理及應(yīng)用,stm32,嵌入式硬件,單片機(jī),LCD

LCD-STM32液晶顯示中英文-(7.字模及顯示原理),STM32_LCD原理及應(yīng)用,stm32,嵌入式硬件,單片機(jī),LCD

LCD像素點顯示字模正是運用了這個原理。

字模制作

????????為方便使用,需要制作所有常用字符的字模,如程序只需要英文顯示,那就需要制作包含ASCII碼表中所有字符的字模,如程序只需要使用一些常用漢字,則可以選擇制作GB2312編碼里所有字符的字模,而且希望字模數(shù)據(jù)與字符編碼有固定的映射關(guān)系,以便我們在程序中使用字符編碼作為索引,查找字模。

????????在網(wǎng)上搜索可找到一些制作字模的軟件工具,可滿足這些需求。下面以一取模軟件“PCtoLCD”為例講解如何制作字模,其它字模軟件也是類似的。

如何制作字模

(1)配置字模格式,打開取模軟件,點擊“選項”菜單,會彈出一個對話框。

  • 選項“點陣格式”中的陰、陽碼是指字模點陣中有筆跡像素位的狀態(tài)是“1”還是“0”,像我們前文介紹的那種就是陰碼,反過來就是陽碼。本工程中使用陰碼。
  • 選項“取模方式”是指字模圖形的掃描方向,修改這部分的設(shè)置后,選項框的右側(cè)會有相應(yīng)的說明及動畫顯示,該設(shè)置會改變生成的字模數(shù)據(jù)位數(shù)的順序,我們一般把它配置成“逐行式”
  • 取模走向,分為順向(低位在前)和逆向(高位在前),此設(shè)置不影響不影響生成的字模數(shù)據(jù)位數(shù)的順序,只是字模軟件生成字體位序的不同,我們可任意設(shè)置
  • 選項“每行顯示的數(shù)據(jù)”里我們把點陣和索引都配置成16,設(shè)置這個點陣的像素大小為16x16。

字模選項的格式保持不變,設(shè)置完我們點擊確定即可,字模選項的這些配置會影響到顯示代碼的編寫方式。

(2)生成ASCII字模

使用取模軟件生成ASCII字庫步驟如下

LCD-STM32液晶顯示中英文-(7.字模及顯示原理),STM32_LCD原理及應(yīng)用,stm32,嵌入式硬件,單片機(jī),LCD

LCD-STM32液晶顯示中英文-(7.字模及顯示原理),STM32_LCD原理及應(yīng)用,stm32,嵌入式硬件,單片機(jī),LCD

使用Sublime text 3

先打開索引文件,發(fā)現(xiàn)文件末尾默認(rèn)添加了一個結(jié)束符,我們必須要刪掉

LCD-STM32液晶顯示中英文-(7.字模及顯示原理),STM32_LCD原理及應(yīng)用,stm32,嵌入式硬件,單片機(jī),LCD

再打開字模文件,自動以16進(jìn)制形式打開,全選之后使用ctrl+shift+L可以進(jìn)行所有行同時光標(biāo)操作,添加0x和','

LCD-STM32液晶顯示中英文-(7.字模及顯示原理),STM32_LCD原理及應(yīng)用,stm32,嵌入式硬件,單片機(jī),LCD

我們打開野火提供的兩個ASCII文件

LCD-STM32液晶顯示中英文-(7.字模及顯示原理),STM32_LCD原理及應(yīng)用,stm32,嵌入式硬件,單片機(jī),LCD

發(fā)現(xiàn)除了刪除了文末結(jié)束符還刪除了ASCII碼前面32個無意義的字符,從0x20的“ ”空格開始表示

LCD-STM32液晶顯示中英文-(7.字模及顯示原理),STM32_LCD原理及應(yīng)用,stm32,嵌入式硬件,單片機(jī),LCD

LCD-STM32液晶顯示中英文-(7.字模及顯示原理),STM32_LCD原理及應(yīng)用,stm32,嵌入式硬件,單片機(jī),LCD

(3)生成GB2312字模

????????配置完字模選項后,點擊軟件中的導(dǎo)入文本圖標(biāo),會彈出一個“生成字庫”的對話框,點擊右下角的生成國標(biāo)漢字庫按鈕即可生成包含了GB2312編碼里所有字符的字模文件。

????????在《LCD—液晶顯示漢字》的工程目錄下的《GB2312_H1616.FON》是用這個取模軟件生成的字模原文件,若不想自己制作字模,可直接使用該文件。

LCD-STM32液晶顯示中英文-(7.字模及顯示原理),STM32_LCD原理及應(yīng)用,stm32,嵌入式硬件,單片機(jī),LCD

字模尋址公式

????????使用字模軟件制作的字模數(shù)據(jù)一般會按照編碼格式排列。如我們利用以上軟件生成的字模文件《GB2312_H1616.FON》中的數(shù)據(jù),是根據(jù)GB2312的區(qū)位碼表的順序存儲的,它存儲了區(qū)位碼為0101-9494的字符,每個字模的大小為16x16/8=36字節(jié)。其中第一個字符“空格”的區(qū)位碼為0101,它是首個字符,所以文件的前36字節(jié)存儲的是它的字模數(shù)據(jù);同理,36-72字節(jié)存儲的則是0102字符“、”的字模數(shù)據(jù)。所以我們可以導(dǎo)出任意字符的尋址公式:

????????Addr = (((CodeH-0xA0-1)*94) +(CodeL-0xA0-1))*16*16/8

????????其中CodeH和CodeL分別是GB2312編碼的第一字節(jié)和第二字節(jié);94是指一個區(qū)中有94個位(即94個字符)。公式的實質(zhì)是根據(jù)字符的GB2312編碼,求出區(qū)位碼,然后區(qū)位碼乘以每個字符占據(jù)的字節(jié)數(shù),求出地址偏移。

????????由于區(qū)位碼0000沒有存儲任何字符,第一個字符的區(qū)位碼是0101,編碼是0xA1A1,所以字符的高字節(jié)減去0xA0再減1,區(qū)碼偏移量;字符的低字節(jié)減去0xA0再減1算出位碼偏移量;最后乘字節(jié)數(shù)16*16/8就得到了該字符在字符數(shù)組中的起始下標(biāo)。

LCD-STM32液晶顯示中英文-(7.字模及顯示原理),STM32_LCD原理及應(yīng)用,stm32,嵌入式硬件,單片機(jī),LCD

存儲字模文件

????????上面生成的《GB2312_H1616.FON》文件的大小為576KB,比很多STM32芯片內(nèi)部的所有FLASH空間都大,如果我們還是在程序中直接以C語言數(shù)組的方式存儲字模數(shù)據(jù),STM32芯片的程序空間會非常緊張,一般的做法是把字模數(shù)據(jù)存儲到外部存儲器,如SD卡或SPI-FLASH芯片,當(dāng)需要顯示某個字符時,控制器根據(jù)字符的編碼算好字模的存儲地址,再從存儲器中讀取,而FLASH芯片在生產(chǎn)前就固化好字模內(nèi)容,然后直接把FLASH芯片貼到電路板上,作為整個系統(tǒng)的一部分。文章來源地址http://www.zghlxwxcb.cn/news/detail-585585.html

到了這里,關(guān)于LCD-STM32液晶顯示中英文-(7.字模及顯示原理)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • STM32顯示外設(shè)集--液晶顯示模塊(LCD1602)

    STM32顯示外設(shè)集--液晶顯示模塊(LCD1602)

    一、介紹 產(chǎn)品圖 二、 資源獲取 歡迎關(guān)注微信公眾號--星之援工作室 發(fā)送(LCD1602) 三、線路連接圖 四、代碼編寫 LCD1602.h LCD1602.c main.h 五、參考 LCD1602是一種字母數(shù)字液晶顯示模塊,可以顯示16個字符和2行文本,因此被命名為LCD1602。它通常用于各種電子項目,特別是

    2024年02月11日
    瀏覽(25)
  • STM32—LCD液晶顯示屏

    STM32—LCD液晶顯示屏

    目錄 LCD液晶顯示屏介紹 液晶的組成 ?物理特性 液晶顯示屏內(nèi)部構(gòu)造 ?顏色深度 點亮LCD顯示屏 查看原理圖 圖片顯示 保存到工程用戶代碼的Inc目錄下 參數(shù)為數(shù)組名 字符顯示? 漢字顯示 某些物質(zhì)在熔融狀態(tài)或被溶劑溶解之后,盡管失去固態(tài)物質(zhì)的剛性,卻獲得了液體的易流動

    2024年02月04日
    瀏覽(23)
  • LCD—STM32液晶顯示(1.顯示器簡介及LCD顯示原理)(6000字詳細(xì)介紹)

    LCD—STM32液晶顯示(1.顯示器簡介及LCD顯示原理)(6000字詳細(xì)介紹)

    目錄 顯示器簡介 液晶顯示器 液晶 像素 液晶屏缺點 LED顯示器 OLED顯示器 顯示器的基本參數(shù) STM32板載液晶控制原理(不帶微控制器) 液晶控制原理 控制信號線(不帶液晶控制器) 液晶數(shù)據(jù)傳輸時序 顯存 總結(jié) 3.2寸液晶屏介紹(搭載液晶控制器) 3.2寸電阻觸摸屏實物 ILI9341液晶

    2024年02月17日
    瀏覽(35)
  • LCD—STM32液晶顯示(2.使用FSMC模擬8080時序)

    LCD—STM32液晶顯示(2.使用FSMC模擬8080時序)

    目錄 使用STM32的FSMC模擬8080接口時序 FSMC簡介 FSMC NOR/PSRAM中的模式B時序圖 用FSMC模擬8080時序 重點:HADDR內(nèi)部地址與FSMC地址信號線的轉(zhuǎn)換(實現(xiàn)地址對齊) ????????ILI9341的8080通訊接口時序可以由STM32使用普通I/O接口進(jìn)行模擬,但這樣效率太低,STM32提供了一種特別的控制方

    2024年02月17日
    瀏覽(26)
  • STM32之LCD液晶屏(ILI9341)顯示圖片

    STM32之LCD液晶屏(ILI9341)顯示圖片

    本文章基于STM32F103VET6,參考野火的驅(qū)動程序,用LCD液晶屏顯示靜態(tài)圖像。 有紕漏請指出,轉(zhuǎn)載請說明。 學(xué)習(xí)交流請發(fā)郵件 1280253714@qq.com 顯示一個像素點 將rgb888圖片轉(zhuǎn)為rgb555 輸出rgb555的C語言數(shù)組 數(shù)組的每一個元素對應(yīng)一個像素點的rgb三個通道的數(shù)據(jù),用stm32的FSMC模擬8080時

    2024年02月09日
    瀏覽(23)
  • LCD—STM32液晶顯示(3.NOR FLASH時序結(jié)構(gòu)體)

    LCD—STM32液晶顯示(3.NOR FLASH時序結(jié)構(gòu)體)

    目錄 LCD結(jié)構(gòu)體配置 ?NOR FLASH時序結(jié)構(gòu)體 FSMC的NOR FLASH初始化結(jié)構(gòu)體 ????????與控制SRAM時一樣,控制FSMC使用NOR FLASH存儲器時主要是配置時序寄存器以及控制寄存器,利用ST標(biāo)準(zhǔn)庫的時序結(jié)構(gòu)體以及初始化結(jié)構(gòu)體可以很方便地寫入?yún)?shù)。 FSMC_AddressSetupTime 本成員設(shè)置地址建立

    2024年02月17日
    瀏覽(49)
  • STM32-LCD中英文顯示及應(yīng)用

    STM32-LCD中英文顯示及應(yīng)用

    目錄 字符編碼 ASCII碼(8位) 中文編碼(16位) GB2312標(biāo)準(zhǔn) GBK編碼 GB18030標(biāo)準(zhǔn)(32位) Big5編碼 Unicode字符集和編碼 UTF-32(32位) UTF-16(16位/32位,變長編碼方式) UTF-8(8位/16位/24位/32位,變長編碼方式) 實驗環(huán)節(jié)1:LCD顯示中英文(字庫存儲在外部Flash) 存儲在外部Flash的字模

    2024年02月08日
    瀏覽(13)
  • 一文讀懂使用STM32驅(qū)動 LCD1602 液晶顯示屏(基于Mbed Studio平臺)

    一文讀懂使用STM32驅(qū)動 LCD1602 液晶顯示屏(基于Mbed Studio平臺)

    LCD (Liquid Crystal Display) 液晶顯示屏是一種廣泛使用的一種字符型液晶顯示模塊。其中型號1602表示每行顯示16個字符、一共2行。LCD1602相比于OLED最大的好處就是不用使用SPI或I2C等任何通信協(xié)議,而是由mbed直接將命令傳給LCD從而實現(xiàn)控制。 LCD1602主要參數(shù)如下: 顯示字符:16×2個

    2024年02月05日
    瀏覽(26)
  • STM32-基本知識梳理10-FSMC控制ST7789V-LCD液晶顯示屏

    STM32-基本知識梳理10-FSMC控制ST7789V-LCD液晶顯示屏

    一、ST7789V-LCD液晶顯示 1,一種計算機(jī)的I/O設(shè)備,即輸入輸出設(shè)備; 2,數(shù)據(jù)傳遞結(jié)構(gòu),光線的傳遞通過偏光片進(jìn)行調(diào)整,最終傳遞到濾光片上,進(jìn)而不同RGB數(shù)據(jù)點,即像素點; 3, LCD顯示器的關(guān)鍵參數(shù) ①像素:顯示器的像素指它成像最小的點 ②分辨率:像素點的個數(shù)的乘積

    2024年02月12日
    瀏覽(21)
  • LCD—液晶顯示

    LCD—液晶顯示

    本節(jié)主要介紹以下內(nèi)容 顯示器簡介 液晶控制原理 秉火 3.2 寸液晶屏簡介 使用 FSMC 模擬 8080 時序 NOR FLASH 時序結(jié)構(gòu)體 FSMC 初始化結(jié)構(gòu)體 ? 顯示器屬于計算機(jī)的 I/O 設(shè)備,即輸入輸出設(shè)備。它是一種將特定電子信息輸出到屏幕上再反射到人眼的顯示工具。常見的有 CRT 顯示器、液

    2024年02月02日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包