Compteur Piloté Par Cable Parallel


On se propose de piloter un afficheur à 7 segments via le port de l’imprimante.


Hard:

-Un afficheur à 7 segments :

-Un cable d’imprimante: on coupe le connecteur du coté de l’imprimante. De l’autre coté on aura le connecteur port parallèle.



On relie les fils correspondants aux 8 pins 2..9 (DO…D7) avec à des résistances R (470 W) puis aux 8 segments de l’afficheur de la manière suivante:
D0---R---a
D1---R---b
D2---R---c
D3---R---d
D4---R---e
D5---R---f
D6---R---g
D7---R---p

Soft:
Après avoir connecter le câble au PC on va écrire un programme assembleur qui permet de réaliser un compteur.
1) Ouvrir un bloc-notes
2) Taper le code suivant :
code segment
assume cs:code
org 100h
start:jmp debut
tab db 10 dup (63,6,79,102,108,125,7,127,111,128)
tempo proc near
mov si,65000
z:dec si
mov cx,10000
temp :loop temp
cmp si,0
jne z
ret
tempo endp
debut: mov di,02
d:
mov bx,offset tab
mov si,0
mov dx,378h
j: mov al,[bx+si]
out dx,al
call tempo
inc si
cmp si,10
jne j
call tempo
dec di
cmp di,0
jne d
int 20h
code ends
end start
3) On enregistre le bloc-notes sous le format .asm (compteur.asm) dans le dossier tasm télécharger de http://rapidshare.com/files/121040342/Tasm.rar.html
4) Le dossier tasm est un compilateur. Pour la compilation on ouvre l’invite des commandes (démarrer/Exécuter puis on tape command), on se place sur le répertoire ou on a enregistré le dossier tasm, on tape la commande tasm compteur.asm puis la commande tlink/t compteur.obj on aura enfin le fichier compteur.com.
5) On exécute compteur.com et on a notre afficheur qui compte de 0 à 9 deux fois puis il s’arête, pour modifier le nombre de répétition de comptage on doit changer la valeur affecté au registre di dans le code source.

Piano Avec Le Clavier (Assembleur)


On se propose de réaliser un piano avec les touches du clavier (les touches de ‘d’ à ‘l’) c très simple, juste on fait la compilation du code assembleur suivant :



code segment
assume cs:code
org 100h
start : jmp debut
message db 13,10,"taper une touche de 'd'...'l'",13,10,"$"
son proc near
mov bx, 500h
mov al, 0b6h
out 43h,al
mov dx,14h
mov ax,4f38h
div di
out 42h,al
mov al, ah
out 42h,al
in al,61h
mov ah,al
or al,3h
out 61h,al
delai:mov cx,500h
bruit:loop bruit
dec bx
jnz delai
mov al,ah
out 61h,al
ret
son endp
debut : mov ah,09
mov dx, offset message
int 21h
repeter:mov ah,01
int 21h
cmp al,'d'
je bcl1
cmp al,'f'
je bcl2
cmp al,'g'
je bcl3
cmp al,'h'
je bcl4
cmp al,'j'
je bcl5
cmp al,'K'
je bcl6
cmp al,'l'
je bcl7
cmp al,'q'
je bcl8
jne repeter
bcl1 : mov di,105h
call son
jmp repeter
bcl2 : mov di,125h
call son
jmp repeter
bcl3 : mov di,149h
call son
jmp repeter
bcl4 : mov di,15dh
call son
jmp repeter
bcl5 : mov di,188h
call son
jmp repeter
bcl6 : mov di,1b8h
call son
jmp repeter
bcl7 : mov di,20bh
call son
jmp repeter
bcl8 : int 20h
code ends
end start

Design by Free blogger template