Electromag1 Circuits électroniques et Picaxes

Petit site pour ceux qui bricolent en électronique en général et sur les PICAXES en particulier.
Les PICAXES sont des microprocesseurs (PIC de Microship) programmables en BASIC. Pleins de qualités, pas chers, ultra faciles à programmer.
Tout (ou presque) est sur le site du distributeur Gotronic (voir les liens).
Les pages  seront ajoutées ou modifiées petit à petit.
Dans le but d'améliorer ce blog, communiquez moi vos remarques et les erreurs que vous pouvez constater.
Pour me contacter: Envoyez un mail à l'adresse : mag1mic@free.fr .  Tout message reçoit une réponse
Pour retourner au menu, Cliquer sur "LISTE DES PAGES", ici ou en haut de la colonne de gauche
Pour laisser un message, allez dans le "LIVRE D'OR"
Bonne visite
 
 

ADAPTATEUR LCD SERIE

picaxe 18M2

Ce circuit est décrit dans la doc du module AXE133. Il est donc conforme au code en open source fournit par REV-ED
Le PCB est également conforme à l'original.

Mise à jour 11/03/25  CAUSE ERREUR SCHEMA , PCB et CODE

Tous les composants sont maintenant du côté extérieur.
J'ai espéré faire fonctionner le 18M2 à 9600 baud pour utiliser les fréquences 32 et 64 MHz. Hélas, on obtient, au mieux, n'importe quoi. On regrette encore plus le FRM010
Le code 255 donne accès aux broches C.0, C.1 et C.2 de l'adaptateur.
Le schéma:
Le PCB:

 
Pour programmer le µC avec le cordon low cost, il faut un inverseur:

Il faut ajouter des connecteurs M/F et un CD4001 ou 4011, au choix.
Le connecteur de sortie à 4 broches : SO 0v Si + s'adapte au connecteur corespondant de l'adaptateur sére LCD au dessus.

Les fichiers gerber (pour JLCPCB par ex.) de l'adaptateur est ICI .
Et avec linverseur ICI . Ils sont sur la même carte qu'il faudra séparer d'un petit coup de scie.

Le code :  à copier /coller dans PE6 est ci dessous:

;LCD SERIE utilisant un picaxe 18M2 MM 24/03/25
; Emulates basic serial operation of the popular AXE033 module;
; Supported Commands
; 0-7, 8-15     8 charactères enregistrés en CGRAM
; 0- 252   caractères de la table ASCII de l'afficheur + les caractères accentués de 0 à 7
; 253, X    non utilisé ici
; 254, X    LCD command, X can be 0 to 255
; 255, X    Si l'adaptateur est câblé pour lire les broches C.0 ; C.1 ; C.2
;      Ex; X= %00000010 le port C.1 passe à 1 (5v)
; LCD data pins are on B.0 to B.7
#picaxe 18M2
#no_data
symbol baud = N2400_16         
symbol RX   = C.5    ; serial receive pin
symbol enable  = C.6    ; LCD enable
symbol rs      = C.7    ; LCD RS
;initialise LCD
init:
    gosub LCD_init         ; initialise LCD        
; Le programme principal tourne à 16MHz
main:
    serin RX,baud,b1            ; wait for the next byte
    ; NB keep character mode test as first item in this list to optimise speed
    if b1 < 253 then
        let pinsB = b1         ; output the data
        pulsout enable,1      ; pulse the enable pin to send data.
        goto main            ; quickly loop back to top
    else if b1 = 254 then
        low rs                  ; change to command mode for next character
        serin RX,baud,b1        ; wait for the command byte
        let pinsB = b1         ; output the data
        pulsout enable,1      ; pulse the enable pin to send data.
        high rs            ; back to character mode
        goto main            ; quickly loop back to top
    else if b1 = 253 then
        serin RX,baud,b1        ; wait for the next byte
        
        goto main            ; back to top
    else ; must be 255
        serin RX,baud,b1        ; wait for the next byte
        let pinsC = b1 & %00000111 | %10000000    ; output the data on C.0 to C.1, keep RS high
        goto main            ; back to top
    end if

; power on LCD initialisation sub routine
LCD_init:
    let dirsC = %11000111    ; PortC 0,1,2,6,7 all outputs
    let dirsB = %11111111    ; PortB all outputs
    ; Standard LCD Module Initialisation
    pause 15             ; Wait 15ms for LCD to reset.

    pinsB = %00110000     ; 8 bit, 2 line
    pulsout enable,1      ; Send data by pulsing enable
    pause 5             ; Wait 5 ms
    pulsout enable,1          ; Send data 48 again
    pulsout enable,1      ; Send data 48 again
    
    setfreq m16        ; on passe à 16MHz

    pinsB = %00111000     ; LCD  - 8 bit, 2 line, 5x8  
    pulsout enable,1
            
    pinsB = %00000001        ; Clear Display
    pulsout enable,1     
    pause 8            ; 8 = 2ms at 16MHz
    
    pinsB = %00000010     ; return home
    pulsout enable,1

    pinsB = %00000110        ; Entry mode
    pulsout enable,1     
    pause 1            

    pinsB = %00001100        ; Display on, no cursor, no blink
    pulsout enable,1
    gosub cardef        'sub définition caractères utilisateur         
    high rs            ; Leave in character mode    
    return
'***********************************************************************    
cardef:
'Les caractères sont dessinés dans une matrice 8 lignes x 5 colonnes
'La dernière ligne est normalement réservée au curseur.    
'définition é en caractère utilisateur n°1    
    pinsB=1*8|$40 'Utilisateur, definition table car 1
    low rs
    pulsout enable,1
    high rs:pause 10
    pinsB=%00010    ;$2
    pulsout enable,1
    pinsB=%00100    ;$4
    pulsout enable,1
    pinsB=%01110    ;$E
    pulsout enable,1
    pinsB=%10001    ;$11
    pulsout enable,1
    pinsB=%11111    ;$1F
    pulsout enable,1
    pinsB=%10000    ;$10
    pulsout enable,1
    pinsB=%01110    ;$1E
    pulsout enable,1
    pinsB=%00000    ;$0
    pulsout enable,1
    
'définition è en caractère utilisateur n°2    
    pinsB=2*8|$40 'Utilisateur, definition table car 2
    low rs
    pulsout enable,1
    high rs:pause 10
    pinsB=%01000    ;$10
    pulsout enable,1
    pinsB=%00100    ;$4
    pulsout enable,1
    pinsB=%01110    ;$E
    pulsout enable,1
    pinsB=%10001    ;$11
    pulsout enable,1
    pinsB=%11111    ;$1F
    pulsout enable,1
    pinsB=%10000    ;$10
    pulsout enable,1
    pinsB=%01110    ;$1E
    pulsout enable,1
    pinsB=%00000
    pulsout enable,1
    
'définition ê en caractère utilisateur n°3    
    pinsB=3*8|$40 'Utilisateur, definition table car 3
    low rs
    pulsout enable,1
    high rs:pause 10
    pinsB=%00100    ;$4 4
    pulsout enable,1
    pinsB=%01010    ;$A 10    ;
    pulsout enable,1
    pinsB=%01110    ;$1E 30
    pulsout enable,1
    pinsB=%10001    ;$11 17
    pulsout enable,1
    pinsB=%11111    ;$1F 31
    pulsout enable,1
    pinsB=%10000    ;$10 16
    pulsout enable,1
    pinsB=%01110    ;$E  14
    pulsout enable,1
    pinsB=%00000    ;$0 0
    pulsout enable,1    
    
'd?finition à en caractère utilisateur n°4    
    pinsB=4*8|$40 'Utilisateur, definition table car 4
    low rs
    pulsout enable,1
    high rs:pause 10
    pinsB=%01000    ;$10     16
    pulsout enable,1
    pinsB=%00100    ;$4    4
    pulsout enable,1
    pinsB=%01110    ;$1E    30
    pulsout enable,1    
    pinsB=%00001    ;$1    1
    pulsout enable,1
    pinsB=%01111    ;$F    15    
    pulsout enable,1
    pinsB=%10001    ;$11    17    
    pulsout enable,1
    pinsB=%01111    ;$F    15    
    pulsout enable,1
    pinsB=%00000    ;$0
    pulsout enable,1
    
'd?finition ç en caractère utilisateur n°5    
    pinsB=5*8|$40 'Utilisateur, definition table car 5
    low rs
    pulsout enable,1
    high rs:pause 10
    pinsB=%00000    ;$0
    pulsout enable,1
    pinsB=%01110    ;$1E    30
    pulsout enable,1
    pinsB=%10000    ;$10    16
    pulsout enable,1
    pinsB=%10000    ;$10    16
    pulsout enable,1
    pinsB=%10001    ;$11    17        
    pulsout enable,1
    pinsB=%01110    ;$F    15
    pulsout enable,1
    pinsB=%00100    ;$4    4
    pulsout enable,1
    pinsB=%01100    ;$C    12    
    pulsout enable,1
    
'définition ù en caractère utilisateur n°6    
    pinsB=6*8|$40 'Utilisateur, definition table car 6
    low rs
    pulsout enable,1
    high rs:pause 10
    pinsB=%01000    ;8
    pulsout enable,1
    pinsB=%00100    ;4
    pulsout enable,1
    pinsB=%10001    ;17
    pulsout enable,1
    pinsB=%10001    ;17
    pulsout enable,1
    pinsB=%10001    ;17
    pulsout enable,1
    pinsB=%10011    ;19
    pulsout enable,1
    pinsB=%01101    ;13
    pulsout enable,1
    pinsB=%00000
    pulsout enable,1    
    
'définition ü en caractère utilisateur n°7    
    pinsB=7*8|$40 'Utilisateur, definition table car 7
    low rs
    pulsout enable,1
    high rs:pause 10
    pinsB=%01010    ;10
    pulsout enable,1
    pinsB=%00000    ;0
    pulsout enable,1
    pinsB=%10001    ;17
    pulsout enable,1
    pinsB=%10001    ;17
    pulsout enable,1
    pinsB=%10001    ;17
    pulsout enable,1
    pinsB=%10011    ;19
    pulsout enable,1
    pinsB=%01101    ;13
    pulsout enable,1
    pinsB=%00000    ;0
    pulsout enable,1    
    
'définition ë en caractère utilisateur n°8    
    pinsB=8*8|$40 'Utilisateur, definition table car 8
    low rs
    pulsout enable,1
    high rs:pause 10
    pinsB=%01010    ;10
    pulsout enable,1
    pinsB=%0000        ;0
    pulsout enable,1
    pinsB=%01110    ;15
    pulsout enable,1
    pinsB=%10001    ;17
    pulsout enable,1
    pinsB=%11111    ;31
    pulsout enable,1
    pinsB=%10000    ;16
    pulsout enable,1
    pinsB=%01110    ;15
    pulsout enable,1
    pinsB=%00000    ;0
    pulsout enable,1    
    return                        
 



Créer un site
Créer un site