Вы находитесь на странице: 1из 6

Lista de Exerccios 5

1- Desenvolva um programa para ser executado no EdSim51 que mostre um valor de 0 a 9 no quarto display de 7 segmentos. Esse valor ser incrementado no instante que a entrada INT0 for para zero e ser decrementado no instante que a entrada INT1 for para zero. Caso ambas as entradas sejam acionadas simultaneamente o decremento deve ter prioridade sobre o incremento.

ORG 0000H LJMP INICIO ORG 0003H INC R0 CJNE R0, #0AH, CERTO0 ACALL ZERO LJMP SAI0 CERTO0: ACALL TESTE SAI0: NOP RETI ORG 0013H DEC R0 CJNE R0, #0FFH, CERTO1 ACALL NOVE LJMP SAI1 CERTO1: ACALL TESTE SAI1: NOP RETI ORG 0040H INICIO: ;CLR P3.3 ;CLR P3.4 MOV IE,#85H SETB PX1 SETB IT0 SETB IT1 ACALL ZERO TRAVA: LJMP TRAVA TESTE: Z: CJNE R0, #00H, I ACALL ZERO I: CJNE R0, #01H, II
Estrutura de Programao 8051 Exerccios

ACALL UM II: CJNE R0, #02H, III ACALL DOIS III:CJNE R0, #03H, IV ACALL TRES IV: CJNE R0, #04H, V ACALL QUATRO V: CJNE R0, #05H, VI ACALL CINCO VI: CJNE R0, #06H, VII ACALL SEIS VII: CJNE R0, #07H, VIII ACALL SETE VIII: CJNE R0, #08H, IX ACALL OITO LJMP FIM IX: CJNE R0, #09H, FIM ACALL NOVE FIM: NOP RET ZERO: MOV P1, #11000000B MOV R0, #00H RET UM: MOV P1, #11111001B MOV R0, #01H RET DOIS: MOV P1, #10100100B MOV R0, #02H RET TRES: MOV P1, #10110000B MOV R0, #03H RET QUATRO: MOV P1, #10011001B MOV R0, #04H RET CINCO: MOV P1, #10010010B MOV R0, #05H

Estrutura de Programao 8051 Exerccios

RET SEIS: MOV P1, #10000010B MOV R0, #06H RET SETE: MOV P1, #11111000B MOV R0, #07H RET OITO: MOV P1, #10000000B MOV R0, #08H RET NOVE: MOV P1, #10011000B MOV R0, #09H RET
2- Desenvolva um programa que leia o valor obtido atravs do CAD do EdSim51. O valor lido devera ser armazenado no registrador R7. Utilizar a interrupo INT0 como termina de converso do CAD no processo de interfaceamento com o conversor.

ORG 0000H LJMP INICIO ORG 0003H CLR P3.7 SETB P3.6 MOV R7,P2 RETI ORG 0040H INICIO: MOV IE,#81H CLR IT0 SETB P3.7 CLR P3.6 END

Estrutura de Programao 8051 Exerccios

3 - Desenvolva um programa que faca a leitura do teclado do EdSim51. O valor pressionado no teclado devera ser exibido no primeiro display de 7 segmentos. Utilizar a interrupo INT1 como deteco de tecla pressionada. Assim que for pressionada alguma tecla, deve-se iniciar o processo de varredura das teclas para se descobrir qual tecla exatamente foi pressionada. ORG 0000H LJMP INICIO ORG 0013H MOV R0, #00H MOV P0, #0FFH ACALL SCAN_LINHA RETI ORG 0040H INICIO: MOV IE,#84H SETB IT1 TRAVA: MOV P0, #0F0H LJMP TRAVA ;=====SUB ROTINAS DE VARREDURA=== SCAN_LINHA: CLR P0.0 ACALL SCAN_COLUNA INC R0 SETB P0.0 CLR P0.1 ACALL SCAN_COLUNA INC R0 SETB P0.1 CLR P0.2 ACALL SCAN_COLUNA INC R0 SETB P0.2 CLR P0.3 ACALL SCAN_COLUNA INC R0 SETB P0.3

Estrutura de Programao 8051 Exerccios

SCAN_COLUNA: COL0: JB P0.4, COL1 CJNE R0, #00H, L10 ACALL SIMBOL L10: CJNE R0, #01H, L20 ACALL NOVE L20: CJNE R0, #02H, L30 ACALL SEIS L30: CJNE R0, #03H, SAI0 ACALL TRES SAI0: RET COL1: JB P0.5, COL2 CJNE R0, #00H, L11 ACALL ZERO L11: CJNE R0, #01H, L21 ACALL OITO L21: CJNE R0, #02H, L31 ACALL CINCO L31: CJNE R0, #03H, SAI1 ACALL DOIS SAI1: RET COL2: JB P0.6, SAI2 CJNE R0, #00H, L12 ACALL SIMBOL L12: CJNE R0, #01H, L22 ACALL SETE L22: CJNE R0, #02H, L32 ACALL QUATRO L32: CJNE R0, #03H, SAI2 ACALL UM SAI2: RET ;=====SUB ROTINAS DE NUMERAO=== SIMBOL: MOV P1, #89H RET ZERO: MOV P1, #11000000B RET UM: MOV P1, #11111001B RET

Estrutura de Programao 8051 Exerccios

DOIS: MOV P1, #10100100B RET TRES: MOV P1, #10110000B RET QUATRO: MOV P1, #10011001B RET CINCO: MOV P1, #10010010B RET SEIS: MOV P1, #10000010B RET SETE: MOV P1, #11111000B RET OITO: MOV P1, #10000000B RET NOVE: MOV P1, #10011000B RET END

Estrutura de Programao 8051 Exerccios

Вам также может понравиться