;---------------------------------------------------------------- ; initialisation de l'écran LCD ;---------------------------------------------------------------- ; SPI_Config 2 ; SPI pour LCD config identique LDP #LCDlo SPLK #000h, LCDlo SPLK #0C0h, LCDhi DispLCD 1 ; foncé ; observers LDP #00E1h LACC PADATDIR OR #1 ; A0= +5V SACL PADATDIR Attends 2000 LDP #LCDlo SPLK #080h, LCDlo SPLK #000h, LCDhi DispLCD 1 ; clear LCD, 1.53 ms Attends 2000 ; observers LDP #00E1h LACC PADATDIR AND #0FFFEh ; A0= 0V SACL PADATDIR ; LDP #LCDlo ; SPLK #050h, LCDlo ; display off, cursor On ; SPLK #000h, LCDhi ; DispLCD 1 ; Attends 2000 LDP #LCDlo SPLK #060h, LCDlo ; increment, 1.53 ms SPLK #000h, LCDhi DispLCD 1 Attends 2000 LDP #LCDlo SPLK #030h, LCDlo ; display on, cursor Off SPLK #000h, LCDhi DispLCD 1 Attends 2000 ; LDP #LCDlo ; SPLK #080h, LCDlo ; SPLK #020h, LCDhi ; DispLCD 2 ; Char "A" ; Attends 500 ; LDP #LCDlo ; SPLK #040h, LCDlo ; SPLK #020h, LCDhi ; DispLCD 2 ; Char "B" ; Attends 500 LDP #LCDupdate SPLK #1, LCDupdate ; doit MAJ la table sur l'Ecran LCD SPLK #0, LCDline ; REW au début de la table SPLK #0, LCDcol ;---------------------------------------------------------------- |
DispLCD .macro Order ; 1=> ordre, 2 => Char, on utilise le LCDhi également pour les ordres ! 02/2007 CS_LCDon LDP #0E0h LACC SPI_BUF .if Order=1 ; 1=> ordre, 2 => Char SPLK #0F8h, SPI_DAT ; Transmit start Ordre .endif .if Order=2 SPLK #0FAh, SPI_DAT ; Transmit start Order .endif ; LACC SPI_BUF lcd1? BIT SPI_STATUS,BIT6 BCND lcd1?, NTC LACC SPI_BUF LDP #LCDlo LACC LCDlo LDP #0E0h SACL SPI_DAT ; Transmit Low byte ; LACC SPI_BUF lcd2? BIT SPI_STATUS,BIT6 BCND lcd2?, NTC LACC SPI_BUF LDP #LCDhi LACC LCDhi LDP #0E0h SACL SPI_DAT ; Transmit hi byte LACC SPI_BUF lcd3? BIT SPI_STATUS,BIT6 BCND lcd3?, NTC LACC SPI_BUF CS_LCDoff .endm |
;**************************************************************** ; Routine trChar : transforme le char LCDChar en LCDChar_m (pour le LCD) ;**************************************************************** trChar .macro LDP #LCDChar SPLK #08h,tmp SPLK #0000h,LCDChar_m loop? LACC LCDChar SFR SACL LCDChar LACC LCDChar_m ROL SACL LCDChar_m LACC tmp SUB #1 SACL tmp BNZ loop? LACC LCDChar_m AND #00F0h SACL LCDlo LACC LCDChar_m,4 AND #00F0h SACL LCDhi .endm |