Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Programa
1 #include <p18f4550.inc>
2 config CPUDIV = OSC1_PLL2 ;
3 config FOSC = HS ;
4 config WDT = OFF ;
5 config PBADEN = OFF ;
6 config LVP = OFF ;
7 config MCLRE = ON ;
8 config PWRT = ON ;
9
10 org 0x0000
11 bra start
12 org 0X020
13
14 start:
15 BCF INTCON2, 7, 0
16
26 Loop:
27 ;Transfere a entrada B para a saída D.
28 MOVFF PORTB, LATD
29 BRA Loop
30
31 end
1
quais terão função de saída. Além disso, é indicado que as entradas e saídas serão
do tipo digital.
Em seguida, o programa entra em um loop, no qual os dados de entrada da PORTA
B (onde estão conectadas as chaves) são carregados na saída da PORTA D (onde
estão conectos os LED’s).
2. Programa
1 #include <p18f4550.inc>
2 config CPUDIV = OSC1_PLL2 ;
3 config FOSC = HS ;
4 config WDT = OFF ;
5 config PBADEN = OFF ;
6 config LVP = OFF ;
7 config MCLRE = ON ;
8 config PWRT = ON ;
9
10 org 0x0000
11 bra start
12 org 0X020
13
14 start:
15 BCF INTCON2, 7, 0
16
26 Loop:
27 ;Transfere o bit 8 da entrada B para o bit 0
28 ;da saída D.
29 BTFSS PORTB, 8
30 BCF LATD, 0, 0
31 BSF LATD, 0, 0
32 BRA Loop
33
34 end
2
o bit testado seja 1. Então, nesse caso o bit 0 da PORTA D é setado caso o bit 8
da PORTA B seja 1. Caso contrário, o bit 0 da PORTA D é resetado.
3. Programa
1 #include <p18f4550.inc>
2 config CPUDIV = OSC1_PLL2 ;
3 config FOSC = HS ;
4 config WDT = OFF ;
5 config PBADEN = OFF ;
6 config LVP = OFF ;
7 config MCLRE = ON ;
8 config PWRT = ON ;
9
10 org 0x0000
11 bra start
12 org 0X020
13
14 start:
15 BCF INTCON2, 7, 0
16
26 Loop:
27 ;Testa o bit 1 (RB1) da porta B e aciona o buzzer
28 ;caso esse seja 1.
29 BTFSS PORTB, 1
30 BRA Loop
31 BTG LATC, 2
32 BRA Buzzer
3
1 Buzzer:
2 MOVLW 0x04
3 MOVWF dH
4 MOVLW 0xE8
5 MOVWF dL
6 delay:
7 DECFSZ dL,1,0
8 BRA delay
9 DECFSZ dH,1,0
10 BRA delay
11 BRA Loop
12
13 end
O conceito desse programa é o mesmo dos anteriores. Porém, nesse caso, deixa-se
de utilizar a PORTA D como saída e passa-se a utilizar a PORTA C (onde está
conectado o buzzer). Além disso, na rotina de Loop, o bit 1 (RB1) da PORTA B é
testado e, caso seja 1, o bit 2 (RC2) da PORTA C tem seu estado invertido. Após,
isso é iniciada uma rotina de delay. Esse ciclo é repetido enquanto o bit RB1 estiver
em 1, criando um sinal de onda quadrado no Buzzer com uma frequência adequada.