jueves, 11 de agosto de 2011

Curso Electronica industrial y microcontroladores: Configuraciones y programacion de los microcontroladors PIC12f6XX de Microchip

Configuracion de los pines de el PIC12F675
En este Articulo Pretendo ayudar a aquellas personas que ya sabiendo programar pic están un poco confundidos con los PIC12F675-629.


Los pines 1 y 8 resiven la alimentacion asi:
1. VDD resive +5 voltios.
8. GND resive tierra o 0V.

Estableciondo la palabra de configuracion.
Se establese con los siguientes comandos:

                                    LIST P=12f675
                                    RADIX HEX
                                    include "libs/P12f675.inc" ;Definiciones de registros internos
__config _CPD_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_CLKOUT 




Calibrando el Oscilador interno.

El Oscilador interno utilisa un registro llamado OSCALL que se encuentra en el banco1 y un
numero de configuracion que se encuentra en la ultima posicion de la memoria de programa que
debe tener una instruccion retlw xx cuyo valor xx equivale a el valor a colocar en el registro
OSCALL.
Este puede tener tres rangos:
Maxima frecuencia = 111111xxx
Frecuencia central = 100000xxx
Minima frecuencia = 000000xxx
Donde x no tiene valor determinado, por ejemplo puede ser '0'
En el siguiente ejemplo podemos ver como se puede calibrar:

bsf     STATUS,RP0      ;Bank 1

call 3FFh ;Get the cal value

movwf OSCCAL ;Calibrate

.

.

.

ORG 0x3ff

retlw b'10000000'

Configuracion de el CAD ( conversor analogo digital ).
Conviene utilisar la siguiente subrutina de conversion la cual untilisa el pin GP2/AN2 conmo entrada de el conversor.

INICIO_CAD

movlw b'00001011'

movwf ADCON0 ;ADFM=1(IZQUIERDA)

;VCFG=0(VDD)

;NI,NI

;[CHS1,CHS0]=(AN2)

;GO/DONE(ON)

;ADON(ON)

nop

nop

nop

nop

nop

test

btfsc ADCON0,GO

goto test

movf ADRESH,W

movwf ADRES_H1

movf ADRES_H1,f

btfsc STATUS,Z

incf ADRES_H1,f

return



bsf     STATUS,RP0      ;Bank 1

movlw b'11111100' ;puerto GP0 GP1 salida resto entrada

movwf TRISIO

movlw b'01101100'

movwf ANSEL ;NI (no implementado)

;ADCS<2:0> = (110) = FOSC/64

;ANS3:ANS0 = (1100)= [AADD]

bcf STATUS,RP0 ;Bank 0

0 comentarios:

Publicar un comentario