The PIC10F322 has 4 general purpose I/O Pins. RA0, RA1, RA2, RA3 – That is assuming you are not using any other peripherals connected to the device and MCLR is disabled.
All 4 I/O pins are on the same port – A
The registers we need to modify to get a pin into output mode are, ANSELA and TRISA
The ANSELA register controls the analog function of a pin – The ANSELA bits default to the Analog mode after Reset. To use any pins as digital general purpose or peripheral inputs, the corresponding ANSEL bits must be initialized to ‘0’ by user software.
TRISA register controls the direction of a pin. Think of it this way, setting a bit in the register as a 0 – think output. Setting a bit as a 1 – think input.
After a power on reset – the Pins are set to Input mode. To make pin RA0, an output we would..
ANSELAbits.ANSA0 = 0; //Disable Analog TRISAbits.TRISA0 = 0; //Set Pin 0 PortA.0 as output
If we wanted to do the same for RA2..
ANSELAbits.ANSA2 = 0; //Disable Analog TRISAbits.TRISA2 = 0; //Set Pin 0 PortA.0 as output
Or if we wanted all the pins*(see note below) to output..
ANSELA = 0; TRISA = 0;
(Note**) Pin RA3 can only be an input pin you can not set it as an output..
Once the pin you want is set as an output – you can set it high or low, by writing to the associated data latch register.
To make RA0, which we set as output high, we would
LATAbits.LATA0 = 1;
To turn it off, or make it low..
LATAbits.LATA0 = 0;
The same for RA2
LATAbits.LATA2 = 1; //high LATAbits.LATA2 = 0; //low
Have a Project or Idea!?
I am Available for Freelance Projects
My skills are always primed and ready for new opportunities to be put to work, and I am ever on the lookout to connect with individuals who share a similar mindset.
If you’re intrigued and wish to collaborate, connect, or simply indulge in a stimulating conversation, don’t hesitate! Drop me an email and let’s begin our journey. I eagerly anticipate our interaction!