'**************************************************************** '* Nome : FOCOLARE.BAS - PIC12CE674 * '* Autore : Mister Chip alias zio Carlino * '* Data : 09/12/02 * '* Note : SIMULA IL FUOCO ATTRAVERSO CINQUE LED HIGH BRIGHT * '* : ROSSI E GIALLI TRAMITE ROUTINE RANDOM E PAUSEUS * '**************************************************************** ' ------------------------------VARIABILI------------------------ LED1 VAR GPIO.0 'USCITA LED1 LED2 VAR GPIO.1 'USCITA LED2 LED3 VAR GPIO.2 'USCITA LED3 LED4 VAR GPIO.4 'USCITA LED3 LED5 VAR GPIO.5 'USCITA LED3 SEME VAR WORD 'RANDOM NUMBER ' ------------------------------COSTANTI------------------------- ALTO CON 1 'LIVELLO LOGICO ALTO BASSO CON 0 'LIVELLO LOGICO BASSO ' ----------------------------DEFINIZIONI------------------------ DEFINE OSC 4 'CLOCK 4 MHZ (ICE 2000 - MICROCHIP) DEFINE OSCCAL_2K 1 'CALIBRAZIONE AUTOMATICA PER 12CE674 OTP '**************************************************************** ' ------------------------------ MAIN PROGRAM ------------------- CLEAR 'AZZERO TUTTE LE VARIABILI ' ------------------------------COLLEGAMENTI PINS---------------- ' ---||--- ' VCC --> |1| |8| <-- GND ' LED R GP5 <-> |2| |7| <-> GP0 LED G ' LED G GP4 <-> |3| |6| <-> GP1 LED R ' N.C. GP3 --> |4| |5| <-> GP2 LED R ' -------- TRISIO = %001000 'USCITE: GP0, GP1, GP2, GP4, GP5 GPIO = %001000 'INGRESSI GP3 NON USATO OPTION_REG = %00000000 INTCON = %00000000 PIE1 = %00000000 ADCON0 = %00000000 ADCON1 = %00000111 'INGRESSI TUTTI DIGITALI ' --------------------------------------------------------------- ' --------------------------------------------------------------- MAIN: 'PARTENZA PROGRAMMA PAUSEUS 10 '10 MICROSECONDI DI PAUSA ' --------------------------------------- SEME = SEME + TMR0 'SOMMO IL VALORE DEL TIMER 0 AL SEME RANDOM SEME 'NUMERO RANDOM DA DOVE PRELEVARE I CINQUE BITS ' --------------------------------------- IF (SEME & %0000000000111110) = 0 THEN GOTO MAIN ' SE SEME VALE ZERO, RICALCOLA DI NUOVO ENDIF ' --------------------------------------- IF SEME.1 = ALTO THEN LED1 = ALTO IF SEME.1 = BASSO THEN LED1 = BASSO IF SEME.2 = ALTO THEN LED2 = ALTO 'QUI ACCENDO O SPENGO IF SEME.2 = BASSO THEN LED2 = BASSO 'CINQUE LEDS CHE SIMULANO IF SEME.3 = ALTO THEN LED3 = ALTO 'I BAGLIORI DEL FOCOLARE IF SEME.3 = BASSO THEN LED3 = BASSO IF SEME.4 = ALTO THEN LED4 = ALTO 'POTEVO USARE UN'AND, MA COSì IF SEME.4 = BASSO THEN LED4 = BASSO 'IL MICRO GENERA UNA SEQUENZA IF SEME.5 = ALTO THEN LED5 = ALTO 'PIU' FLUIDA E MENO RIPETITIVA IF SEME.5 = BASSO THEN LED5 = BASSO ' --------------------------------------- PAUSEUS SEME / 4 'PAUSA VARIABILE IN MICROSECONDI PAUSE 20 'PAUSA FISSA 20 MILLISECONDI ' --------------------------------------- IF SEME.7 = ALTO THEN GOTO MAIN 'REBOOT, MIGLIORA L'EFFETTO... PAUSEUS SEME 'PAUSA VARIABILE IN MICROSECONDI ' --------------------------------------- GOTO MAIN 'RITORNO IN LOOP ' --------------------------------------------------------------- END ' ------------------------- FINE DEL PROGRAMMA ------------------