Ir ao conteúdo
  • Cadastre-se
servoseias

Assembler-8051

Recommended Posts

EU PRECISO TROCAR O BIP(TIRAR) E TROCAR POR UMA FUNÇÃO DA SERIAL EU NÃO TO CONSEGUINDO SE TIVER COMO ME AJUDAR VALEWWWW

;TABELA DE EQU'S

REPETE EQU 090H ; PINO P1.0 > QUANDO FOR 0 RECOMEÇA

ONOFF EQU 091H ;QUANDO EM 0 LIGA O SISTEMA

SOM EQU 092H ;SAIDA PARA SINAL SONORO

PARA EQU 093H ;PARADA DE EMERGENCIA

;>>>>>>>>>>>PROGRAMA PRINCIPAL<<<<<<<<<<<<<<<<

;LABEL INTRUÇÃO OPERANDOS COMENTARIOS

ORG 0 ;INICIALIZA EM 0

MOV TCON,1

MOV IE,#0 ;SEM INTERRUPÇÕES

MOV TMOD,#66H ;CONTADORES NO MODO 2 E 8 BITS COM

;RECARA AUTOMATICA E SINAL EXTERNO

MOV TCON,#0 ;CONTADOR INICIALMENTE DESAILITADO

MOV TH1,#155 ;INICIA CONTADOR DECRESCENTE EM 155 E CONTA ATÉ 100

MOV TL1,#155

MOV TH0,#0 ;cONTADOR 1 NUNCA PASSA O CONTADOR 0 NORMALMENTE

MOV TL0,#0

INICIO: CLR SOM ;DESLIGA SINAL SONORO

CLR ONOFF ;DESLIGA MOTOR

SETB TR0 ;LIGA CONTADORES 1 E 0

SETB TR1

ROTINA: JNB PARA,CONT ;SE O BIT PARA FOR 0 CONTINUA

LJMP PARAR ;BIT PARA EM 1 DEVE PARAR IMEDIATAMENTE

CONT: MOV A,TL0 ;ACUMULADOR=PEÇAS

CJNE A,#100,VECY ;SE PEÇAS FOR DIFERENTE DE 100 VAI SER

;O FLAG DE CARRY

NAOOK: LJMP RUIM ;PEÇAS =100 E NÃO FOI DETECTADO POR

;SIMULAÇÃO DE ERRO

VECY: JNC NAOOK ;SE CY=0 SIGUINIFICA PEÇAS>100 (SIMULAÇÃO DE ERRO)

JNB TF1,ROTINA ;APOS TESTAR O BOTÃO DE PARADA E VER SE NÃO

;HA PROBLEMAS NO CONTADOR 0 VERIFICA SE JÁ

;ACONTECERAM 100 CONTAGENS EM TL1 (TOTAL)

OK: MOV A,TL0 ;A=PEÇAS

MOV R0,A ;SALDO EM R0

MOV A,#100 ;A=100

CLR CY ;

SUBB A,R0 ;A=A-CY-R0

CJNE A,#40,DIFER ;SE DESVIAR ,NAO E 40

LCALL BIP ;COMO E EXATAMENTE 40 CONTINUA

MOV TL0,#0 ;ZERA CONTADOR DE PEÇAS

MOV TH0,#0 ;

SJMP ROTINA ;RECOMEÇA

;................................................. ..............

DIFER: JC NAOOK; ;COMO CY=1 TEMOS MAIS DE 60% DE DIFERENÇA

LCALL BIP

SJMP ROTINA

PARAR: SETB ONOFF ;DESLIGO MOTOR

JB REPETE,$ ;ESPERA ATÉ PRESSIONAR REPETE

LJMP INICIO

;................................................. .....................

RUIM: SETB ONOFF

;................................................. .........................

ALARME: LCALL BIP

JB REPETE,ALARME ;ENQUANTO NÃO PRESSIONAR REPETE FICA APITANDO

LJMP INICIO

BIP: SETB SOM

LCALL DELAY

CLR SOM

LCALL DELAY

RET

DELAY:

D2: MOV R7,#100

D1: MOV R6,#100

MOV R5,#25

DJNZ R5,$

DJNZ R6,D1

DJNZ R7,D2

RET

END ;FIM DE PROGRAMA

Fonte/Autor: Fórum

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×