{ ********************************************************************** ** Programma: S1DEB1.PAS Versione: 1.1 -25 Gennaio 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, premendo un numero esadecimale da tastiera compreso tra 0 e F, di visualizzare sul port A della scheda DEB01 il codice binario del tasto stesso. Il programma necessita di un compilatore pascal per quanto riguarda la parte software, mentre per quanto riguarda la parte hardware sono necessarie una scheda DEB01 per la visualizzazione e una scheda GPC-15R opportunamente collegate. } program S1DEB1; const CNT=$17; { registro di controllo e comando del PPI 82C55 } PDA=$14; { registro dati del port A } var RIS:integer; procedure INIZIALIZZAZIONE; { Inizializzazione del registro di controllo del 82C55 } begin port[CNT]:=139; end; procedure VISUALIZZAZIONE (valore:byte); { visualizzazione in codice binario del numero digitato da tastiera } begin port[PDA]:=valore; end; procedure AQUISIZIONE; { aquisisce un tasto da tastiera e converte il carattere nel suo valore ASCII } var ESA,DATO:char; begin gotoxy(1,1); writeln('Digita un numero esadecimale compreso tra 0 e F ( U per uscire )'); gotoxy(1,2); read(kbd,ESA); { permette di non avere un eco dell'input sullo schermo } DATO:=upcase(ESA); { permette di avere sempre il maiuscolo del tasto premuto } writeln(DATO); { visualizza il tasto premuto } { restituisce l'equivalente maiuscolo del contenuto di ESA } RIS:=ord(DATO); { restituisce il valore ordinale, secondo la tabella dei codici ASCII, del tasto premuto } gotoxy(1,3); clreol; if RIS <>85 then begin if (RIS >=48) and (RIS <=57) then VISUALIZZAZIONE(RIS-48) else if (RIS >=65) and (RIS <=70) then VISUALIZZAZIONE(RIS-55) else if (RIS <>85) then writeln('il numero digitato non rientra nel campo richiesto') else end else; end; begin {programma principale } clrscr; INIZIALIZZAZIONE; repeat AQUISIZIONE; until RIS =85; end.