Riconoscitore di sequenza: Risposte
inizialmente RA0 acceso, RA2 spento
se si attivano in ordine RB1, RB2, RB3, RB4 lo stato dei led si scambia per 1s e si ritorna nello stato iniziale.
ogni pressione di un tasto attiva per 1s RA1 e disabilita momentaneamente altri inserimenti
All'arrivo di una richiesta di interrupt sulla linea RB0 il programma accende i led connessi a PORTA in successione per 10 volte.
Generare un segnale bitonale di frequenza 600/1000 Hz. Ogni tono dura 1s. (usare TMR0).
Garage vigili del fuoco: 2 fotocellule (FC1 e Fc2) per il mezzo dei vigili e un semaforo (R, G, V) per gli altri
Inizialmente è attivo il verde ;
l'attivazione di FC1 attiva il giallo per 2s;
si attiva il rosso
si aspetta l'attivazione di FC2
disattivando FC2 (il mezzo è passato) i semafori ritornano nella condizione iniziale dopo 2s.
Un'autorimessa, inizialmente vuota e con MAX posti, presenta una fotocellula in ingresso ed una in uscita; un semaforo in ingresso (rosso o verde) deve segnalare se ci sono posti disponibili.
Passaggio a livello. La regolazione del traffico avviene tramite due fotocellule: l'attivazione della prima fotocellula accende un semaforo che si spegne dopo la disattivazione della seconda fotocellula; un cancello ausiliario deve essere aperto per 5s se le due fotocellule sono impegnate contemporaneamente (automezzo lungo).
Passaggio a livello per treno. Due sensori che rilevano il treno (il primo a 2Km di distanza il secondo dopo il passaggio a livello), un motore (per la sbarra) simulato da due led (apertura e chiusura), due finecorsa motore, un semaforo acceso o spento. Alla prima fotocellula si accende il semaforo e dopo 10 secondi si chiude la sbarra. Dopo la disattivazione della seconda fotocellula il semaforo si spegne e la sbarra si apre.
Alzacristalli in salita con finecorsa FC e pulsante di comando motore:
se FC è attivo, il motore è disattivato;
se FC non è attivo, premendo il pulsante il motore si attiva:
per t<1s, il motore segue il pulsante (tranne il tempo di antirimbalzo)
oltre1s, il motore rimane attivo anche se il pulsante si disattiva.
Misura di tempo. Start/Stop sul fronte di discesa di RB0/RB1. Usare TMR0. Fornire la misura in unità di 100us sui tre led.
Autovelox. Con due sensori, distanti 10m, segnalare se la velocità supera 50Km/h con l'accensione di un led rosso. L'attivazione di un pulsante consente un nuovo ciclo.
Speed test. Tre pulsanti, ognuno con un led associato. Con un ritardo casuale tra 1 e 4 secondi, si accende casualmente uno dei tre led; premendo il relativo pulsante, se si batte il record precedente si accendono tutti e tre i led; premendo uno dei tre pulsanti si ricomincia.