L'envoie de message est limité à 60 000 caractères?
Code : Tout sélectionner
;---------------------------------------------------------CONFIGURATION AFFICHEUR Lignes 3 et 4-----------------------------------------------------------
CONFIG_B
MOVLW B'00111000' ; Fonction SET 8 bits 2 lignes police 5X7
MOVWF PORTD ; Charge le contenu de W dans le port D
BSF PORTC,6 ; E2 = 1
CALL ATTENTE6 ; Appel de la temporisation ATTENTE6
BCF PORTC,6 ; E2 = 0
MOVLW B'00001000' ; Affichage off
MOVWF PORTD ; Charge le contenu de W dans le port D
BSF PORTC,6 ; E2 = 1
CALL ATTENTE6 ; Appel de la temporisation ATTENTE6
BCF PORTC,6 ; E2 = 0
MOVLW B'00000001' ; Efface l'écran et positionne le curseur à 0
MOVWF PORTD ; Charge le contenu de W dans le port D
BSF PORTC,6 ; E2 = 1
CALL ATTENTE6 ; Appel de la temporisation ATTENTE6
BCF PORTC,6 ; E2 = 0
MOVLW B'00000110' ; Déplacement curseur vers la droite
MOVWF PORTD ; Charge le contenu de W dans le port D
BSF PORTC,6 ; E2 = 1
CALL ATTENTE6 ; Appel de la temporisation ATTENTE6
BCF PORTC,6 ; E2 = 0
MOVLW B'00001100' ; Contrôle de l'affichage (affichage on, curseur non visible)
MOVWF PORTD ; Charge le contenu de W dans le port D
BSF PORTC,6 ; E2 = 1
CALL ATTENTE6 ; Appel de la temporisation ATTENTE6
BCF PORTC,6 ; E2 = 0
RETURN
;---------------------------Ecriture dans l'afficheur lignes 3 et 4-------------------------------------
CAR_AFF_B
MOVWF PORTD ; Charge le contenu de W dans le port B
CALL ATTENTE5 ; Appel de la temporisation ATTENTE5
MOVLW B'01100000' ; RS = 1, RW = 0, E1 = 1, E2 = 0
MOVWF PORTC ; Et on transfert sur le port C le contenu de W
CALL ATTENTE6 ; Appel de la temporisation ATTENTE6
MOVLW B'00000000' ; RS = 0, RW = 0, E1 = 0, E2 = 0
MOVWF PORTC ;
RETURN
;---------------------------Programme de temporisation 1-------------------------------------
TEMPO1
MOVLW 0X7F ; On met FF dans le registre W
MOVWF RETARD1 ; On met W dans le registre retard1
MOVWF RETARD2 ; On met W dans le registre retard2
MOVWF RETARD3 ; On met W dans le registre retard3
MOVWF RETARD4 ; On met W dans le registre retard4
ATTENTE1
DECFSZ RETARD1,F ; On décrémente retard1 et on saute la prochaine instruction si le registre retard1 = 0
GOTO ATTENTE1 ; Sinon retour à attente1
MOVLW 0X80 ; On met 80 dans le registre W
MOVWF RETARD1 ; On met W dans RETARD1
DECFSZ RETARD2,F ; On décrémente retard2 et on saute la prochaine instruction si le registre retard2 = 0
GOTO ATTENTE1 ; Sinon retour à attente1
MOVLW 0X08 ; On met 08 dans le registre W
MOVWF RETARD2 ; On met W dans RETARD2
DECFSZ RETARD3,F ; On décrémente retard3 et on saute la prochaine instruction si le registre retard3 = 0
GOTO ATTENTE1 ; Sinon retour à attente1
MOVLW 0X08 ; On met 08 dans le registre W
MOVWF RETARD3 ; On met W dans RETARD3
DECFSZ RETARD4,F ; On décrémente retard4 et on saute la prochaine instruction si le registre retard4 = 0
GOTO ATTENTE1 ; Sinon retour à attente1
RETURN ; Retour au programme principal
;------------------------------programme de temporisation 2---------------------------
TEMPO2
MOVLW 0X7F ; On met 7F dans le registre W
MOVWF RETARD1 ; On met W dans le registre retard1
MOVWF RETARD2 ; On met W dans le registre retard2
MOVLW 0X12 ; On met 12 dans le registre W
MOVWF RETARD3 ; On met W dans le registre retard3
ATTENTE2
DECFSZ RETARD1,F ; On décrémente retard1 et on saute la prochaine instruction
; si le registre retard1 = 0
GOTO ATTENTE2 ; Sinon retour à attente2
MOVLW 0XC8 ; On recharge retard1
MOVWF RETARD1 ; Avec C8 (200)
DECFSZ RETARD2,F ; On décrémente retard2 et on saute la prochaine instruction
; si le registre retard2 = 0
GOTO ATTENTE2 ; Sinon retour à attente2
MOVLW 0X80 ; On recharge retard2
MOVWF RETARD2 ; Avec 80 (128)
DECFSZ RETARD3,F ; On décrémente retard3 et on saute la prochaine instruction
; si le registre retard3 = 0
GOTO ATTENTE2 ; Sinon retour à attente2
RETURN ; Retour au programme principal après l'instruction call
;------------------------------programme de temporisation 3---------------------------
TEMPO3
MOVLW 0X7F ; On met 7F dans le registre W
MOVWF RETARD1 ; On met W dans le registre retard1
MOVWF RETARD2 ; On met W dans le registre retard2
MOVLW 0X80 ; On met 80 dans le registre W
MOVWF RETARD3 ; On met W dans le registre retard3
ATTENTE3
DECFSZ RETARD1,F ; On décrémente retard1 et on saute la prochaine instruction
; si le registre retard1 = 0
GOTO ATTENTE3 ; Sinon retour à attente3
MOVLW 0XC8 ; On recharge retard1
MOVWF RETARD1 ; Avec C8 (200)
DECFSZ RETARD2,F ; On décrémente retard2 et on saute la prochaine instruction
; si le registre retard2 = 0
GOTO ATTENTE3 ; Sinon retour à attente3
MOVLW 0X80 ; On recharge retard2
MOVWF RETARD2 ; Avec 80 (128)
DECFSZ RETARD3,F ; On décrémente retard3 et on saute la prochaine instruction
; si le registre retard3 = 0
GOTO ATTENTE3 ; Sinon retour à attente3
RETURN ; Retour au programme principal après l'instruction call
;---------------------------Programme de temporisation 4-------------------------------------
TEMPO4
MOVLW 0X5A ; On met 7F dans le registre W
MOVWF RETARD1 ; On met W dans le registre retard1
MOVWF RETARD2 ; On met W dans le registre retard2
MOVLW 0X15 ; On met 12 dans le registre W
MOVWF RETARD3 ; On met W dans le registre retard3
ATTENTE4
DECFSZ RETARD1,F ; On décrémente retard1 et on saute la prochaine instruction
; si le registre retard1 = 0
GOTO ATTENTE4 ; Sinon retour à attente4
MOVLW 0X6E ; On recharge retard1 6e
MOVWF RETARD1 ; Avec C8 (200)
DECFSZ RETARD2,F ; On décrémente retard2 et on saute la prochaine instruction
; si le registre retard2 = 0
GOTO ATTENTE4 ; Sinon retour à attente4
MOVLW 0X80 ; On recharge retard2
MOVWF RETARD2 ; Avec 80 (128)
DECFSZ RETARD3,F ; On décrémente retard3 et on saute la prochaine instruction
; si le registre retard3 = 0
GOTO ATTENTE4 ; Sinon retour à attente4
RETURN ; Retour au programme principal après l'instruction call
;---------------------------------------------------SOUS PROGRAMME TEMPO D'ATTENTE---------------------------------------------------------------
ATTENTE5
MOVLW 0XFF ; On met FF dans le registre W
MOVWF CPT2 ; On met W dans le registre CPT2
ATT2
DECFSZ CPT2,1 ; On décrémente CPT2,1 et on saute la prochaine instruction
GOTO ATT2 ; Sinon retour à ATT2
RETURN ; Retour au programme principal après l'instruction call
ATTENTE6
MOVLW 0X1E ; On met 14 dans le registre W
MOVWF CPT3 ; On met W dans le registre CPT3
ATT3
CALL ATTENTE5 ; On appelle ATTENTE5
DECFSZ CPT3,1 ; On décrémente CPT3,1 et on saute la prochaine instruction
GOTO ATT3 ; Sinon retour à ATT3
RETURN ; Retour au programme principal après l'instruction call
END