导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→LCM  driver program[jola]

 *第27313篇: LCM driver program

  
楼 主:jola 2004年11月2日13:01
 LCM  driver program

;========================================================================================================
; LCMINITIAL  PROC
; LCMWRITELINE1 PROC
; LCMWRITELINE2 PROC
; LCMCLEAR  PROC  
; =====================LCMBUFFER----                 
;========================================================================================================
#INCLUDE "HT95C40P.INC"
#INCLUDE "LCM.INC"

;;EXTERN  VARI
EXTERN  CT1:BYTE
LCMDELAYCT  EQU  CT1


;PUBLIC PROC
PUBLIC  LCMWRITELINE1
PUBLIC  LCMWRITELINE2
PUBLIC  LCM_CLEARBUFFER2
PUBLIC  LCMINITIAL
PUBLIC  LCMCLEAR

;PUBLIC DATA
PUBLIC  _LCMBUFFER1
PUBLIC  LCMBUFFERCT
PUBLIC  _LCMBUFFER2
PUBLIC  LCMDELAY1600US
;============================================================================================
;   DATA SECTION.
;============================================================================================
RAMBANK 1 BUFFERDATASG
BUFFERDATASG  .SECTION 'DATA'
_LCMBUFFER1   DB  16  DUP(20H)
_LCMBUFFER2   DB  16  DUP(31H)

LCMDATASG .SECTION 'DATA'
LCMBUFFERCT   DB    ?


;------------------------------------------------------
;============================================================================================
;   CODE SECTION.
;============================================================================================
LCMCODESG .SECTION 'CODE'
;--------------------------------------
LCMDELAY40US PROC
     CLR  LCMEN                           
     SET  LCMEN
  MOV  A,LCM_DELAY_40US
  MOV  LCMDELAYCT,A
LCMDELAY40_1:
  DEC  LCMDELAYCT
  SZ  LCMDELAYCT
  JMP  LCMDELAY40_1
 RET
LCMDELAY40US ENDP

LCMDELAY1600US PROC
     CLR  LCMEN                           
     SET  LCMEN
  MOV  A,LCM_DELAY_1600US
  MOV  LCMDELAYCT,A
LCMDELAY1600_1:
  DEC  LCMDELAYCT
  SZ  LCMDELAYCT
  JMP  LCMDELAY1600_1
 RET
LCMDELAY1600US ENDP
;--------------------------------------
LCMINITIAL  PROC
  SET  LCMCS
  MOV  A,0E0H    ;_LCDIO=0XE0;
  MOV  LCDIO,A
  CLR  PEC    ;_PEC=0X00;
  CLR  PDC    ;_PDC=0X00;
  CALL LCMDELAY40US
  CLR  LCMRS
  CLR  LCMRW
  CLR  LCMEN

  MOV  A,038H    ;FUNCTION SET
  MOV  LCMDATA,A
  CALL LCMDELAY1600US
  MOV  A,038H
  MOV  LCMDATA,A
  CALL LCMDELAY40US
  MOV  A,08H   ;LCM OFF
  MOV  LCMDATA,A
  CALL LCMDELAY40US
  MOV  A,01H   ;CLEAR DISPLAY
  MOV  LCMDATA,A
  CALL LCMDELAY1600US
  MOV  A,06H   ;CURSOR RETURN
  MOV  LCMDATA,A
  CALL LCMDELAY40US
  MOV  A,038H    
  MOV  LCMDATA,A
  CALL LCMDELAY40US
  CALL LCMDELAY1600US
  MOV  A,0CH
  MOV  LCMDATA,A
  CALL LCMDELAY40US
  MOV  A,06H
  MOV  LCMDATA,A
  CALL LCMDELAY40US
  CALL LCMCLEAR
 RET
LCMINITIAL  ENDP
;--------------------------------------
LCMWRITELINE1 PROC
  MOV  A,080H
  MOV  LCMDATA,A
  CALL LCMDELAY40US
  MOV  A,BANK _LCMBUFFER1
  MOV  BP,A
  MOV  A,OFFSET _LCMBUFFER1
  MOV  MP1,A
  MOV  A,010H
  MOV  LCMBUFFERCT,A
LCMWRITELOOP116:
  SET  LCMRS
  MOV  A,IAR1
  XOR  A,0FFH
  SZ  Z
  JMP  WRBLANK1  
  MOV  A,IAR1
  JMP  WRDATA1
WRBLANK1:  
  MOV  A,20H
WRDATA1:
  MOV  LCMDATA,A  
  CALL LCMDELAY40US
  CLR  LCMRS
  INC  MP1
  SDZ  LCMBUFFERCT
  JMP  LCMWRITELOOP116
LCMWRITEEND1:
  MOV  A,06H
  MOV  LCMDATA,A
  CALL LCMDELAY40US
  MOV  A,02H
  MOV  LCMDATA,A
  CALL LCMDELAY1600US
 RET
LCMWRITELINE1 ENDP
;--------------------------------------
LCMWRITELINE2 PROC
  MOV  A,0C0H
  MOV  LCMDATA,A
  CALL LCMDELAY40US

  MOV  A,BANK _LCMBUFFER2
  MOV  BP,A
  MOV  A,OFFSET _LCMBUFFER2
  MOV  MP1,A
  MOV  A,010H
  MOV  LCMBUFFERCT,A
LCMWRITELOOP216:
  SET  LCMRS
  MOV  A,IAR1
  XOR  A,0FFH
  SZ  Z
  JMP  WRBLANK2 
  MOV  A,IAR1
  JMP  WRDATA2
WRBLANK2:  
  MOV  A,20H
WRDATA2:
  MOV  LCMDATA,A  
  CALL LCMDELAY40US
  CLR  LCMRS
  INC  MP1
  SDZ  LCMBUFFERCT
  JMP  LCMWRITELOOP216
LCMWRITEEND2:
  MOV  A,06H
  MOV  LCMDATA,A
  CALL LCMDELAY40US
  MOV  A,02H
  MOV  LCMDATA,A
  CALL LCMDELAY1600US
 RET
LCMWRITELINE2 ENDP
;--------------------------------------
LCMCLEAR  PROC
  
  MOV  A,BANK _LCMBUFFER1
  MOV  BP,A
  MOV  A,OFFSET _LCMBUFFER1
  MOV  MP1,A
  MOV  A,010H
  MOV  LCMBUFFERCT,A
  
   
LCMCLEARLOOP16:
  MOV  A,020H
  MOV  IAR1,A
  INC  MP1
  SDZ  LCMBUFFERCT
  JMP  LCMCLEARLOOP16
CALL LCMWRITELINE1
  MOV  A,BANK _LCMBUFFER2
  MOV  BP,A
  MOV  A,OFFSET _LCMBUFFER2
  MOV  MP1,A
  MOV  A,010H
  MOV  LCMBUFFERCT,A
LCMCLEARLOOP26:
  MOV  A,020H
  MOV  IAR1,A
  INC  MP1
  SDZ  LCMBUFFERCT
  JMP  LCMCLEARLOOP26
  
  CALL LCMWRITELINE2
RET
LCMCLEAR  ENDP
;;=========================================================================================


;;=================================================================================================  
LCM_CLEARBUFFER2    PROC
  MOV  A,BANK _LCMBUFFER2
  MOV  BP,A
  MOV  A,OFFSET _LCMBUFFER2
  MOV  MP1,A
  MOV  A,010H
  MOV  LCMBUFFERCT,A
LCM_CLEARBUFFER16:
  MOV  A,020H
  MOV  IAR1,A
  INC  MP1
  SDZ  LCMBUFFERCT
  JMP  LCM_CLEARBUFFER16
  RET
LCM_CLEARBUFFER2    ENDP


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:[求助]max1069

[下一篇主题]:高性能惊爆超低价格USB开发板:http://www.ifelec.com