         list     p=16F877 ;Se indica el modo de procesador
         errorlevel-302
ADCON1   EQU      0X9F
d1       equ      20            
d2       equ      21
d3       equ      22
reg1     equ      23
;----------------------------------------------------------------------------
		org 	0x00		;vector de inicio
                  goto     inicio
		org 	0x05		;despues del vector de interrupcion
         
inicio            bsf      3,5
                  movlw    0x06              ;Puerto A en modo digital
	    movwf	   ADCON1
                  movlw    B'00000000'
                  movwf    0X08
                  movlw    b'000000'   ;todo salidas
                  movwf    0x05
                  movlw    b'00000000'
                  movwf    0x06
                  movlw    b'00000000'
                  movwf    0x07
                  bcf      3,5
		
                  clrf     0X05            
                  clrf     0X06           
                  clrf     0X07
                  clrf     0x08
                  clrf     reg1


                  bcf      0x05,0
                  call     ms18       ;tiempo para activar el dht11
                  bsf      0x05,0
                  ;call     us30
                  bsf      3,5        ;banco 1
                  movlw    b'000001'  ;ra,0 como entrada
                  movwf    0x05
                  bcf      3,5        ;banco 0
as                btfss    0x5,0
                  goto     as
                  incf     reg1,0
                  movwf    reg1
                  movwf    0x08      ;lo visualizo en rd
is                btfsc    0x05,0    ;espera a que de ponga bajo ra,0
                  goto     is
                  goto     as
;--------------------------------------------------------------------       
ms18     movlw    0x0f
         movwf    d1
         movlw    0x0f
         movwf    d2
l6                              ;retardo de 18ms
         decfsz   d1,1
         goto     $+2
         decfsz   d2,1
         goto     l6
         goto     $+1
         return   
;------------------------------------------------------------
us80     movlw    0x19
         movwf    d1            ;retardo de 80us
l5       decfsz   d1,1
         goto     l5
         return   
;--------------------------------------------------------------                  
us50     movlw    0x0f
         movwf    d1             ;retardo de 50us
l4       decfsz   d1,1
         goto     l4
         return   
;-----------------------------------------------------------
us70     movlw    0x15
         movwf    d1
l3       decfsz   d1,1          ;retardo de 70us
         goto     l3
         goto     $+1
         return   
;-----------------------------------------------------------                                                                                            
us30     movlw    0x08
         movwf    d1       ;retardo de 30us
l2       decfsz   d1,1
         goto     l2
         nop
         return   
;----------------------------------------------------------------         
us27     movlw    0x07
         movwf    d1
l1       decfsz   d1,1     ;retardo de 27us
         goto     l1
         nop
         return
;----------------------------------------------------------------------
         end
                       



                  
		
