找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3983|回复: 0
打印 上一主题 下一主题
收起左侧

ST7920 KS0108 T6963C液晶显示模块12864的应用资料

[复制链接]
跳转到指定楼层
楼主
ID:105323 发表于 2016-2-24 20:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
(一)常见12864液晶的控制器种类
1ST7920 这种控制器带中文字库,该控制器的液晶还支持画图方式,支持68时序8位和4位并口以及串口。
2KS0108 这种控制器指令简单,不带字库。支持68时序8位并口。
3T6963C  这种控制器功能强大,带西文字库。有文本和图形两种显示方式。有文本和图形两个图层,并且支持两个图层的叠加显示。支持80时序8位并口。
4COG  常见的控制器有S6B0724ST7565,这两个控制器指令兼容。支持68时序8位并口,80时序8位并口和串口。COG类液晶的特点是结构轻便,成本低。
下面以KS0108控制器为例,讲解这种液晶显示模块的用法。
(二)以KS0108为控制器的液晶显示模块结构图
1、外形图(正反面)

2、内部结构框图


注:KS108B及兼容芯片,IC2控制模块的左半屏,IC1控制模块的右半屏,IC3为行驱动器,IC1IC2 为列驱动器。

(三)12864液晶显示模块技术参数和接口


(四)12864液晶显示模块的操作指令

1、指令表


2 基本操作时序:
1)读状态:输入:RS=L,R/W=H,CS1 CS2=H,E=H输出:D0D7=状态字
2)写指令:输入:RS=L,R/W=L,D0D7=指令码,CS1CS2=H,E=高脉冲输出:无
3)读数据:输入:RS=H,R/W=H,CS1 CS2=H,E=H输出:D0D7=数据
4)写数据:输入:RS=H,R/W=L,D0D7=数据,CS1CS2=H,E=高脉冲输出:无

3、指令说明



(四)与51单片机的连接




                                                (五)测试程序
          ORG 0000H
          AJMPKS
            ORG 0003H
            RETI
             ORG 000BH
            LJMP 0C00H
        RETI
           ORG 001BH
           RETI

         ORG 0023H
      ; AJMPS        ;接收数据转S

        RSPIN  EQU    80h
        RWPIN  EQU    81h
        EPIN   EQU    82h
         CS1PIN EQU    83h
         CS2PIN EQU    84h
        XPOS   EQU    1AH            ;列方向地址指针(用于LCDPOS子程序)
        YPOS   EQU    1BH            ;行方向地址指针(用于LCDPOS子程序)
KS:    LACALL  MAIN;显示汉字
             LCALL QXS3;清显示
             LCALL SBQ;画正弦波
             AJMP KS

MAIN:   MOVYPOS,#0
            MOV XPOS,#0
       LCALL   LCDRESET      ;初始化显示器
       MOV A,#55H
       ACALL LCDFILL  ;划线
             MOVDPTR,#PL;0900H      ;显示户名:频率
            MOV R7,#32
            LCALL PAC_PA
             MOVDPTR,#MH;09E0H    ;输出空格
            MOV R7,#32
            LCALL PAC_PA

            MOV R0,#30H
            MOV R2,#2
            LCALLXSBH1            ;显示2e~2fH中的数字

            MOV DPTR,#KG         ;输出一个空格占一个汉字的宽度16*16
           MOV R7,#16
           LCALL PAC_PA
            MOV DPTR,#KG         ;输出一个空格
           MOV R7,#16
           LCALL PAC_PA


            MOVXPOS,#0            ;在第二行显示户号:
           MOV YPOS,#2
       MOVDPTR,#XP;09A0H    芯片
           MOV R7,#32;48
           LCALL PAC_PA;call putchardot

            MOV DPTR,#MH      ;输出冒号
            MOV R7,#32
            LCALL PAC_PA

            MOVR0,#32H            ;22H-2DH12个数据,2EH,2FH存频率
            MOV R2,#2
           CALLXSBH1                    ;显示30~33H中的数字
           MOV DPTR,#KG         ;输出一个空格
           MOV R7,#16
           LCALL call PAC_PA
           MOV DPTR,#KG         ;输出一个空格
           MOV R7,#16
           LCALL PAC_PA


     MOV DPTR,#SJ;0940H ;显示数据:
     MOV R7,#32;48
     LCALL PAC_PA
     MOV DPTR,#MH;09E0H
     MOV R7,#32
     LCALL PAC_PA

      MOVXPOS,#64          ;在第四行显示数据
     MOV YPOS,#4
      MOVR0,#34H       ;22H-2DH12个数据,2EH,2FH存频率
      MOV R2,#10
     LCALLXSBH1            ;显示30~33H中的数字
     MOV DPTR,#KG         ;输出一个空格
     MOV R7,#16
     LCALL PAC_PA
     MOV DPTR,#KG         ;输出一个空格
     MOV R7,#16
     LCALL PAC_PA
      RET

XSBH:
      MOVR0,#30H            ;表号在30-36H
      MOV R2,#5   ;;;;
XSBH1:  MOVDPTR,#0800H
      MOVA,@R0        ;表号是0-9的数字,点阵数是16
      ANL A,#0F0H
      SWAP A
      MOVB,#16          ;根据表号乘以16就是该数字的点阵存储区首址DPTR
      MUL AB
      MOV DPL,A
      MOV A,B
      ADD A,DPH
      MOV DPH,A
      MOV R7,#8
      LCALL PAC_PA
XSBH2:  MOV DPTR,#0800H
      MOVA,@R0        ;表号是0-9的数字,点阵数是16
      ANL A,#0FH
      MOVB,#16          ;根据表号乘以16就是该数字的点阵存储区首址DPTR
      MUL AB
      MOV DPL,A
      MOV A,B
      ADD A,DPH
      MOV DPH,A
      MOV R7,#8
      LCALL PAC_PA
      INC R0
      DJNZ R2,XSBH1
      RET

SBQ:   MOV DPTR,#SINE      ;128*64液晶画线子程序
sbq2:   MOV R0,#22H
       MOV B,1FH
       MOV A,#127
       DIV AB
       MOV R5,A;#64;127;255
          MOVXPOS,#0
SBQ3:   MOVR3,#0
       MOVR2,1FH;#2;1;2;4;8   ;R2数值决定水平拉伸,与R5配合
SBQ1:       CLR A
       MOVC A, @A DPTR
       MOV @R0,A
       MOVB,#4;20H;32         ;输出线段,255/4=63,采集的数据压缩4
       DIV AB
       PUSHDPH                 ;查表得到Y(X)
       PUSH DPL
       MOV DPTR,#CB
       MOVC A, @A DPTR
       POP DPL
       POP DPH
       INC DPTR
       INC R0
       ORL A,R3
       MOV R3,A
       DJNZ R2, SBQ1
        MOV R2,1FH
SBQ0:   DEC R0
        DJNZ R2,SBQ0
       MOVA,@R0                ;得到Y坐标
       MOVB,#32                ;256/32=8,采集的数据压缩8
       DIV AB
       MOV YPOS,A
       MOV    A,R3           ;Y(X)
       CALL   LCDWRITE       ;定位并写数据
       CALL   CUSORNEXT      ;X=X 1
       DJNZ R5,SBQ3
       RET

QXS3:      MOV R6,#8
QXS2:      MOV  YPOS,#0
QXS1:      MOVA,#0H             ;清显示,把最后一行清除
            MOV    R7,A
PB1:         MOV    XPOS,#0
PA1:         MOV    A,R7
            CALL   LCDWRITE       ;定位并写数据
            CALL   CUSORNEXT
            MOV    A,XPOS
            JNZ    PA1         ;XPOS<128则循环(128列)CUSORNEXT子程序当x=128x=0y=y 1
            DJNZ R6,QXS1
      RET

PUTCHARDOT:                 ;写显示
      MOV     R7,#64
PAC_PA:
      CLR A
      MOVC    A,@ADPTR
      CALL    LCDWRITE
      INC YPOS
      INC DPTR
      CLR A
      MOVC    A,@ADPTR
      CALL    LCDWRITE
      DEC      YPOS
      INC DPTR
      CALL    CUSORNEXT
      MOV     A,XPOS
      JNZ PAC_LAX
      INC YPOS
PAC_LAX:
      DJNZ     R7,PAC_PA
      RET
LCDFILL:                       ;LCD整屏显示A的内容
       MOV    R7,A
       MOV    YPOS,#0
LFL_PB:MOV    XPOS,#0
LFL_PA:MOV    A,R7
       CALL   LCDWRITE       ;定位并写数据
       CALL   CUSORNEXT
       MOV    A,XPOS
       JNZ    LFL_PA         ;XPOS<128则循环(128列)
       MOV    A,YPOS
       JNZ    LFL_PB         ;YPOS<8则循环(8页)
       RET
LCDWRITE:                   ;定位并写数据子程序
       CALL   LCDPOS      ;内部写数指针定位
       CALL   LCDWD       ;写数据
       RET
CUSORNEXT:
      ANL      YPOS,#7
      INC XPOS
      MOV     A,XPOS
      JNB ACC.7,CNT_LAX
      MOV     XPOS,#0
      INC YPOS
      MOV     A,YPOS
      ANL      A,#0F8H
      JZ   CNT_LAX
      MOV     YPOS,#0
CNT_LAX:
      RET
LCDPOS:                     ;内部写数指针定位子程序
       PUSH   ACC
       MOV    A,XPOS
       JB     ACC.6,LPS_LAY
       MOV    A,YPOS      ;XPOS列方向小于64则对CS1操作
       ANL    A,#07H
       ADD    A,#0B8H
       CALL   LCDWC1      ;设页码
       MOV    A,XPOS
       ANL    A,#3FH
       ORL    A,#40H
       CALL   LCDWC1      ;设列码
       JMP    LPS_LAX
LPS_LAY:MOV    A,YPOS      ;XPOS列方向大于等于64则对CS2操作
       ANL    A,#07H
       ADD    A,#0B8H
       CALL   LCDWC2      ;设页码
       MOV    A,XPOS
       ANL    A,#3FH
       ORL    A,#40H
       CALL   LCDWC2      ;设列码
LPS_LAX:POP    ACC
       RET
LCDWD:                         ;送数据子程序
       MOV    B,A
       MOV    A,XPOS
       JB     ACC.6,LWD_LAY
       MOV    A,B            ;XPOS列方向小于64则对CS1操作
       CALL   LCDWD1
       JMP    LWD_LAX
LWD_LAY:MOV    A,B            ;XPOS列方向大于等于64则对CS2操作
       CALL   LCDWD2
LWD_LAX:
       RET
LCDRESET:                      ;LCD控制器复位
       MOV    A,#3FH         ;打开LCD显示
       CALL   LCDWC1
       CALL   LCDWC2
       MOV    A,#0C0H        ;设显示起始行
       CALL   LCDWC1
       CALL   LCDWC2
       RET
LCDWC1:                        ;送片1控制字子程序
       CALL   WAITIDLE1
       MOV    P1,A
       CLR    RSPIN          ;RS=0 RW=0 CS1=1 E=高脉冲
       CLR    RWPIN
       SETB   CS1PIN
       SETB   EPIN
       NOP
       CLR    EPIN
       CLR    CS1PIN
       RET
LCDWC2:                        ;送片2控制字子程序
       CALL   WAITIDLE2
       MOV    P1,A
       CLR    RSPIN          ;RS=0 RW=0 CS2=1 E=高脉冲
       CLR    RWPIN
       SETB   CS2PIN
       SETB   EPIN
       NOP
       CLR    EPIN
       CLR    CS2PIN
       RET
LCDWD1:                        ;1写数据子程序
       CALL   WAITIDLE1
       MOV    P1,A
       SETB   RSPIN          ;RS=1 RW=0 CS1=1 E=高脉冲
       CLR    RWPIN
       SETB   CS1PIN
       SETB   EPIN
       NOP
       CLR    EPIN
       CLR    CS1PIN
       RET
LCDWD2:                        ;2写数据子程序
       CALL   WAITIDLE2
       MOV    P1,A
       SETB   RSPIN          ;RS=1 RW=0 CS2=1 E=高脉冲
       CLR    RWPIN
       SETB   CS2PIN
       SETB   EPIN
       NOP
       CLR    EPIN
       CLR    CS2PIN
       RET
      
WAITIDLE1:
       MOV    P1,#0FFH
       CLR    RSPIN          ;RS=0 RW=1 CS1=1 E=高电平
       SETB   RWPIN
       SETB   CS1PIN
       SETB   EPIN
WT1_PA: NOP
       JB     P1.7,WT1_PA
       CLR    EPIN
       CLR    CS1PIN
       RET
WAITIDLE2:
       CLR    RSPIN          ;RS=0 RW=1 CS2=1 E=高电平
       SETB   RWPIN
       SETB   CS2PIN
       SETB   EPIN
WT2_PA: NOP
       JB     P1.7,WT2_PA
       CLR    EPIN
       CLR    CS2PIN
       RET
LCDRD1:                        ;1读数据子程序
       CALL   WAITIDLE1
       MOV    P1,#0FFH
       SETB   RSPIN          ;RS=1 RW=1 CS1=1 E=高电平
       SETB   RWPIN
       SETB   CS1PIN
       SETB   EPIN
       MOV    A,P1
       CLR    EPIN
       CLR    CS1PIN
       RET
LCDRD2:                        ;2读数据子程序
       CALL   WAITIDLE2
       MOV    P1,#0FFH
       SETB   RSPIN          ;RS=1 RW=1 CS1=2 E=高电平
       SETB   RWPIN
       SETB   CS2PIN
       SETB   EPIN
       MOV    A,P1
       CLR    EPIN
       CLR    CS2PIN
       RET

HZKDOT:
      ORG 0800H
;(0)
DB0F0H,03H,0F8H,07H,0CH,0CH,0C4H,08H,0CH,0CH,0F8H,07H,0F0H,03H,00H,00H
;(1)
DB00H,00H,10H,08H,18H,08H,0FCH,0FH,0FCH,0FH,00H,08H,00H,08H,00H,00H
;(2)
DB08H,0EH,0CH,0FH,84H,09H,0C4H,08H,64H,08H,3CH,0CH,18H,0CH,00H,00H
;(3)
SZ3:DB08H,04H,0CH,0CH,44H,08H,44H,08H,44H,08H,0FCH,0FH,0B8H,07H,00H,00H
;(4)
sz4:DB0C0H,00H,0E0H,00H,0B0H,00H,98H,08H,0FCH,0FH,0FCH,0FH,80H,08H,00H,00H
;(5)
sz5:DB7CH,04H,7CH,0CH,44H,08H,44H,08H,44H,08H,0C4H,0FH,84H,07H,00H,00H
;(6)
DB0F0H,07H,0F8H,0FH,4CH,08H,44H,08H,44H,08H,0C0H,0FH,80H,07H,00H,00H
;(7)
DB0CH,00H,0CH,00H,04H,0FH,84H,0FH,0C4H,00H,7CH,00H,3CH,00H,00H,00H
;(8)
DB0B8H,07H,0FCH,0FH,44H,08H,44H,08H,44H,08H,0FCH,0FH,0B8H,07H,00H,00H
;(9)
DB38H,00H,7CH,08H,44H,08H,44H,08H,44H,0CH,0FCH,07H,0F8H,03H,00H,00H
;(A)
DB0E0H,0FH,0F0H,0FH,98H,00H,8CH,00H,98H,00H,0F0H,0FH,0E0H,0FH,00H,00H
;(B)
DB04H,08H,0FCH,0FH,0FCH,0FH,44H,08H,44H,08H,0FCH,0FH,0B8H,07H,00H,00H
;(C)
DB0F0H,03H,0F8H,07H,0CH,0CH,04H,08H,04H,08H,0CH,0CH,18H,06H,00H,00H
;(D)
DB04H,08H,0FCH,0FH,0FCH,0FH,04H,08H,0CH,0CH,0F8H,07H,0F0H,03H,00H,00H
;(E)
DB04H,08H,0FCH,0FH,0FCH,0FH,44H,08H,0E4H,08H,0CH,0CH,1CH,0EH,00H,00H
;(F)
DB04H,08H,0FCH,0FH,0FCH,0FH,44H,08H,0E4H,00H,0CH,00H,1CH,00H,00H,00H
XP:;()
DB04H,08H,04H,07H,04H,00H,04H,3FH,1FH,40H,04H,40H,44H,40H,84H,40H,04H,43H,04H,40H,1FH,40H,04H,40H,04H,70H,06H,01H,04H,0EH,00H,00H
;()
DB00H,80H,00H,40H,0FEH,3FH,20H,01H,20H,01H,20H,01H,20H,01H,20H,01H,3FH,01H,20H,0FFH,20H,00H,20H,00H,20H,00H,30H,00H,20H,00H,00H,00H
ce:;()
DB10H,04H,22H,04H,6CH,0FEH,00H,01H,80H,40H,0FCH,27H,04H,10H,0F4H,0FH,04H,10H,0FEH,67H,04H,00H,0F8H,47H,00H,80H,0FEH,7FH,00H,00H,00H,00H
SJ:;(数据)
DB10H,02H,92H,82H,54H,4EH,30H,33H,0FFH,22H,50H,52H,94H,8EH,32H,40H
DB0D8H,23H,17H,14H,10H,08H,10H,16H,0F0H,61H,18H,0C0H,10H,40H,00H,00H
DB10H,02H,10H,42H,10H,81H,0FFH,7FH,90H,40H,50H,38H,0FEH,07H,92H,0FCH,92H,44H,92H,44H,0F2H,47H,92H,44H,92H,44H,0DFH,0FEH,82H,04H,00H,00H
PL:;()
DB40H,08H,7CH,87H,40H,40H,0FFH,2FH,48H,10H,6CH,0FH,4AH,80H,0F2H,8FH,12H,40H,1AH,20H,0D6H,1FH,12H,20H,12H,40H,0FBH,0CFH,12H,00H,00H,00H
;()
DB00H,08H,14H,09H,0A4H,08H,44H,08H,04H,09H,24H,09H,0B5H,09H,6EH,0FFH,24H,09H,94H,09H,04H,0BH,44H,08H,0A6H,08H,14H,0DH,00H,08H,00H,00H
MH:;(:)
DB00H,00H,00H,00H,00H,00H,00H,00H,80H,31H,0C0H,7BH,0C0H,7BH,80H,31H
DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
KG:;( )
DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
FS:;(0A20H)()(8008)
DB      00H,40H,10H,20H,18H,90H,16H,88H,10H,46H,90H,41H,0F0H,23H,9FH,14H,90H,08H,90H,14H,92H,22H,94H,21H,10H,40H,18H,0C0H,10H,40H,00H,00H
;(0A40H)()(8009)
DB 40H,00H,42H,40H,44H,20H,0CCH,1FH,80H,20H,88H,40H,89H,0A0H,8AH,90H,8CH,8CH,0F8H,83H,8CH,88H,8AH,90H,89H,0B0H,0C8H,0C0H,80H,40H,00H,00H
JIE:;(0A60H)()(800a)
DB 10H,02H,10H,42H,10H,81H,0FFH,7FH,90H,02H,54H,02H,44H,82H,54H,8AH,0E5H,57H,46H,22H,64H,32H,54H,4EH,46H,0C2H,44H,03H,00H,02H,00H,00H
;(0A80H)()(800b)
DB 00H,00H,0F8H,0FH,00H,04H,00H,02H,0FFH,0FFH,00H,80H,80H,80H,60H,40H,0DFH,21H,10H,16H,10H,08H,10H,16H,0F0H,61H,18H,0C0H,10H,40H,00H,00H

SINE:
DB 07FH 085H 08BH 092H 098H 09EH 0A4H 0AAH 0B0H 0B6H 0BBH0C1H 0C6H 0CBH 0D0H 0D5H
DB 0D9H 0DDH 0E2H 0E5H 0E9H 0ECH 0EFH 0F2H 0F5H 0F7H 0F9H0FBH 0FCH 0FDH 0FEH 0FEH
DB 0FEH 0FEH 0FEH 0FDH 0FCH 0FBH 0F9H 0F7H 0F5H 0F2H 0EFH0ECH 0E9H 0E5H 0E2H 0DDH
DB 0D9H 0D5H 0D0H 0CBH 0C6H 0C1H 0BBH 0B6H 0B0H 0AAH 0A4H09EH 098H 092H 08BH 085H
DB 07FH 079H 073H 06CH 066H 060H 05AH 054H 04EH 048H 043H03DH 038H 033H 02EH 029H
DB 025H 021H 01CH 019H 015H 012H 00FH 00CH 009H 007H 005H003H 002H 001H 000H 000H
DB 000H 000H 000H 001H 002H 003H 005H 007H 009H 00CH 00FH012H 015H 019H 01CH 021H
DB 025H 029H 02EH 033H 038H 03DH 043H 048H 04EH 054H 05AH060H 066H 06CH 073H 079H
END



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表