一種嵌入式顯示系統的軟件設計及應用
3.1 字符顯示原理
UCDOS軟件中的文件HZK16與文件ASC16分別為1 6×1 6的國標漢字點陣文件和8×1 6的ASCII碼點陣文件,以二進制格式存儲。在文件HZK 16中,按漢字區位碼從小到大依次存有國標區位碼表中的所有漢字,每個漢字占用32個字節(16×16的漢字點陣),每個區為94個漢字。在文件ASC16中按ASCII碼從小到大依次存有8×1 6的ASCII碼點陣,每個ASCII碼占用1 6個字節。
在PC機的文本文件中,漢字是以機內碼的形式存儲的,每個漢字占用兩個字節。第一個字節為區碼,為了與ASCII碼區別,范圍從十六進制的0A1H開始(小于80H的為ASCII碼字符),對應區位碼中區碼的第一區;第二個字節為位碼,范圍也是從0A1H開始,對應某區中的第一個位碼。這樣,將漢字機內碼減去0A0A0H就得該漢字的區位碼。例如漢字“我”的機內碼為十六進制的“CED2”,其中“CE”表示區碼,“D2”表示位碼。所以“我”的區位碼為0CED2H-0A0A0H=2E32H。將區碼和位碼分別轉換為十進制得漢字“我”的區位碼為“4650”,即“房”的點陣位于第46區的第50個字的位置,相當于在文件HZK16中的位置為第32×[(46-1)×94+(50-1)]=67136 B以后的32個字節為“我”的顯示點陣。
依次讀出每個字節,每讀出一個字節,并提取該字節中的每一位,如果某位是“1”,則給該位數據對應的像素點送入兩個字節的字體顏色數據,如(0x0000,黑色);如果某位是“0”,則給該位數據對應的像素點送入兩個字節的底色數據,如(0xffff,白色)。當發送完32個字節的點陣數據后(總共發送的顏色數據為32B×8dot×2B=512 B)液晶屏上便會顯示底色為白色,字體顏色為黑色的漢字。漢字“我”的顯示結果如圖3所示。

液晶顯示器的色彩深度為16位,每個像素可顯示65 536色。SRAM工作在字(word)操作模式下,將SRAM中的每個字與液晶顯示器的每個像素對應。比如將液晶顯示器第一行第一列的點與SRAM的0x0000地址對應,第一行第二列的點與0x0001地址對應,依次類推。
3.2 通過PC機鍵盤進行界面操作
通過PC機鍵盤進行界面操作時,使用電腦軟件將鍵盤的操作鍵值通過PC機串口發送給單片機串口0,單片機串口0每中斷一次接收到一個字節的數據,接收到的數據可分為3種情況:數值大于0xA0時,說明該字節是某漢字兩字節數據中的一個字節;數值為0x20~0x7f時,表示該字節是可打印的ASCII碼字符;數值小于0x20時,表示該字節是不可打印的數值,可用這36個數值作為界面操作的控制命令字節。連續接收完兩個數值大于0xA0數據時,就可以轉換成某個漢字;每接收到一個數值為0x20~0x7f的數據時,就可以轉換成某個ASCII碼字符;每接收到一個數值小于0x20的數據時,就可以翻譯成某個操作命令,進行相應的控制操作。圖4為鍵盤接口操作中斷流程。

led顯示器相關文章:led顯示器原理









評論