圖形液晶顯示器和單片機接口應用技術(shù)
發(fā)布時間:2008/5/26 0:00:00 訪問次數(shù):3109
    
    
    摘 要:本文介紹常用的兩種液晶顯示器(不帶漢字庫及自帶漢字庫)的顯示基本原理和使用方法,對比了并行方式和串行方式的優(yōu)缺點,給出了接口電路圖、串行時序圖和相應的源程序。
    關(guān)鍵詞:液晶顯示器;串口;并口;時序;存儲器
    1.引言
    液晶顯示器(lcd)具有顯示信息豐富、功耗低、體積小、重量輕、超薄等許多其他顯示器無法比擬的優(yōu)點,近幾年來被廣泛用于單片機控制的智能儀器、儀表和低功耗電子產(chǎn)品中。lcd可分為段位式lcd、字符式lcd和點陣式lcd。其中,段位式lcd和字符式lcd只能用于字符和數(shù)字的簡單顯示,不能滿足圖形曲線和漢字顯示的要求;而點陣式lcd不僅可以顯示字符、數(shù)字,還可以顯示各種圖形、曲線及漢字,并且可以實現(xiàn)屏幕上下左右滾動、動畫、分區(qū)開窗口、反轉(zhuǎn)、閃爍等功能,用途十分廣泛。本文介紹點陣式液晶顯示器hs12232-1、hs12232-9與單片機的接口及編程的方法,同時給出兩種顯示器常用的字符顯示和漢字顯示程序。
    2.不帶漢字庫的hs12232-1下的漢字顯示
    2.1 顯示原理
    利用pc上的16×16點陣漢字庫,提取后將點陣文件存入rom,直接利用pc中漢字內(nèi)碼作為單片機系統(tǒng)的編碼(不再形成新的漢字編碼)。
    
    
    
    2.2 硬件組成
    首先要采用點陣圖形液晶顯示器。(例如一行為240點,總列數(shù)為128點,可以容納16×16點陣的漢字15個[因為240/16=15],128列可以顯示8行[因為128/16=8]),廣州市千喜科技開發(fā)有限公司的hs12232-1內(nèi)置sed1520驅(qū)動控制器的點陣為122×32點,每行7個半漢字,共2行。如果要擴展存儲器,全部國標16×16點陣漢字、8×16點陣的ascii碼點陣數(shù)據(jù)及漢字語句編碼數(shù)據(jù)要使用1片512kb的存儲器來存儲,多出部分可以留作數(shù)據(jù)存儲器。本文只探討液晶顯示器與單片機的接口部分,擴展存儲器部分略。下面給出hs-12232-1與單片機8031的一種接口,如圖1所示(vdd=+5v)。
    2.3 漢字顯示原理
    國家標準信息交換用漢字字符集gb 2312-80共收錄了漢字、圖形符號等共7445個,其中漢字6763個,按照漢字使用的頻度分為兩級,其中一級漢字3755個,二級漢字3008個。漢字、圖形符號根據(jù)其位置將其分為94個“區(qū)”,每個區(qū)包含94個漢字字符,每個漢字字符又稱為“位”。其中“區(qū)”的序號由01區(qū)至94區(qū),“位”的序號也由01位至94位。若以橫向表示“位”號,縱向表示“區(qū)” 號,則“區(qū)”和“位”構(gòu)成一個二維坐標。給定一個“區(qū)”值和“位”值就可以確定一個惟一的漢字或圖形符號。即4位阿拉伯數(shù)字就可以惟一地確定一個漢字或符號。如“北”字的區(qū)位碼是“1717”,而京字的區(qū)位碼是“3009”。前兩位是“區(qū)”號,后兩位是“位”號。其中1至15區(qū)是各種圖形符號、制表符和一些主要國家的語言字母,16區(qū)至87區(qū)是漢字,其中16區(qū)至55區(qū)是一級漢字,56至87區(qū)是二級漢字。
    ucdos軟件中的文件hzk16和文件asc16分別為16×16的國際漢字點陣文件和8×16的ascii碼點陣文件,hzk16中按漢字區(qū)位碼從小到大依次存放國標區(qū)位碼表中的所有漢字,每個漢字占用32字節(jié),每個區(qū)為94個漢字。而asc16文件中按ascii碼從小到大依次存有8×16的ascii碼點陣,每個ascii碼占用16字節(jié)。
    pc的文本文件中,漢字是用機內(nèi)碼的形式存儲的,每個漢字占2字節(jié),其中第一個字節(jié)為機內(nèi)碼的區(qū)碼,漢字機內(nèi)碼的區(qū)碼范圍是從0a1h(十六進制)開始,對應區(qū)位碼中區(qū)碼的第一區(qū);而機內(nèi)碼的第二個字節(jié)為機內(nèi)碼的位碼,范圍也是從0a1h(十六進制)開始,對應某區(qū)中的第一個位碼。就是說將漢字機內(nèi)碼減去0a0ah就得到該漢字的區(qū)位碼。例如漢字“北”的機內(nèi)碼是十六進制的“b1b1”,其中前兩位“b1”表示機內(nèi)碼的區(qū)碼,后兩位“b1”表示機內(nèi)碼的位碼。所以“北”的區(qū)位碼為0b1b1h-0a0a0h=1111h,將區(qū)碼和位碼分別轉(zhuǎn)換為十進制,得漢字“北”的區(qū)位碼為“1717”。即“北”的點陣位于第17區(qū)的第17個字的位置,在文件hzk16中的位置為第32×[(17-1)×94+(17-1)]=48640d以后的32個字節(jié)為“北”的顯示點陣。用rf-1800編程器讀入二進制文件hzk16j.bin后利用其編輯功能中的緩沖區(qū)編輯查找到be00 h (48640d是十進制,將其轉(zhuǎn)變?yōu)槭M制后得be00 h)開始的32個字節(jié):04 80 04 80 04 88 04 98 04 a0 7c c0 04 80 04 80 04 80 04 80 04 80 04 80 1c 82 e4 82 44 7e 00
    
    
    摘 要:本文介紹常用的兩種液晶顯示器(不帶漢字庫及自帶漢字庫)的顯示基本原理和使用方法,對比了并行方式和串行方式的優(yōu)缺點,給出了接口電路圖、串行時序圖和相應的源程序。
    關(guān)鍵詞:液晶顯示器;串口;并口;時序;存儲器
    1.引言
    液晶顯示器(lcd)具有顯示信息豐富、功耗低、體積小、重量輕、超薄等許多其他顯示器無法比擬的優(yōu)點,近幾年來被廣泛用于單片機控制的智能儀器、儀表和低功耗電子產(chǎn)品中。lcd可分為段位式lcd、字符式lcd和點陣式lcd。其中,段位式lcd和字符式lcd只能用于字符和數(shù)字的簡單顯示,不能滿足圖形曲線和漢字顯示的要求;而點陣式lcd不僅可以顯示字符、數(shù)字,還可以顯示各種圖形、曲線及漢字,并且可以實現(xiàn)屏幕上下左右滾動、動畫、分區(qū)開窗口、反轉(zhuǎn)、閃爍等功能,用途十分廣泛。本文介紹點陣式液晶顯示器hs12232-1、hs12232-9與單片機的接口及編程的方法,同時給出兩種顯示器常用的字符顯示和漢字顯示程序。
    2.不帶漢字庫的hs12232-1下的漢字顯示
    2.1 顯示原理
    利用pc上的16×16點陣漢字庫,提取后將點陣文件存入rom,直接利用pc中漢字內(nèi)碼作為單片機系統(tǒng)的編碼(不再形成新的漢字編碼)。
    
    
    
    2.2 硬件組成
    首先要采用點陣圖形液晶顯示器。(例如一行為240點,總列數(shù)為128點,可以容納16×16點陣的漢字15個[因為240/16=15],128列可以顯示8行[因為128/16=8]),廣州市千喜科技開發(fā)有限公司的hs12232-1內(nèi)置sed1520驅(qū)動控制器的點陣為122×32點,每行7個半漢字,共2行。如果要擴展存儲器,全部國標16×16點陣漢字、8×16點陣的ascii碼點陣數(shù)據(jù)及漢字語句編碼數(shù)據(jù)要使用1片512kb的存儲器來存儲,多出部分可以留作數(shù)據(jù)存儲器。本文只探討液晶顯示器與單片機的接口部分,擴展存儲器部分略。下面給出hs-12232-1與單片機8031的一種接口,如圖1所示(vdd=+5v)。
    2.3 漢字顯示原理
    國家標準信息交換用漢字字符集gb 2312-80共收錄了漢字、圖形符號等共7445個,其中漢字6763個,按照漢字使用的頻度分為兩級,其中一級漢字3755個,二級漢字3008個。漢字、圖形符號根據(jù)其位置將其分為94個“區(qū)”,每個區(qū)包含94個漢字字符,每個漢字字符又稱為“位”。其中“區(qū)”的序號由01區(qū)至94區(qū),“位”的序號也由01位至94位。若以橫向表示“位”號,縱向表示“區(qū)” 號,則“區(qū)”和“位”構(gòu)成一個二維坐標。給定一個“區(qū)”值和“位”值就可以確定一個惟一的漢字或圖形符號。即4位阿拉伯數(shù)字就可以惟一地確定一個漢字或符號。如“北”字的區(qū)位碼是“1717”,而京字的區(qū)位碼是“3009”。前兩位是“區(qū)”號,后兩位是“位”號。其中1至15區(qū)是各種圖形符號、制表符和一些主要國家的語言字母,16區(qū)至87區(qū)是漢字,其中16區(qū)至55區(qū)是一級漢字,56至87區(qū)是二級漢字。
    ucdos軟件中的文件hzk16和文件asc16分別為16×16的國際漢字點陣文件和8×16的ascii碼點陣文件,hzk16中按漢字區(qū)位碼從小到大依次存放國標區(qū)位碼表中的所有漢字,每個漢字占用32字節(jié),每個區(qū)為94個漢字。而asc16文件中按ascii碼從小到大依次存有8×16的ascii碼點陣,每個ascii碼占用16字節(jié)。
    pc的文本文件中,漢字是用機內(nèi)碼的形式存儲的,每個漢字占2字節(jié),其中第一個字節(jié)為機內(nèi)碼的區(qū)碼,漢字機內(nèi)碼的區(qū)碼范圍是從0a1h(十六進制)開始,對應區(qū)位碼中區(qū)碼的第一區(qū);而機內(nèi)碼的第二個字節(jié)為機內(nèi)碼的位碼,范圍也是從0a1h(十六進制)開始,對應某區(qū)中的第一個位碼。就是說將漢字機內(nèi)碼減去0a0ah就得到該漢字的區(qū)位碼。例如漢字“北”的機內(nèi)碼是十六進制的“b1b1”,其中前兩位“b1”表示機內(nèi)碼的區(qū)碼,后兩位“b1”表示機內(nèi)碼的位碼。所以“北”的區(qū)位碼為0b1b1h-0a0a0h=1111h,將區(qū)碼和位碼分別轉(zhuǎn)換為十進制,得漢字“北”的區(qū)位碼為“1717”。即“北”的點陣位于第17區(qū)的第17個字的位置,在文件hzk16中的位置為第32×[(17-1)×94+(17-1)]=48640d以后的32個字節(jié)為“北”的顯示點陣。用rf-1800編程器讀入二進制文件hzk16j.bin后利用其編輯功能中的緩沖區(qū)編輯查找到be00 h (48640d是十進制,將其轉(zhuǎn)變?yōu)槭M制后得be00 h)開始的32個字節(jié):04 80 04 80 04 88 04 98 04 a0 7c c0 04 80 04 80 04 80 04 80 04 80 04 80 1c 82 e4 82 44 7e 00