sabato 19 novembre 2011

Progetto per l'utilizzo degli interrupt con il PIC16F628A (Es. lab3)

Esercizio da consegnare in formato elettronico entro il mercoledi 30 (utilizzare come riferimento il programma e lo schema elettrico precedente, Es. lab2) :
-  Preparare con Eagle lo schema elettrico, collegare 4 led al pic, LED0 a RB2, LED1 a RB3, LED2 a RB4, LED3 a RB5
- Adeguare le routine led_init e led_blink del programma precedente al nuovo hardware, scrivere delle nuove routine per i led 2 e 3 (led2_on, led3_on, led2_off, led3_off)
-  Scrivere una routine 'led_hex' che visualizzi sui 4 led i quattro bit meno significativi del registro wreg, in pratica visualizziamo in binario il contenuto basso di wreg: bisogna testare i singoli bit di wreg e accendere o meno il led corrispondente (es. se bit0 di wreg=0 led0->off altrimenti led0->on, ...)
- Scrivere la routine 'rb0_int_init' che azzeri la variabile 'p1_num_click' inizializzi correttamente il registro 'INTCON' del pic;
- Aggiungere all'interno della routine di gestione degli interrupt 'isr' (presente nel template) del codice che: ad ogni pressione del pulsante P1 incrementi il valore della variabile 'p1_num_click' e visualizzi in binario sui 4 led tale valore.


Prerequisiti:
- montare su bread bord il circuito
- studiare (e stampare) le seguenti pagine del datasheet del PIC16F628A :
  * pag 18 - DATA MEMORY MAP OF THE PIC16F627A AND PIC16F628A
  * pag 24-26 - STATUS register, OPTION register, INTCON register
  * pag 117-130 - INSTRUCTION SET SUMMARY

Nessun commento:

Posta un commento