' ********************************************************************** ' ** Programma: gmbi2cg.bas - Versione : 1.1 - 11 giugno 2003 ** ' ** Compilatore : BASCOM 8051 DEMO, (IDE e LIB V.2.0.11.0) ** ' ** Scheda : GMB HR84 e CAN GMx ** ' ** 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 ** ' ********************************************************************** ' ' ' Questi demo permettono di comunicare con disposivi I2C BUS collegati a CN3. ' In accordo con il Mini Modulo utilizzato, e' possibile leggere e scrivere ' byte ad un qualsiasi slave address ed address inseriti da console. ' In particolare, in lettura il byte ricevuto viene visualizzato, mentre in ' caso di scrittura il dato inserito viene spedito. ' ' ' 11.06.2003 by Graziano Gaiba ' ' ' Prima di compilare selezionare nel menu Option/Compiler/Misc/ : ' Byte End 80. ' '*********************************************************************** ' '****************** Direttive del compilatore ************************** ' $regfile = "grifo_mm.dat" $romstart = &H0 ' indirizzo di partenza del codice ' macchina per FLASH $ramstart = &H0 ' indirizzo di partenza della area ' dati $ramsize = &H100 ' pongo a 256 bytes la area dati $crystal = 14745600 ' frequenza di clock del microcontrollore $baud = 19200 ' velocità di comunicazione RS-232 $large ' indirizzamento a 16 bit $map Config Sda = P2.0 ' I2C serial DATA Config Scl = P2.1 ' I2C serial CLK ' ' '****************** Dichiarazione delle variabili ********************** ' Dim Valore As Byte , I As Byte ' Uso generico Dim Slave As Byte ' Slave address Dim Buf(30) As Byte ' Dati da ricevere e spedire Dim Inviare As Byte ' Numero dati da inviare Dim Ricevere As Byte ' Numero dati da ricevere ' '****************** Dichiarazione delle procedure ********************** ' ' '************************* Programma main ****************************** ' Main: Waitms 1 ' Ritardo Assestamento segnali ' Inizializza il demo Disable Interrupts ' Disabilita gli interrupts Auxr = &H0C ' Seleziona Eram Su Area Dati Esterna Eecon = &H00 ' Disabilita Eeprom Del Micro Adcf = &H00 ' Imposta P1 come I/O Print Chr(12) Print "Questo demo e' stato progettato per funzionare solo su una GMM 5115" Print "Proseguite nell'esecuzione solo se avete la scheda giusta!" Print "Se intendete proseguire, premete un tasto" Do Valore = Inkey Loop Until Valore <> 0 Do Print Chr(12) Print "Demo I2C BUS su CN3 di GMB HR84" Print Print "1) Scrittura" Print "2) Lettura" Print Print "Scelta: " Do Valore = Inkey Loop Until Valore = "1" Or Valore = "2" Print Input "Slave address (in decimale): " , Slave Input "Numero dati da ricevere: " , Ricevere Input "Numero dati da inviare: " , Inviare If Inviare <> 0 Then For I = 1 To Inviare Print "dato " ; I ; ") "; Input Buf(i) Next I End If Select Case Valore Case "1" : I2csend Slave , Buf(1) , Inviare Case "2": I2creceive Slave , Buf(1) , Inviare , Ricevere End Select If Ricevere <> 0 Then Print "Dati ricevuti:" For I = 1 To Ricevere Print "dato " ; I ; ") " ; Buf(i) Next I End If Print "Premere un tasto per continuare..." Do Valore = Inkey Loop Until Valore <> 0 Loop End ' '************************ Fine del programma *************************** '