Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 ;1) Configurar um programa em Assembly para o microcontrolador PIC16F84A, 2 ; no qual são conectados os botões 1 e 2 , nos pinos 6 e 8, 3 ; e os leds 1 e 2 nos pinos 7 e 9, respectivamente. 4 ; Ao pressionar o botão 1 o led 2 deve acender. 5 ; Ao pressionar o botão 2 o led 1 deve acender. 6 ; 7 ; '0' - botão acionado 8 ; '1' - botão liberado 9 ; 10 ; 11 12 ; 13 ; Aula 2 - botão/Led 14 ; 15 ; Aciona LED1 ligado em RB1, a partir de botão1 ligado em RB0 e 16 ; aciona LED2 ligado em RB3, a partir de botão2 ligado em RB2. 17 ; 18 ; OBS.: 19 ; 20 ; LEDs ligados no modo current sourcing: 21 ; 22 ; '0' - apaga 23 ; '1' - acende 24 ; 25 ; Botões ligados com resistor de pull-up: 26 ; 27 ; '0' - botão acionado 28 ; '1' - botão liberado 29 ; 30 ; 31 32 ; --- Arquivos incluídos no projeto --- 33 #include <p16f84a.inc> ; inclui o arquivo do PIC16F84A 34 35 ; --- Paginação de Memória --- 36 #define bank0 bcf STATUS,RP0 ;Cria um mnemônico para o banco 0 de memória 37 #define bank1 bsf STATUS,RP0 ;Cria um mnemônico para o banco 1 de memória 38 39 40 ; --- Entradas --- 41 #define botao1 PORTB,RB0 ;botão 1 ligado em RB0 42 #define botao2 PORTB,RB2 ;botão 2 ligado em RB2 43 44 45 ; --- Saídas --- 46 #define led1 PORTB,RB1 ;LED 1 ligado em RB1 47 #define led2 PORTB,RB3 ;LED 2 ligado em RB3 48 49 50 ; --- Vetor de RESET --- 51 org H'0000' ;Origem no endereço 0000h de memória 52 goto inicio ;Desvia do vetor de interrupção 53 54 ; --- Vetor de Interrupção --- 55 org H'0004' ;Todas as interrupções apontam para este endereço 56 retfie ;Retorna de interrupção 57 58 59 ; --- Programa Principal --- 60 inicio: 61 bank1 ;seleciona o banco 1 de memória 62 movlw H'F5' ;W = B'11110101' 63 movwf TRISB ;TRISB = H'F5' configura RB1 e RB3 como saída 64 65 bank0 ;seleciona o banco 0 de memória (padrão do RESET) 66 movlw H'F5' ;W = B'11110101' 67 movwf PORTB ;LEDs iniciam desligados 68 69 loop: ;Loop infinito 70 71 btfsc botao1 ;Botão foi pressionado? 72 goto salta1 ; senão salta1 73 bsf led1 74 goto segue 75 salta1: 76 bcf led1 77 goto segue 78 79 segue: 80 btfsc botao2 ;Botão foi pressionado? 81 goto salta2 82 bsf led2 83 goto final 84 salta2: 85 bcf led2 ;Sim, liga led2 86 87 final: 88 goto loop ;volta para label loop 89 90 91 end ;Final do programa
Compartilhar