Sei sulla pagina 1di 2

list p = 16f84a

radix hex
org 0
goto inicio
org 5
inicio bsf 0x03,5 ;Acceso al banco 1
clrf 0x05 ;Configura puerto A como salida
movlw 0xff ;Configura puerto B como entrada
movwf 0x06 ;
movlw 0x87 ;Configuracin del
movwf 0x01 ;registro Option
bcf 0x03,5 ;Acceso al banco 0
clrf 0x05
bsf 0x05,2 ;A2 en estado alto para deshabilitar el PLL
call delay ;Garantiza voltaje estabilizado en A2,A1,A0
bsf 0x05,3 ;Enciende el PLL MC145170P2 a traves de A3
call rtdo ;Rutina para dar tiempo al POR del PLL
movlw 0x28 ;Valor a cargar para fijar
movwf 0x0e ;la frecuencia de
movlw 0x00 ;referencia ( Valor /R )
movwf 0x0f ;
rlf 0x0e,1 ;Rota el primer bit para desecharlo
rlf 0x0f,1 ;
movlw 0x0f ;Carga 15 para rotar los
movwf 0x1f ;primeros 15 bits de 0E y 0F
call sadat ;Envia al PLL el valor de /R
movlw 0xe3 ;Valor a cargar para fijar el
movwf 0x0f ;registro de configuracin C
movlw 0x08 ;Carga 8 para rotar los 8 bits
movwf 0x1f ;del registro 0F
call sadat ;Envia al PLL el valor del registro C
canal movlw 0x10
movwf 0x1f
movlw 0x03 ;De 881 = 0371 ( 88.1 MHz)
movwf 0x0f
movlw 0x63 ;W=100 (M x. valor permitido del DIP switch)
subwf 0x06,0 ;
btfsc 0x03,0 ;Verifica si hay llevada en el octavo bit
goto frecen ;Valor DIP switch > DIP switch M ximo
suma movf 0x06,0
movwf 0x0e
addwf 0x0e,1
movlw 0x71 ;De 881 = 0371 ( 88.1 MHz)
addwf 0x0e,1
btfss 0x03,0
goto sadat1
movlw 0x01
addwf 0x0f,1
goto sadat1
frecen movlw 0xd5 ;Valor a cargar para fijar la
movwf 0x0e ;frecuencia central de
movlw 0x03 ;transmisin 98.1MHz ( Valor /N )
movwf 0x0f ;
sadat1 call sadat
sleep
goto inicio
sadat btfss 0x0f,7 ;Vigila el ltimo bit de 0F para transmitirlo
goto codigoO
call codigo2
rotar rlf 0x0e,1 ;Rota a la izquierda los valores de la
rlf 0x0f,1 ;frecuencia escogida
decfsz 0x1f,1 ;Decrementa hasta m, para desplazar los
goto sadat ;m bits requeridos de 0E y 0F
goto fin4
codigoO movlw 0x08 ;Pone en "0" a A2,A1 y A0 (Enable,Data,Ck)
movwf 0x05
call delay
bsf 0x05,0 ;Pone en "1" a A0(Ck), quedando "0 0 1"
call delay
bcf 0x05,0 ;Pone en "0" a A0(Ck), quedando "0 0 0"

Potrebbero piacerti anche