深圳市炜烨兴电子有限公司|LCD在线|智能串口液晶
注册| 登录| 通行证 生产液晶显示模块哪家强?Wayeah LCM!专业的液晶显示模块研发、生产厂家!

首页 新闻 字符型| 图形型| 定制型| 智能型| 技术应用 留言反馈 联系方式 |

当前位置液晶应用技术 >> HT1621的汇编驱动代码--适合MCS51内核MCU

HT1621的汇编驱动代码--适合MCS51内核MCU

 

 

   HT1621是驱动段式液晶的典型芯片电路,不同的LCD其驱动显示的代码是很大的差别,以下的代码仅供参考,对于显示其它的LCD,它是不可能显示出正常的效果。

用户应取其思路。

 

; 用来测试KM3006的程序
; KM3006A for LCM 1621
; KM3006
 ;R1--传递指令码/显示码
 ;R0--传递地址
 CS BIT P3.0 ;CS FOR KM3006
 _WR BIT P3.1
 DAT BIT P3.2
 LED BIT P3.3
 KEY BIT P3.4
 DDD EQU 60H
 
 ORG     0000H
 LJMP    START
 
 ORG     0030H
 
START: 
       SETB KEY
        MOV SP,#67H
        MOV R1,#00000001B   ;SYS EN   (use interal clock)
        LCALL COM
        MOV R1,#00011000B   ;RC 256K  (system default)
        LCALL COM
        MOV R1,#00101001B;  ;BIAS 1/3 (use com0~com3)
        LCALL COM
        MOV  R1,#00000011B   ;LCD ON
        LCALL  COM
        LCALL DIS_ALL
        LCALL DELAY
DISPK:  ;DISPLAY ICONS FOR KM3002
        LCALL CLEAR
        LCALL DELAY
        MOV  R0,#0
        MOV R1,#01H
        LCALL INDA
        LCALL  DELAY1
        LCALL DELAY1
        MOV R1,#03H
        LCALL INDA
        LCALL DELAY1
        LCALL  DELAY1
        MOV R1,#07H
        LCALL INDA
        LCALL DELAY1
        LCALL  DELAY1
        MOV R1,#0FH
        LCALL INDA
        LCALL DELAY1
        LCALL  DELAY1
        MOV R0,#2
LOOP1: MOV  R1,#01H  ;ICONS FOR KM3002
        LCALL  INDA
        INC R0
        INC R0
        LCALL DELAY1
        LCALL  DELAY1
        CJNE R0,#16,LOOP1
        LCALL DELAY
        LCALL CLEAR
 
        MOV DDD,#0
        LCALL DIS_NUMBER
        LCALL DELAY
 
        MOV DDD,#2
        LCALL DIS_NUMBER
        LCALL DELAY
 
        MOV DDD,#4
        LCALL DIS_NUMBER
        LCALL DELAY
 
        MOV DDD,#8
        LCALL DIS_NUMBER
        LCALL DELAY
        CPL LED
        LCALL CLEAR
        LJMP START
;=======================================
DIS_NUMBER:
        PUSH DDD
        MOV DPTR,#TAB_3006
        MOV A,DDD
        MOVC A,@A+DPTR
        MOV DDD,A
        MOV R0,#1
DDDD: 
        MOV A,DDD
        SWAP A
        MOV R1,A
        LCALL INDA
        INC R0
        MOV R1,DDD
        LCALL INDA
        INC R0
        LCALL DELAY1
        LCALL DELAY1
        CJNE R0,#17,DDDD
        POP DDD
        RET
;=======================================
CLEAR: MOV  R0,#0
        MOV  R1,#00H
REPP: LCALL  INDA
        INC R0
        CJNE  R0,#32,REPP
;    LCALL  MS200
        RET
;=======================================
DIS_ALL:
        MOV R0,#0     ;THE ADDRESS OF display content
        MOV  R1,#0FH    
REP1:   LCALL  INDA
        INC R0
        CJNE  R0,#32,REP1
        RET
;====================================
COM: 
        CLR CS
        LCALL INCOM
        SETB CS
        RET
;=====================================
INDA:
        CLR CS
        LCALL INDAT
        SETB CS
        RET
;--------------------------------
INCOM: 
        NOP
        MOV A,#10000000B
        MOV R7,#3
SPT1:   RLC A
        MOV DAT,C
        NOP
        CLR _WR
        NOP
        SETB _WR
        NOP
        DJNZ R7,SPT1
        MOV A,R1
        MOV R7,#9
SPT2:   RLC A
        MOV DAT,C
        NOP
        CLR _WR
        NOP
        SETB _WR
        NOP
        DJNZ R7,SPT2
        RET
;==============================
INDAT: 
        NOP
        MOV A,#10100000B
        MOV R7,#3
SPP1:   RLC A
        MOV DAT, C
        NOP
        CLR _WR
        NOP
        SETB _WR
        NOP
        DJNZ R7,SPP1 ;SEND'WRITE'INSTRUCTION TO 1621 CONTROLER
        MOV A,R0        ;ADDRESS(FROM 0~31)
        RLC A  ;LOW 6 BIT IS AVAILABITITY
        RLC A  ;
        MOV R7,#6
SPP2:   RLC A
        MOV DAT,C
        NOP
        CLR _WR
        NOP
        SETB _WR
        NOP
        DJNZ R7,SPP2
        MOV A,R1 ;DATA
        RLC A
        RLC A
        RLC A
        RLC A  ;MISSING HIGH 4 BIT
        MOV R7,#4 ;Low 4 bit is D0,D1,D2,D3
SPP3:   RLC A
        MOV DAT,C
        NOP
        CLR _WR
        NOP
        SETB _WR
        NOP
        DJNZ R7,SPP3
        NOP
        RET
;================================
DELAY:
        MOV  50H,#100
D2:     MOV  51H,#0
        LCALL MS100
D1:     SETB KEY
        JNB  KEY,KEY_PAUSE
        DJNZ 51H,D1
        LCALL MS100
        DJNZ 50H,D2
        RET
KEY_PAUSE:
        LCALL PAUSE
        RET
PAUSE: 
        SETB KEY  ;PAUSE KEY PROCESS
        SETB KEY
        LCALL MS100
        JNB KEY,PAUSE  ;CHECK KEY WAS PRESSED
PAUSE1: 
        LCALL MS100
        JB KEY,PAUSE1  ;CHECK KEY OPEN AFTER PRESSED
PAUSE2: SETB KEY
        SETB KEY
        LCALL MS100
        JNB KEY,PAUSE2  ;CHECK KEY WAS PRESSED AGAIN
        RET
;========================================
delay1:
        MOV 53H,#0ffh
DEL11:  MOV 54H,#0ffh
        DJNZ 54H,$
        DJNZ 53H,del11
        RET
;--------------------------------
MS200:  MOV     50h,#10
QEAT:   SETB    KEY
        SETB    KEY
QEA1:   LCALL   MS100
        JB      KEY,$
QEA2:   LCALL   MS100
        JNB KEY,$
        LCALL MS100
        RET
;--------------------------------
MS100:  MOV R5,#100
        DJNZ R5,$
        RET
;--------------------------------
TAB_3002:
 DB 0AFH ;0
 DB 0A0H ;1
 DB 06BH ;2
 DB 0E3H ;3
 DB 0E4H ;4
 DB 0C7H ;5
 DB 0CDH ;6
 DB 0A2H ;7
 DB 0EFH ;8
 DB 0E7H ;9
 
TAB_3006:
 DB 0BEH; 07DH ;0
 DB 0A0H; 005H ;1
 DB 07CH; 03EH ;2
 DB 0F8H; 01FH ;3
 DB 0E2H; 047H ;4
 DB 0DAH; 05BH ;5
 DB 0CEH; 073H ;6
 DB 0B0H; 00DH ;7
 DB 0FEH; 07FH ;8
 DB 0FAH; 05FH ;9
 END

[来源:深圳市炜烨兴电子有限公司] [作者:yesever] [日期:09-03-17] [热度:]

评论

© 2004-2015 Wayeah LCM All rights reserved.

Powered by: KingCMS 5.1.0.0812

|2009旧版 | 联系方式 | 付款方式 | 淘宝店|