' ********************************************************************** ' ** Programma: S1DEB7.BAS - Versione : 1.1 - 03 Giugno 1999 ** ' ** Compilatore : BASCOM LT, (IDE V.1.20, LIB V.1.27) ** ' ** Scheda : GPC(r) 324 + ETI 324 ** ' ** 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: Graziano Gaiba ** ' ********************************************************************** ' ' Questo programma fa scorrere l'accensione di un LED in una direzione o ' nell'altra a seconda dello stato del jumper 1 della GPC(r) 324; se questo ' e' connesso scorre dai LED rossi verso quelli gialli, altrimenti scorre ' nella direzione opposta. ' Per indirizzare correttamente la scheda ETI 324 sull'ABACO(r) I/O Bus e' ' necessario associarla all'indirizzo esadecimale 80 mettendo a ON gli ' switch da 1 a 4 e mettendo a OFF lo switch 5. ' Per facilitare la visualizzazione dello stato delle linee è necessario ' collegare con un cavo flat a 20 poli, il connettore CN3 della ETI 324 ' al connettore CN15 della DEB 01, e collegare la ETI 324 alla GPC(r) 324 ' tramite ABACO(r) I/O Bus. ' '****************** 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 = 22118400 ' frequenza di clock del microcontrollore $baud = 19200 ' velocità di comunicazione RS-232 $large ' indirizzamento a 16 bit ' '****************** Dichiarazione delle costanti *********************** ' Dim Pda As Const &HFF80 ' registro dati del portA Dim Pdb As Const &HFF81 ' registro dati del portB Dim Pdc As Const &HFF82 ' registro dati del portC Dim Cnt As Const &HFF83 ' registro di controllo Dim Rundebug As Const &HFFF9 ' mappatura del registro di run/debug ' '****************** Dichiarazione delle variabili ********************** ' Dim Shifter As Byte ' Fa scorrere il LED Dim J1 As Byte ' Memorizza lo stato del jumper 1 Dim Porta As Bit ' Determina se muovere il LED su port A o C Waitms 1 ' Ritardo per assestamento dei segnali Out Cnt , &B10000010 ' Configura in ingresso il port B, ' in uscita i port A e C ' '************************* Programma main ****************************** ' Print " Programma dimostrativo 7 per la sezione 1 della scheda DEB(r) 01" Print : Print " Fa scorrere un LED verso sinistra se il jumper 1 e' connesso," Print " altrimenti lo fa scorrere verso destra." Print : Print " Esecuzione in corso..." Shifter = 1 Porta = 1 ' Comincia sul port A Do Shifter = Not Shifter ' Prepara la variabile per pilotare ' i LEDs in logica negata If Porta = 0 Then ' Se devono andare su port C Out Pda , 255 ' Spegne i LEDs su port A Out Pdc , Shifter ' Impone lo stato LEDs su port C Else Out Pda , Shifter ' Impone lo stato dei LEDs su port A Out Pdc , 255 ' Spegne i LEDs su port C End If Shifter = Not Shifter ' Ripristina il valore per la rotazione Waitms 255 ' Ritardo per avere poche rotazioni al secondo J1 = Inp(rundebug) ' Legge il registro di run/debug J1 = J1 And &B10000000 ' Isola lo stato del jumper 1 If J1 = 0 Then ' Se jumper è 1 connesso Rotate Shifter , Left ' Ruoto verso sinistra Else Rotate Shifter , Right ' Altrimenti ruota verso destra End If If Shifter = 0 Then ' Se la rotazione ha finito Porta = Not Porta ' Passala da port A a port C o viceversa If J1 = 0 Then ' Se jumper 1 è connesso Shifter = 1 ' Inizializza la rotazione verso sinistra Else Shifter = 128 'Inizializza la rotazione verso destra End If End If Loop End ' '************************ Fine del programma *************************** '