PIC16F684

From Mech
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Overview

For a complete list of features, see this printout from the datasheet.

IMPORTANT: See PIC16F684 Registers for detailed information on registers.

Pinout

Pic16f684 pinout.png
Description of Pinout Labels
Label Description
+ 5 V
Ground
External Voltage Reference
PORTA/PORTC Programmable I/O
A/D Channel
External Interrupt Input
PWM Output

Initialization

Configuring I/O

This section shows two sections of code that are used for setting up the I/O of the PIC. The INIT_IO function sets up the ports by setting their default value and their direction. The second function, INIT_ADC sets up the A/D converter.

INIT_IO	
	BCF 		STATUS,RP0 		;Bank 0
	CLRF 		PORTA 			;Init PORTA - initially set to LOW
	MOVLW 	B'000101'			;Set RA<0> as input
	MOVWF 		TRISA 			;	and set RA<5:1>
						;	as outputs

	BSF 		STATUS,RP0 		;Bank 1
	CLRF 		PORTC 			;Init PORTC - initially set to LOW
	MOVLW 	B'000000'			;Set RC<5:0> as outputs
	MOVWF 		TRISC

	CLRF		ANSEL			;Set all pins initially to digital I/O
	MOVLW	B'000001'
	MOVWF		ANSEL			;Set AN<0> (RA<0>) to Analog input
						;	RA<5:1> remain digital I/O
	RETURN

INIT_ADC
	BCF 		STATUS,RP0 		;Bank 0
        MOVLW   B'00000001'			; Set output to left justified
	MOVWF   	ADCON0			; Select AN<0> (RA<0>) as input
						; Internal Vref
						; Start ADC ON

	BSF 		STATUS,RP0 		;Bank 1
	CLRF		ADCON1
        MOVLW   B'00100000' 		        ;Set Clock TAD to 1.6us (Fosc/32)
        MOVWF   	ADCON1

	RETURN

Notice that the two following bits of code are equivalent:

        CLRF            PORTA

and

	MOVLW 	B'000000'
	MOVWF 		PORTA

Setting Up for PWM Output