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