Painel De Leds
Artigos Científicos: Painel De Leds. Pesquise 861.000+ trabalhos acadêmicosPor: diegobicks • 27/11/2013 • 385 Palavras (2 Páginas) • 515 Visualizações
Explicando brevemente, assim que entramos na rotina principal, começamos por verificar
se o interruptor (switch) está premido e caso o esteja saltamos a instrução seguinte (que nos
envia para o início) e vamos para a instrução que acende o led, caso contrário, ficamos
presos na verificação do switch até que este seja pressionado e o led permanece apagado
(notar que se assume que por default, que o led se encontra apagado). De seguida entramos
na primeira subrotina, verificamos agora se o switch não está premido e caso não o esteja,
saltamos a instrução seguinte (que nos envia para o início da subrotina) para a instrução
que apaga o led, caso contrário, ficamos presos na verificação do switch até que este deixe de
ser pressionado e o led permanece aceso.
Dada a pequena dimensão e fraca complexidade do programa, torna-se conveniente
introduzi-lo (micro1_asm.asm):
;define-se o registo PORTA com o endereço correspondente disponível na documentação
;PORTA corresponde ao interruptor usado para controlar o led
porta equ 0xf80
;faz-se o mesmo para o registo PORTB
;PORTB corresponde ao led propriamente dito
portb equ 0xf81
;define-se o bit que vai corresponder ao interruptor que se pretende usar
;vamos usar o bit 4 que corresponde ao interruptor RA4
switch equ 4
;define-se o bit que vai corresponder ao led que se pretende usar
;vamos usar o bit 0 que corresponde ao led RB0
led equ 0
;definição do registo equivalente a TRISB como expresso na documentação
trisb equ 0xf93
;uma vez que por definição, podemos sempre ler os registos usados, basta-nos
;impôr o comportamento de output relativamente ao bit "led" do registo PORTB
;que controla o comportamento do led
;TRISB vai permitir que usemos PORTB como um output, condição necessária
;para acender o led
bcf trisb, led
;definição da rotina principal do programa num infinite loop
...