View Full Version : [ASSEMBLER] programmare la porta seriale
Arthemis
16-01-2005, 13:29
Ciao a tutti!
Volevo 1 manona sulla programmazione della porta seriale. Volevo fare un programmino per cominciare a capire come funziona per poi poter creare una specie di robotino. Intanto pero devo partire dalle basi ad esempio facendo accendere dei Diodi LED.
Mi servirebbe una guida o un sito per imparare a programmare la porta seriale e soprattutto non capisco dove devo collegare i LED.
Perfavore aiutatemi...Grazie in anticipo!
Se qualcuno è interessato a imparare con me questo argomento o in generale l'assembler mi contatti su ICQ, MSN o Posta.
ICQ: 338371937
MSN:
[email protected]
Posta:
[email protected]
fantoibed
16-01-2005, 14:05
Prima devi specificare in che ambiente deve funzionare il tuo programma:
1) modalità reale (tipo nei vecchi dos) -> ci si può interfacciare direttamente alle porte con inb, outb e soci...
...oppure...
2) da windows nt/2k/XP/2k3 -> Devi usare le apposite funzioni messe a disposizione dal sistema operativo. Link (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp)
...oppure...
3) da linux -> hai altre funzioni ancora. Leggi il Serial HOWTO (http://www.tldp.org/HOWTO/Serial-HOWTO.html) o guardati un programma di esempio, tipo questo (http://www.comptechdoc.org/os/linux/programming/c/linux_pgcserial.html)
Per windows 3.xx, 95, 98, Me ti conviene riferirti al caso (2) anche se dovrebbe funzionare anche il metodo descritto al punto (1)....
Per i programmi console per windows (spesso definiti erroneamente DOS) devi comunque utilizzare le API di Windows... ;)
Esempio:
mov ah,00h
mov al,<byte di configurazione>
mov dx,0001h
int 14h
Servizio (mov ah,<servizio>):
Programmazione, inizializzazione = 00h
Trasmissione = 01h
Ricezione = 02h
Byte di configurazione (mov al,<byte di configurazione>):
bit 7,6,5 baud rate
000 110 baud
001 150 baud
010 300 baud
011 600 baud
100 1200 baud
101 2400 baud
110 4800 baud
111 9600 baud
bit 4,3 tipo di parità
00 nessuna parità
01 parità pari
10 nessuna parità
11 parità dispari
bit 2 numero di bit di stop
0 1 bit
1 2 bit
bit 1,0 dimensione del carattere
00 non utilizzato
01 non utilizzato
10 7 bit
11 8 bit
Indirizzo COM (mov dx,<indirizzo com>):
COM1 = 0000h
COM2 = 0001h
COM3 = 0002h
COM4 = 0003h
Interrupt (int <numero int>):
chiamata al bios = 14h
PS puoi anche programmare + a fondo (vai direttamente sull'uart ma sarebbe molto + complesso imho)
Ovviamente il servizio int che è stato richiamato sopra è disponibile sono in modalità reale (sotto DOS)...
ovviamente, io uso il per asm un vecchio pc con su MS DOS 6.22 con TASM, TLINK e TD di borland ;)
Arthemis
17-01-2005, 16:49
Ciao!
Grazie 1000!
Comunque mi dispiace tanto ma io mi sono sbagliato...mi interessava la porta parallela no la seriale. E poi 1 altra cosa:
a me interesserebbe far accendere dei Diodi LED solo non so proprio cosa fare. Dalla guida di sirius non ho capito moltissimo. Se avete una guida oppure vi va di aiutarmi magari via MSN o ICQ o email:
Email:
[email protected]
MSN:
[email protected]
ICQ: 338371937
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.