Richiesta di funzionamento : Se S1 è premuto si deve accendere DL1, altrimenti è spento. Se S2 è premuto si deve accendere DL2, altrimenti è spento.


Schema del circuito da programmare :




la parte specifica del programma, è quella a colori:



; ********************************************************************************

; sorgente

; PROGRAMMA DELLA CLASSE QUARTA

; MICROCONTROLLORE PIC 16F877A

; A.S. 2016-2017

; IST. SUP. " S. D'ARZO "

; LINGUAGGIO DI PROGRAMMAZIONE : ASSEMBLER

; NOME SORGENTE : esempio_assembler.asm

; **********************************************************************ROMEI*****

;DEFINIZIONE DEI PIN DEL MICROCONTROLLORE

;

; INGRESSI

; RA0 : ()

; USCITE

; RB0 : ()

;

; N.B. TRA PARENTESI SONO INDICATI I PIN DEL PACKAGING DIP DEL uC

;

;

#INCLUDE "p16F877A.inc"

LIST P=16F877A, F=INHX8M

__CONFIG 0X3F3A

NOMEVAR EQU 20H ; DEFINIRE VARIABILE E LOCAZIONE DI MEMORIA (NOME MAX 6 CARATTERI)

;

;


ORG 00 ; INDIRIZZO INIZIO PROGRAMMA

GOTO INIZIO ; SALTA SUBROUTINE INTERRUPT

ORG 04 ; INDIRIZZO SUBROUTINE INTERRUPT

;

;

;

RETFIE ; RITORNA AL PUNTO IN CUI L'INTERRUPT E' STATO ATTIVATO

INIZIO: ; PROGRAMMA PRINCIPALE, VIENE ESEGUITO DOPO UN RESET O BLACK OUT

; DA QUI IN AVANTI VA SCRITTO IL PROGRAMMA