;################################################################## ;Programa exemplo/teste do KIT8051 (pisca.asm): ; ; Este é um programa de teste que pulsa o PORT P1 do microcontrolador ; de 1s em 1s. ; ; ;################################################################## TEMPO EQU 15535 ;50.000us para cristal de 12 MHz ORG 0000H LJMP INICIO ORG 0025H ;Pulando os enderecos das interrupcoes INICIO: MOV A,#00H ;Zera ACC. MOV TCON,#00000010B ;TIMER 0 NO MODO 1 - 16 BITS LOOP: MOV P1,A ;escreve no PORT 1 CPL A ;inverte os BITS do ACC. LCALL ATRASO ;chama rotina do TIMER SJMP LOOP ;retorna ;################################################################## ; ; ROTINA PARA TIMER 0 ; ; ;################################################################## ORG 00040H ;Posição da subrotina de atraso ATRASO: MOV R0,#11H ;Carrega Reg. R0 com número 11 em hexa CLR TR0 ;desliga timer 0 CONT: CLR TF0 ;reseta flag MOV TL0,#LOW(TEMPO) ;carrega parte baixa e alta do timer 0 MOV TH0,#HIGH(TEMPO) ; SETB TR0 ;liga timer 0 JNB TF0,$ ;espera timer 0 estourar CLR TR0 ;desliga timer 0 DJNZ R0,CONT ;decrementa e retrona se Reg. não é zero RET ;retorna da interrupcao END