/********************************************************************** ** Programma: S1DEB8.C - Versione : 1.1 - 04 Agosto 1999 ** ** Compilatore : BASCOM LT, (IDE V.1.20, LIB V.1.27) ** ** Scheda : GPC(r) 323 ** ** 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 esegue un loop di conteggio con rappresentazione dello stato sui port A e C. Per facilitare la visualizzazione dello stato delle linee è necessario collegare con un cavo flat a 20 poli, il connettore CN7 della GPC(r) 323 al connettore CN15 della DEB 01. */ #include<8051.h> #include // // ******************** Direttive del compilatore ************************** // // Sono incorporate nel file S1DEB8.PRJ // // ********************* Dichiarazione delle costanti *********************** // volatile far unsigned char Pda @ 0xFFFC; // Registro dati del portA volatile far unsigned char Pdb @ 0xFFFD; // Registro dati del portB volatile far unsigned char Pdc @ 0xFFFE; // Registro dati del portC volatile far unsigned char Cnt @ 0xFFFF; // Registro di controllo // // ******************** Dichiarazione delle variabili ********************** // // // *************************** Programma main ****************************** // void main() { unsigned int counter; // Variabile che memorizza il valore del conteggio unsigned int delay; // Variabile usata per creare un ritardo printf(" Programma dimostrativo 8 per la sezione 1 della scheda DEB(r) 01\n\n"); printf(" Esegue un loop di conteggio e ne visualizza lo stato sui port A e C.\n\n"); printf(" Esecuzione in corso...\n\n"); Cnt=0x82; // Configura in ingresso il port B // In uscita i port A e C counter=0; // Azzera il contatore do { counter=~counter; // I led funzionano in logica negata Pda=counter & 0x00FF; // Sui LED rossi vanno i primi 8 bits Pdc=counter>>8; // Sui LED gialli vanno gli ultimi 8 bits counter=~counter; // Ripristina il valore della variabile counter++; // Incrementa il contatore for(delay=0; delay<20000; delay++) ; // Ritardo per limitare ad un evento visibile // Il conteggio } while(1); // Ripeti all'infinito } // // ************************** Fine del programma *************************** //