新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32處理器的便攜式人機界面系統設計

        STM32處理器的便攜式人機界面系統設計

        作者: 時間:2014-07-18 來源:網絡 收藏

          3 系統軟件設計

        本文引用地址:http://www.104case.com/article/255770.htm

          系統軟件包括字庫的調用和TFT液晶顯示軟件設計兩個部分,字庫調用主要是通過F103RBT6的接口調用存儲在SST25VF080B中的中文字庫。TFT液晶顯示部分主要是通過F103RBT6通用I/O口模擬16位的8080并口,實現對液晶顯示器的驅動,在軟件設計的過程中需要注意一個問題。就是不同字庫編碼的標準時不一樣的,所以在解碼時略有不同,常用的漢字字庫有GB2312字庫和GBK字庫兩種。

          3.1 GB2312字庫和GBK字庫

          GB2312收錄簡化漢字及符號、字母、日文假名等共7 445個圖形字符,其中漢字占6 763個。GB2312規定“對任意一個圖形字符都采用兩個字節表示,每個字節均采用七位編碼表示”,習慣上稱第一個字節為“高字節”,第二個字節為“低字節”。GB2312—80包含了大部分常用的一、二級漢字,和9區的符號。該字符集是幾乎所有的中文系統和國際化的軟件都支持的中文字符集,這也是最基本的中文字符集。其編碼范圍是高位0xa1~0xfe,低位也是0xa1~0xfe;漢字從0xb0a1開始,結束于0xf7fe。GB2312將代碼表分為94個區,對應第一字節(0xa1~0xfe);每個區94個位(0xa1~0xfe),對應第二字節,兩個字節的值分別為區號值和位號值加32(20H),因此也稱為區位碼。01~09區為符號、數字區,16~87區為漢字區(0xb0~0xf7),10~15區、88~94區是有待進一步標準化的空白區。GB2312將收錄的漢字分成兩級:第一級是常用漢字計3755個,置于16~55區,按漢語拼音字母/筆形順序排列:第二級漢字是次常用漢字計3 008個,置于56~87區,按部首/筆畫順序排列。故而GB2312最多能表示6763個漢字。

          而GBK內碼完全兼容GB2312,同時支持繁體字,總漢字數有2萬多個,編碼格式如下,每個GBK碼由2個字節組成,第一個字節為0X81~0XFE,第二個字節分為兩部分,一是0X40~0X7E,二是0X80~0XFE。其中與GB2312相同的區域,字完全相同。把第一個字節代表的意義稱為區,那么GBK里面總共有126個區(0XFE~0X81+1),每個區內有190個漢字(0XFE~0X80+0X7E~0X40+2),總共就有126x190=23 940個漢字。點陣庫只要按照這個編碼規則從0X8140開始,逐一建立,每個區的點陣大小為每個漢字所用的字節數乘以190。這樣,就可以得到在這個字庫里面定位漢字的方法:

          當GBKL<0X7F時:Hp=((GBKH-0x81)×190+GBKL-0X40)×(sizex2);

          當GBKL>0X80時:Hp=((GBKH-0x81)×190+GBKL-0X41)×(sizex2);

          其中GBKH、GBKLL分別代表GBK的第一個字節和第二個字節(也就是高位和低位),size代表漢字字體的大小(比如16字體,12字體等),Hp則為對應漢字點陣數據在字庫里面的起始地址。

          3.2 系統軟件流程

          對于GBK字庫和GB2312字庫,他們的解碼部分部分略有不同,這個區別主要是由于他們的編碼方式不同引起的,對于GBK字庫,解碼的方式如下:

          

        ?

          其中qh、ql分別代表GBK的第一個字節和第二個字節(也就是高位和低位),size代表漢字字體的大小(比如16字體,12字體等),foffset則為對應漢字點陣數據在字庫里面的起始地址。

          系統啟動以后,首先完成時鐘的初始化,采用外部8 MHz的晶振作為輸入時鐘,內部鎖相環將時鐘倍頻到72 MHz作為系統時鐘,完成GPIO的初始化,作為LCD驅動IO的通用IO口的時鐘設置為50 MHz的推挽模式,接著完成硬件1的初始化,時鐘頻率設置為18 MHz,接著完成液晶的初始化,此過程是通過發送特定的命令序列來實現的,然后刷新顯示背景顏色,設置字體顏色,通過上面的程序完成字庫中漢字點陣序列的查詢,將漢字點陣送液晶屏顯示。

          系統軟件設計的流程圖如圖4所示。

          

        ?

          采用方法還不但可以實現標準字體的顯示,還可以根據系統要求,采用專用軟件生成各種需要的字體,為設計多樣性的人機界面系統提供了一種可行的方案。

          4 結論

          本文根據在全站儀應用于飛機的測量過程中的實際需要,設計了用于測量計算的人機界面系統,在該系統中,采用的處理器內核為最新的Cortex—M3,它基于最新v7架構,采用了至今為止最小的內核,有效地降低了系統功耗。采用SPI Flash來存儲漢字字庫,通過彩色TFT液晶屏顯示,有效地擴展了應用的范圍,經過實驗驗證,本系統的設計方法完全達到設計要求。

        晶振相關文章:晶振原理
        鎖相環相關文章:鎖相環原理

        上一頁 1 2 下一頁

        關鍵詞: ARM STM32 SPI

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 沙湾县| 湾仔区| 溧水县| 玛沁县| 金川县| 周宁县| 临沧市| 克什克腾旗| 南京市| 改则县| 绥棱县| 旌德县| 屏南县| 南陵县| 中牟县| 德州市| 罗甸县| 衡东县| 上蔡县| 云和县| 桐庐县| 乌审旗| 亚东县| 美姑县| 辉县市| 葫芦岛市| 昌吉市| 竹山县| 密云县| 吉隆县| 鄂伦春自治旗| 潍坊市| 色达县| 龙泉市| 眉山市| 社会| 上杭县| 咸丰县| 梁平县| 班戈县| 吴堡县|