displcd.sub

来自「frequence metre to mesure the frequence 」· SUB 代码 · 共 95 行

SUB
95
字号
           nolist
;__________________________________________________________________________
;
;                        SUBROUTINES FOR LCD DISPLAY
;                              (LOAD: 4 BITS) 
;__________________________________________________________________________
;
; You must include "displcd.lib" in the main file
; You must define E, RS, DATA_PORT and DATA_DIR in the main file
;  
;__________________________________________________________________________
;
;                                VARIABLES
;__________________________________________________________________________

           cblock
Char           
           endc

;--------------------------------------------------------------------------
; Description: Initialisation de l'afficheur LCD           
; Entr俥: Aucune
; Sortie: Aucune

INIT_LCD           
           call       T100mS     ; Attendre la stabilisation de 
                                 ;l'alimentation 
           RSCmd                 ; LCD: mode commande
           Movlf      30H,DATA_PORT
           DataOk                ; 3 envois de 30H      
           call       T10mS
           DataOk
           call       T10mS
           DataOk
           call       T1mS
           Movlf      20H,DATA_PORT
           DataOk                ; Interface 4 bits
           retlw      0

;---------------------------------------------------------------------------
; Description: Put cursor at the beginning of the second line
; ( or on th 8th Char in case of 1x16 display )

LINE_2
           DDRam      40H
           retlw      0

;---------------------------------------------------
; Description: Transmet un caract俽e vers l'afficheur          
; Entr俥: Caract俽e dans le registre W
; Sortie: Aucune

SEND_CHAR  
           call       T1mS       ; Attendre que l'afficheur soit pr坱
           RSChar                ; Afficheur en mode caract俽e
           movwf      Char       ; Sauvegarde du caract俽e
           Andlf      0x0F,DATA_PORT      
                                 ; Masquage: Reset du poids fort de DP
           movf       Char,W     ; On restaure le caract俽e dans W
           andlw      0xF0       ; On isole le poids fort du registre W 
           iorwf      DATA_PORT,F; On positionne le poids fort de DATA_PORT 
           DataOk                ; On bascule le verrou du LCD
           Andlf      0x0F,DATA_PORT      
                                 ; Masquage: Reset du poids fort de DP
           swapf      Char,W     ; On 俢hange les poids fort et faible
           andlw      0xF0       ; On isole le poids fort du registre W 
           iorwf      DATA_PORT,F; On positionne le poids fort de DATA_PORT 
           DataOk                ; On bascule le verrou du LCD
           retlw      0          ; Retour avec W=0

;---------------------------------------------------
; Description: Transmet une commande vers l'afficheur          
; Entr俥: Commande dans le registre W
; Sortie: Aucune

SEND_CMD  
           call       T1mS       ; Attendre que l'afficheur soit pr坱
           RSCmd                 ; Afficheur en mode commande
           movwf      Char       ; Sauvegarde de la commande
           Andlf      0x0F,DATA_PORT      
                                 ; Masquage: Reset du poids fort de DP
           movf       Char,W     ; On restaure la commande dans W
           andlw      0xF0       ; On isole le poids fort du registre W 
           iorwf      DATA_PORT,F; On positionne le poids fort de DATA_PORT 
           DataOk                ; On bascule le verrou du LCD
           Andlf      0x0F,DATA_PORT      
                                 ; Masquage: Reset du poids fort de DP
           swapf      Char,W     ; On 俢hange les poids fort et faible  
           andlw      0xF0       ; On isole le poids fort du registre W 
           iorwf      DATA_PORT,F; On positionne le poids fort de DATA_PORT 
           DataOk                ; On bascule le verrou du LCD
           retlw      0          ; Retour avec W=0
;
           list

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?