Segue abaixo um exemplo de programa em linguagem Assembly para o microcontrolador 8051 que converte os números binários da porta P2 para a exibição no display de sete segmentos: ``` ORG 0000h MOV P2, #0FFh ; Configura a porta P2 como entrada MOV P1, #0 ; Configura a porta P1 como saída LOOP: MOV A, P2 ; Move o valor da porta P2 para o registrador A CJNE A, #00h, NUM_0 ; Se A for diferente de 0, pula para NUM_0 MOV P1, #3Fh ; Se A for igual a 0, exibe o número 0 no display SJMP LOOP ; Volta para o início do loop NUM_0: CJNE A, #01h, NUM_1 ; Se A for diferente de 1, pula para NUM_1 MOV P1, #06h ; Se A for igual a 1, exibe o número 1 no display SJMP LOOP ; Volta para o início do loop NUM_1: CJNE A, #02h, NUM_2 ; Se A for diferente de 2, pula para NUM_2 MOV P1, #5Bh ; Se A for igual a 2, exibe o número 2 no display SJMP LOOP ; Volta para o início do loop NUM_2: CJNE A, #03h, NUM_3 ; Se A for diferente de 3, pula para NUM_3 MOV P1, #4Fh ; Se A for igual a 3, exibe o número 3 no display SJMP LOOP ; Volta para o início do loop NUM_3: CJNE A, #04h, NUM_4 ; Se A for diferente de 4, pula para NUM_4 MOV P1, #66h ; Se A for igual a 4, exibe o número 4 no display SJMP LOOP ; Volta para o início do loop NUM_4: CJNE A, #05h, NUM_5 ; Se A for diferente de 5, pula para NUM_5 MOV P1, #6Dh ; Se A for igual a 5, exibe o número 5 no display SJMP LOOP ; Volta para o início do loop NUM_5: CJNE A, #06h, NUM_6 ; Se A for diferente de 6, pula para NUM_6 MOV P1, #7Dh ; Se A for igual a 6, exibe o número 6 no display SJMP LOOP ; Volta para o início do loop NUM_6: CJNE A, #07h, NUM_7 ; Se A for diferente de 7, pula para NUM_7 MOV P1, #07h ; Se A for igual a 7, exibe o número 7 no display SJMP LOOP ; Volta para o início do loop NUM_7: CJNE A, #08h, NUM_8 ; Se A for diferente de 8, pula para NUM_8 MOV P1, #7Fh ; Se A for igual a 8, exibe o número 8 no display SJMP LOOP ; Volta para o início do loop NUM_8: CJNE A, #09h, NUM_9 ; Se A for diferente de 9, pula para NUM_9 MOV P1, #6Fh ; Se A for igual a 9, exibe o número 9 no display SJMP LOOP ; Volta para o início do loop NUM_9: MOV P1, #00h ; Se A for maior que 9, não exibe nada no display SJMP LOOP ; Volta para o início do loop END ``` Este programa utiliza a porta P2 como entrada para os números binários e a porta P1 como saída para os segmentos do display de sete segmentos. Ele utiliza uma estrutura de decisão para verificar qual número binário está presente na porta P2 e exibir o número correspondente no display. O loop principal mantém o programa em execução continuamente.
Para escrever sua resposta aqui, entre ou crie uma conta
Microprocessadores e Microcontroladores
Microprocessadores e Microcontroladores
Programação de Microcontroladores
•ESTÁCIO
Microprocessadores e Microcontroladores
Compartilhar