Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Compartir: 0 0 0 0
Entradas salidas digitales PIC, los pines del microcontrolador PIC pueden
tener mltiples funciones, eso depender del microcontrolador PIC que
se utilice, en esta ocacin se ver el uso de estos pines como entradas
digitales o como salidas digitales, en los ejemplos que se hagan en esta
pgina y en los vdeos publicados en el canal de youtube de MrElberni,
se utilizarn diversos PIC, se recomienda siempre tener a mano la hoja
de datos del microcontrolador PIC que se utilice.
Cada uno de los pines a ser utilizados como entradas salidas digitales
PIC tienen un nombre propio relacionado con el puerto al que
pertenecen y al nmero de orden del bit con el cual se programar, por
ejemplo para el puerto B se tienen los pines RB0, RB1, RB2, RB3, RB4,
RB5, RB6, RB7.
Este registro se puede programar para que todos los pines del puerto B
sean salidas digitales o todos los pines sean entradas digitales o una
mezcla de ambos, en C/C++ la programacin del registro TRISB se
puede hacer en binario, en decimal o hexadecimal, la forma de proceder
depender del programa compilador que se est utilizando.
La forma binaria tiene la ventaja de que deja ver con que valores 0 o
1 se estn programando los bits del registro utilizado, el valor asignado
al registro est comprendido entre 0 y 255 porque el registro es de 8
bits.
Se ha comentado la forma de proceder en el XC8 para el caso
del registro TRISB, pero en el XC8 se procede de la misma
forma para cualquier otro registro del microcontrolador PIC que
se quiera utilizar, que como se ver son muchos registros.
bit por bit, no todos de una vez como se ha visto, esto en el lenguaje
C/C++ se hace mediante operaciones con bits, y como el XC8 y el CCS
estn basados en C/C++, las operaciones de bits se puede utilizar, es
muy importante dominar las operaciones de bits ya que facilita bastante
la programacin de los microcontroladores; lo que se comente en
adelante para la manipulacin de los bits registro TRISB ser aplicable a
cualquier otro registro del microcontrolador PIC.
TRISB=TRISB&~(0b00000001);
TRISBbits.TRISB0=0;
Por ejemplo si se necesita que el pin RB5 sea una salida digital, se puede
proceder as
TRISBbits.TRISB5=0;//En el XC8
Si se quiere por ejemplo que los pines RB1, RB4 y RB7 sean salidas
digitales, esto en una sola linea utilizando el operador de bits OR | sera
as:
TRISBbits.TRISB1=0;
TRISBbits.TRISB4=0;
TRISBbits.TRISB7=0;
TRISB=TRISB|(0b00000001);
TRISBbits.TRISB0=1;
Por ejemplo si se necesita que el pin RB5 sea una entrada digital, se
puede proceder as
TRISBbits.TRISB5=1;//En el XC8
Si se quiere por ejemplo que los pines RB1, RB4 y RB7 sean entradas
digitales, esto en una sola linea utilizando el operador de bits OR | sera
as:
TRISBbits.TRISB1=1;
TRISBbits.TRISB4=1;
TRISBbits.TRISB7=1;
Entradas salidas digitales PIC Registro
PORTx.
Cuando algn pin o pines del microcontrolador PIC se han
configurado como salidas digitales mediante la programacin de los
bits del registro PORTx se indica si por la salida digital se tendr un alto
o un bajo que es lo mismo que un 1 o un 0.
mediante la siguiente linea de cdigo se logra que por los pines impares
del puerto B se obtendrn ceros o bajos , mientras que por los pines
pares se obtendrn unos o altos.
PORTB=0b01010101;
PORTB |= (1<<3);
PORTBbits.RB3=1.
si se quiere que por los pines RB5 y RB2 salgan unos sera as:
PORTB |= ((1<<2)|(1<<5));
PORTBbits.RB2=1;
PORTBbits.RB5=1;
Por ejemplo si todos los pines del puerto B son utilizados como entradas
digitales se puede proceder as
Mi programa es el siguiente
int16 temp;
int value;
float tempan1;
float voltsan0;
void main(void){
set_tris_b (0x00);
while (TRUE){
setup_adc (adc_clock_div_32);
setup_adc_ports (ALL_ANALOG);
set_adc_channel (0); //Elige canal a medir RA0
delay_us (20);
value=read_adc(); //Capturamos seal analgica que entra por el canal
previamente seleccionado (RA0)
Comentarios
15 JULIO, 2015
PRECIO
Los sensores LM35 son baratos. Podemos encontrar un sensor LM35 por
0,60 en vendedores internacionales en Ebay o AliExpress.
ESQUEMA ELCTRICO
El patillaje del LM35 se muestra en la siguiente imagen. Los pines extremos
son para alimentacin, mientras que el pin central proporciona la medicin en una
referencia de tensin, a razn de 10mV/C.
Por tanto, el esquema elctrico que necesitamos es el siguiente.
ESQUEMA MONTAJE
Mientras que el montaje en una protoboard sera el siguiente.
EJEMPLO DE CDIGO
El cdigo necesario para realizar la lectura es simple. Simplemente leemos el
valor del tensin mediante la entrada analgica, y traducimos el valor a grados
celsius usando la relacin 10 mV/C.
3 void setup()
4 {
5
7 Serial.begin(9600);
8 }
1 void loop()
0
{
1
1 int value = analogRead(sensorPin);
1
6
Si te ha gustado est