File "lcd12.asm"
Full Path: /home/analogde/www/private/Projet/lcd12.asm
File size: 1010 B
MIME-type: text/plain
Charset: utf-8
;
; LCD12.ASM
; LCD Display routines for Axiom HC12 development boards.
;
; INITLCD: Initialize the LCD display
; LCDOUT: Send a byte in A to the LCD data port
; LCDCMD: Send a byte in A to the LCD command port and wait
;
; Initialize LCD display
INITLCD:
ldaa #$3C ; 2x40 Display
jsr LCDCMD ; write command
ldaa #$0f ; Display and cursor on
jsr LCDCMD ; write command
ldaa #$14 ; shift cursor right
jsr LCDCMD ; write command
ldaa #$01 ; clear display and home cursor
jsr LCDCMD ; write command
rts
LCDOUT:
staa $3f1 ; output data to lcd
jsr delay100us ; WAIT this is too long, use a shorter one
rts
; Send a command in A to the LCD command register
LCDCMD:
staa $3f0 ; write command
jsr delay40 ; wait
rts
; wait 100 microseconds (approx.)
delay100us:
psha
clra
loop100:
deca
bne loop100
pula
rts
; wait appropriate time for LCD command process
delay40:
pshx
ldx #$0000
loop40:
dex
bne loop40
pulx
rts