Ocx: simulateur d'afficheur lcd alphanumérique

Soyez le premier à donner votre avis sur cette source.

Vue 14 424 fois - Téléchargée 1 489 fois

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

Ajouter un commentaire

Commentaires

christ_s
Messages postés
27
Date d'inscription
dimanche 22 février 2004
Statut
Membre
Dernière intervention
29 mai 2009
-
Je débute en pic basic 3b pour l'instant.
Je pensais moi aussi faire un simulateur pour éviter de tout le temps télécharger dans la flash.

Bonne continuation.
Adn56
Messages postés
1220
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1 -
salut, apres le test de ton OCX sous Vb.net, je n'ai eu qu'un seul soucis :
' On dimensionne l'écran en fonction du nombre de colones et de lignes:
' --> Une colone est large de 16 et une ligne est haute de 23
' 2 correpond à la bordure de fin
.Width = (.Cols * 16) + 2
.Height = (.Rows * 23) + 2 'voila les bonnes valeurs sous .NET
(ne me demande pas pourquoi ^.^)

Sinon je trouve dommage d'avoir bloqué le nombre de caractéres à 16, et aussi que les couleurs ne soit pas modifiable, police , etc...
Si tu fais une mise à jours de ton code, je prends, car il me sert à simuler les afficheurs XBTN200 et 400 de chez télémécanique par exemple.
bonne prog.@dn
Adn56
Messages postés
1220
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1 -
j'ai trouvé XD :
Dans Visual Basic 6.0, l'unité de mesure par défaut correspondait à des twips ; dans Visual Basic 2005, il s'agit de pixels.
vala

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.