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