Ocx: simulateur d'afficheur lcd alphanumérique

Description

[ CETTE SOURCE NE S'ADRESSE -PAS UNIQUEMENT- AUX ELECTRONICIENS! ]

Salut à tous,

En fait, je suis pas mal sur l'électronique avec des PicBasic. Et il m'est venu l'idée de créer un émulateur de PicBasic complet, avec des composants basiques pour l'entourer: LEDs, Ecrans, Boutons poussoirs,...
Voilà une première partie (en exclusivite! :P): un écran AlphaNumérique sous forme d'OCX. Son code est surement à revoir car certaines choses sont mal faites; et certaines choses à compléter également.

Je compte créer une OCX pour une LED, et de même pour un bouton poussoir.
Puis, une DLL qui simulerai le PicBasic qui permettrait de contrôler le tout (gestion de la connectique, etc.). Et un peu plus tard, programmer un interpréteur pour pouvoir tester son code en direct. :)

Source / Exemple :


Private Sub Form_Load()
' CODE POUR L'UTILISATION DU CONTROLE LCD.OCX
' N'oubliez pas d'ajouter le LCD.ocx. Ici, je l'ai nommé simplement "LCD":

With LCD
    ' On définit le nombre de ligne...
    .Rows = 2
    ' ...et le nombre de colones
    .Cols = 16
    
    
    ' On initialise le LCD:
    ' --> Avec cette action, on crée le nombre de digits sous forme de labels
    '     en fonction du nombre de colones et de lignes définis à l'étape
    '     précédente.
    .LCDInit
    
    
    ' On positionne le curseur sur l'écran pour s'apréter à y écrire quelquechose
    .LCDLocate 2, 0
    ' Et on écrit un texte:
    .LCDPrint "Hello world!"
    
    
    ' Facultatif:
    ' On dimensionne l'écran en fonction du nombre de colones et de lignes:
    ' --> Une colone est large de 210 et une ligne est haute de 320.
    '     30 correpond à l'écart entre chaque digit
    .Width = (.Cols * 210) + (.Cols * 30) + 30
    .Height = (.Rows * 320) + (.Rows * 30) + 30
    
    ' ET N'OUBLIEZ PAS DE...
    ' ...consulter la source de l'ocx! C'est commenté aussi! Vous pigerez peut-être mieux!
End With
End Sub

Conclusion :


Il est fait exprès qu'il n'y ai pas de retour automatique à la ligne sur l'écran LCD, car le PicBasic ne gère pas les retours à la ligne :)
Ce contrôle n'a pas grande utilité. Je l'ai créé pour m'amuser en fait; et peut-être l'utiliser plus tard.

Vous remarquerez que l'OCX limite l'écran à une taille de 4x16 caractères, pour un certain réalisme.
Pour les commandes (LCDPrint, LCDLocate,...), j'ai pris des noms de procédures proches de ceux du PicBasic.

Si vous avez des suggestions, je suis preneur!

++
Enneka

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.