wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7284|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

Protues仿真12864液晶顯示課程設(shè)計(jì)報(bào)告

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
word格式的完整文檔下載:
Protues12864液晶顯示.zip (323.18 KB, 下載次數(shù): 105)

Protues仿真液晶顯示

目錄

1  LCD12864簡介

2 LCD12864顯示原理

2.1漢字和英文顯示原理

2.2圖形顯示

2.3應(yīng)用說明

2.4指令描述

3軟件仿真

3.1漢字顯示

3.2圖形顯示

3.3同時(shí)顯示多個(gè)漢字

3.4向上滾動(dòng)顯示

4小結(jié)


1            LCD12864簡介
  • ST7920類 這種控制器帶中文字庫,為用戶免除了編制字庫的麻煩,該控制器的液晶還支持畫圖方式。該類液晶支持68時(shí)序8位和4位并口以及串口。

    (2)KS0108類 這種控制器指令簡單,不帶字庫。支持68時(shí)序8位并口。

    (3)T6963C類 這種控制器功能強(qiáng)大,帶西文字庫。有文本和圖形兩種顯示方式。有文本和圖形兩個(gè)圖層,并且支持兩個(gè)圖層的疊加顯示。支持80時(shí)序8位并口。

    (4)COG類 常見的控制器有S6B0724和ST7565,這兩個(gè)控制器指令兼容。支持68時(shí)序8位并口,80時(shí)序8位并口和串口。COG類液晶的特點(diǎn)是結(jié)構(gòu)輕便,成本低。

ST7920   GND   VCC   V0   RS   R/W   E   DB0-DB7   PSB   RES   VOUT   BLA   BLK



KS0108   GND VCC V0 RS R/W E DB0-DB7 CS1 CS2 RES VOUT BLA BLK


T6963C   FG   GND VCC V0 WR RD DB0-DB7   RS CS RES FS   BLA   BLK


S6B0724 GND VCC RS WR RD CS DB0-DB7 RES   BLA   BLK


     

12864是一種圖形點(diǎn)陣液晶顯示器,它主要由行驅(qū)動(dòng)器/列驅(qū)動(dòng)器及128×64全點(diǎn)陣液晶顯示器組成。可完成圖形顯示,也可以顯示8×4個(gè)(16×16點(diǎn)陣)漢字。

管腳名稱
LEVER
管腳功能描述
VSS
0
電源地
VDD
+5.0V
電源電壓
V0
-
液晶顯示器驅(qū)動(dòng)電壓
D/I(RS)
H/L
D/I=“H”,表示DB7∽DB0為顯示數(shù)據(jù)
D/I=“L”,表示DB7∽DB0為顯示指令數(shù)據(jù)
R/W
H/L
R/W=“H”,E=“H”數(shù)據(jù)被讀到DB7∽DB0
R/W=“L”,E=“H→L”數(shù)據(jù)被寫到IR或DR
E
H/L
R/W=“L”,E信號(hào)下降沿鎖存DB7∽DB0
R/W=“H”,E=“H”DDRAM數(shù)據(jù)讀到DB7∽DB0
DB0
H/L
數(shù)據(jù)線
DB1
H/L
數(shù)據(jù)線
DB2
H/L
數(shù)據(jù)線
DB3
H/L
數(shù)據(jù)線
DB4
H/L
數(shù)據(jù)線
DB5
H/L
數(shù)據(jù)線
DB6
H/L
數(shù)據(jù)線
DB7
H/L
數(shù)據(jù)線
CS1
H/L
H:選擇芯片(右半屏)信號(hào)
CS2
H/L
H:選擇芯片(左半屏)信號(hào)
RET
H/L
復(fù)位信號(hào),低電平復(fù)位
VOUT
-10V
LCD驅(qū)動(dòng)負(fù)電壓
LED+
-
LED背光板電源
LED-
-
LED背光板電源
    在使用12864LCD前先必須了解以下功能器件才能進(jìn)行編程。12864內(nèi)部功能器件及相關(guān)功能如下:

1. 指令寄存器(IR)

    IR是用于寄存指令碼,與數(shù)據(jù)寄存器數(shù)據(jù)相對應(yīng)。當(dāng)D/I=0時(shí),在E信號(hào)下降沿的作用下,指令碼寫入IR。

2.?dāng)?shù)據(jù)寄存器(DR)

    DR是用于寄存數(shù)據(jù)的,與指令寄存器寄存指令相對應(yīng)。當(dāng)D/I=1時(shí),在下降沿作用下,圖形顯示數(shù)據(jù)寫入DR,或在E信號(hào)高電平作用下由DR讀到DB7∽DB0數(shù)據(jù)總線。DR和DDRAM之間的數(shù)據(jù)傳輸是模塊內(nèi)部自動(dòng)執(zhí)行的。

3.忙標(biāo)志:BF

    BF標(biāo)志提供內(nèi)部工作情況。BF=1表示模塊在內(nèi)部操作,此時(shí)模塊不接受外部指令和數(shù)據(jù)。BF=0時(shí),模塊為準(zhǔn)備狀態(tài),隨時(shí)可接受外部指令和數(shù)據(jù)。

    利用STATUS READ指令,可以將BF讀到DB7總線,從檢驗(yàn)?zāi)K之工作狀態(tài)。

4.顯示控制觸發(fā)器DFF

    此觸發(fā)器是用于模塊屏幕顯示開和關(guān)的控制。DFF=1為開顯示(DISPLAY OFF),DDRAM的內(nèi)容就顯示在屏幕上,DFF=0為關(guān)顯示(DISPLAY OFF)。

    DDF的狀態(tài)是指令DISPLAY ON/OFF和RST信號(hào)控制的。

5XY地址計(jì)數(shù)器

      XY地址計(jì)數(shù)器是一個(gè)9位計(jì)數(shù)器。高3位是X地址計(jì)數(shù)器,低6位為Y地址計(jì)數(shù)器,XY地址計(jì)數(shù)器實(shí)際上是作為DDRAM的地址指針,X地址計(jì)數(shù)器為DDRAM的頁指針,   Y地址計(jì)數(shù)器為DDRAM的Y地址指針。

      X地址計(jì)數(shù)器是沒有記數(shù)功能的,只能用指令設(shè)置。

      Y地址計(jì)數(shù)器具有循環(huán)記數(shù)功能,各顯示數(shù)據(jù)寫入后,Y地址自動(dòng)加1,Y地址指針從0到63。

6.顯示數(shù)據(jù)RAMDDRAM

    DDRAM是存儲(chǔ)圖形顯示數(shù)據(jù)的。數(shù)據(jù)為1表示顯示選擇,數(shù)據(jù)為0表示顯示非選擇。DDRAM與地址和顯示位置的關(guān)系見DDRAM地址表。

7Z地址計(jì)數(shù)器

    Z地址計(jì)數(shù)器是一個(gè)6位計(jì)數(shù)器,此計(jì)數(shù)器具備循環(huán)記數(shù)功能,它是用于顯示行掃描同步。當(dāng)一行掃描完成,此地址計(jì)數(shù)器自動(dòng)加1,指向下一行掃描數(shù)據(jù),RST復(fù)位后Z地址計(jì)數(shù)器為0。

    Z地址計(jì)數(shù)器可以用指令DISPLAY START LINE預(yù)置。因此,顯示屏幕的起始行就由此指令控制,即DDRAM的數(shù)據(jù)從哪一行開始顯示在屏幕的第一行。此模塊的DDRAM共64行,屏幕可以循環(huán)滾動(dòng)顯示64行。

12864LCD的指令系統(tǒng)

模塊控制芯片提供兩套控制命令,基本指令和擴(kuò)充指令如下:

指令表1:(RE=0:基本指令)


                     指 令 碼
功 能

RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0

清除
顯示
0
0
0
0
0
0
0
0
0
1
將DDRAM填滿"20H",并且設(shè)定DDRAM的地址計(jì)數(shù)器(AC)到"00H"
地址
歸位
0
0
0
0
0
0
0
0
1
X
設(shè)定DDRAM的地址計(jì)數(shù)器(AC)到"00H",并且將游標(biāo)移到開頭原點(diǎn)位置;這個(gè)指令不改變DDRAM 的內(nèi)容
顯示狀態(tài)開/關(guān)
0
0
0
0
0
0
1
D
C
B
D=1: 整體顯示 ON
C=1: 游標(biāo)ON   
B=1:游標(biāo)位置反白允許
進(jìn)入點(diǎn)
設(shè)定
0
0
0
0
0
0
0
1
I/D
S
指定在數(shù)據(jù)的讀取與寫入時(shí),設(shè)定游標(biāo)的移動(dòng)方向及指定顯示的移位
游標(biāo)或顯示移位控制
0
0
0
0
0
1
S/C
R/L
X
X
設(shè)定游標(biāo)的移動(dòng)與顯示的移位控制位;這個(gè)指令不改變DDRAM 的內(nèi)容
功能
設(shè)定
0
0
0
0
1
DL
X
RE
X
X
DL=0/1:4/8位數(shù)據(jù)
RE=1: 擴(kuò)充指令操作
RE=0: 基本指令操作
設(shè)定CGRAM
地址
0
0
0
1
AC5
AC4
AC3
AC2
AC1
AC0
設(shè)定CGRAM 地址
設(shè)定DDRAM
地址
0
0
1
0
AC5
AC4
AC3
AC2
AC1
AC0
設(shè)定DDRAM 地址(顯示位址)
第一行:80H-87H
第二行:90H-97H
讀取忙標(biāo)志和地址
0
1
BF
AC6
AC5
AC4
AC3
AC2
AC1
AC0
讀取忙標(biāo)志(BF)可以確認(rèn)內(nèi)部動(dòng)作是否完成,同時(shí)可以讀出地址計(jì)數(shù)器(AC)的值
寫數(shù)據(jù)到RAM
1
0
數(shù)據(jù)
將數(shù)據(jù)D7——D0寫入到內(nèi)部的RAM (DDRAM/CGRAM/IRAM/GRAM)
讀出RAM的值
1
1
數(shù)據(jù)
從內(nèi)部RAM讀取數(shù)據(jù)D7——D0
(DDRAM/CGRAM/IRAM/GRAM)
指令表2:(RE=1:擴(kuò)充指令)


                     指 令 碼
功 能

RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0

     待命
模式
0
0
0
0
0
0
0
0
0
1
進(jìn)入待命模式,執(zhí)行其他指令都棵終止
待命模式
卷動(dòng)地址開關(guān)開啟
0
0
0
0
0
0
0
0
1
SR
SR=1:允許輸入垂直卷動(dòng)地址
SR=0:允許輸入IRAM和CGRAM地址
     反白
     選擇
0
0
0
0
0
0
0
1
R1
R0
選擇2行中的任一行作反白顯示,并可決定反白與否。初始值R1R0=00,第一次設(shè)定為反白顯示,再次設(shè)定變回正常
     睡眠
     模式
0
0
0
0
0
0
1
SL
X
X
SL=0:進(jìn)入睡眠模式
SL=1:脫離睡眠模式
     擴(kuò)充
     功能
     設(shè)定
0
0
0
0
1
CL
X
RE
G
0
CL=0/1:4/8位數(shù)據(jù)
RE=1: 擴(kuò)充指令操作
RE=0: 基本指令操作
G=1/0:繪圖開關(guān)
設(shè)定繪圖RAM
地址
0
0
1
0
AC6
0
AC5
0
AC4
AC3
AC3
AC2
AC2
AC1
AC1
AC0
AC0
設(shè)定繪圖RAM
先設(shè)定垂直(列)地址AC6AC5…AC0
再設(shè)定水平(行)地址AC3AC2AC1AC0
將以上16位地址連續(xù)寫入即可
備注:當(dāng)IC1在接受指令前,微處理器必須先確認(rèn)其內(nèi)部處于非忙碌狀態(tài),即讀取BF標(biāo)志時(shí),BF需為零,方可接受新的指令;如果在送出一個(gè)指令前并不檢查BF標(biāo)志,那么在前一個(gè)指令和這個(gè)指令中間必須延長一段較長的時(shí)間,即是等待前一個(gè)指令確實(shí)執(zhí)行完成。

2、字符顯示

帶中文字庫的128X64-0402B每屏可顯示4行8列共32個(gè)16×16點(diǎn)陣的漢字,每個(gè)顯示RAM可顯示1個(gè)中文字符或2個(gè)16×8點(diǎn)陣全高ASCII碼字符,即每屏最多可實(shí)現(xiàn)32個(gè)中文字符或64個(gè)ASCII碼字符的顯示。帶中文字庫的128X64-0402B內(nèi)部提供128×2字節(jié)的字符顯示RAM緩沖區(qū)(DDRAM)。字符顯示是通過將字符顯示編碼寫入該字符顯示RAM實(shí)現(xiàn)的。根據(jù)寫入內(nèi)容的不同,可分別在液晶屏上顯示CGROM(中文字庫)、HCGROM(ASCII碼字庫)及CGRAM(自定義字形)的內(nèi)容。三種不同字符/字型的選擇編碼范圍為:0000~0006H(其代碼分別是0000、0002、0004、0006共4個(gè))顯示自定義字型,02H~7FH顯示半寬ASCII碼字符,A1A0H~F7FFH顯示8192種GB2312中文字庫字形。字符顯示RAM在液晶模塊中的地址80H~9FH。字符顯示的RAM的地址與32個(gè)字符顯示區(qū)域有著一一對應(yīng)的關(guān)系,其對應(yīng)關(guān)系如下表所示。

80H
81H
82H
83H
84H
85H
86H
87H
90H
91H
92H
93H
94H
95H
96H
97H
88H
89H
8AH
8BH
8CH
8DH
8EH
8FH
98H
99H
9AH
9BH
9CH
9DH
9EH
9FH
2 LCD12864顯示原理2.1漢字和英文顯示原理
    在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對LCD控制器進(jìn)行不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對于顯示英文操作,由于英文字母種類很少,只需要8位(一字節(jié))即可。而對于中文,常用卻有6000以上,于是我們的DOS前輩想了一個(gè)辦法,就是將ASCII表的高128個(gè)很少用到的數(shù)值以兩個(gè)為一組來表示漢字,即漢字的內(nèi)碼。而剩下的低128位則留給英文字符使用,即英文的內(nèi)碼。

      那么,得到了漢字的內(nèi)碼后,還僅是一組數(shù)字,那又如何在屏幕上去顯示呢?這就涉及到文字的字模,字模雖然也是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來記載英文或漢字的形狀,如英文的'A'在字模的記載方式如圖1所示:


圖1 “A”字模圖

    而中文的“你”在字模中的記載卻如圖2所示:


圖2 “你”字模圖

根據(jù)芯片的不同取模的方式不同,有多種取模方式:單色點(diǎn)陣液晶字模,橫向取模,字節(jié)正序,單色點(diǎn)陣液晶字模,橫向取模,字節(jié)倒序,單色點(diǎn)陣液晶字模,縱向取模,字節(jié)正序,單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序等等。

2.2圖形顯示
先設(shè)垂直地址再設(shè)水平地址(連續(xù)寫入兩個(gè)字節(jié)的資料來完成垂直與水平的坐標(biāo)地址)

垂直地址范圍 AC5...AC0

水平地址范圍 AC3…AC0

繪圖RAM 的地址計(jì)數(shù)器(AC)只會(huì)對水平地址(X 軸)自動(dòng)加一,當(dāng)水平地址=0FH 時(shí)會(huì)重新設(shè)為00H

但并不會(huì)對垂直地址做進(jìn)位自動(dòng)加一,故當(dāng)連續(xù)寫入多筆資料時(shí),程序需自行判斷垂直地址是否需重新設(shè)定。GDRAM的坐標(biāo)地址與資料排列順序如下圖:


2.3應(yīng)用說明
     用帶中文字庫的128X64顯示模塊時(shí)應(yīng)注意以下幾點(diǎn):

     ①欲在某一個(gè)位置顯示中文字符時(shí),應(yīng)先設(shè)定顯示字符位置,即先設(shè)定顯示地址,再寫入中文字符編碼。

     ②顯示ASCII字符過程與顯示中文字符過程相同。不過在顯示連續(xù)字符時(shí),只須設(shè)定一次顯示地址,由模塊自動(dòng)對地址加1指向下一個(gè)字符位置,否則,顯示的字符中將會(huì)有一個(gè)空ASCII字符位置。

     ③當(dāng)字符編碼為2字節(jié)時(shí),應(yīng)先寫入高位字節(jié),再寫入低位字節(jié)。

         ④模塊在接收指令前,向處理器必須先確認(rèn)模塊內(nèi)部處于非忙狀態(tài),即讀取BF標(biāo)志時(shí)BF需為“0”,方可接受新的指令。如果在送出一個(gè)指令前不檢查BF標(biāo)志,則在前一個(gè)指令和這個(gè)指令中間必須延遲一段較長的時(shí)間,即等待前一個(gè)指令確定執(zhí)行完成。指令執(zhí)行的時(shí)間請參考指令表中的指令執(zhí)行時(shí)間說明。

⑤“RE”為基本指令集與擴(kuò)充指令集的選擇控制位。當(dāng)變更“RE”后,以后的指令集將維持在最后的狀態(tài),除非再次變更“RE”位,否則使用相同指令集時(shí),無需每次均重設(shè)“RE”位。

2.4指令描述1、顯示開/關(guān)設(shè)置
CODE:
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
L
L
L
L
H
H
H
H
H
H/L
功能:設(shè)置屏幕顯示開/關(guān)。 DB0=H,開顯示;DB0=L,關(guān)顯示。不影響顯示RAM(DD RAM)中的內(nèi)容。
2、設(shè)置顯示起始行
CODE:
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
L
L
H
H
行地址(0-63)
功能:執(zhí)行該命令后,所設(shè)置的行將顯示在屏幕的第一行。顯示起始行是由Z地址計(jì)數(shù)器控制的,該命令自動(dòng)將A0-A5位地址送入Z地址計(jì)數(shù)器,起始地址可以是0-63范圍內(nèi)任意一行。Z地址計(jì)數(shù)器具有循環(huán)計(jì)數(shù)功能,用于顯示行掃描同步,當(dāng)掃描完一行后自動(dòng)加一。
3、設(shè)置頁地址
CODE:
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
L
L
H
L
H
H
H
頁地址(0-7)
功能:執(zhí)行本指令后,下面的讀寫操作將在指定頁內(nèi),直到重新設(shè)置。頁地址就是DD RAM 的行地址,頁地址存儲(chǔ)在X地址計(jì)數(shù)器中,A2-A0可表示8頁,讀寫數(shù)據(jù)對頁地址沒有影響,除本指令可改變頁地址外,復(fù)位信號(hào)(RST)可把頁地址計(jì)數(shù)器內(nèi)容清零。
      





DD RAM地址映像表
                                 Y 地址
0
1
2
………………………
61
62
63

DB0
∫                          PAGE0
DB7
      X=0
DB0
∫                          PAGE1
DB7
      X=1





DB0
∫                          PAGE6
DB7
      X=7
DB0
∫                          PAGE7
DB7
      X=8









4、設(shè)置列地址
CODE:  
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
L
L
L
H
列地址(0-63)
功能: DD RAM 的列地址存儲(chǔ)在Y地址計(jì)數(shù)器中,讀寫數(shù)據(jù)對列地址有影響,在對DD RAM進(jìn)行讀寫操作后,Y地址自動(dòng)加一。
5、狀態(tài)檢測
CODE:
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
H
L
BF
L
ON/OFF
RET
L
L
L
L
功能:讀忙信號(hào)標(biāo)志位(BF)、復(fù)位標(biāo)志位(RST)以及顯示狀態(tài)位(ON/OFF)。
            BF=H:內(nèi)部正在執(zhí)行操作;            BF=L:空閑狀態(tài)。
            RST=H:正處于復(fù)位初始化狀態(tài);       RST=L:正常狀態(tài)。
            ON/OFF=H:表示顯示關(guān)閉;            ON/OFF=L:表示顯示開。
6、寫顯示數(shù)據(jù)
CODE:
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
L
H
D7
D6
D5
D4
D3
D2
D1
D0
功能:寫數(shù)據(jù)到DD RAM,DD RAM是存儲(chǔ)圖形顯示數(shù)據(jù)的,寫指令執(zhí)行后Y地址計(jì)數(shù)器自動(dòng)加1。D7-D0位數(shù)據(jù)為1表示顯示,數(shù)據(jù)為0表示不顯示。寫數(shù)據(jù)到DD RAM前,要先執(zhí)行“設(shè)置頁地址”及“設(shè)置列地址”命令。
7、讀顯示數(shù)據(jù)
CODE:
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
H
H
D7
D6
D5
D4
D3
D2
D1
D0
功能:從DD RAM讀數(shù)據(jù),讀指令執(zhí)行后Y地址計(jì)數(shù)器自動(dòng)加1。從DD RAM讀數(shù)據(jù)前要先執(zhí)行“設(shè)置頁地址” 及“設(shè)置列地址”命令。
8、屏幕顯示與DD RAM地址映射關(guān)系
[td]
   

Y1
Y2
Y3
Y4
…………
Y62
Y63
Y64

     X=0
Line 0
1/0
1/0
1/0
1/0
…………
1/0
1/0
1/0
DB0
Line 1
1/0
1/0
1/0
1/0
…………
1/0
1/0
1/0
DB1
Line 2
1/0
1/0
1/0
1/0
…………
1/0
1/0
1/0
DB2
Line 3
1/0
1/0
1/0
1/0
…………
1/0
1/0
1/0
DB3
Line 4
1/0
1/0
1/0
1/0
…………
1/0
1/0
1/0
DB4
Line 5
1/0
1/0
1/0
1/0
…………
1/0
1/0
1/0
DB5
Line 6
1/0
1/0
1/0
1/0
…………
1/0
1/0
1/0
DB6
Line 7
1/0
1/0
1/0
1/0
…………
1/0
1/0
1/0
DB7
…………
…………
…………

     X=7
Line60
1/0
1/0
1/0
1/0
…………
1/0
1/0
1/0
DB4
Line61
1/0
1/0
1/0
1/0
…………
1/0
1/0
1/0
DB5
Line62
1/0
1/0
1/0
1/0
…………
1/0
1/0
1/0
DB6
Line63
1/0
1/0
1/0
1/0
…………
1/0
1/0
1/0
DB7

3軟件仿真3.1漢字顯示
    在Protues軟件中選擇所需元件,搭建的電路圖如圖1所示。


圖1 仿真硬件原理圖

將編寫的代碼燒寫到單片機(jī)里,運(yùn)行液晶顯示不正常,如圖2所示。


圖2 運(yùn)行圖

開始我還以為是程序問題,把程序看了又看,改了又改,顯示結(jié)果還是一樣。后來問了下張勇生,出現(xiàn)這種情況的原因是P0口沒接上拉電阻。因?yàn)镻0口是開漏的,不管它的驅(qū)動(dòng)能力多大,相當(dāng)于它是沒有電源的,需要外部的電路提供,絕大多數(shù)情況下P0口是必需加上拉電阻的。接上拉電阻后,重新運(yùn)行這下運(yùn)行正常了,如圖3所示。


圖3正常顯示

代碼如下所示:

#include


#define LCDLCDDisp_Off   0x3e

#define LCDLCDDisp_On    0x3f

#define Page_Add     0xb8//頁地址

#define LCDCol_Add     0x40//列地址

#define Start_Line     0xC0//行地址

/*****液晶顯示器的端口定義*****/

#define data_ora P0 /*液晶數(shù)據(jù)總線*/

sbit LCDMcs=P2^1 ;    /*片選1*/

sbit LCDScs=P2^2 ;    /*片選2*/

sbit RESET=P2^3 ;  /*復(fù)位信號(hào)*/

sbit LCDDi=P2^4 ;     /*數(shù)據(jù)/指令 選擇*/

sbit LCDRW=P2^5 ;     /*讀/寫 選擇*/

sbit LCDEnable=P2^6 ;     /*讀/寫 使能*/




char code Hz_xu[]=

{

/*------------------------------------------------------------------------------

  源文件 / 文字 : F:LD測試儀液晶字模提取+排版軟件液晶字模提取圖例wo.bmp

  寬×高(像素): 16×

  字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)

  數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-28 17:10:17

------------------------------------------------------------------------------*/

0x40,0x42,0xCC,0x00,0x00,0x40,0x30,0x1E,0x10,0xF0,0x10,0x10,0x18,0x10,0x00,0x00,

0x00,0x00,0x3F,0x10,0x08,0x01,0x01,0x01,0x01,0x7F,0x01,0x01,0x01,0x01,0x00,0x00

};


char code Hz_ping[]=

{

/*------------------------------------------------------------------------------

  源文件 / 文字 : F:LD測試儀液晶字模提取+排版軟件液晶字模提取圖例ping.bmp萍

  寬×高(像素): 16×16

  字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)

  數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-29 8:46:30

------------------------------------------------------------------------------*/

0x00,0xC8,0x28,0x58,0x08,0x0C,0xBE,0x28,0x28,0xE8,0x3E,0x28,0xA8,0x2C,0x08,0x00,

0x00,0x08,0x09,0x7E,0x01,0x04,0x04,0x05,0x04,0x7F,0x04,0x05,0x04,0x06,0x04,0x00

};


/****************************************************************************

函數(shù)功能:LCD延時(shí)程序

入口參數(shù):t

出口參數(shù):

****************************************************************************/

void LCDdelay(unsigned int t)

{

              unsigned int i,j;

              for(i=0;i<t;i++);[ size][="" align]
              for(j=0;j<10;j++);

}

/****************************************************************************

狀態(tài)檢查,LCD是否忙



*****************************************************************************/

void CheckState()                           

{

   unsigned char dat,DATA;//狀態(tài)信息(判斷是否忙)

   LCDDi=0; // 數(shù)據(jù)指令選擇,D/I(RS)="L" ,表示 DB7∽DB0 為顯示指令數(shù)據(jù)

   LCDRW=1; //R/W="H" ,E="H"數(shù)據(jù)被讀到DB7∽DB0

   do

   {

      DATA=0x00;

      LCDEnable=1;              //EN下降源

                LCDdelay(2);//延時(shí)

                dat=DATA;

      LCDEnable=0;

      dat=0x80 & dat; //僅當(dāng)?shù)?位為0時(shí)才可操作(判別busy信號(hào))

    }

    while(!(dat==0x00));

}

/*****************************************************************************

函數(shù)功能:寫命令到LCD程序,RS(DI)=L,RW=L,EN=H,即來一個(gè)脈沖寫一次

入口參數(shù):cmdcode

出口參數(shù):

*****************************************************************************/

void write_com(unsigned char cmdcode)

{

    CheckState();//檢測LCD是否忙

              LCDDi=0;

              LCDRW=0;

              P0=cmdcode;                           

              LCDdelay(2);

              LCDEnable=1;

              LCDdelay(2);

              LCDEnable=0;

}

/*****************************************************************************

函數(shù)功能:LCD初始化程序

入口參數(shù):

出口參數(shù):

*****************************************************************************/

void init_lcd()

{

              LCDdelay(100);            

              LCDMcs=1;//剛開始關(guān)閉兩屏

              LCDScs=1;

              LCDdelay(100);

              write_com(LCDLCDDisp_Off);              //寫初始化命令

              write_com(Page_Add+0);

              write_com(Start_Line+0);

              write_com(LCDCol_Add+0);

              write_com(LCDLCDDisp_On);

}

/*****************************************************************************

函數(shù)功能:寫數(shù)據(jù)到LCD程序,RS(DI)=H,RW=L,EN=H,即來一個(gè)脈沖寫一次

入口參數(shù):LCDDispdata

出口參數(shù):

*****************************************************************************/

void write_data(unsigned char LCDDispdata)

{

    CheckState();//檢測LCD是否忙

              LCDDi=1;

              LCDRW=0;

              P0=LCDDispdata;

              LCDdelay(2);

              LCDEnable=1;

              LCDdelay(2);

              LCDEnable=0;

}

/*****************************************************************************

函數(shù)功能:清除LCD內(nèi)存程序

入口參數(shù):pag,col,hzk

出口參數(shù):

*****************************************************************************/

void Clr_Scr()

{

              unsigned char j,k;

              LCDMcs=0; //左、右屏均開顯示

              LCDScs=0;

              write_com(Page_Add+0);

              write_com(LCDCol_Add+0);

              for(k=0;k<8;k++)//控制頁數(shù)0-7,共8頁

              {

                            write_com(Page_Add+k); //每頁每頁進(jìn)行寫

                              for(j=0;j<64;j++)  //每頁最多可寫32個(gè)中文文字或64個(gè)ASCII字符

                            {

                                  write_com(LCDCol_Add+j);

                                          write_data(0x00);//控制列數(shù)0-63,共64列,寫點(diǎn)內(nèi)容,列地址自動(dòng)加1

                            }

              }

}

/*****************************************************************************

函數(shù)功能:指定位置顯示漢字16*16程序

入口參數(shù):page,column,hzk

出口參數(shù):

*****************************************************************************/

void hz_LCDDisp16(unsigned char page,unsigned char column, unsigned char code *hzk)

{

              unsigned char j=0,i=0;

              for(j=0;j<2;j++)

              {

                            write_com(Page_Add+page+j);

                            write_com(LCDCol_Add+column);

                            for(i=0;i<16;i++)

                                          write_data(hzk[16*j+i]);

              }

}


void main()

{

              init_lcd();

              Clr_Scr();

              LCDMcs=0; //左屏開顯示

              LCDScs=1;

              hz_LCDDisp16(0,48,Hz_xu);// Hz_Wo為某個(gè)漢字的首地址

        LCDMcs=1; //右屏開顯示

              LCDScs=0;

        hz_LCDDisp16(0,0,Hz_ping);

              while(1)

    {


              }

}

3.2圖形顯示
我選了一張128x64的圖片在字模軟件中生產(chǎn)相應(yīng)的C代碼,將C代碼寫入到程序中。

由于液晶由兩個(gè)控制芯片來控制,所以有片選信號(hào)端口CS1和CS2。我在字體顯示程序中把改了顯示那一塊的代碼,主程序中改了片選信號(hào)。開始同時(shí)將左右屏都開了,顯示事,左右屏同時(shí)顯示一樣的圖形,并且顯示的圖形不完整。主程序中顯示部分的程序不對,我想了后,將主程序中程序改了一下,先開左屏調(diào)用左屏顯示函數(shù),在關(guān)左屏開右屏調(diào)用右屏顯示函數(shù)。最后顯示成功。如圖4所示。


圖4 圖形顯示

代碼如下所示:

#include


#define LCDLCDDisp_Off   0x3e

#define LCDLCDDisp_On    0x3f

#define Page_Add     0xb8//ye


#define LCDCol_Add     0x40//lie

#define Start_Line     0xC0//hang

/*****液晶顯示器的端口定義*****/

#define data_ora P0 /*液晶數(shù)據(jù)總線*/

sbit LCDMcs=P2^1 ;    /*片選1*/

sbit LCDScs=P2^2 ;    /*片選2*/

sbit RESET=P2^3 ;  /*復(fù)位信號(hào)*/

sbit LCDDi=P2^4 ;     /*數(shù)據(jù)/指令 選擇*/

sbit LCDRW=P2^5 ;     /*讀/寫 選擇*/

sbit LCDEnable=P2^6 ;     /*讀/寫 使能*/




char code Hz[]=

{

/*------------------------------------------------------------------------------

  源文件 / 文字 : F:LD測試儀液晶字模提取+排版軟件液晶字模提取圖例yema.bmp萍

  寬×高(像素): 128×64

  字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/1024字節(jié)

  數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-29 9:09:37

------------------------------------------------------------------------------*/

0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x80,0x90,0xD0,0x78,0xF8,0xF8,0xF8,0xF0,0xF0,0xF0,0xE0,0xE0,

0xE0,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x06,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0xCF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xDD,0x9F,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,0x78,0xF8,0xF0,0xE0,0xC0,0xC0,0x80,

0xC0,0xE0,0xE0,0xF0,0xFC,0xFE,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFD,0x3B,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x80,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0xFC,0x9C,0x3C,0x3D,0x3F,0x7F,0xFD,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF9,0xE1,0xC3,0x87,

0x05,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFE,0xE3,0xF1,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x1F,0x1F,0x78,0xF0,0x00,0x00,0x00,0x01,

0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFE,0xFE,0xFC,0xF8,0xF0,0xE0,0x80,0x80,0x80,0xC0,0xE0,0xFF,0xDF,0x7F,0x1F,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0x7F,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x1F,0x07,0xBF,0xFF,0x3F,0x1F,0x05,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,

0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x0E,0x0E,0x0E,0x1F,0x1F,0x07,0x9F,0xFF,

0xFF,0x7B,0x61,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x18,0x18,0x1C,0x1E,0x07,0x03,0x01,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};


/****************************************************************************

函數(shù)功能:LCD延時(shí)程序

入口參數(shù):t

出口參數(shù):

****************************************************************************/

void LCDdelay(unsigned int t)

{

              unsigned int i,j;

              for(i=0;i<t;i++);[ size][="" align]
              for(j=0;j<10;j++);

}

/****************************************************************************

狀態(tài)檢查,LCD是否忙



*****************************************************************************/

void CheckState()                           

{

   unsigned char dat,DATA;//狀態(tài)信息(判斷是否忙)

   LCDDi=0; // 數(shù)據(jù)指令選擇,D/I(RS)="L" ,表示 DB7∽DB0 為顯示指令數(shù)據(jù)

   LCDRW=1; //R/W="H" ,E="H"數(shù)據(jù)被讀到DB7∽DB0

   do

   {

      DATA=0x00;

      LCDEnable=1;              //EN下降源

                LCDdelay(2);//延時(shí)

                dat=DATA;

      LCDEnable=0;

      dat=0x80 & dat; //僅當(dāng)?shù)?位為0時(shí)才可操作(判別busy信號(hào))

    }

    while(!(dat==0x00));

}

/*****************************************************************************

函數(shù)功能:寫命令到LCD程序,RS(DI)=L,RW=L,EN=H,即來一個(gè)脈沖寫一次

入口參數(shù):cmdcode

出口參數(shù):

*****************************************************************************/

void write_com(unsigned char cmdcode)

{

    CheckState();//檢測LCD是否忙

              LCDDi=0;

              LCDRW=0;

              P0=cmdcode;                           

              LCDdelay(2);

              LCDEnable=1;

              LCDdelay(2);

              LCDEnable=0;

}

/*****************************************************************************

函數(shù)功能:LCD初始化程序

入口參數(shù):

出口參數(shù):

*****************************************************************************/

void init_lcd()

{

              LCDdelay(100);            

              LCDMcs=1;//剛開始關(guān)閉兩屏

              LCDScs=1;

              LCDdelay(100);

              write_com(LCDLCDDisp_Off);              //寫初始化命令

              write_com(Page_Add+0);

              write_com(Start_Line+0);

              write_com(LCDCol_Add+0);

              write_com(LCDLCDDisp_On);

}

/*****************************************************************************

函數(shù)功能:寫數(shù)據(jù)到LCD程序,RS(DI)=H,RW=L,EN=H,即來一個(gè)脈沖寫一次

入口參數(shù):LCDDispdata

出口參數(shù):

*****************************************************************************/

void write_data(unsigned char LCDDispdata)

{

    CheckState();//檢測LCD是否忙

              LCDDi=1;

              LCDRW=0;

              P0=LCDDispdata;

              LCDdelay(2);

              LCDEnable=1;

              LCDdelay(2);

              LCDEnable=0;

}

/*****************************************************************************

函數(shù)功能:清除LCD內(nèi)存程序

入口參數(shù):pag,col,hzk

出口參數(shù):

*****************************************************************************/

void Clr_Scr()

{

              unsigned char j,k;

              LCDMcs=0; //左、右屏均開顯示

              LCDScs=0;

              write_com(Page_Add+0);

              write_com(LCDCol_Add+0);

              for(k=0;k<8;k++)//控制頁數(shù)0-7,共8頁

              {

                            write_com(Page_Add+k); //每頁每頁進(jìn)行寫

                              for(j=0;j<64;j++)  //每頁最多可寫32個(gè)中文文字或64個(gè)ASCII字符

                            {

                                  write_com(LCDCol_Add+j);

                                          write_data(0x00);//控制列數(shù)0-63,共64列,寫點(diǎn)內(nèi)容,列地址自動(dòng)加1

                            }

              }

}


void main()

{

              init_lcd();

              Clr_Scr();

              LCDMcs=0; //左屏開顯示

              LCDScs=1;

    Bmp_Left_Disp(0,0,Hz);

    LCDMcs=1; //右屏開顯示

              LCDScs=0;

              Bmp_Right_Disp(0,0,Hz);


              while(1)

    {


              }

}

3.3同時(shí)顯示多個(gè)漢字
  用字模軟件取模后通過改寫軟件,仿真圖形如圖5所示。


圖5 顯示多個(gè)漢字的仿真圖

代碼如下所示:

#include

#define LCDLCDDisp_Off   0x3e

#define LCDLCDDisp_On    0x3f

#define Page_Add     0xb8//頁地址

#define LCDCol_Add     0x40//列地址

#define Start_Line     0xC0//行地址

/*****液晶顯示器的端口定義*****/

#define data_ora P0 /*液晶數(shù)據(jù)總線*/

sbit LCDMcs=P2^1 ;    /*片選1*/

sbit LCDScs=P2^2 ;    /*片選2*/

sbit RESET=P2^3 ;  /*復(fù)位信號(hào)*/

sbit LCDDi=P2^4 ;     /*數(shù)據(jù)/指令 選擇*/

sbit LCDRW=P2^5 ;     /*讀/寫 選擇*/

sbit LCDEnable=P2^6 ;     /*讀/寫 使能*/




unsigned char code Bmp1[]=

{

/*------------------------------------------------------------------------------

  源文件 / 文字 : 來自剪貼板!武漢理工大學(xué)

  寬×高(像素): 128×16

  字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/256字節(jié)

  數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-29 17:52:57

  顯示的漢字:武漢理工大學(xué)

------------------------------------------------------------------------------*/

0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x20,0x20,0x24,0x24,0x24,0xE4,0x24,0x20,0x20,0xFE,0x20,0x24,0x28,0x20,

0x00,0x20,0xC2,0x0C,0x80,0x60,0x04,0x7C,0x84,0x04,0x04,0xC4,0x3E,0x04,0x00,0x00,

0x88,0x88,0xF8,0x88,0x88,0x00,0xFC,0x24,0x24,0xFC,0x24,0x24,0xFE,0x04,0x00,0x00,

0x08,0x08,0x08,0x08,0x08,0xF8,0x08,0x08,0x08,0x08,0x0C,0x08,0x00,0x00,0x20,0x20,

0x20,0x20,0x20,0x20,0xFE,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x40,0x30,0x10,

0x52,0x5C,0x50,0x52,0x5C,0x50,0xD8,0x56,0x10,0x50,0x30,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x20,0x60,0x3F,0x20,0x20,0x1F,0x12,0x12,0x10,0x07,0x18,0x20,0x40,0x78,

0x00,0x04,0x04,0x7E,0x41,0x40,0x20,0x10,0x0B,0x04,0x0B,0x10,0x20,0x60,0x20,0x00,

0x10,0x30,0x1F,0x08,0x48,0x40,0x4B,0x49,0x49,0x7F,0x49,0x49,0x6B,0x40,0x08,0x20,

0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x40,0x40,

0x20,0x10,0x08,0x06,0x01,0x02,0x04,0x08,0x10,0x20,0x60,0x20,0x00,0x04,0x04,0x04,

0x04,0x04,0x24,0x44,0x3F,0x05,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

unsigned char code Bmp2[]=

{

/*------------------------------------------------------------------------------

  源文件 / 文字 : 信息工程學(xué)院

  寬×高(像素): 128×16

  字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/256字節(jié)

  數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-29 18:34:04

  顯示的漢字:信息工程學(xué)院

------------------------------------------------------------------------------*/

0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x80,0x40,0xF0,0x0E,0x00,0x28,0x28,0x28,0x2A,0x2C,0x28,0x28,0x28,0x08,0x00,

0x00,0x00,0x00,0xF8,0xA8,0xAC,0xAA,0xA8,0xA8,0xA8,0xFC,0x08,0x00,0x00,0x00,0x00,

0x08,0x08,0x08,0x08,0x08,0xF8,0x08,0x08,0x08,0x08,0x0C,0x08,0x00,0x00,0x20,0x24,

0xA4,0xFC,0x26,0x24,0x00,0x7C,0x24,0x24,0x24,0x24,0x7C,0x00,0x00,0x40,0x30,0x10,

0x52,0x5C,0x50,0x52,0x5C,0x50,0xD8,0x56,0x10,0x50,0x30,0x00,0x00,0xFC,0x04,0x64,

0x9C,0x20,0x58,0x48,0x4A,0x4C,0x48,0x48,0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x7F,0x00,0x00,0x01,0x7D,0x25,0x25,0x25,0x25,0x7D,0x01,0x00,0x00,

0x00,0x20,0x18,0x03,0x3A,0x42,0x46,0x5A,0x42,0x42,0x73,0x00,0x08,0x30,0x00,0x20,

0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x08,0x06,

0x01,0x7F,0x01,0x42,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x41,0x00,0x04,0x04,0x04,

0x04,0x04,0x24,0x44,0x3F,0x05,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x7F,0x04,0x08,

0x47,0x41,0x21,0x1F,0x01,0x01,0x3F,0x41,0x41,0x79,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

unsigned char code Bmp3[]=

{

/*------------------------------------------------------------------------------

  源文件 / 文字 : 通信工程

  寬×高(像素): 128×

  字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/256字節(jié)

  數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-29 18:36:04

  顯示漢字:通信工程

------------------------------------------------------------------------------*/

0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x42,

0xCC,0x00,0x00,0xF4,0x54,0x5C,0xF4,0x5C,0x56,0xF4,0x00,0x00,0x00,0x80,0x40,0xF0,

0x0E,0x00,0x28,0x28,0x28,0x2A,0x2C,0x28,0x28,0x28,0x08,0x00,0x00,0x08,0x08,0x08,

0x08,0x08,0xF8,0x08,0x08,0x08,0x08,0x0C,0x08,0x00,0x00,0x20,0x24,0xA4,0xFC,0x26,

0x24,0x00,0x7C,0x24,0x24,0x24,0x24,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x10,

0x0F,0x10,0x20,0x5F,0x42,0x42,0x5F,0x42,0x52,0x5F,0x40,0x40,0x00,0x00,0x00,0x7F,

0x00,0x00,0x01,0x7D,0x25,0x25,0x25,0x25,0x7D,0x01,0x00,0x00,0x20,0x20,0x20,0x20,

0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x08,0x06,0x01,0x7F,0x01,

0x42,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

unsigned char code Bmp4[]=

{

/*------------------------------------------------------------------------------

  源文件 / 文字 : 0606班

  寬×高(像素): 128×16

  字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/256字節(jié)

  數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-29 18:37:59

  顯示的漢字:0606班

------------------------------------------------------------------------------*/

0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x20,0x10,0x10,0x20,0xC0,0x00,0x00,0xC0,

0x20,0x10,0x10,0x30,0x00,0x00,0x00,0xC0,0x20,0x10,0x10,0x20,0xC0,0x00,0x00,0xC0,

0x20,0x10,0x10,0x30,0x00,0x00,0x44,0x44,0xFC,0x44,0x04,0xC0,0x00,0xFE,0x84,0x84,

0xFC,0x84,0x84,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,0x00,0x1F,

0x22,0x21,0x21,0x21,0x1E,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,0x00,0x1F,

0x22,0x21,0x21,0x21,0x1E,0x00,0x10,0x10,0x0F,0x48,0x28,0x11,0x08,0x27,0x20,0x20,

0x3F,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

/****************************************************************************

函數(shù)功能:LCD延時(shí)程序

入口參數(shù):t

出口參數(shù):

****************************************************************************/

void LCDdelay(unsigned int t)

{

              unsigned int i,j;

              for(i=0;i<t;i++);[ size][="" align]
              for(j=0;j<10;j++);

}

/****************************************************************************

狀態(tài)檢查,LCD是否忙



*****************************************************************************/

void CheckState()                           

{

   unsigned char dat,DATA;//狀態(tài)信息(判斷是否忙)

   LCDDi=0; // 數(shù)據(jù)指令選擇,D/I(RS)="L" ,表示 DB7∽DB0 為顯示指令數(shù)據(jù)

   LCDRW=1; //R/W="H" ,E="H"數(shù)據(jù)被讀到DB7∽DB0

   do

   {

      DATA=0x00;

      LCDEnable=1;              //EN下降源

                LCDdelay(2);//延時(shí)

                dat=DATA;

      LCDEnable=0;

      dat=0x80 & dat; //僅當(dāng)?shù)?位為0時(shí)才可操作(判別busy信號(hào))

    }

    while(!(dat==0x00));

}

/*****************************************************************************

函數(shù)功能:寫命令到LCD程序,RS(DI)=L,RW=L,EN=H,即來一個(gè)脈沖寫一次

入口參數(shù):cmdcode

出口參數(shù):

*****************************************************************************/

void write_com(unsigned char cmdcode)

{

    CheckState();//檢測LCD是否忙

              LCDDi=0;

              LCDRW=0;

              P0=cmdcode;                           

              LCDdelay(2);

              LCDEnable=1;

              LCDdelay(2);

              LCDEnable=0;

}

/*****************************************************************************

函數(shù)功能:LCD初始化程序

入口參數(shù):

出口參數(shù):

*****************************************************************************/

void init_lcd()

{

              LCDdelay(100);            

              LCDMcs=1;//剛開始關(guān)閉兩屏

              LCDScs=1;

              LCDdelay(100);

              write_com(LCDLCDDisp_Off);              //寫初始化命令

              write_com(Page_Add+0);

              write_com(Start_Line+0);

              write_com(LCDCol_Add+0);

              write_com(LCDLCDDisp_On);

}

/*****************************************************************************

函數(shù)功能:寫數(shù)據(jù)到LCD程序,RS(DI)=H,RW=L,EN=H,即來一個(gè)脈沖寫一次

入口參數(shù):LCDDispdata

出口參數(shù):

*****************************************************************************/

void write_data(unsigned char LCDDispdata)

{

    CheckState();//檢測LCD是否忙

              LCDDi=1;

              LCDRW=0;

              P0=LCDDispdata;

              LCDdelay(2);

              LCDEnable=1;

              LCDdelay(2);

              LCDEnable=0;

}

/*****************************************************************************

函數(shù)功能:清除LCD內(nèi)存程序

入口參數(shù):pag,col,hzk

出口參數(shù):

*****************************************************************************/

void Clr_Scr()

{

              unsigned char j,k;

              LCDMcs=0; //左、右屏均開顯示

              LCDScs=0;

              write_com(Page_Add+0);

              write_com(LCDCol_Add+0);

              for(k=0;k<8;k++)//控制頁數(shù)0-7,共8頁

              {

                            write_com(Page_Add+k); //每頁每頁進(jìn)行寫

                              for(j=0;j<64;j++)  //每頁最多可寫32個(gè)中文文字或64個(gè)ASCII字符

                            {

                                  write_com(LCDCol_Add+j);

                                          write_data(0x00);//控制列數(shù)0-63,共64列,寫點(diǎn)內(nèi)容,列地址自動(dòng)加1

                            }

              }

}

/*****************************************************************************

函數(shù)功能:左屏位置顯示

入口參數(shù):page,column,hzk

出口參數(shù):

*****************************************************************************/

void Bmp_Left_Disp(unsigned char page,unsigned char column, unsigned char code *Bmp)

{

              unsigned char j=0,i=0;

              for(j=0;j<2;j++)

              {

                            write_com(Page_Add+page+j);

                            write_com(LCDCol_Add+column);

                            for(i=0;i<64;i++)

                                          write_data(Bmp[128*j+i]);

              }

}

/*****************************************************************************

函數(shù)功能:右屏位置顯示

入口參數(shù):page,column,hzk

出口參數(shù):

*****************************************************************************/

void Bmp_Right_Disp(unsigned char page,unsigned char column, unsigned char code *Bmp)

{

              unsigned char j=0,i=0;

              for(j=0;j<2;j++)

              {

                            write_com(Page_Add+page+j);

                            write_com(LCDCol_Add+column);

                            for(i=64;i<128;i++)

                                          write_data(Bmp[128*j+i]);

              }

}



void main()

{

              init_lcd();

              Clr_Scr();

              LCDMcs=0; //左屏開顯示

              LCDScs=1;

              Bmp_Left_Disp(0,0,Bmp1);// Bmp1為某個(gè)漢字的首地址

    Bmp_Left_Disp(2,0,Bmp2);

    Bmp_Left_Disp(4,0,Bmp3);

    Bmp_Left_Disp(6,0,Bmp4);

    LCDMcs=1; //右屏開顯示

              LCDScs=0;

    Bmp_Right_Disp(0,0,Bmp1);

    Bmp_Right_Disp(2,0,Bmp2);

    Bmp_Right_Disp(4,0,Bmp3);

    Bmp_Right_Disp(6,0,Bmp4);

              while(1)

    {


              }

}

3.4向上滾動(dòng)顯示
仿真圖形如圖6所示。

   

(a)第一次全部顯示                             (b)開始滾動(dòng)顯示

  

(c)                                            (d)

程序如下所示:

  1. #include
  2. #define  uchar  unsigned char
  3. #define  uint  unsigned int
  4. #define LCDLCDDisp_Off   0x3e
  5. #define LCDLCDDisp_On    0x3f
  6. #define Page_Add     0xb8//ye
  7. #define LCDCol_Add     0x40//lie
  8. #define Start_Line     0xC0//hang
  9. /*****液晶顯示器的端口定義*****/
  10. #define data_ora P0 /*液晶數(shù)據(jù)總線*/
  11. sbit LCDMcs=P2^1 ;    /*片選1*/
  12. sbit LCDScs=P2^2 ;    /*片選2*/
  13. sbit RESET=P2^3 ;  /*復(fù)位信號(hào)*/
  14. sbit LCDDi=P2^4 ;     /*數(shù)據(jù)/指令 選擇*/
  15. sbit LCDRW=P2^5 ;     /*讀/寫 選擇*/
  16. sbit LCDEnable=P2^6 ;     /*讀/寫 使能*/

  17. uchar *tab;
  18. uint k=0;
  19. uchar code hz1[]=
  20. {
  21. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  22. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  23. /*------------------------------------------------------------------------------
  24.   源文件 / 文字 : 武
  25.   寬×高(像素): 16×16
  26.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  27.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 15:50:18
  28. ------------------------------------------------------------------------------*/
  29. 0x10,0x50,0x34,0x14,0x1C,0xD4,0x16,0x14,0x10,0x7F,0x90,0x12,0x14,0x10,0x10,0x00,
  30. 0x40,0x40,0x7F,0x20,0x20,0x1F,0x11,0x11,0x01,0x00,0x07,0x18,0x20,0x40,0xF0,0x00,
  31. /*------------------------------------------------------------------------------
  32.   源文件 / 文字 : 漢
  33.   寬×高(像素): 16×16
  34.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  35.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 15:51:45
  36. ------------------------------------------------------------------------------*/
  37. 0x10,0x60,0x21,0x96,0x68,0x04,0x1E,0xE4,0x04,0x04,0x04,0xE4,0x1C,0x04,0x00,0x00,
  38. 0x04,0x04,0x7E,0x01,0x40,0x20,0x20,0x10,0x0B,0x04,0x0B,0x10,0x30,0x60,0x20,0x00,
  39. /*------------------------------------------------------------------------------
  40.   源文件 / 文字 : 理
  41.   寬×高(像素): 16×16
  42.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  43.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 15:52:29
  44. ------------------------------------------------------------------------------*/
  45. 0x44,0x44,0xFC,0x54,0x4C,0x04,0xFE,0x92,0x92,0xFE,0x92,0x92,0x92,0xFE,0x00,0x00,
  46. 0x10,0x10,0x0F,0x08,0x48,0x40,0x45,0x44,0x44,0x7F,0x44,0x44,0x44,0x45,0x40,0x00,
  47. /*------------------------------------------------------------------------------
  48.   源文件 / 文字 : 工
  49.   寬×高(像素): 16×16
  50.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  51.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 15:53:19
  52. ------------------------------------------------------------------------------*/
  53. 0x00,0x40,0x22,0x12,0x0A,0x06,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
  54. 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
  55. /*------------------------------------------------------------------------------
  56.   源文件 / 文字 : 大
  57.   寬×高(像素): 16×16
  58.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  59.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 15:53:53
  60. ------------------------------------------------------------------------------*/
  61. 0x20,0x60,0x20,0x30,0x28,0x24,0xA2,0x7F,0xA0,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
  62. 0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x01,0x06,0x08,0x30,0x60,0xC0,0x40,0x00,
  63. /*------------------------------------------------------------------------------
  64.   源文件 / 文字 : 學(xué)
  65.   寬×高(像素): 16×16
  66.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  67.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 15:54:23
  68. ------------------------------------------------------------------------------*/
  69. 0x40,0x70,0x30,0x12,0x5C,0x54,0x52,0x51,0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,
  70. 0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00,

  71. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  72. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  73. };
  74. uchar code hz2[]=
  75. {
  76. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  77. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  78. /*------------------------------------------------------------------------------
  79.   源文件 / 文字 : 信
  80.   寬×高(像素): 16×16
  81.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  82.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 15:56:07
  83. ------------------------------------------------------------------------------*/
  84. 0x80,0x40,0x30,0xFC,0x0F,0x0E,0xAA,0xA8,0xA9,0xAE,0xAA,0xA8,0xA8,0x08,0x08,0x00,
  85. 0x00,0x00,0x00,0x7F,0x00,0x00,0x7E,0x22,0x22,0x22,0x22,0x22,0x7E,0x00,0x00,0x00,
  86. /*------------------------------------------------------------------------------
  87.   源文件 / 文字 : 息
  88.   寬×高(像素): 16×16
  89.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  90.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 15:56:47
  91. ------------------------------------------------------------------------------*/
  92. 0x00,0x40,0x20,0xFC,0x5C,0x54,0x56,0x55,0x54,0x54,0x54,0xFC,0x00,0x00,0x00,0x00,
  93. 0x00,0x20,0x38,0x01,0x3D,0x41,0x41,0x45,0x59,0x41,0x41,0x71,0x00,0x08,0x30,0x00,
  94. /*------------------------------------------------------------------------------
  95.   源文件 / 文字 : 工
  96.   寬×高(像素): 16×16
  97.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  98.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 15:57:52
  99. ------------------------------------------------------------------------------*/
  100. 0x00,0x40,0x22,0x12,0x0A,0x06,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
  101. 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
  102. /*------------------------------------------------------------------------------
  103.   源文件 / 文字 : 程
  104.   寬×高(像素): 16×16
  105.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  106.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 15:58:28
  107. ------------------------------------------------------------------------------*/
  108. 0x10,0x52,0xF2,0xFE,0x99,0x15,0x82,0xBF,0xA1,0xA1,0xA1,0xA1,0xBF,0x80,0x00,0x00,
  109. 0x04,0x03,0x00,0xFF,0x00,0x41,0x44,0x44,0x44,0x7F,0x44,0x44,0x44,0x44,0x40,0x00,
  110. /*------------------------------------------------------------------------------
  111.   源文件 / 文字 : 學(xué)
  112.   寬×高(像素): 16×16
  113.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  114.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 15:59:06
  115. ------------------------------------------------------------------------------*/
  116. 0x40,0x70,0x30,0x12,0x5C,0x54,0x52,0x51,0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,
  117. 0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
  118. /*------------------------------------------------------------------------------
  119.   源文件 / 文字 : 院
  120.   寬×高(像素): 16×16
  121.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  122.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 15:59:51
  123. ------------------------------------------------------------------------------*/
  124. 0xFE,0x42,0x32,0x5A,0x8E,0x0C,0x26,0x24,0x25,0x26,0x24,0x24,0x24,0x0C,0x04,0x00,
  125. 0xFF,0x00,0x02,0x04,0x83,0x41,0x31,0x0F,0x01,0x01,0x7F,0x81,0x81,0x81,0xF1,0x00,

  126. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  127. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  128. };
  129. uchar code hz3[]=
  130. {
  131. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  132. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  133. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  134. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  135. /*------------------------------------------------------------------------------
  136.   源文件 / 文字 : 通
  137.   寬×高(像素): 16×16
  138.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  139.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 16:02:05
  140. ------------------------------------------------------------------------------*/
  141. 0x40,0x41,0xE6,0x10,0x08,0xF6,0x52,0x52,0x56,0xFA,0x5A,0x56,0xF2,0x00,0x00,0x00,
  142. 0x40,0x20,0x1F,0x20,0x40,0x5F,0x42,0x42,0x42,0x5F,0x4A,0x52,0x4F,0x40,0x40,0x00,
  143. /*------------------------------------------------------------------------------
  144.   源文件 / 文字 : 信
  145.   寬×高(像素): 16×16
  146.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  147.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 16:02:40
  148. ------------------------------------------------------------------------------*/
  149. 0x80,0x40,0x30,0xFC,0x0F,0x0E,0xAA,0xA8,0xA9,0xAE,0xAA,0xA8,0xA8,0x08,0x08,0x00,
  150. 0x00,0x00,0x00,0x7F,0x00,0x00,0x7E,0x22,0x22,0x22,0x22,0x22,0x7E,0x00,0x00,0x00,
  151. /*------------------------------------------------------------------------------
  152.   源文件 / 文字 : 工
  153.   寬×高(像素): 16×16
  154.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  155.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 15:57:52
  156. ------------------------------------------------------------------------------*/
  157. 0x00,0x40,0x22,0x12,0x0A,0x06,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
  158. 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
  159. /*------------------------------------------------------------------------------
  160.   源文件 / 文字 : 程
  161.   寬×高(像素): 16×16
  162.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  163.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 15:58:28
  164. ------------------------------------------------------------------------------*/
  165. 0x10,0x52,0xF2,0xFE,0x99,0x15,0x82,0xBF,0xA1,0xA1,0xA1,0xA1,0xBF,0x80,0x00,0x00,
  166. 0x04,0x03,0x00,0xFF,0x00,0x41,0x44,0x44,0x44,0x7F,0x44,0x44,0x44,0x44,0x40,0x00,


  167. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  168. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  169. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  170. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  171. };
  172. uchar code hz4[]=
  173. {

  174. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  175. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  176. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  177. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  178. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  179. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  180. /*------------------------------------------------------------------------------
  181.   源文件 / 文字 : 許
  182.   寬×高(像素): 16×16
  183.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  184.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 16:05:36
  185. ------------------------------------------------------------------------------*/
  186. 0x40,0x41,0x6E,0xD4,0x08,0x44,0x32,0x0F,0x08,0x08,0xF8,0x08,0x08,0x08,0x00,0x00,
  187. 0x00,0x00,0x00,0x7F,0x20,0x11,0x01,0x01,0x01,0x01,0xFF,0x01,0x01,0x01,0x01,0x00,
  188. /*------------------------------------------------------------------------------
  189.   源文件 / 文字 : 萍
  190.   寬×高(像素): 16×16
  191.   字模格式/大小 : 單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序/32字節(jié)
  192.   數(shù)據(jù)轉(zhuǎn)換日期  : 2010-7-31 16:06:07
  193. ------------------------------------------------------------------------------*/
  194. 0x84,0x54,0x64,0x34,0x0C,0xAF,0x26,0x24,0x24,0xFF,0x24,0x24,0xE4,0xA4,0x04,0x00,
  195. 0x10,0x13,0xF9,0x06,0x00,0x08,0x09,0x0A,0x08,0xFF,0x08,0x0A,0x09,0x08,0x08,0x00,
  196. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  197. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  198. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  199. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  200. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  201. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

  202. };
  203. /****************************************************************************
  204. 函數(shù)功能:LCD延時(shí)程序
  205. 入口參數(shù):t
  206. 出口參數(shù):
  207. ****************************************************************************/
  208. void LCDdelay(uchar x)
  209. {


  210.    int d;
  211.    uchar y;
  212.    for(y=0;y<x;y++)
  213.    for(d=0;d<10;d++);
  214. }
  215. /****************************************************************************
  216. 狀態(tài)檢查,LCD是否忙


  217. *****************************************************************************/
  218. void CheckState()                           
  219. {
  220.    uchar dat,DATA;//狀態(tài)信息(判斷是否忙)
  221.    LCDDi=0; // 數(shù)據(jù)指令選擇,D/I(RS)="L" ,表示 DB7∽DB0 為顯示指令數(shù)據(jù)
  222.    LCDRW=1; //R/W="H" ,E="H"數(shù)據(jù)被讀到DB7∽DB0
  223.    do
  224.    {
  225.       DATA=0x00;
  226.       LCDEnable=1;              //EN下降源
  227.                 LCDdelay(1);//延時(shí)
  228.                 dat=DATA;
  229.       LCDEnable=0;
  230.       dat=0x80 & dat; //僅當(dāng)?shù)?位為0時(shí)才可操作(判別busy信號(hào))
  231.     }
  232.     while(!(dat==0x00));
  233. }
  234. /*****************************************************************************
  235. 函數(shù)功能:寫命令到LCD程序,RS(DI)=L,RW=L,EN=H,即來一個(gè)脈沖寫一次
  236. 入口參數(shù):cmdcode
  237. 出口參數(shù):
  238. *****************************************************************************/
  239. void write_com(uchar cmdcode)
  240. {
  241.     CheckState();//檢測LCD是否忙
  242.               LCDDi=0;
  243.               LCDRW=0;
  244.               P0=cmdcode;                           
  245.               LCDdelay(1);
  246.               LCDEnable=1;
  247.               LCDdelay(1);
  248.               LCDEnable=0;
  249. }

  250. /*****************************************************************************
  251. 函數(shù)功能:寫數(shù)據(jù)到LCD程序,RS(DI)=H,RW=L,EN=H,即來一個(gè)脈沖寫一次
  252. 入口參數(shù):LCDDispdata
  253. 出口參數(shù):
  254. *****************************************************************************/
  255. void write_data(uchar LCDDispdata)
  256. {
  257.     CheckState();//檢測LCD是否忙
  258.               LCDDi=1;
  259.               LCDRW=0;
  260.               P0=LCDDispdata;
  261.               LCDdelay(1);
  262.               LCDEnable=1;
  263.               LCDdelay(1);
  264.               LCDEnable=0;
  265. }
  266. /*****************************************************************************
  267. /*****************************************************************************
  268. 函數(shù)功能:LCD初始化程序
  269. 入口參數(shù):
  270. 出口參數(shù):
  271. *****************************************************************************/
  272. void init_lcd()
  273. {
  274.               LCDdelay(1);            
  275.               LCDMcs=1;//剛開始關(guān)閉兩屏
  276.               LCDScs=1;
  277.               LCDdelay(1);
  278.               write_com(LCDLCDDisp_Off);              //寫初始化命令
  279.               write_com(Page_Add+0);
  280.               write_com(Start_Line+0);
  281.               write_com(LCDCol_Add+0);
  282.               write_com(LCDLCDDisp_On);
  283. }
  284. /**************************************************************************
  285. 函數(shù)功能:清除LCD內(nèi)存程序
  286. 入口參數(shù):pag,col,hzk
  287. 出口參數(shù):
  288. *****************************************************************************/
  289. void Clr_Scr()
  290. {
  291.               uchar j,k;
  292.               LCDMcs=0; //左、右屏均開顯示
  293.               LCDScs=0;
  294.               write_com(Page_Add+0);
  295.               write_com(LCDCol_Add+0);
  296.               for(k=0;k<8;k++)//控制頁數(shù)0-7,共8頁
  297.               {
  298.                             write_com(Page_Add+k); //每頁每頁進(jìn)行寫
  299.                               for(j=0;j<64;j++)  //每頁最多可寫32個(gè)中文文字或64個(gè)ASCII字符
  300.                             {
  301.                                   write_com(LCDCol_Add+j);
  302.                                           write_data(0x00);//控制列數(shù)0-63,共64列,寫點(diǎn)內(nèi)容,列地址自動(dòng)加1
  303.                             }
  304.               }
  305. }
  306. /*****************************************************************************
  307. 函數(shù)功能:一行一行顯示
  308. 入口參數(shù):page,column,hzk
  309. 出口參數(shù):
  310. *****************************************************************************/
  311. Disp(uchar page,uchar column, uchar code *word)
  312. {
  313. uchar i;
  314. LCDMcs=0;
  315. LCDScs=1;
  316. write_com(0xb8|page);
  317. write_com(0x40|column);
  318. for(i=0;i<16;i++)
  319. write_data(word[i]);
  320. for(i=32;i<48;i++)
  321. write_data(word[i]);
  322. for(i=64;i<80;i++)
  323. write_data(word[i]);
  324. for(i=96;i<112;i++)
  325. write_data(word[i]);

  326. LCDMcs=1;
  327. LCDScs=0;
  328. write_com(0xb8|page);
  329. write_com(0x40);
  330. for(i=128;i<144;i++)
  331. write_data(word[i]);
  332. for(i=160;i<176;i++)
  333. write_data(word[i]);
  334. for(i=192;i<208;i++)
  335. write_data(word[i]);
  336. for(i=224;i<240;i++)
  337. write_data(word[i]);

  338. LCDMcs=0;
  339. LCDScs=1;
  340. write_com(0xb8|page+1);
  341. write_com(0x40|column);
  342. for(i=16;i<32;i++)
  343. write_data(word[i]);
  344. for(i=48;i<64;i++)
  345. write_data(word[i]);
  346. for(i=80;i<96;i++)
  347. write_data(word[i]);
  348. for(i=112;i<128;i++)
  349. write_data(word[i]);


  350. LCDMcs=1;
  351. LCDScs=0;
  352. write_com(0xb8|page+1);
  353. write_com(0x40);
  354. for(i=144;i<160;i++)
  355. write_data(word[i]);
  356. for(i=176;i<192;i++)
  357. write_data(word[i]);
  358. for(i=208;i<224;i++)
  359. write_data(word[i]);
  360. for(i=240;i<250;i++)
  361. write_data(word[i]);
  362. }

  363. void main()
  364. {
  365.               init_lcd();
  366.               Clr_Scr();
  367.      k=0;
  368.       for(k=0xc0;k<0xff;k++)
  369.               {
  370.                             Disp(0,0,hz1);
  371.                             Disp(2,0,hz2);
  372.                             Disp(4,0,hz3);
  373.                             Disp(6,0,hz4);
  374.          LCDMcs=0;
  375.          LCDScs=0;
  376.                             write_com(k);
  377.                             LCDdelay(2);

  378.               }
  379. while(1)
  380.     {

  381.               }
  382. }
復(fù)制代碼


4小結(jié)
    剛開始學(xué)液晶時(shí)感覺好難,字模就困擾了我好多天。通過看資料查資料,以及看程序搞懂了,通過寫程序仿真,對液晶的控制更明白,主要寫的是并行數(shù)據(jù)傳輸?shù)拇a。寫了一個(gè)漢字的顯示,多個(gè)漢字顯示程序,圖形顯示的程序,還有漢字動(dòng)態(tài)顯示。由于取字模軟件運(yùn)行有點(diǎn)問題,左上角上自動(dòng)多出一撇,所以顯示字或圖形的左上角多出一撇。后面寫一個(gè)漢字一個(gè)漢字顯示程序并仿真,還有波形顯示程序和仿真。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:571794 發(fā)表于 2020-6-5 15:46 | 只看該作者
我剛好在學(xué)習(xí)12864,謝謝樓主
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
欧美日韩在线电影| 91动漫免费网站| 大桥未久一区二区| 亚洲国产精品毛片| 茄子视频成人在线观看 | 国产网站欧美日韩免费精品在线观看| 91精品国产一区二区人妖| 欧美午夜精品一区二区三区| 日韩欧美三级| 免费视频一区三区| 国产一区二区三区网| 国产一区二区三区探花 | 国色天香久久精品国产一区| 欧美综合影院| 一区二区三区国产好| a看欧美黄色女同性恋| 国产劲爆久久| 自拍偷拍精品| 欧美在线日韩| 国产麻豆综合| 另类小说综合欧美亚洲| 国产成人在线影院| 91色乱码一区二区三区| 欧美激情综合五月色丁香小说| 中文字幕巨乱亚洲| 午夜伦欧美伦电影理论片| 91国产免费看| 亚洲成人精品视频| 日韩亚洲一区二区| 欧美一区三区三区高中清蜜桃| 国产精品久久久久久五月尺| 成人女人免费毛片| 亚洲欧美一区二区原创| 九色自拍视频在线观看| 污片在线免费看| 东京热av一区| 国产高清视频免费在线观看| 99视频在线看| aaa级黄色片| 欧美69xx性欧美| 黄页网址大全免费观看| 麻豆免费网站| 麻豆影视在线观看_| 竹内纱里奈兽皇系列在线观看 | 国产后进白嫩翘臀在线观看视频| 久久男人天堂| 国产精品1luya在线播放| 久久中文亚洲字幕| 首页综合国产亚洲丝袜| 99久久免费精品高清特色大片| 亚洲天堂av老司机| 在线观看国产精品网站| 国产成人在线影院| www精品美女久久久tv| 亚洲一区在线观看免费观看电影高清| 欧美亚洲动漫另类| 中文字幕国产精品| 国产欧美在线看| 亚洲一区二区三区在线观看视频| 色综合av综合无码综合网站| 久久精品女同亚洲女同13| 亚洲国产综合久久| 中文在线字幕在线观看| av毛片免费看| 五月花成人网| 国产精品一线| 亚洲综合不卡| 欧美激情一区三区| 欧美日韩一区二区三区四区| 中日韩美女免费视频网站在线观看 | 亚洲专区**| 黄色一区二区三区四区| 大白屁股一区二区视频| 精品国产乱码久久久久久虫虫漫画| 欧美成人video| 91av在线免费观看视频| 欧美在线激情| 美女网站色免费| 欧美日韩中文字幕在线观看| 好吊色一区二区三区| xfplay资源站色先锋在线观看| av在线天堂| 成人在线视频中文字幕| 久热re这里精品视频在线6| 欧美激情中文字幕| 精品国产乱子伦一区| 日韩美女在线观看| 红桃一区二区三区| 老司机福利av| 亚洲成人一二三区| 黄a免费视频| 欧美黄色网页| 国产精品豆花视频| 高潮久久久久久久久久久久久久| 亚洲视频高清| 中文字幕一区在线观看视频| 亚洲国产一区自拍| 成人性生交大片免费看小说| 黄色影院一级片| 国产1区2区3区4区| 护士精品一区二区三区| 香蕉视频网站在线观看| 蜜臀91精品国产高清在线观看| 国产成人在线免费| 欧美日韩精品一区二区| 国产91热爆ts人妖在线| 国产黄页在线观看| 久久精品一级片| 国产情侣高潮对白| 在线āv视频| 在线精品视频在线观看高清| 国产精品三级av在线播放| 日韩av在线不卡| 好吊色欧美一区二区三区| 古装做爰无遮挡三级聊斋艳谭| 四虎影院在线免费播放| 天天干夜夜夜操| 久久影视精品| 久久超碰97中文字幕| 欧美午夜在线观看| 91精品国产综合久久香蕉最新版 | 国内福利视频| 黄色大片在线| 亚洲午夜av| 精品国产乱码久久久久久虫虫漫画| 欧美疯狂做受xxxx高潮| 国产高清www| 国产精品免费av一区二区| japanesexxxxfree在线观看| 色天使综合视频| 久久成人麻豆午夜电影| 欧美一二三区精品| 国产精品久久久一区二区三区| wwwxxxx在线观看| 人妻中文字幕一区| 精品国产99久久久久久| 欧美在线三区| 疯狂欧美牲乱大交777| 日本午夜在线亚洲.国产| 日韩av手机版| 亚洲成人中文字幕在线| 麻豆传媒在线免费| 国产日韩欧美一区| 日韩精品亚洲一区二区三区免费| 色综合天天综合给合国产| 国产精品成人久久久久| 波多野结衣电影免费观看| 天天操天天舔天天干| free性欧美hd另类精品| 国产精品嫩草99av在线| 91精品国产色综合久久不卡蜜臀 | 国产99视频在线| www.中文字幕久久久| 亚洲综合专区| 色狠狠桃花综合| 91在线视频精品| 91精彩刺激对白露脸偷拍| 国产你懂的在线观看| 欧美日韩在线精品一区二区三区激情综合 | 91网址在线看| 欧美成人午夜激情在线| 男人日女人逼逼| 国产精品系列视频| 精品国产丝袜高跟鞋| 视频一区视频二区中文| 精品国产百合女同互慰| 超碰97免费观看| 艳妇乳肉豪妇荡乳av无码福利| 国产中文在线| 免费在线亚洲欧美| 日韩av影视综合网| 女人喷潮完整视频| 亚洲成a人片77777老司机| 日韩av影片| 91在线porny国产在线看| 久久久久久18| 四虎精品一区二区| 免费看岛国视频在线观看| 韩国女主播一区二区三区| 一区二区三区小说| 北条麻妃高清一区| 久久精品国产亚洲AV无码男同| 一个人免费视频www在线观看| 亚洲香蕉网站| 亚洲精品国产精品国产自| 搞av.com| 亚洲色婷婷综合开心网| 不卡亚洲精品| 亚洲日本在线看| 99re视频在线| 五月天综合激情| 精品51国产黑色丝袜高跟鞋| 国产一区视频导航| 久久伊人蜜桃av一区二区| 午夜精品一区二区三区在线播放| 精品人妻在线视频| eeuss影院www免费影院| 成人一区二区| 日韩一级欧美一级| 男女视频网站在线观看| 四虎永久成年免费影院| 国产成人在线中文字幕| 日本韩国一区二区| 伊人天天久久大香线蕉av色| 成人午夜免费福利| 国产精品视频首页| 欧美丝袜一区二区三区| 致1999电视剧免费观看策驰影院| 免费的黄色av| 日本伊人久久| 91黄色激情网站| 老司机激情视频| 2018中文字幕在线| 国产精品videossex| 91久久精品午夜一区二区| 中文字幕中文字幕一区三区| 黄片毛片在线看| 一区二区在线视频观看| 色婷婷av一区二区三区之一色屋| 超碰97免费观看| 欧美一级淫片a免费视频| 久久av免费| 亚洲国产成人在线播放| 亚洲在线观看网站| caoporen人人| 麻豆精品视频在线观看免费| 97国产精品免费视频| 最新一区二区三区| 欧美性爽视频| 亚洲色图欧洲色图| 一区二区三区四区五区精品 | 五月天亚洲综合小说网| 天天舔天天干天天操| 男人的天堂久久| 欧美一区二区美女| 亚洲天堂2018av| 国产1区2区3区| 韩国毛片一区二区三区| 国产精品丝袜久久久久久高清 | 免费在线观看黄视频| 影音先锋在线视频| 精品欧美午夜寂寞影院| 欧美一区二区三区视频免费播放| 亚洲无吗一区二区三区| xxxx影院| 国产成人亚洲综合色影视| 91九色视频导航| 91精品国产乱码久久久| 亚洲视频一起| 日韩精品视频在线播放| 丝袜美腿中文字幕| 污污网站在线看| 亚洲国产日产av| 少妇av一区二区三区无码| h免费在线观看| 韩国理伦片一区二区三区在线播放| 国产欧美韩国高清| 国产wwwxxx| 久久美女精品| 欧美高清视频在线| 九一国产在线观看| 日韩在线观看中文字幕| 精品国产免费人成在线观看| 亚洲一区二区乱码| 天堂av在线电影| 亚洲国产精品久久一线不卡| 日本一区二区黄色| 国产无遮挡在线视频免费观看| 91一区一区三区| 中文字幕一区二区三区在线乱码| 日本tube24xxxxx| 激情综合五月婷婷| 精品日本一区二区三区在线观看| 性欧美高清强烈性视频| 久久国产精品亚洲77777| 91视频-88av| 日日悠悠久久| 石原莉奈在线亚洲三区| 古典武侠综合av第一页| 久久精品亚洲牛牛影视| 日本视频在线一区| 国产一区二区三区四区五区加勒比| 免费男女羞羞的视频网站中文字幕妖精视频 | 男人添女人荫蒂免费视频| 九七伦理97伦理手机| 波多野洁衣一区| 黄色一级片网址| 国产精品国产精品88| 久久精品国产福利| 亚洲图片欧洲图片av| 青娱乐国产在线| 9国产精品午夜| 久久精品视频99| 日本一区二区三区久久| 久久免费av| 国产女同一区二区| 久热久热免费视频中文字幕777| 日韩视频久久| 国产精品日韩一区二区| 人人在草线视频在线观看| 国产成人亚洲精品青草天美| 椎名由奈jux491在线播放| 国产网站av| 亚洲激情图片小说视频| 午夜免费一级片| h片在线观看视频免费| 欧美大黄免费观看| 国产精品99无码一区二区| 色先锋久久影院av| 欧美性视频精品| 亚洲色图网址| 国产资源在线一区| 9191国产视频| 瑟瑟在线观看| 色哟哟一区二区| 免费看裸体网站| 成午夜精品一区二区三区软件| 久久久久久亚洲精品不卡| 亚洲精品喷潮一区二区三区| 老牛国产精品一区的观看方式| 任我爽在线视频精品一| 很黄很a的视频| 狠狠综合久久av一区二区小说| 法国伦理少妇愉情| 亚洲午夜免费| 日av在线播放中文不卡| 欧美18一14sex性处hd| 99热在这里有精品免费| 免费在线观看的毛片| 欧洲性视频在线播放| 亚洲另类激情图| 91女人18毛片水多国产| 久久美女性网| 天天在线免费视频| 国产爆初菊在线观看免费视频网站| 欧美主播一区二区三区| 久久99久久98精品免观看软件 | 老司机av福利| 69av在线| 日韩成人av在线| 国产又大又黄的视频| 青青青爽久久午夜综合久久午夜| 中文字幕在线中文| 欧美精品一区二区三| 自拍偷拍校园春色| 国产精品久久久久9999高清| 中国一区二区三区| 免费黄色网页在线观看| 亚洲欧美综合v| 亚洲精品一区二区三区区别| 国产精品影视在线| 国产av人人夜夜澡人人爽| 日本韩国欧美| 韩国一区二区电影| 日本dvd播放| 亚洲一区电影777| 日韩在线观看视频一区二区| 日韩国产精品一区| 国产三级午夜理伦三级| 一级片a一级片| 欧美丰满老妇熟乱xxxxyyy| 欧美性猛片xxxxx免费中国| 在线观看不卡av| 人妻va精品va欧美va| caoporn国产一区二区| 天堂av.com| 日韩一区二区三区精品| 成人黄色免费片| 久草在线官网| 精品国产乱码久久久久久浪潮| 国产精品一级二级| 国产成人午夜高潮毛片| 日韩精品视频网址| 国产精品一区二区三区美女| 国产一区二区视频在线免费观看| 理论在线观看| 国产一区二区免费| 欧美xxxxb| 亚洲伊人色欲综合网| 久久久久久久国产精品毛片| 在线综合亚洲| 婷婷六月天在线| 国产成人福利av| 开心色怡人综合网站| 免费在线超碰| 色偷偷噜噜噜亚洲男人| 成人精品美女隐私视频| 图片区日韩欧美亚洲| 成人精品在线看| 国产剧情一区二区三区| 黄色av电影网站| 99久久国产综合精品成人影院| 看一级黄色录像| 欧美成人性网| 2019国产精品视频| 91在线播放网站| 欧美激情国内偷拍| 69ww免费视频播放器| 亚洲精品国产拍免费91在线| 深田えいみ中文字幕99久久|