{ ********************************************************************** ** Programma: S1DEB8.PAS Versione: 1.1-16 Febbraio 1999 ** ** Ditta: GRIFO(r) Via Dell'Artigiano 8/6 ** ** 40016 San Giorgio di Piano (BO) ** ** Tel. 051-892052 FAX 051-893661 ** ** Realizzato da: Tassinari Enea ** ********************************************************************** Il programma e' in grado di visualizzare sui port A e C un loop di conteggio. Per il funzionamento del seguente programma e' necessario un compilatore pascal (parte software), una scheda DEB01 e una scheda GPC-15R opportunamente collegate (parte hrdware). } program S1DEB8; {$C-} { disabilita il Ctrl+C } const CNT=$17; { Registro di controllo e comando del PPI 82C55 } PDA=$14; { Registro dati del port A } PDB=$15; { Registro dati del port B } PDC=$16; { Registro dati del port C } RIT=20; { Ritardo di 100 ms } var STATO:byte; TASTO:char; VAL:integer; procedure INIZIALIZZAZIONE; { Inizializzazione del registro di controllo dell' 82C55 } begin port[CNT]:=130; end; procedure SCRITTURA (STATO:integer); { Scrittura sul Port A e Port C } var BYTEL,BYTEH:byte; begin BYTEL:=(STATO and $FF); BYTEH:=STATO and $FF00 shr 8; port[PDA]:=BYTEL; port[PDC]:=BYTEH; end; begin {programma principale } clrscr; INIZIALIZZAZIONE; gotoxy(10,3); writeln('VISUALIZZAZIONE DEL CONTEGGIO DEI LED SUI PORT A-C IN CORSO'); gotoxy(25,4); write('Premere un tasto per uscire'); begin { Vengono spenti tutti i led del port A e del port C } VAL:=0; SCRITTURA(VAL); repeat begin if VAL=$FFFF then VAL:=0 else VAL:=VAL+1; SCRITTURA(VAL); delay(RIT); end; until keypressed; end; SCRITTURA($FFFF); { Permette di mantenere, all'uscita del programma, tutti i led del spenti } read(kbd,TASTO); end.