;********************************************************************* ; ; clone_ht6p20b.asm ; ; GERAR CODIFICAÇÃO SIMILAR AO CI HTP620B COM AT89C2051 ; ; AUTOR: CLAUDIO LÁRIOS DATA:28-07-2012 ; ;********************************************************************* ;RAM V3 EQU 20H V2 EQU 21H V1 EQU 22H ;DEFINIÇÕES DE PINOS SAIDA EQU P3.7 ;PINO 11 IN1 EQU P3.0 ;PINO 2 IN0 EQU P3.1 ;PINO 3 ORG 00H MOV P1,#0FFH ;LEVANTA PULL UPS MOV P3,#03 ;PULL UP EM BIT 0 E 1 INICIO: ;============================= ;O VALOR DA PORT 1 SERÁ ENVIADO EM V1 MOV V3,#12H ;DIGITE AQUI O SERIAL NUMBER A SER TRANSMITIDO MOV V2,#34H ;(ESTES CORRESPODEM AOS 22 BTS DE ENDEREÇO) MOV V1,P1 ;(OS BITS 6 E 7 DE V3 CORRESPONDEM AOS BOTÕES) ;============================ CLR V3.7 CLR V3.6 SETB IN1 SETB IN0 JB IN1 ,SEG1 SETB V3.7 AJMP SIT1 ;BOTÃO 1 ACIONADO SEG1: JB IN0, INICIO ;NENHUM BOTÃO ACIONADO (SEM TRANSMISSÃO). SETB V3.6 ;BOTÃO '0' ACIONADO APENAS AJMP ENVIAR SIT1: JB IN0 ,ENVIAR ;TESTA SE BOTÃO '0' TAMBÉM ESTÁ ACIONADO ,SE NÃO ENVIAR BOTÃO'1' APENAS SETB V3.6 ;SIM ,ESTÁ TAMBÉM ACIONADO ENVIAR: ;----------------------------------------------------- PAUSA: MOV R6,#23D ;23 CLOCKS RTY: ACALL DELAY1CK DJNZ R6,RTY ;---------------------------------------------------- ACALL STARTBIT ;---------------------------------------------------- MOV R5,#24D ;QUANTIDADE DE BITS A TRANSMITIR VOLT10: CLR C MOV A,V3 RRC A MOV V3,A MOV A,V2 RRC A MOV V2,A MOV A,V1 RRC A MOV V1,A JC EB1 ACALL BIT0 VV13: DJNZ R5,VOLT10 ;------------------------------------------------- ANTICODE: ACALL BIT0 ACALL BIT1 ACALL BIT0 ACALL BIT1 AJMP INICIO ;------------------------------------------------- EB1: ACALL BIT1 AJMP VV13 ;================================================= ;ROTINAS DELAY1CK: MOV R7,#168D ; 158D PARA 330 MICROSEG. DE LAMBDA DJNZ R7,$ RET BIT0: CLR SAIDA ACALL DELAY1CK SETB SAIDA ACALL DELAY1CK ACALL DELAY1CK CLR SAIDA RET BIT1: CLR SAIDA ACALL DELAY1CK ACALL DELAY1CK SETB SAIDA ACALL DELAY1CK CLR SAIDA RET STARTBIT: SETB SAIDA ACALL DELAY1CK CLR SAIDA RET END