' ********************************************************************** ' ** Programma: S1DEB1 - Versione : 1.1 - 18 Febbraio 1999 ** ' ** Compilatore : BASCOM LT, (IDE V.1.20, LIB V.1.27) ** ' ** Scheda : GPC(r) F2 ** ' ** Ditta: grifo(r) ITALIAN TECHNOLOGY ** ' ** Via Dell' Artigiano 8/6 40016 San Giorgio di Piano (BO) ** ' ** Tel.+39 051 892 052 Fax +39 051 893 661 ** ' ** http://www.grifo.com http://www.grifo.it ** ' ** sales@grifo.it tech@grifo.it grifo@grifo.it ** ' ** ** ' ** Realizzato da: Enea Tassinari ** ' ********************************************************************** ' ' Questo programma permette di visualizzare sul monitor del sistema di ' sviluppo e sul portA un numero esadecimale compreso tra 0 e F digitato ' da tastiera. Sul portA il numero apparirā in conbinazione binaria. ' Per facilitare la visualizzazione dello stato delle linee č necessario ' collegare con un cavo flat a 20 poli, il connettore CN2, della GPC(r)F2, ' con il connettore CN1 della TIO 16, oppure al connettore CN15 della ' DEB 01. ' '*********************************************************************** ' '****************** Direttive del compilatore ************************** ' $romstart = &H8050 ' indirizzo di partenza del codice macchina $ramstart = &HD000 ' indirizzo di partenza della area dati $ramsize = &H2800 ' pongo a 10K la area dati $crystal = 11059200 ' frequenza di clock del microcontrollore $baud = 9600 ' velocitā di comunicazione RS-232 $large ' indirizzamento a 16 bit ' '****************** Dichiarazione delle costanti *********************** ' Dim Cnt As Const &HFA03 ' registro di controllo e comando del 82c55 Dim Pda As Const &HFA00 ' registro dati del portA ' '****************** Dichiarazione delle procedure ********************** ' Declare Sub Acqu_tasto ' acquisisce un tasto digitato da tastiera ' '****************** Dichiarazione delle variabili ********************** ' Dim Tasto As Byte ' Identifica il tasto premuto Dim Codice As Integer ' Identifica il codice ASCII del tasto premuto ' '************************* Programma main ****************************** ' Main: Waitms 1 ' ritardo per assestamento segnali Out Cnt , 139 ' programmo modo 0, portB e portC in input ' mentre il portA in output Out Pda , 255 ' metto in partenza tutti i led spenti Print Do Print " Premi un tasto esadecimale tra 0 e f (per uscire resetta la scheda): "; Do Tasto = Inkey ' Lettura tasto Loop Until Tasto <> 0 ' Verifica se č stato premuto un tasto Codice = Tasto And &H7F ' Elimino il bit otto Print Chr(tasto) ' Stampo il carattere del tasto premuto Acqu_tasto ' Chiamo la procedura che verifica il codice esadecimale Loop End ' '************************ Fine del programma *************************** ' ' '**************************** Procedure ******************************** ' ' Procedura che permette l'aquisizione di un tasto da tastiera compreso ' tra 0 e F e lo visualizza sul portA. ' parametri d'ingeresso: nessuno ' parametri d'uscita: codice = valore del tasto premuto che viene visualizzato sul portA Sub Acqu_tasto If Codice <> 85 Then ' Controllo che il codice del tasto non corrisponda alla lettera U If Codice >= 48 Then ' Controllo che il tasto premuto sia compresa fra 0 e If Codice <= 57 Then ' 9 Codice = Codice - 48 ' Faccio corrispondere al codice il numero esatto Codice = Not Codice ' Faccio un not Out Pda , Codice ' Scrivo sul port A il valo del tasto premuto Else If Codice >= 65 Then ' Controllo che il tasto premuto corrisponda e sia compreso fra le If Codice <= 70 Then ' lettere A e F maiuscole Codice = Codice - 55 ' Converto il codice della lettera nel suo valore decimale Codice = Not Codice ' Faccio un not Out Pda , Codice ' Scrivo sul port A il valo del tasto premuto Else If Codice >= 97 Then ' controllo che il tasto premuto corrisponda e sia compreso If Codice <= 102 Then ' fra le lettere a e f minuscole Codice = Codice - 87 ' Faccio corrispondere alle lettere il loro valore decimalr Codice = Not Codice ' Faccio un not Out Pda , Codice ' Scrivo sul port A il valo del tasto premuto Else ' se il tasto premuto non rientra nei numeri richiesti faccio comparire la scritta: Print " IL NUMERO NON RIENTRA NEL CAMPO RICHIESTO " End If End If End If End If End If End If End If End Sub