CORSO di AUTOMAZIONE INDUSTRIALE

Documenti analoghi
CORSO di AUTOMAZIONE INDUSTRIALE

CORSO di Elettronica e Automazione

CORSO di Elettronica e Automazione

CORSO di AUTOMAZIONE INDUSTRIALE

CORSO di AUTOMAZIONE INDUSTRIALE

PROCESSOR 16F84A. ;configurazione FUSES: oscillatore XT, WDT disabilitato PWRT abilitato, CP disabilitato config 0x3FF1

Lezione 4. Figura 1. Schema di una tastiera a matrice di 4x4 tasti

Microcontrollori. L ultima parte del corso prevede un approfondimento sui microprocessori, in particolare sul PIC 16F876.

Esercizi di verifica del debito formativo:

PUNTATORE LASER AUTOMATICO CON COMANDO VIA ETHERNET

List p=16f84 ;Tipo di processore include "P16F84.INC" ;Definizioni di registri interni. goto Inizio

Lezione 8. Figura 1. Configurazione del registro INTCON

PIC Set istruzioni. Sintassi Descrizione Microchip Operazione equivalente Effetto su STATUS

Marcia e Arresto di un Motore elettrico

Pilotare un motore passo-passo, in questo caso il modello della Sanyo le cui caratteristiche principali sono quelle di figura1.

CIRCUITO DI TEST E SOFTWARE UTILIZZATI

GESTIONE DEI TEMPI CON IL TIMER1 DEL PIC16F876

Lezione 2. Figura 1. Schema del circuito necessario per le prove

Lezione 1 Caratteristiche principali del PIC16C84 L'hardware

PROGRAMMAZIONE ASSEMBLER

Programmazione del microcontrollore PIC 16F84

ESERCIZI SUI SISTEMI DI NUMERAZIONE

Lanciare MPLAB IDE (Start->Programmi->Mirochip->MPLAB IDE v7.22->mplab IDE):

Applicazioni dei microcontrollori PIC

a.a. 2014/2015 Docente: Stefano Bifaretti

Esame di FONDAMENTI DI AUTOMATICA (9 crediti) SOLUZIONE

APPUNTI SUL PIC16F84

Corso di Informatica Applicata. Lezione 7. Università degli studi di Cassino

MICROCONTROLLORE PIC16F84A

CONTROLLO IN RETROAZIONE

Il precedente programma è scritto in linguaggio Assembly per Z80. Il programma indicato sopra deve essere tradotto in codice Assembly per PIC

Capitolo X del Testo Ettore Panella Giuseppe Spalierno Corso di Elettronica 3 Edizioni Cupido MICROCONTROLLORE PIC 16F84

Reti e Sistemi per l Automazione LADDER LOGIC. Stefano Panzieri Ladder Logic - 1

PIC Esempi - LED. Per i primi esempi viene utilizzato soltanto un LED sulla porta B (PortB), successivamente si utilizzano più LED.

Gestione Degli INTERRUPT

Esercizi di Controlli Automatici

Controlli Automatici Compito del - Esercizi

Il precedente programma è scritto in linguaggio Assembly per Z80. Il programma indicato sopra deve essere tradotto in codice Assembly per PIC

SISTEMI ELEMENTARI DEL 1 o E 2 o ORDINE

mendiante un ciclo e finché il segnale rimane alto, si valuta il tempo T3 usando il timer del microcontrollore e una variabile di conteggio.

DISPOSITIVO PER LA LETTURA DI UN ENCODER INCREMENTALE

Vogliamo far lampeggiare i led collegati come in figura ai bit della porta D del PIC 18F8722 presente sulla demo board in dotazione al laboratorio.

Reti logiche (2) Circuiti sequenziali

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S La programmazione dei PIC.

INTRODUZIONE alla PROGRAMMAZIONE di MICROCONTROLLORI

Sistemi Elementari. Prof. Laura Giarré

AUTOMAZIONE INDUSTRIALE. 16 dicembre Cognome Nome Matricola Corso integrato

Corso di Automazione industriale

Il µcontrollore PIC 16F84

Fondamenti di Automatica (CL Ing. Gestionale) a.a Prof. Silvia Strada 16 Luglio 2014

SISTEMI ELEMENTARI DEL 1 o E 2 o ORDINE

Controllo a retroazione

Lezione 7. Requisiti di un sistema di controllo

SISTEMA DI SVILUPPO MC-16

Nome: Nr. Mat. Firma:

Progetto di Microcontrollori. Cronotermostato per Caldaia

Fondamenti di Automatica (CL Ing. Gestionale) a.a Prof. Silvia Strada Seconda prova intermedia 12 Febbraio 2015

PROVA SCRITTA di SISTEMI ELETTRONICI AUTOMATICI Prof. Luca Salvini 5Ae Nome 26/10/2011

Programmazione LADDER dei PLC Esempi ed esercizi Prima parte. ITI Alessandro Volta - Sassuolo Anno Scolastico 2009/2010

PROGRAMMA DEL DÌ AUTOMATICI

I PIC Partendo da Zero By link_89

SEA Descrizione. Centralina Controllo Strip LED RGB

rapporto tra ingresso e uscita all equilibrio.

Fondamenti per la Programmazione delle Macchine a Controllo Numerico

ESERCIZI NEL LINGUAGGIO ASSEMBLATIVO DEL MICROCONTROLLORE PIC 16F84

Corso di Laurea in Ingegneria Meccatronica SISTEMI ELEMENTARI DEL 1 o E 2 o ORDINE

AUTOMAZIONE INDUSTRIALE. 14 gennaio Cognome Nome Matricola Corso integrato

Esercitazione : REALIZZAZIONE IMPIANTO SEMAFORICO

Azione operata da un SFC che ha effetti sulla condizione di

Risposta temporale: esempi

Davide Gennaretti, Matteo Nicolini

DISPLAY LCD HD44780U(LCD-II)

Prova scritta di Controlli Automatici e sistemi elettrici lineari

CONTROLLI AUTOMATICI Ingegneria Gestionale LUOGO DELLE RADICI

PLC Sistemi a Logica Programmabile Il linguaggio AWL istruzioni di base

Introduzione. Corso di Informatica Applicata. Università degli studi di Cassino

Tutti i fogli sono da riconsegnare al docente, anche in caso di ritiro

Corso di Automazione industriale

5. Per ω = 1/τ il diagramma reale di Bode delle ampiezze della funzione G(jω) =

Note sull utilizzo di ISAGRAF V. 3.31

Esame di FONDAMENTI DI AUTOMATICA (9 CFU)

M045 - ESAME DI STATO DI ISTITUTO PROFESSIONALE

CONTATORE/TIMER PROGRAMMABILE CTC Z80 1. Piedinatura 2. Struttura interna 4. Modo timer 5. Modo Counter 8. Programmazione del CTC 13

Università degli studi di Roma La Sapienza. Laboratorio di Automatica

Sequential Functional Chart

La stabilità di un sistema non dipende dal segnale d ingresso, ma dipende solo dalla f.d.t. del sistema. Stabilità BIBO (Bound Input Bounded Output)

Corso di Automazione industriale

09. Luogo delle Radici

ESERCIZI PLC COL LINGUAGGIO BASIC

(Figura adattata da Modern Control Systems di R. Dorf R. Bishop, Pearson International Ed.)

PIANO DI LAVORO DEI DOCENTI

UNIVERSITA degli STUDI di BERGAMO FACOLTA di INGEGNERIA. Corso di AUTOMAZIONE INDUSTRIALE

STABILITÀ DEI SISTEMI Metodo di Bode e Nyquist

REGOLATORI PID. Modello dei regolatori PID. Metodi di taratura automatica

Fondamenti di Controlli Automatici

PERIFERICHE INTELLIGENTI colleghiamo un display LCD

Capitolo. Stabilità dei sistemi di controllo. 8.1 Generalità. 8.2 Criterio generale di stabilità. 8.3 Esercizi - Criterio generale di stabilità

Dispositivi per il controllo

Corso di programmazione Arduino DI MALVEZZI DAVIDE

Transcript:

CORSO di AUTOMAZIONE INDUSTRIALE (cod. 8469-21029) APPELLO del 22 Giugno 2011 Prof. Andrea Cataldo Soluzioni

Esercizio 1 (Domande generali) 1.a) Controllo Logico Dire se il seguente programma SFC è sintatticamente corretto oppure no. Commentare. 1 T1 [C1] T2 [C2] 2 Azione 2 Azione 3 3 T3 [C3] 4 Azione 4 T4 [C4] Soluzione: Errato in quanto tra le fasi 3 e 4, collegate da un arco orientato, non esiste la transizione (la 1 regola di costruzione dell SFC non è rispettata). 1.b) Controllo Modulante Dato un sistema fisico costituito da un serbatoio contenente acqua, si vuole controllare il livello mantenendolo il più possibile costante ad un valore predefinito. Dire perché il tipo di controllo modulante é quello idoneo per tale funzione. MISURATORE SERBATOIO CONTROLLORE LI LIC ACQUA VALVOLA Soluzione: Il controllo idoneo è quello modulante perché il processo fisico è caratterizzato da variabili continue nel tempo. In particolare il livello potrà assumere valori tra un massimo ed un minimo ed il sistema di controllo dovrà essere in grado di mantenerlo il più possibile costante.

1.c) Controllo Numerico Dire come si chiamano le funzioni caratterizzate dalla lettera M. Dire a che cosa servono in genere? Le funzioni (M) sono le Funzioni Ausiliarie. Esse impartiscono comandi alla Macchina in genere per i sistemi ausiliari. Possono essere sia Modali che Non Modali. 1.d) Controllo Microprocessore Data la seguente porzione di programma per microprocessore PIC 16F876, dire se il codice è formalmente corretto o se vi è qualche errore. In ogni caso commentare la scelta. ; Definizione delle variabili interne ALFA equ 0x20 ;ALFA BETA equ 0x21 ;BETA GAMMA equ 0xA0 ;GAMMA Digital_Input equ 0XA3 ;Variabile per identificare il valore degli Input Digitali acquisiti ;Digital_Input (0) = acquisizione valore di P1 ;Digital_Input (1) = acquisizione valore di P2 org 0x00 ;Indirizzo del Vettore di Reset goto Inizio ;Salta a inizio del programma org 0x04 ;Indirizzo del Vettore degli interrupt nop ;In questo programma non viene utilizzato alcun Interrupt org 0x05 ;... call Acquisisci_DI ;Acquisisce lo stato dei pulsanti ; Test sul pulsante P1 movf Digital_Input,0 ;Carica Digital_Input in W andlw b'00000001' ;Filtro sul bit 0 e ripone il risultato in W per vedere se P1 è stato premuto sublw b'00000001' ;Sottrae la maschera a W btfsc STATUS,Z ;Se la differenza è = 0 goto Test_P2 ;Il bit è a valore 0 quindi P1 non è stato premuto; Si testa quindi P2 btfss STATUS,Z ;Se la differenza è <> 0 ;Viene eseguita l'operazione Logica OR movf ALFA,0 ;Carica il valore di ALFA in W iorwf BETA,0 ;Esegue l'operazione OR tra ALFA e W e ripone il risultato in W movwf GAMMA ;Memorizza il risultato dell'operazione in GAMMA ;...

Essendo la variabili GAMMA memorizzata nell'indirizzo 0xA0 e quindi nel secondo banco di memoria dati (Bank1), è necessario esplicitare il cambiamento di banco di memoria prima di memorizzarne il contenuto bsf STATUS,RP0 ;Seleziona banco 1 bcf STATUS,RP1 ;Seleziona banco 1 movwf GAMMA ;Memorizza il risultato dell'operazione in GAMMA bcf STATUS,RP0 ;Seleziona banco 0 bcf STATUS,RP1 ;Seleziona banco 0

ESERCIZIO 2 (Controllo Logico) Premendo un pulsante (START) si accende una luce verde (VERDE) per 100s, poi si spegne e si accende una luce gialla (GIALLO) per 50s. Per entrambe le luci, se il sensore esterno per la luminosità rileva una quantità di luce naturale sufficiente (SENSORE = 0), le luci si spengono, indipendentemente dalla temporizzazione sopra citata. Se per esempio durante la temporizzazione il sensore disabilità le luci (SENSORE = 0) esse si spengono. Se durante lo stesso periodo di accensione luci il sensore torna ad abilitare le luci (SENSORE = 1), esse si devono riaccendere. Implementare il programma che realizza le suddette funzionalità in Ladder e SFC. Ingressi per il PLC: START, SENSORE Uscite per il PLC: VERDE, GIALLO Soluzione:

Esercizio 3 (Modellistica e FdT) Dato lo schema a blocchi sottostante, U(s) G1 + - G2 G3 + + Y(s) 3.a) dire se le seguenti implicazioni sono in generale (cioè per qualsiasi valore di G 1, G 2, e G 3 ) vere o false: 2.b.1) G tot stabile G 2 stabile F 2.b.2) G 3 stabile G tot instabile F 2.b.3) G 1 instabile G tot instabile V 3.b) calcolare la FdT complessiva G(s) = Y ( s) U( s) Soluzione G2 e G3 sono in retroazione negativa per cui G 23 G2 1 G G 2 3 Inoltre vi è un parallelo tra G23 ed il ramo inferiore che di fatto è una FdT con guadagno pari a 1, quindi G PT G 23 1 Il tutto in serie con G1 G TOT G 1 G PT

Esercizio 4 (Controllo modulante) Un sistema fisico è modellabile secondo la seguente equazione differenziale lineare: 5y ( t) y( t) u( t) 0 4.a) Ricavare la relativa equazione algebrica nel dominio di Laplace. 5SY(s) + Y(s)-U(s)=0 4.b) Ricavare la funzione di trasferimento F(s) tra le variabili U e Y associata al sistema modellato e dire di che ordine è. 1 F(s)= (1 5 s) La FdT è del I ordine 4.c) Ricavare eventuali zeri e poli della Funzione di Trasferimento e dire se è stabile. P = -1/5 = -0.2, stabile in quanto reale negativo 4.d) Determinare le costanti di tempo e ricavare il tempo di assestamento della funzione di trasferimento. T = 5s, Tass = 25s 4.e) Determinare il controllore, in retroazione negativa, più semplice appartenente alla famiglia dei PID che consente di ridurre il tempo di assestamento a 5s e che non richiede di annullare l errore a transitorio esaurito. (Dire di quale controllore si tratta e calcolarne i parametri). Non essendo richiesto un errore a transitorio esaurito nullo, il controllore é un Proporzionale. La FdT in anello chiuso é K 1 K 5 G(s)= dove è il nuovo guadagno statico e la nuova costante di 1 K 5 (1 s) 1 K 1 K 1 K tempo. Essendo richiesto un nuovo Tempo di assestamento pari a 5s, significa che la nuova costante di tempo deve essere pari a 1s. Da cui Kp = 4 4.f) Definito il controllore, determinare la nuova costante di tempo ed il nuovo polo del sistema retroazionato negativamente, calcolare il nuovo guadagno statico. T = 1s p = -1 µ = 4/5 = 0.8 4.g) Tracciare la risposta al gradino di ampiezza unitaria, indicando chiaramente sul grafico il valore della funzione a regime nonché il tempo di assestamento.

0.8 T=1s Tass=5s

ESERCIZIO 5 (Controllo Numerico) Date le seguenti istruzioni di un PART Program, avvalendosi del significato delle istruzioni definite nello standard ISO, determinare la traiettoria percorsa dall utensile (disegnarla solo nel piano XY) e commentare le varie istruzioni dicendo a cosa servono N10 G90 G17 F300 S1000 T01 M06 M03 N20 G00 X0 Y0 Z0 N30 G01 Y20 N40 G03 Y30 I0 J5 N50 G01 Y50 N60 G01 X30 N70 G01 Y40 N80 G03 Y20 I0 J-10 N90 G01 X20 Y10 G00 Posizionamento rapido dell utensile: massima velocità programmata G01 Interpolazione lineare: l utensile percorre una retta G02 Interpolazione circolare dell utensile in senso orario (I e J rispettivamente posizione X e Y del centro rispetto al punto di partenza della traiettoria circolare) G03 Interpolazione circolare dell utensile in senso antiorario (I e J rispettivamente posizione X e Y del centro rispetto al punto di partenza della traiettoria circolare) G17 X-Y Piano principale G18 Z-X Piano principale G19 Y-Z Piano principale G90 Sistema di riferimento assoluto G91 Sistema di Riferimento Incrementale M02 Programma finito M03 Mandrino acceso senso orario M04 Mandrino acceso senso antiorario M05 Mandrino spento M06 Fermata per cambio utensile M08 Valvola liquido aperta M09 Valvola liquido chiusa M30 Programma fermo, avanzamento /rotazione off

Soluzione 0,50 30 30,50 30,40 50 R5 0,30 R10 40 0,20 30,20 Y 0,0 20,10 X

ESERCIZIO 6 (Controllo Microprocessore) Dato il microprocessore PIC 16F876, scrivere un programma, utilizzando il set base delle relative istruzioni, che implementa le seguenti funzioni: Il programma è di fatto un ciclo infinito; Premendo un pulsante START, cablato sul pin RB0 della Porta B, viene accesa una Lampadina cablata sul pin RB1 della Porta B; Tale Lampadina rimane accesa per 100ms, dopo di ché si spegne; Essa rimane spenta per altri 100ms e solo dopo tale intervallo di tempo, premendo nuovamente START, può ricominciare un nuovo ciclo di accensione e spegnimento.

Soluzione ; ; ; ; Autore: Prof. Andrea Cataldo ; ; TE 22/06/2011 ; ;Configurazione delle porte di I/O ; ;***PORTB ;RB0 --- Pulsante START (Digital Input) ;RB1 --- Lampadina (Digital Output) ;RB2 --- ;RB3 --- ;RB4 --- ;RB5 --- ;RB6 --- ;RB7 --- ; List p=16f876 ;Tipo di processore #include "P16F876.INC" ;Definizioni di registri interni nel file incluso ; Word Configuration Bits CONFIG b'11111101111010' ;Config word usata nel debug in quanto mette in chiaro il codice ; CP1=0; CP0=0; DEBUG=1; 1; WRT=1; CPD=1; LVP=0; BOEDEN=1; CP1=0; CP0=0; PWRTE=1; WDTE=0; FOSC1=1; FOSC0=0; ; Definizione delle variabili interne (nel Bank 0 di memoria) NConteggi1 equ 0x20 ;Variabile usata nella routine di delay NConteggi2 equ 0X21 ;Variabile usata nella routine di delay Digital_Input equ 0X22 ;Variabile per identificare il valore degli Input Digitali acquisiti

;Digital_Input (0) = acquisizione valore di START org 0x00 ;Indirizzo del Vettore di Reset goto Inizio ;Salta a inizio del programma org 0x04 ;Indirizzo del Vettore degli interrupt nop ;In questo programma non viene utilizzato alcun Interrupt ;altrimenti verrebbe chiamata l'opportuna routine di interrupt org 0x05 ; *********************************************************** ; Main programma -------------------------------------------- ; *********************************************************** Inizio ; Inizializzazione dei registri e delle variabili di sistema call Config_Register ;Vengono configurate le Porte I/O call Reset_Var_Output ;Vengono resettate le variabili di uscita call Reset_Var ;Vengono resettate le variabili interne ; *************************************** ; CICLO PRINCIPALE DEL PROGRAMMA - INIZIO ; *************************************** ; In tale ciclo vengono considerati i seguenti punti principali: ; - Ciclo di acquisizione dello stato del Pulsante START ; - Accensione della lampadina e calcolo del tempo di accensione ; - Spegnimento della lampadina e calcolo del tempo di spegnimento Ciclo_principale call Acquisisci_DI ;Acquisisce lo stato del pulsante START ; Test sul pulsante START movf Digital_Input,0 ;Carica Digital_Input in W andlw b'00000001' ;Filtro sul bit 0 e ripone il risultato in W per vedere se START è stato premuto sublw b'00000001' ;Sottrae la maschera a W btfsc STATUS,Z ;Se la differenza è = 0 goto Ciclo_principale ;Il bit è a valore 0 quindi START non è stato premuto; Si torna al ciclo principale

btfss STATUS,Z ;Se la differenza è <> 0 call AccendiLampadina ;Viene accesa la lampadina call Delay_100ms ;Si attende un intervallo di tempo di 100ms call SpegniLampadina ; Si spegne la lampadina call Delay_100ms ;Si attende un intervallo di tempo di 100ms goto Ciclo_principale ; ************************************** ; CICLO PRINCIPALE DEL PROGRAMMA - FINE ; ************************************** ; *********************** ; ROUNTINES DEL PROGRAMMA ; *********************** ; Funzione Config_Register per la configurazione dei registri di sistema ; ********************************************************************** Config_Register bsf STATUS,RP0 ;Seleziona banco 1 bcf STATUS,RP1 ;Seleziona banco 1 movlw b'00000001' movwf TRISB ;RB0 DI, RB1-RB7 DO bcf STATUS,RP0 ;Seleziona banco 0 bcf STATUS,RP1 ;Seleziona banco 0 ; NON NECESSARIO ;*************** ; Configurazione registro OPTION_REG (Banco 1) ; -------------------------------------------- bsf OPTION_REG,7 ;Pull-ups PORTB disabilitati bsf OPTION_REG,6 ;Interrupt RBO su Fronte Salita bcf OPTION_REG,5 ;T0CS Internal Instruction bcf OPTION_REG,4 ;T0SE low-to-high transistion T0CK bcf OPTION_REG,3 ;Prescaler assegnato a Timer0 bsf OPTION_REG,2 ;Prescaler = 128 bsf

bsf OPTION_REG,1 ; " bsf bcf OPTION_REG,0 ; " bcf ;*************** bcf STATUS,RP0 ;Seleziona banco 0 bcf STATUS,RP1 ;Seleziona banco 0 return ;Fine routine Config_Register ; Funzione Reset_Var per il reset delle variabili interne ; ******************************************************* Reset_Var clrf NConteggi1 ;NConteggi1 = 0h clrf NConteggi2 ;NConteggi2 = 0h return ;Fine della funzione Reset_Var ; Funzione Reset_Var_Output - reset delle variabili di uscita ; *********************************************************** Reset_Var_Output return ;Fine della funzione Reset_Var_Output ; Funzione Acquisisci_DI ; ********************** ;*** PORTB ;RB0 --- Pulsante START ;RB1 --- ;RB2 --- ;RB3 --- ;RB4 --- ;RB5 ---

;RB6 --- ;RB7 --- Acquisisci_DI ; Lettura dei Digital Input dalla Porta B ; --------------------------------------- ; Lettura del Pulsante START (RB0) movf PORTB,0 ;Carica il latch della porta B in W andlw b'00000001' ;Filtro sul bit 0 e ripone il risultato in W sublw b'00000001' ;Sottrae la maschera a W btfsc STATUS,Z ;Se la differenza è = 0 bcf Digital_Input,0 ;Il bit è a valore 0 btfss STATUS,Z ;Se la differenza è <> 0 bsf Digital_Input,0 ;Il bit è a valore 1 return ;Fine della funzione Acquisisci_DI ; Funzione Delay_100ms - genera un ritardo di n*0,1s ; ************************************************** ; Funzione Delay_100ms è una procedura che realizza un ritardo pari a n cicli ; di 0,1s ciascuno. ; Se il PIC lavora a una frequenza di 20MHz, il TMR0 cambia ogni 0,4uS. Se si vuole tempo- ; rizzare 100.000 us (0,1S) con un prescaler di 128, il TMR0 dovrà contare 195 eventi (195 * ; 128 = 24960 eventi * 0,4uS = 9984uS), il tutto moltiplicato 10 volte (99.840uS). ; Il valore 195 equivale a C3h e, poiché il TMR0 è ascendente, bisognerà ; caricare il suo complemento 3Ch (C3h+3Ch=FFh cioè 195+60=255)per giungere in overflow ; e quindi per poter fare il controllo sul termine dell'intervallo di tempo misurato ; Il valore di n cicli deve essere caricato in W immediatamente prima della chiamata allu funzione Delay_100ms movwf NConteggi2 ;Carica il valore di n cicli nella variabile NConteggi2 Loop_DA_0 ;Ciclo di durata 0,1s movlw 0x0A movwf NConteggi1 ;Carica il numero di conteggi = 10 (0x0A) Loop_DA_1 bcf INTCON,T0IF ;Resetta il flag di overflow del TMR0

movlw 0x3C movwf TMR0 Loop_DA_2 ;carica il TMR0 con il valore esadecimale complementato btfss INTCON,T0IF ;Overflow del TMR0? Cioè il TMR0 ha contato 49920 eventi? goto Loop_DA_2 ;Ancora non sono passati i 1 ms decfsz NConteggi1,1 ;Diminuisci numero di conteggi. Si è ripetuto 10 volte? goto Loop_DA_1 ;Se no, ripeti ancora un ciclo di 9984 eventi decfsz NConteggi2,1 ;Diminuisci numero degli intervalli da 0,1s. Si è ripetuto NConteggi2 volte? goto Loop_DA_0 ;No, quindi temporizza un altro intervallo di 0,1s return ;Fine della funzione Delay_100ms ; Funzione AccendiLampadina - comanda l'accensione della Lampadina ; **************************************************************** AccendiLampadina bsf PORTB,1 ;Accensione Lampadina return ;Fine della funzione AccendiLampadina ; Funzione SpegniLampadina - comanda lo spegnimento della Lampadina ; ***************************************************************** SpegniLampadina bcf PORTB,1 ;Spegnimento Lampadina return ;Fine della funzione SpegniLampadina end ;Fine del programma principale