You are on page 1of 13

UNIVERSIDAD

NACIONAL

DE

LOJA

REA DE LA ENERGA, LAS INDUSTRIAS Y LOS RECURSOS


NATURALES NO RENOVABLES

CARRERA DE INGENIERA EN ELECTRNICA Y


TELECOMUNICACIONES
CICLO V

INFORME DE LA
PRCTICA # 1 DE MICROCONTROLADORES
PROGRAMACION DE MICROCONTROLADORES PARA ENCENDIDO DE LEDS

INTEGRANTES:
Fernanda Macas Torres cjnarvaez@hotmail.com

Eduardo Parra Celi egparrax@gmail.com

DOCENTE:
Ing. Ximena Acaro
FECHA:
03/05/2016
Loja Ecuador

TEMA: PROGRAMACION DE MICROCONTROLADORES PARA ENCENDIDO DE LEDS

OBJETIVOS:

Conocer el funcionamiento del microcontrolador PIC16F877A.


Reconocer los puertos que dispone el PIC16F877A.
Programar el PIC16F877A con las especificaciones mencionadas en la gua.

MATERIALES Y REACTIVOS
Grupo

PIC16F877A
1 cristal de 4MHz
8 resistencias de 330
1 resistencia de 10k
2 capacitores de 22pF
8 leds
1pulsador
Datasheet PIC16F877A

INSTRUCCIONES:
Colocar las mochilas en los casilleros
Prohibido consumo de alimentos
Prohibido equipo de diversin, celulares etc.
Prohibido jugar
Prohibido mover o intercambiar los equipos de los bancos de trabajo
Prohibido sacar los equipos del laboratorio sin autorizacin.
Ubicar los equipos y accesorios en el lugar dispuesto por el responsable del laboratorio, luego de
terminar las prcticas.
Uso adecuado de equipos
Uso obligatorio del mandil
Presentar el preparatorio al docente a cargo de la materia al inicio de la jornada.

ACTIVIDADES POR DESARROLLAR:

Por

Equipos y herramientas Por Grupo

1 fuente de corriente continua de 5V


1 quemador de PIC (PICkit3)
1 multmetro
1 protoboard
1 computadora
2 jaks
2 puntas de prueba para multmetro
cable para conexin en protoboard
pinzas, alicates, corta cables, pela cables

Encendido de led
1. Realizar la programacin utilizando el software Micro C Pro.
2. Construir el circuito electrnico de la Fig. 1.1, utilice el software especializado dispuesto en el
laboratorio.

C1

U1
1

13
14
1

22p

4MHZ
CRYSTAL

2
3
4
5
6
7

C2
22p

8
9
10

R6
10k

OSC1/CLKIN
OSC2/CLKOUT
MCLR/Vpp/THV

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T0CKI
RA5/AN4/SS
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RE0/AN5/RD
RC2/CCP1
RE1/AN6/WR
RC3/SCK/SCL
RE2/AN7/CS
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7

33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30

D1

PIC16F877

LED-RED

R1
330

Fig. 1.1 Encendido de led con PIC16F877A

3.

Crear un programa que encienda y apague un led, ubicado en la terminal RD7 del puerto D. El
tiempo de encendido es de 1000 milisegundo y el de apagado de 500 milisegundos .

Luces secuenciales
1. Realizar la programacin utilizando el software Micro C Pro.
2. Construir el circuito electrnico de la Fig. 1.2, utilice el software especializado dispuesto en el
laboratorio.
U1
13
14

X1

C1

CRYSTAL
22p

C2
22p

2
3
4
5
6
7
8
9
10

R10
10k

OSC1/CLKIN
OSC2/CLKOUT

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
RE0/AN5/RD
RC1/T1OSI/CCP2
RE1/AN6/WR
RC2/CCP1
RE2/AN7/CS
RC3/SCK/SCL
RC4/SDI/SDA
MCLR/Vpp/THV
RC5/SDO
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
PIC16F877A

33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30

R1

R8
330 OHms

Fig. 1.2 Luces secuenciales con PIC16F877A

U2
1
2
3
4
5
6
7
8
9
10

20
19
18
17
16
15
14
13
12
11
LED-BARGRAPH-GRN

3. Crear un programa que encienda una gama de leds de forma secuencial ubicados en los
terminales del puerto D, empezando por RD0 con un tiempo de 500ms durante la ejecucin en
cada terminal hasta llegar a RD7, una vez llegado hasta este terminal debe volver a empezar.
4. Realizar 4 tipos de rutinas que se ejecuten de forma secuencial.

MARCO TERICO:

El PIC16F877A
El PIC16F877 es un microcontrolador con memoria de programa tipo FLASH, lo que representa
gran facilidad en el desarrollo de prototipos y en su aprendizaje ya que no se requiere borrarlo con
luz ultravioleta como las versiones EPROM, sino que permite reprogramarlo nuevamente sin ser
borrado con anterioridad. El PIC16F877 es un microcontrolador de Microchip Technology fabricado
en tecnologa CMOS, su consumo de potencia es muy bajo y adems es completamente esttico, esto
quiere decir que el reloj puede detenerse y los datos de la memoria no se pierden. El encapsulado
ms comn para este microcontrolador es el DIP (Dual In-line Pin) de 40 pines, propio para usarlo
en experimentacin. La referencia completa es PIC16F877-04 para el dispositivo que utiliza cristal
oscilador de hasta 4 MHz, PIC16F877-20 para el dispositivo que utiliza cristal oscilador de hasta 20
MHz o PIC16F877A-I para el dispositivo tipo industrial que puede trabajar hasta a 20 MHz. Sin
embargo, hay otros tipos de encapsulado que se pueden utilizar segn el diseo y la aplicacin que se
quiere realizar. Por ejemplo, el encapsulado tipo surface mount (montaje superficial) tiene un
reducido tamao y bajo costo, que lo hace propio para producciones en serie o para utilizarlo en
lugares de espacio muy reducido.
Caractersticas principales
Memoria de programa : FLASH, 8 K de instrucciones de 14 bits c/u.
Memoria de datos : 368 bytes RAM, 256 bytes EEPROM.
Pila (Stack) : 8 niveles (14 bits).
Fuentes de interrupcin : 13
Instrucciones : 35
Encapsulado : DIP de 40 pines.
Frecuencia oscilador : 20 MHz (mxima)
Temporizadores/Contadores: 1 de 8 bits (Timer 0); 1 de 16 bits (Timer 1); 1 de 8 bits (Timer 2) con
pre y post escalador. Un perro guardin (WDT)
Lneas de E/S : 6 del puerto A, 8 del puerto B, 8 del puerto C, 8 del puerto D y 3 del puerto E,
adems de 8 entradas anlogas.
Dos mdulos de Captura, Comparacin y PWM:
- Captura: 16 bits. Resolucin mx. = 12.5 nseg.

- Comparacin: 16 bits. Resolucin mx. = 200 nseg.


- PWM: Resolucin mx. = 10 bits.
Convertidor Anlogo/Digital de 10 bits multicanal (8 canales de entrada).
Puerto serial sncrono (SSP) con bus SPI (modo maestro) y bus IC (maestro/esclavo).
USART (Universal Synchronous Asynchronous Receiver Transmitter) con direccin de deteccin
de 9 bits.
Corriente mxima absorbida/suministrada (sink/source) por lnea (pin): 25 mA
Oscilador : Soporta 4 configuraciones diferentes: XT, RC, HS, LP.
Tecnologa de Fabricacin: CMOS
Voltaje de alimentacin: 3.0 a 5.5 VDC
Puede operar en modo microprocesador

Puertos de entrada y salida


Los pines de entrada/salida de este microcontrolador estn organizados en cinco puertos, el puerto A
con 6 lneas, el puerto B con 8 lneas, el puerto C con 8 lneas, el puerto D con 8 lneas y el puerto E
con 3 lneas. Cada pin de esos puertos se puede configurar como entrada o como salida
independiente programando un par de registros diseados para tal fin. En ese registro un bit en "0"
configura el pin del puerto correspondiente como salida y un bit en "1" lo configura como entrada.
Dichos pines del microcontrolador tambin pueden cumplir otras funciones especiales, siempre y
cuando se configuren para ello, segn se ver ms adelante.

Figura 2. Distribucin de pines del PIC


16F877

Figura 3. Distribucin de pines del PIC


16F877

Los pines del puerto A y del puerto E pueden trabajar como entradas para el convertidor Anlogo a
Digital interno, es decir, all se podra conectar una seal proveniente de un sensor o de un circuito
analgico para que el microcontrolador la convierta en su equivalente digital y pueda realizar algn
proceso de control o de instrumentacin digital.
El pin RB0/INT se puede configurar por software para que funcione como interrupcin externa, para
configurarlo se utilizan unos bits de los registros que controlan las interrupciones.
El pin RA4/TOCKI del puerto A puede ser configurado como un pin de entrada/salida o como
entrada del temporizador/contador. Cuando este pin se programa como entrada digital, funciona
como un disparador de Schmitt (Schmitt trigger), puede reconocer seales un poco distorsionadas y
llevarlas a niveles lgicos (cero y cinco voltios). Cuando se usa como salida digital se comporta

como colector abierto (open collector), por lo tanto, se debe poner una resistencia de pull-up
(resistencia externa conectada a un nivel de cinco voltios). Como salida, la lgica es inversa: un "0"
escrito al pin del puerto entrega en el pin un "1" lgico. Adems, como salida no puede manejar
cargas como fuente, slo en el modo sumidero.
El puerto E puede controlar la conexin en modo microprocesador con otros dispositivos utilizando
las lneas RD (read), WR (write) y CS (chip select). En este modo el puerto D funciona como un bus
de datos de 8 bits (pines PSP).
La mxima capacidad de corriente de cada uno de los pines de los puertos en modo sumidero (sink)
o en modo fuente (source) es de 25 mA . La mxima capacidad de corriente total de los puertos es:

El consumo de corriente del microcontrolador para su funcionamiento depende del voltaje de


operacin, la frecuencia y de las cargas que tengan sus pines. Para un oscilador de 4 MHz el
consumo es de aproximadamente 2 mA; aunque este se puede reducir a 40 microamperios cuando se
est en el modo sleep (en este modo el micro se detiene y disminuye el consumo de potencia). Se
sale de ese estado cuando se produce alguna condicin especial que veremos ms adelante.

Figura 4. Capacidad de Corriente de los


pines y puertos

Asignacin de datos (decimal, hexadecimal, octal, binario).

La asignacin de datos se la realiza mediante literales enteros, que en s son constantes enteras que
pueden estar expresadas en los formatos hexadecimal (base 16), decimal (base 10), octal (base 8) o
binaria (base 2).
Los literales enteros con el prefijo 0x (o 0X) se consideran nmeros hexadecimales. Por ejemplo,
0x8F.
En el formato decimal los literales enteros se representan como una secuencia de dgitos con el
prefijo opcional + o (no estn delimitados por coma, espacio en blanco o puntos). Si no se
especifica el prefijo, el valor de la constante se considera positiva. Por ejemplo, el nmero 6258
equivale a +6258.

Las constantes literales enteras que empiezan con 0 se consideran nmeros octales. Por ejemplo,
0357.
Las constantes con el prefijo 0b (o 0B) se consideran nmeros binarios. Por ejemplo, 0b10100101.
Ejemplo de las constantes literales:
0x11 (literal hexadecimal equivale a literal decimal 17)
11 (literal decimal)
011 (literal octagonal equivale a literal decimal 9)
0b11 (literal binaria equivale a literal decimal 3)

RESULTADOS OBTENIDOS.
Simulacin realizada del primer circuito de la prctica:
C1
22p

U1

X1
CRYSTAL

C2
2

22p

R1
10k

13
14
2
3
4
5
6
7
8
9
10
1

OSC1/CLKIN
OSC2/CLKOUT

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
RE0/AN5/RD
RC1/T1OSI/CCP2
RE1/AN6/WR
RC2/CCP1
RE2/AN7/CS
RC3/SCK/SCL
RC4/SDI/SDA
MCLR/Vpp/THV
RC5/SDO
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
PIC16F877A

Figura 5. Encendido y Apagado de un Led

33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30

D1
LED-RED

R2
330

Figura 6. Encendido y Apagado de un Led

Cdigo realizado para el encendido y apagado de un led.

#define led PORTD.RD7


void main() {
TRISD = 0x00;// Configurar los pines de PORTD como salidas
PORTD = 0x00;// Apagar los LEDs en PORTD
do{
led = 0xFF; // Enciende el LED en PORTD.RD7
Delay_ms(1000);// Retraso de un segundo
led = 0x00;// Apaga el LED en PORTD.RD7
Delay_ms(500);// Retraso de mediosegundo
} while(1);// Bucle infinito
}
Simulacin del segundo circuito realizado en la prctica:

C4
1

U2

22pF

X2
CRYSTAL
2

C3

13
14
2
3
4
5
6
7

22pF

R3
10k

8
9
10
1

OSC1/CLKIN
OSC2/CLKOUT

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
RE0/AN5/RD
RC1/T1OSI/CCP2
RE1/AN6/WR
RC2/CCP1
RE2/AN7/CS
RC3/SCK/SCL
RC4/SDI/SDA
MCLR/Vpp/THV
RC5/SDO
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7

33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30

PIC16F877A

U3
1
2
3
4
5
6
7
8
9
10

20
19
18
17
16
15
14
13
12
11
LED-BARGRAPH-GRN

Figura 7. Encendido de luces secuenciales.

Figura 8. Encendido de luces secuenciales.

Cdigo realizado para el encendido de las luces secuenciales.

const time=500;
unsigned cont=0;
void main() {
TRISD = 0x00;// Configurar los pines
de PORTD como salidas
PORTD = 0x00;// Apagar los LEDs en
PORTD
while(cont<4){
PORTD.RD0=0xFF; // Enciende el LED
en PORTD.RD0
Delay_ms(time);// Retraso de un
segundo
PORTD.RD0= 0x00;// Apaga el LED en
PORTD.RD0
PORTD.RD1 = 0xFF; // Enciende el
LED en PORTD.RD1
Delay_ms(time);// Retraso de un
segundo
PORTD.RD1= 0x00;// Apaga el LED en
PORTD.RD1
PORTD.RD2 = 0xFF; // Enciende el
LED en PORTD.RD2
Delay_ms(time);// Retraso de un
segundo
PORTD.RD2= 0x00;// Apaga el LED en
PORTD.RD2
PORTD.RD3 = 0xFF; // Enciende el
LED en PORTD.RD3

Simulacin del tercer circuito realizado en la prctica:


C4
U2

22pF

X2
CRYSTAL

C3
2

Delay_ms(time);// Retraso de un
segundo
PORTD.RD3= 0x00;// Apaga el LED en
PORTD.RD3
PORTD.RD4 = 0xFF; // Enciende el
LED en PORTD.RD4
Delay_ms(time);// Retraso de un
segundo
PORTD.RD4= 0x00;// Apaga el LED en
PORTD.RD4
PORTD.RD5 = 0xFF; // Enciende el
LED en PORTD.RD5
Delay_ms(time);// Retraso de un
segundo
PORTD.RD5= 0x00;// Apaga el LED en
PORTD.RD5
PORTD.RD6 = 0xFF; // Enciende el
LED en PORTD.RD6
Delay_ms(time);// Retraso de un
segundo
PORTD.RD6= 0x00;// Apaga el LED en
PORTD.RD6
PORTD.RD7 = 0xFF; // Enciende el
LED en PORTD.RD7
Delay_ms(time);// Retraso de un
segundo
PORTD.RD7= 0x00;// Apaga el LED en
PORTD.RD7
cont++;
}
PORTD = 0x00;
}

22pF

R3
10k

13
14
2
3
4
5
6
7
8
9
10
1

OSC1/CLKIN
OSC2/CLKOUT

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
RE0/AN5/RD
RC1/T1OSI/CCP2
RE1/AN6/WR
RC2/CCP1
RE2/AN7/CS
RC3/SCK/SCL
RC4/SDI/SDA
MCLR/Vpp/THV
RC5/SDO
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
PIC16F877A

33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30

U3
1
2
3
4
5
6
7
8
9
10

20
19
18
17
16
15
14
13
12
11
LED-BARGRAPH-GRN

Figura 9. Encendido de luces secuenciales (con rutinas diferentes)

Cdigo utilizado para el encendido de las luces secuenciales (con rutinas diferentes)
// SECUENCIA PARA LAS 4 RUTINAS
const time=500;
void main() {
TRISD = 0x00;// Configurar los pines de PORTD como salidas
PORTD = 0x00;// Apagar los LEDs en PORTD
Delay_ms(time);// Retraso de un segundo
while(1){
PORTD=0B10011110;// Enciende el LED en PORTD.RD0
Delay_ms(time);// Retraso de un segundo
PORTD=0B10011110; // Enciende el LED en PORTD.RD0
Delay_ms(time);// Retraso de un segundo
PORTD=0B01100000; // Enciende el LED en PORTD.RD0
Delay_ms(time);// Retraso de un segundo
PORTD=0B01100100; // Enciende el LED en PORTD.RD0
Delay_ms(time);// Retraso de un segundo
PORTD=0B11101100; // Enciende el LED en PORTD.RD0
Delay_ms(time);// Retraso de un segundo
}
PORTD = 0x00;
}

Simulacin del encendido de las luces de cuatro semforos sincronizados:

Figura 10. Simulacin del encendido de las luces de cuatro semforos sincronizados.

Cdigo realizado para el encendido de las luces de los semforos:


const
amarillo=5000;
delay_ms(verde);
const rojo=30000;
const time=1000;
j=0;
const verde=25000;
while(j<3){
unsigned cont=0;
PORTB.RB5=1;
void main() {
PORTD.RD5=1;
int j=0;
Delay_ms(time);
TRISD = 0;//
PORTB.RB5=0;
Configurar los
PORTD.RD5=0;
pines de PORTD como
Delay_ms(time);
salidas
j=j++;
TRISB = 0;//
}
Configurar los
pines de PORTD como
PORTB.RB0=0;
salidas
PORTD.RD0=0;
PORTD.RD6=0;
PORTD = 0x00;
PORTB.RB6=0;
PORTB = 0x00;
PORTB.RB5=0;
//CEMAFORO
PORTD.RD5=0;
while(1){
PORTB.RB0=1;
PORTD.RD0=1;
PORTD.RD6=1;
PORTB.RB6=1;

PORTB.RB2=1;
PORTD.RD2=1;
PORTB.RB4=1;
PORTD.RD4=1;

Delay_ms(verde);
j=0;
while(j<4){
PORTB.RB1=1;
PORTD.RD1=1;
Delay_ms(time);
PORTB.RB1=0;
PORTD.RD1=0;
Delay_ms(time);
j=j++;
}
PORTB.RB4=0;
PORTD.RD4=0;
PORTD.RD3=0;
PORTB.RB3=0;
PORTB.RB2=0;
PORTD.RD2=0;
}
PORTD = 0x00;
PORTB = 0x00;
}

DISCUSIN.
El presente trabajo nos deja notar el uso importante del microcontrolador, el mismo que lo hemos
usado en la presente prctica, gracias a los puertos de salida C y D se dise un circuito el cual
permite tener intermitente el LED (color rojo), de la misma forma se realiz con 8 LED varias
secuencias de encendido de los LEDs, y para la tercera y ltima parte se realiz la simulacin de
cuatro semforos en la interseccin de una ciudad, el cual se logr al 100% de simulacin como se lo
puede apreciar en la figura 10, y el cdigo correspondiente seguidamente, el problema que se obtuvo
fue a la hora de armar el circuito en el protoboard, con un tiempo de anlisis del mismo, se lleg a la
conclusin de que no exista continuidad en este por su uso, pero una vez armado en otro protoboard
se obtuvo lo requerido.

10 CONCLUSIONES
En un microcontrolador se puede utilizar un oscilador interno o externo, que fue lo que se realiz en
esta prctica, pero adems nos permite utilizar un botn reset que reanuda o reiniciara, todo el
funcionamiento o proceso q este realizando el microcontrolador.
Que, en s, un circuito por grande o simple que sea, mas all del funcionamiento de los componentes
o el funcionamiento del circuito, todo depender desde un principio de la programacin que tenga el
microcontrolador.
Ya sea por un signo mal puesto o un comando mal asignado, el cdigo no servir.
11 RECOMENDACIONES
Verificar que las conexiones estn correctamente realizadas, con respecto a los pines del
microcontrolador.
Realizar el ensamblado del circuito, en un protoboard que se encuentre con conectividad en todas sus
interconexiones.

Comprobar que el cdigo funciones correctamente, con la ayuda de un simulador.


Verificar que el microcontrolador se encuentre correctamente, quemado, con el cdigo de
programacin.
12 PREGUNTAS DE CONTROL
1) Cules son los puertos de entrada y salida tiene el PIC16F877?
Hay en total 4 puertos de los cuales:
Las entradas y salidas del Puerto A son configuradas usando el registro TrisA, en el cual 1 equivale a
entrada y 0 a salida.
Al igual que todos los puertos el registro TrisB configura la entrada-salida del Puerto al igual que el
Puerto A. El Puerto B es de 8 bit que adems tiene la opcin seleccionable de Pull-Up.
Al igual que todos los puertos el registro TrisC para sus entradas y salidas. Cuando se usan los
mdulos relacionados con este puerto, se debe tener cuidado pues algunas veces cambia el estado i/o
del pin sin importar lo que indique TrisC.
El puerto D es de 8 bit, con entradas Schimtt Trigger, este puerto puede ser configurado como lnea
de datos, sus entradas y salidas se configuran al igual que los puertos A, B, C con el comando TrisD.
El puerto E consiste en tres pines que bien pueden ser de I/O, o configurados para controlar el PSP,
conteniendo las lneas bsicas como WR, RD, CS. Cuando se usa el modo PSP, el TrisE hace que el
puerto E sea de entradas digitales, de la misma manera los pines no podrn funcionar como entradas
anlogas.
2) Mencione los tipos de asignacin de datos ms utilizacin en la programacin de PIC16F877
Los tipos de datos ms utilizados son literales enteros como:
Binaria, Hexadecimal, Decimal, y Octal, adems de los comandos que son para asignacin de
variables como int, const, unisigned, float, char, short, signed int, long int etc..
3) Cmo se determina si un puerto o un determinado terminal es de entrada o salida?
A partir de la programacin que se haya realizado para ese puerto, es decir depender de cmo este
asignado ese puerto en el cdigo, que se haya realizado ya sea como una entrada o salida.
4) Escribir la lnea de cdigo que determina si un determinado puerto es de entrada o salida.
TRIS(La letra del Puerto) = 1 o 0 (el cual 1 equivale a entrada y 0 a salida). Por ejemplo
TRISA = 1; o TRISD = 0;
13 BIBLIOGRAFA:
ANGULO USATEGUI , JOS MARA, ROMERO YESA, SUSANA y ANGULO MARTNEZ,
IGNACIO. 2006. MICROCONTROLADORES "PIC" DISEO PRCTICO DE APLICACIONES.
SEGUNDA PARTE: PIC16F87X Y PIC18FXXXX. MADRID : s.n., 2006.
CLAVIJO MENDOZA, JUAN RICARDO. 2011. DISEO Y SUMULACIN DE SISTEMAS
MICROCONTROLADOS EN LENGUAJE C. COLOMBIA : s.n., 2011. 978-958-44-8619-6.

You might also like