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

標(biāo)題: Protues仿真12864液晶顯示課程設(shè)計(jì)報(bào)告 [打印本頁(yè)]

作者: 51黑ff    時(shí)間: 2016-9-26 18:24
標(biāo)題: Protues仿真12864液晶顯示課程設(shè)計(jì)報(bào)告
word格式的完整文檔下載:
Protues12864液晶顯示.zip (323.18 KB, 下載次數(shù): 105)

Protues仿真液晶顯示

目錄

1  LCD12864簡(jiǎn)介

2 LCD12864顯示原理

2.1漢字和英文顯示原理

2.2圖形顯示

2.3應(yīng)用說(shuō)明

2.4指令描述

3軟件仿真

3.1漢字顯示

3.2圖形顯示

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

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

4小結(jié)


1            LCD12864簡(jiǎn)介
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)陣液晶顯示器組成?赏瓿蓤D形顯示,也可以顯示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ù)相對(duì)應(yīng)。當(dāng)D/I=0時(shí),在E信號(hào)下降沿的作用下,指令碼寫入IR。

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

    DR是用于寄存數(shù)據(jù)的,與指令寄存器寄存指令相對(duì)應(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è)指針,   Y地址計(jì)數(shù)器為DDRAM的Y地址指針。

      X地址計(jì)數(shù)器是沒(méi)有記數(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)系見(jià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è)指令中間必須延長(zhǎng)一段較長(zhǎng)的時(shí)間,即是等待前一個(gè)指令確實(shí)執(zhí)行完成。

2、字符顯示

帶中文字庫(kù)的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碼字符的顯示。帶中文字庫(kù)的128X64-0402B內(nèi)部提供128×2字節(jié)的字符顯示RAM緩沖區(qū)(DDRAM)。字符顯示是通過(guò)將字符顯示編碼寫入該字符顯示RAM實(shí)現(xiàn)的。根據(jù)寫入內(nèi)容的不同,可分別在液晶屏上顯示CGROM(中文字庫(kù))、HCGROM(ASCII碼字庫(kù))及CGRAM(自定義字形)的內(nèi)容。三種不同字符/字型的選擇編碼范圍為:0000~0006H(其代碼分別是0000、0002、0004、0006共4個(gè))顯示自定義字型,02H~7FH顯示半寬ASCII碼字符,A1A0H~F7FFH顯示8192種GB2312中文字庫(kù)字形。字符顯示RAM在液晶模塊中的地址80H~9FH。字符顯示的RAM的地址與32個(gè)字符顯示區(qū)域有著一一對(duì)應(yīng)的關(guān)系,其對(duì)應(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保存的,對(duì)LCD控制器進(jìn)行不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對(duì)于顯示英文操作,由于英文字母種類很少,只需要8位(一字節(jié))即可。而對(duì)于中文,常用卻有6000以上,于是我們的DOS前輩想了一個(gè)辦法,就是將ASCII表的高128個(gè)很少用到的數(shù)值以兩個(gè)為一組來(lái)表示漢字,即漢字的內(nèi)碼。而剩下的低128位則留給英文字符使用,即英文的內(nèi)碼。

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


圖1 “A”字模圖

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


圖2 “你”字模圖

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

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

垂直地址范圍 AC5...AC0

水平地址范圍 AC3…AC0

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

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


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

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

     ②顯示ASCII字符過(guò)程與顯示中文字符過(guò)程相同。不過(guò)在顯示連續(xù)字符時(shí),只須設(shè)定一次顯示地址,由模塊自動(dòng)對(duì)地址加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è)指令中間必須延遲一段較長(zhǎng)的時(shí)間,即等待前一個(gè)指令確定執(zhí)行完成。指令執(zhí)行的時(shí)間請(qǐng)參考指令表中的指令執(zhí)行時(shí)間說(shuō)明。

⑤“RE”為基本指令集與擴(kuò)充指令集的選擇控制位。當(dāng)變更“RE”后,以后的指令集將維持在最后的狀態(tài),除非再次變更“RE”位,否則使用相同指令集時(shí),無(wú)需每次均重設(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è)置頁(yè)地址
CODE:
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
L
L
H
L
H
H
H
頁(yè)地址(0-7)
功能:執(zhí)行本指令后,下面的讀寫操作將在指定頁(yè)內(nèi),直到重新設(shè)置。頁(yè)地址就是DD RAM 的行地址,頁(yè)地址存儲(chǔ)在X地址計(jì)數(shù)器中,A2-A0可表示8頁(yè),讀寫數(shù)據(jù)對(duì)頁(yè)地址沒(méi)有影響,除本指令可改變頁(yè)地址外,復(fù)位信號(hào)(RST)可把頁(yè)地址計(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ù)對(duì)列地址有影響,在對(duì)DD RAM進(jìn)行讀寫操作后,Y地址自動(dòng)加一。
5、狀態(tài)檢測(cè)
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è)置頁(yè)地址”及“設(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è)置頁(yè)地址” 及“設(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)行圖

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


圖3正常顯示

代碼如下所示:

#include


#define LCDLCDDisp_Off   0x3e

#define LCDLCDDisp_On    0x3f

#define Page_Add     0xb8//頁(yè)地址

#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測(cè)試儀液晶字模提取+排版軟件液晶字模提取圖例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測(cè)試儀液晶字模提取+排版軟件液晶字模提取圖例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,即來(lái)一個(gè)脈沖寫一次

入口參數(shù):cmdcode

出口參數(shù):

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

void write_com(unsigned char cmdcode)

{

    CheckState();//檢測(cè)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,即來(lái)一個(gè)脈沖寫一次

入口參數(shù):LCDDispdata

出口參數(shù):

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

void write_data(unsigned char LCDDispdata)

{

    CheckState();//檢測(cè)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++)//控制頁(yè)數(shù)0-7,共8頁(yè)

              {

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

                              for(j=0;j<64;j++)  //每頁(yè)最多可寫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è)控制芯片來(lái)控制,所以有片選信號(hào)端口CS1和CS2。我在字體顯示程序中把改了顯示那一塊的代碼,主程序中改了片選信號(hào)。開始同時(shí)將左右屏都開了,顯示事,左右屏同時(shí)顯示一樣的圖形,并且顯示的圖形不完整。主程序中顯示部分的程序不對(duì),我想了后,將主程序中程序改了一下,先開左屏調(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測(cè)試儀液晶字模提取+排版軟件液晶字模提取圖例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,即來(lái)一個(gè)脈沖寫一次

入口參數(shù):cmdcode

出口參數(shù):

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

void write_com(unsigned char cmdcode)

{

    CheckState();//檢測(cè)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,即來(lái)一個(gè)脈沖寫一次

入口參數(shù):LCDDispdata

出口參數(shù):

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

void write_data(unsigned char LCDDispdata)

{

    CheckState();//檢測(cè)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++)//控制頁(yè)數(shù)0-7,共8頁(yè)

              {

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

                              for(j=0;j<64;j++)  //每頁(yè)最多可寫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è)漢字
  用字模軟件取模后通過(guò)改寫軟件,仿真圖形如圖5所示。


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

代碼如下所示:

#include

#define LCDLCDDisp_Off   0x3e

#define LCDLCDDisp_On    0x3f

#define Page_Add     0xb8//頁(yè)地址

#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[]=

{

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

  源文件 / 文字 : 來(lái)自剪貼板!武漢理工大學(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,即來(lái)一個(gè)脈沖寫一次

入口參數(shù):cmdcode

出口參數(shù):

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

void write_com(unsigned char cmdcode)

{

    CheckState();//檢測(cè)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,即來(lái)一個(gè)脈沖寫一次

入口參數(shù):LCDDispdata

出口參數(shù):

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

void write_data(unsigned char LCDDispdata)

{

    CheckState();//檢測(cè)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++)//控制頁(yè)數(shù)0-7,共8頁(yè)

              {

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

                              for(j=0;j<64;j++)  //每頁(yè)最多可寫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,即來(lái)一個(gè)脈沖寫一次
  236. 入口參數(shù):cmdcode
  237. 出口參數(shù):
  238. *****************************************************************************/
  239. void write_com(uchar cmdcode)
  240. {
  241.     CheckState();//檢測(cè)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,即來(lái)一個(gè)脈沖寫一次
  252. 入口參數(shù):LCDDispdata
  253. 出口參數(shù):
  254. *****************************************************************************/
  255. void write_data(uchar LCDDispdata)
  256. {
  257.     CheckState();//檢測(cè)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++)//控制頁(yè)數(shù)0-7,共8頁(yè)
  297.               {
  298.                             write_com(Page_Add+k); //每頁(yè)每頁(yè)進(jìn)行寫
  299.                               for(j=0;j<64;j++)  //每頁(yè)最多可寫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í)感覺(jué)好難,字模就困擾了我好多天。通過(guò)看資料查資料,以及看程序搞懂了,通過(guò)寫程序仿真,對(duì)液晶的控制更明白,主要寫的是并行數(shù)據(jù)傳輸?shù)拇a。寫了一個(gè)漢字的顯示,多個(gè)漢字顯示程序,圖形顯示的程序,還有漢字動(dòng)態(tài)顯示。由于取字模軟件運(yùn)行有點(diǎn)問(wèn)題,左上角上自動(dòng)多出一撇,所以顯示字或圖形的左上角多出一撇。后面寫一個(gè)漢字一個(gè)漢字顯示程序并仿真,還有波形顯示程序和仿真。


作者: WANGFF    時(shí)間: 2020-6-5 15:46
我剛好在學(xué)習(xí)12864,謝謝樓主




歡迎光臨 (http://m.izizhuan.cn/bbs/) Powered by Discuz! X3.1
青青操综合网| gogogo免费视频观看亚洲一| 麻豆视频在线观看免费| 日韩一级片免费看| 免费看污片的网站| 中国老女人av| 国产精品久久久久久久久免费看| 欧美日韩国产一二三| 99精品视频免费在线观看| 欧美日韩色图| 日本三级一区| 高清视频在线www色| 午夜av免费观看| 国产一级特黄a高潮片| 一道本在线免费视频| 欧美凹凸一区二区三区视频 | 欧美aⅴ一区二区三区视频| 国产国产一区| 超碰97在线免费观看| 你懂的网站在线观看| 亚洲天堂自拍偷拍| 天美传媒免费在线观看| 亚洲精品www.| 日韩精品极品视频在线观看免费| 2019av中文字幕| 亚洲国产日韩欧美综合久久| 精品动漫一区二区三区| 久久综合久久综合久久综合| 国产欧美日本| 国产欧美日韩一区二区三区四区| 免费欧美电影| 92国产在线视频| 日本按摩中出| 欧洲一级毛片| 最近中文字幕第一页| 国产一卡二卡三卡| 久久97人妻无码一区二区三区| 午夜视频在线免费看| 日韩精品在线中文字幕| 日韩欧美亚洲v片| 亚洲已满18点击进入在线看片| 欧美激情视频免费观看| 亚洲人成网在线播放| 欧美猛男男办公室激情| 亚洲va天堂va国产va久| 国产精品成人一区二区三区夜夜夜| 国产精品夜夜嗨| 久久一区视频| 中日韩男男gay无套| 日韩一级毛片| 天美av一区二区三区久久| 欧美成人aaa| 视频在线日韩| 五月天av在线| а√在线中文网新版地址在线| jizz在线观看中文| 日本亚洲欧美| 在线天堂视频| 在线视频三级| 在线免费国产视频| 最新91在线| 老司机色在线视频| 亚洲美女在线免费观看| 日本一区二区三区电影| 可以免费看污视频的网站| 岛国爱情动作片在线| 青娱乐在线视频观看| 手机在线观看你懂的| 最新国产在线精品91尤物| 国产一线天粉嫩馒头极品av| 久久er这里只有精品| 中文字幕av高清片| 性欧美大胆高清视频| 一色屋成人免费精品网| 欧美怡红院在线| 国产三级电影| 99高清免费国产自产拍| 在线观看视频h| 少妇性色午夜淫片aaa播放| 网站在线观看你懂的| 免费看黄色网址| 成人免费乱码大片a毛片软件| xfplay资源站夜色先锋| 天天色天天上天天操| 二区三区中文字幕| 在线免费av观看| 成人在线免费看| 国产最新在线| 欧美一级淫片免费视频魅影视频 | 全国男人的天堂网| 色窝窝无码一区二区三区成人网站| www.久久久久久| 搡老岳熟女国产熟妇| 亚洲国产图片| 91视频导航| 四虎免费av| 国外av在线| 日韩av毛片| 欧美日韩精品免费观看视欧美高清免费大片| 久久久精品久久久久特色影视 | 一区二区三区欧美| 精品人伦一区二区三区蜜桃免费| 婷婷六月综合网| 欧美一区二区三区四区五区 | 黄网站色视频免费观看| 国产视频一区二区视频| 久草免费资源站| 三级在线观看免费大全| 中文字幕免费高清视频| 日本久久91av| 成人91视频| japanese在线视频| www亚洲成人| 欧美偷拍一区二区三区| 久久黄色精品视频| 欧美一级淫片免费视频魅影视频| 在免费jizzjizz在线视频| 麻豆福利视频| av片在线观看网站| 精品一区二区三区在线观看视频| 亚洲肉体裸体xxxx137| 在线高清一区| 蝌蚪91视频| 中文在线视频| 日韩精品美女| 欧美人与牛zoz0性行为| 久久青草久久| 国产精品欧美综合在线| 欧美日韩精品一二三区| 久久久成人精品视频| 91丝袜美腿美女视频网站| 国产精品美女在线播放| 日韩精品aaa| 中文字幕第28页| 五月天婷婷在线观看| 97在线资源在| 第一av在线| 国产va免费精品观看精品视频| 亚洲欧美网站| 国产精品素人一区二区| 7777女厕盗摄久久久| 欧美激情亚洲视频| 欧美日韩一区二区三区在线视频| 无码少妇一区二区三区芒果| 97精品在线播放| 国产欧美视频在线观看| 成人福利免费在线观看| 国产精品草草| 99久久精品免费看国产| 亚洲成人免费电影| 日韩av影院在线观看| 国产99久久精品一区二区| 色中色综合成人| 日本人妻一区二区三区| 免费看毛片网站| 尤物在线观看| а√天堂官网中文在线| 伊人久久综合影院| 国产精品888| 欧美精选午夜久久久乱码6080| 欧美激情一级二级| 天天做天天爱天天高潮| 亚洲国产无码精品| 亚洲国产欧美另类| 精东影业在线观看| 国产一区二区视频在线看| 天堂精品中文字幕在线| 天天亚洲美女在线视频| 欧美精品免费播放| 日本丰满少妇黄大片在线观看| 欧美大片免费播放器| 91成年人视频| 一级片免费视频| 国产999精品在线观看| 麻豆精品国产91久久久久久| 偷窥自拍亚洲色图精选| 国产不卡精品| 国产在线视频精品一区| 欧美猛男男办公室激情| 国产精品久久婷婷六月丁香| 欧美在线观看www| 中日韩黄色大片| av小次郎收藏| 日韩国产一二三区| 国产在线精品免费| 日韩美女天天操| 999国产在线| 中文字幕人妻熟女在线| 人妻少妇一区二区三区| 高清av在线| 国产精品99视频| 亚洲精品视频自拍| 韩日欧美一区二区| 男人舔女人下面高潮视频| 国产91av在线播放| 在线资源av| 日韩一区二区中文| 亚洲va天堂va国产va久| 国产国语刺激对白av不卡| 视频二区在线播放| 亚洲av永久纯肉无码精品动漫| 欧美成人片在线| 911精品美国片911久久久| 亚洲美女免费视频| 日韩av不卡在线| 三级黄色片免费观看| 亚洲av片一区二区三区| 92久久精品| 久久99精品久久久久久动态图 | 成人午夜精品福利免费| wwwxxx在线观看| 激情综合中文娱乐网| 日本韩国欧美在线| 成人av片网址| 91制片厂在线| 婷婷亚洲天堂| 免费黄色成人| 亚洲成人自拍网| 成人在线中文字幕| 卡一卡二卡三在线观看| 黄色三级视频在线观看| 亚洲网一区二区三区| 国产精品传媒入口麻豆| 国产精品www色诱视频| 国产精品偷伦视频免费观看了| 最新亚洲精品国自产在线观看| 一区二区三区电影大全| 成人免费视频一区二区| 欧美精品亚州精品| 久久久久久综合网| 国产精品视频流白浆免费视频| www.久久草.com| 国产精品国产三级国产普通话三级 | 精品国产免费一区二区三区| 黄色香蕉视频在线观看| 天堂影视av| 欧美精品18| 日韩免费一区二区三区在线播放| 伊人情人网综合| 国产一区二区三区中文字幕 | 天海翼在线播放| 欧美亚视频在线中文字幕免费| 亚洲人成网站色在线观看| 成人欧美在线观看| 91麻豆精品成人一区二区| 亚洲精品一区视频| 免费日韩一区二区| 伊人精品在线观看| 中文字幕中文在线| 午夜激情福利视频| 欧美少妇xxxx| 欧美一卡2卡3卡4卡| 日韩人妻无码精品久久久不卡| 欧美熟妇交换久久久久久分类| 日本高清不卡一区二区三区视频| 国产视频一区不卡| 成人午夜激情免费视频| 国产精品50页| 欧洲不卡av| av一二三不卡影片| 国产精品久久久久久亚洲影视| 亚洲一区二区三区四区在线播放 | 久久影院视频免费| 国产噜噜噜噜久久久久久久久| 亚洲少妇xxx| 成人在线免费公开观看视频| 国产酒店精品激情| 欧美一区二粉嫩精品国产一线天| 国产调教在线观看| 蜜桃免费在线| 成人深夜福利app| 国产日韩在线看| 日韩精品1区2区| 波多野在线观看| 国产精品久久99| 久久久99国产精品免费| 国产精品天天操| 国产精品麻豆| 欧美写真视频网站| 欧美日韩在线中文| 一个人看的www在线免费视频 | 你懂得在线视频| 欧美vide| 国产成人午夜片在线观看高清观看| 欧美在线国产精品| 国产精久久久久久| 欧美大片免费高清观看| 性久久久久久久| 欧美久久在线观看| 情趣视频在线观看| 亚洲一区二区三区四区五区午夜| 久久久久久久激情视频| 加勒比婷婷色综合久久| 欧美xxxx黑人又粗又长| 亚洲精品成人a在线观看| 中国一区二区三区| 国产美女自拍视频| 亚洲国产专区| 亚洲3p在线观看| 久久青青草视频| 亚洲91在线| 日韩欧美中文一区| 日本中文字幕精品| 欧美套图亚洲一区| 国产无人区一区二区三区| 欧美一区二区在线| 久草国产视频| 国产亚洲午夜| 国产精品爽爽爽爽爽爽在线观看| 瑟瑟视频在线免费观看| 视频一区日韩精品| 亚洲国产日韩欧美在线图片| 97精品人人妻人人| 久久久久久久久免费视频| 一色屋精品亚洲香蕉网站| 国产免费一区二区三区四在线播放 | 国产伦精品一区三区精东| 激情小说 在线视频| 国产精品天美传媒沈樵| 日本黄网站色大片免费观看| 黄色大片在线观看| 国产麻豆精品一区二区| 精品国产一区二区三区四区精华| 天天摸天天干天天操| 欧美三级乱码| 国产精品久久久久久久久久久久久久 | www.av91| 免费毛片aaaaaa| 国产午夜精品美女毛片视频| 久久久无码中文字幕久...| 成年免费插网| 成人短视频下载 | 国产精品久久久久久久久夜色| 成人h动漫精品一区二区器材| 在线精品视频视频中文字幕| 色之综合天天综合色天天棕色 | h色网站在线观看| 成人国产精品一区二区免费麻豆| 欧美一区二区视频观看视频| 免费成人深夜天涯网站| 精品美女一区| 亚洲欧美日韩视频一区| 国产在线一区视频| 日本亚洲不卡| 午夜精品99久久免费| 亚洲欧美高清视频| 亚洲精品看片| 国产精品一区二| 人人插人人干| 久久精品欧美日韩精品| 成人小视频在线看| 黄色免费网站在线| 91精品国产麻豆| 一区视频免费观看| 午夜精品福利影院| 日韩美女福利视频| 四虎影视最新网站入口在线观看| 日韩中文字幕亚洲一区二区va在线 | 污污内射在线观看一区二区少妇| 成人性生交大片免费看网站| 日韩免费性生活视频播放| 校园春色 亚洲| 四虎5151久久欧美毛片| 国产精品高潮视频| 国产亚洲精品久久久久久移动网络 | 中文字幕一区久| 精品一区电影国产| 加勒比在线一区| 欧美国产免费| 美乳视频一区二区| 男女18免费网站视频| 五月综合激情婷婷六月色窝| 欧美成人三级伦在线观看| 国产第一亚洲| 性欧美xxxx交| 久热国产视频| 久久精品免视看| 久久综合桃花网| 亚洲青青一区| 欧美亚洲伦理www| 国产高清大尺度一区二区不卡| 91视频你懂的| 欧美第一页浮力影院| 另类激情视频| 欧美黑人狂野猛交老妇| 影音先锋在线中文| 91丨porny丨户外露出| 色哟哟在线观看视频| 四虎国产精品永久在线国在线| 久久久亚洲天堂| 国产精品18久久久久网站| 中文字幕乱码日本亚洲一区二区| 女人扒开腿免费视频app| 另类一区二区| 日产日韩在线亚洲欧美| www视频网站| 狠狠久久亚洲欧美专区| 曰本女人与公拘交酡| 欧美精品91| 亚洲色图都市激情|