1) Répartiteur VGA

L'appareil sert à pouvoir visionner en même temps 4 moniteurs VGA à partir d'une seule sortie de carte graphique VGA. Pour donner cours le professeur dispose d'un des 4 moniteurs et de l'ordinateur et ses 10 élèves regardent le cours sur les trois autres moniteurs par groupe de 3 à 4 élèves.

Schéma:

Les transistors utilisés sont de BC548 classique, le schéma est un ampli VGA , il est donc triplé pour les trois couleurs fondamentales.

Si sur le plan il fait marqué 10 sur une résistance, c'est 10 ohms. 180 c'est 180 ohms. Car plusieurs personnes

Mon envoyés des E-mail pour cela. Pour les synchro horizontales et verticales ils sont commander par des portes logiques 7432 ne pas mettre les 74LS32 à la place car ils ne sont pas suffisamment puissants,

il vaut mieux utilisé une seule porte par sortie synchro, car certain moniteur VGA sont plus gourmand que d'autre en courant. Le 74HCT32 commande les 7432.

Il y avait moyen d'utiliser des IC analogique mais ca augment le prix considérablement.

implantation:

PCB: côté cuivre et composants avec protel 1.5

Attention si vous avez une image floue, c'est du à une mauvaise masse, un mauvais trou métallisé ou un oubli de soudure sur une pinne.

 

2) Isolation OPTO pour port parallèle unidirectionnel de PC compatible IBM

Il est de plus en plus recommander de mettre une isolation OPTO sur vos ordinateur pour faire des montages autour des ports séries et parallèles. Surtout si vous avez une carte mère avec le chipset VIA et CPU AMD, elles sont très fragiles.

autre schéma plus rapide mais plus coûteux

PCB

N'oubliez pas les résistances smd 1k8 sur les entrées pin 7 des optos reliées au plus 5 Volts.

Avant de brancher votre carte sur votre PC tester la rigoureusement avec votre multimètre élément par élément.

Il y va de la vie de votre PC, faite ça bien et surtout ne soyez pas trop pressez.

Vous simulez votre ordinateur en appliquant des "1" sur les 12 entrées.

Vous simulez votre carte dans l'autre sens également en placent des "0" sur les entées.

Les Optos 6NY84 suivent jusqu'à 100 Khz alors que les 74HCTxxx suivent jusqu'à 10 Mhz.

Si vous voulez monter à 10 Mhz, il faut essayer les OPTOs 6N137 au lieu des CNY74, le gros problème c'est qu'ils coûtent chers et sont encombrants.

Ce circuit est valable pour les jeux de lumière commandés par ordinateur. Par contre pour un programmateur d'EPROM qui doit tourner nettement plus vite, ce circuit ne tournera pas correctement, mais il pourra servir pour les diagnostiques de dépannage ou de conception.

3) Isolation OPTO pour port série de PC compatible IBM

 

Voici le PCB avec protel 1.5 sur une euro carte. Il faut deux alimentations 5 V différentes, une de chaque côté des OPTOS. Attention la face ou est fixé les connecteurs DB9 doit être en matière isolante afin d'isolé les masses entre PC et votre sortie opto sans quoi votre appareil ne sert à rien.

Quick BASIC

Voici un petit programme en Qbasic pour faire clignoter la led D0 et vérifier la transmission du signal de l'entrée de cette carte Opto à la sortie n°2 de la DB 25 mâle.

CLS

10

OUT &h378,0

FOR x=1 to 200000

NEXT x

OUT &h378,1

FOR x=1 to 200000

NEXT x

IF INKEY$<>"" THEN END

GOTO 10

END

Si l'adresse de votre port parallèle est 278 à la place de 378, changez le dans votre programme.

Explication du programme.

CLS est une instruction qui efface l'écran en Qbasic.

Out est une instruction qui va effectuer le changement d'état du port parallèle de votre PC.

&h378 est l'adresse de votre port parallèle en hexadécimal.

0 éteint toutes les LED de D0 à D7

FOR x=1 to 200000

NEXT x --> est une boucle de durée. En effet, vous faite compter votre ordinateur en donnant à la variable x la valeur 1 et l'instruction NEXT x renvoie de nouveau à la variable x qui prendra une valeur incrémenté de 1 unité et le cycle continue jusqu'à ce que la variable x arrive à 200000. Ensuite la boucle s'arrête et vous passez à l'instruction suivante donc à la ligne suivante. C'est la durée pendant lequel la LED restera allumée.

OUT &h378,1 accède au port parallèle pour modifier ses états.

1 est le bit de poids le plus faible que vous allumez, dont vous lui donnez la valeur 1.

Si vous voulez allumez uniquement la Led D1, vous donnerez la valeur 2 à la place de la valeur 1.

Si vous voulez allumez uniquement la Led D2, vous donnerez la valeur 4 à la place de la valeur 1.

Si vous voulez allumez uniquement la Led D3, vous donnerez la valeur 8 à la place de la valeur 1.

Si vous voulez allumez uniquement la Led D4, vous donnerez la valeur 16 à la place de la valeur 1.

Si vous voulez allumez uniquement la Led D5, vous donnerez la valeur 32 à la place de la valeur 1.

Si vous voulez allumez uniquement la Led D6, vous donnerez la valeur 64 à la place de la valeur 1.

Si vous voulez allumez uniquement la Led D7, vous donnerez la valeur 128 à la place de la valeur 1.

Si vous voulez allumez toutes les Led de D0 à D7, vous donnerez la valeur 255 à la place de la valeur 1.

En effet avec 8 fils vous avez 256 possibilités et si vous comptez le zéro avec, il vous reste 256 - 1 = 255 possibilités. 28=256, c'est simple vous placez le nombre de fils comme exposant sur le 2 qui lui représente le binaire et le tour est joué vous obtenez le chiffre 256. Ne pas oublier que 28 est 2*2*2*2*2*2*2*2=256.

FOR x=1 to 200000 est la deuxième boucle de temps durée pendant lequel la LED restera allumée.

NEXT x

IF INKEY$<>"" THEN END cette instruction permettra de sortir de notre boucle en appuyant sur n'importe quelle touche du clavier PC, pour arrêter le programme.

GOTO 10 nous renvoi à la ligne N°10 en boucle continue.

END -->fin du programme, notez bien que cette instruction n'est pas obligatoire puisqu'on n'y arrive jamais car le programme boucle toujours.

En DELPHI

 asm

mov dx, 0378h

mov ax, 255

out dx, al

end;

end;

En delphi, on doit ouvrir une section en assembleur car les registres sont de 32 bits.

Vous placez l'adresse hexadécimal 0378h dans le registre appelé dx en ligne 2.

En ligne 3 vous placez le nombre décimal 255 dans le registre accumulateur ax.

En ligne 4 vous activez le port parallèle d'adresse dx et vous allumez toutes les diodes LED.

En ligne 5 fin du programme.

Les boucles de durées peuvent se faire en pascal c'est pour plus tard.

 

En visuel Basic 6

Port série

Après avoir démarré windows les sorties TX, DTR et RTS du port série RS 232 sont au niveau logique 0 et la tension est de –10 Volts.

Vous aurez un 1 logique pour une tension de +10 Volts.

 

1 -> de +3 v à +10 v |suivent le type de PC.

0 -> de –3 v à -10 v |

Modifier l’état du port de sortie série et parallèle avec visuel basic nécessite une DLL pour windows à placer dans le directoire windows\system . Le nom de fichier de cette DLL est port.dll et avec cette DLL il faut faire une succession de déclarations pour que visuel basic la tienne en compte. Cette succession de déclaration est mise dans un fichier module appelé ports.bas car on ne va pas taper toutes ces déclarations à chaque fois que l’on ouvre visuel basic 6.

Comment mettre le module ports.bas dans visuel basic 6 ?

Et bien en cliquant sur projet du menu, puis en cliquant sur ajout un module, et puis sélectionnez l’onglet existant et dirigez vous dans les directoires sur votre fichier ports.bas et cliquez sur lui. Voilà toutes les 36 lignes de déclarations sont présentes dans visuel basic 6.

Voici les fichiers :on les trouvent aussi sur internet et en trouve même d'autre et tout est gratis.

Comment activer une sortie du port série ?

Pour adresser le port RS232, il faut ouvrir le port comme lors d’un ace fichier.

Attention lors de l’ouverture de ce port vous effectuez ré-initialisation des sorties qui peuvent perturber votre montage. C’est pourquoi, qu’on pratique l’ouverture du ce port à l’ouverture de votre feuille d’application. Et on refermera le port en ressortant de cette feuille.

 

Dans le code d’ouverture de la feuille tapez

 

Private Sub Form_Load()

OPENCOM ("com1,1200,n,8,1")

End Sub

 

Et dans le code de fermeture de la feuille tapez. Attention sélection sur l'onglet de FROM l'option UNLOAD et on obtient à

 

Private Sub Form_Unload(Cancel As Integer)

CLOSECOM

End Sub

 

Pour activer RTS avec un bouton tapez dans le code de ce bouton

Private Sub Command1_Click()

TXD 0

RTS 1

DTR 0

End Sub

Pour désactiver RTS avec un bouton tapez dans le code de ce deuxième bouton

Private Sub Command2_Click()

TXD 0

RTS 0

DTR 0

End Sub

 

Autre façon de procéder.

 

 

Dans le code d’ouverture de la feuille tapez

 

Private Sub Form_Load()

OPENCOM ("com1,1200,n,8,1")

End Sub

 

Et dans le code de fermeture de la feuille tapez

 

Private Sub Form_Unload(Cancel As Integer)

CLOSECOM

End Sub

 

Pour activer RTS avec un bouton tapez dans le code de ce bouton

Private Sub Command1_Click()

OUTPORT &h3F8+4, 2

End Sub

Pour désactiver RTS avec un bouton tapez dans le code de ce deuxième bouton

Private Sub Command2_Click()

OUTPORT &h3F8+4, 0

End Sub

 

2 à RTS à 1

1 à DTR à 1

3 à RTS et DTR à 1

0 à RTS et DTR à 0

 

pour TX à OUTPORT &h3F8+3, 64

 

Comment LIRE une ENTREE du port série ?

Ils y 5 entrées sur un RS232

DCD

RX

RI

DSR

CTS

De –3 v à -10 v on a un 0 logique

et de +3 v à +10 v on a un 1 logique

En visuel basic 6 on peut lire en direct seulement 4 entrées DCD,RI,DSR et CTS.

 

Dans le code d’ouverture de la feuille tapez

Private Sub Form_Load()

OPENCOM ("com1,1200,n,8,1")

End Sub

 

Et dans le code de fermeture de la feuille tapez

Private Sub Form_Unload(Cancel As Integer)

CLOSECOM

End Sub

 

Pour lire DCD avec un bouton tapez dans le code de ce bouton

Private Sub Command1_Click()

A=DCD( )

End Sub

 

Ou

Private Sub Command1_Click()

A=INPORT(&h3F8+6) and 128

End Sub

On aura CTS pour 16, DSR pour 32, RI pour 64 et DCD pour 128

 

Transmission asynchrone par tx et rx

Transférer avec un UART

 

Dans le code d’ouverture de la feuille tapez

Private Sub Form_Load()

OPENCOM ("com1,1200,n,8,1")

End Sub

 

Et dans le code de fermeture de la feuille tapez

Private Sub Form_Unload(Cancel As Integer)

CLOSECOM

End Sub

 

 

SENDBYTE(2) à émet sur TX le nombre 2

Données = READBYTE à reçoit sur RX les 8 bits

 

 

Port parallèle

Adresse 379 ou 279 ou 3BD

 

Pour la DLL et les déclaration voilez le port série, il faut que cette DLL soie dans le directoire système de windows. Et en principe les déclarations de fonction vous les avez déjà faite.

Il faut utiliser l'instruction OUTPORT &H378,255 pour mètre à 1 logique toutes les données du port parallèle de D0 à D7. OUTPORT &H378,0 pour mettre D0 à D7 à 0 logique.

On peut ne changer qu'un seul bit le 3 ieme à OUTPORT &H378,INPORT (&h378) OR 4

 

Pour le bus de commande 4 bits sont adressable en sortie: stobe, autofeed, init, sel in

 

OUTPORT &H37A,INPORT (&h37A) OR 4

 

 

 

Les entrées

Attention ne pas utiliser cette instruction en temps que telle B = INPORT(&H379)

Mais B3 = INPORT(&H379) AND 8 car les bits 1 , 2 , 3 sont pas définis.

Réponse B3 = 0 nous indique un zéro logique

B3 = 8 nous indique un 1 logique ou 5 V

 

 

Attention le bit n°8 est inversé

Ex) B7 = INPORT(&H379) AND 128

 

Réponse B7 = 0 nous indique un 1 logique

B7 = 128 nous indique un 0 logique ou 0 V

 

PASCAL Microcontrôleur Fam 8051

 

Structure générale d'un programme

 

En rouge les mots clés

En bleu ; un point virgule qui signifie que l'instruction est finie et que le programme doit continué.

En vert les noms

En brun (**) les commentaires sont situés dans les parenthèses.

En violet ('contenu d'affichage à l'écran')

 

 

program Nom; (*je donne un nom au programme*)

var nb_de_sonneries, sonneries_supl : integer; (*ma variable nommée

nb_de_sonneries est un nombre entier de -32767 à +32767* )

(*ma 2eme variable nommée sonneries_supl est un nombre entier de -32767 à

+32767* )

begin (*début du programme*)

write ('combien de coups de sonnerie désirez-vous ?');

read (nb_de_sonneries); (*entrez le nombre de coups de sonnerie*)

writeln ('D''accord, les voiçi: ', nb_de_sonneries);

write ('combien de coups de sonnerie supplémentaires voulez-vous ?');

read (sonneries_supl);

writeln ('Addition des coups de sonnerie: ',nb_de_sonneries + sonneries_supl);

end.(*fin du programme, n'oubliez pas le point après le end*)

 

 

opérateurs

 

l'addition à +

la soustraction à -

la multiplication à *

la division à div

le reste de la division à mod

 

égal à =

supérieur à à >

inférieur à à <

supérieur ou égal à >=

inférieur ou égale à <=

 

condition si à if

alors à then

sinon à else

Logique

et à AND

ou à OR

Non à not

à <>

Retour