;************************************************** ; Pic by example ; INPUT.ASM ; ; (c) 2001, Sergio Tanzilli ; http://www.tanzilli.com ;************************************************** PROCESSOR 16F84 RADIX DEC INCLUDE "P16F84.INC" ;Setup of PIC configuration flags ;XT oscillator ;Disable watch dog timer ;Enable power up timer ;Disable code protect __CONFIG 3FF1H LED1 EQU 0 LED2 EQU 1 LED3 EQU 2 LED4 EQU 3 SW1 EQU 4 SW2 EQU 5 SW3 EQU 6 SW4 EQU 7 ORG 0CH ;Reset Vector ;Punto di inizio del programma al reset della CPU ORG 00H ;Commuta sul secondo banco dei registri per accedere ai registri TRISA e TRISB bsf STATUS,RP0 ;Definizione delle linee di I/O (0=Uscita, 1=Ingresso) ;Definizione della porta A movlw 00011111B movwf TRISA & 7FH ;Definizione della porta B ;Le linee da RB0 a RB3 vengono programmate in uscita per essere collegate ai quattro led ;Le linee da RB4 a RB7 vengono programmate in ingresso per essere collegate ai quattro pulsanti movlw 11110000B movwf TRISB & 7FH ;Commuta sul primo banco dei registri bcf STATUS,RP0 MainLoop ;Spegne tutti i led clrf PORTB ;Se e' premuto il pulsante SW1 accende il LED1 btfss PORTB,SW1 bsf PORTB,LED1 ;Se e' premuto il pulsante SW2 accende il LED2 btfss PORTB,SW2 bsf PORTB,LED2 ;Se e' premuto il pulsante SW3 accende il LED3 btfss PORTB,SW3 bsf PORTB,LED3 ;Se e' premuto il pulsante SW4 accende il LED4 btfss PORTB,SW4 bsf PORTB,LED4 goto MainLoop END