TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

EXERCÍCIOS EM ASSEMBLY

Exames: EXERCÍCIOS EM ASSEMBLY. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  20/1/2015  •  225 Palavras (1 Páginas)  •  379 Visualizações

EXERCÍCIO 1

Elabore um programa para o 16F877A que faz com que um speaker ligado ao pino

RB7 da porta B, dê beeps periódicos a cada segundo. Cada beep dura cerca de 0,5s.

Sendo que o cristal a ser utilizado é de 1MHZ.

LIST P=16F877A

#INCLUDE P16F877A.INC

#DEFINE BANCO0 BCF STATUS,RP0

#DEFINE BANCO1 BSF STATUS,RP0

VAR EQU 0X31

VAR1 EQU 0X32

TEMPO EQU 0X33

ORG 00

GOTO INICIO

ORG 04

GOTO INTERRUP

ORG 10

INICIO

BANCO1

CLRF TRISB ;SELECIONANDO TODA A PORTA B COMO SAÍDA

MOVLW B'00000111'

MOVWF OPTION_REG ;CONFIGURANDO O PRE-SCALER PARA 1:256

BANCO0

BSF INTCON,GIE ;HABILITANDO AS INTERRUPÇÕES GLOBAIS

BSF INTCON,T0IE ;HABILITANDO A INTERRUPÇÃO POR TIMER0

LOOP

CLRF PORTB

CLRF VAR

CLRF VAR1

CALL BEEP

CALL FIM_INT

GASTAR

GOTO GASTAR

; = = = = = = = = = = = = = = =

;ROTINA DE INTERRUPÇÃO

; = = = = = = = = = = = = = = =

INTERRUP

DECFSZ TEMPO,1 ; DECREMENTA O TEMPO ATÉ ZERO

GOTO FIM_INT ;SE O TEMPO FOR = ZERO EXECUTA

GOTO TESTE ;SE O TEMPO FOR =/ ZERO EXECUTA

FIM_INT

BCF INTCON,T0IF ;ZERANDO O FLAG DE INTERRUPÇÃO

RETFIE

; = = = = = = = = = = = =

;ROTINAS DE TESTES

; = = = = = = = = = = = =

TESTE

MOVF VAR,0

XORLW D'2'

BTFSS STATUS,Z

GOTO BEEP_PARAR

GOTO LOOP

BEEP

MOVLW B'10000000'

MOVWF PORTB

INCF VAR

CALL ROT_05S

GOTO FIM_INT

GOTO GASTAR

BEEP_PARAR

MOVLW

...

Disponível apenas no TrabalhosGratuitos.com