Professional Documents
Culture Documents
EQUIPO:
12290391 Negrete Michel Arnan Misael
PRACTICA 3.1
3fb.
3fb.
3fb.
CIRCUITO
CON LEDS
PRACTICA 3.1.
CIRCUITO CON LEDS
OBJETIVO:
Mediante un microcontrolador (PIC16F877A) controlar las salidas de cada puerto para
lograr los efectos que cada programa propone.
Procedimiento propuesto:
1.- Poner un dato
2.- Corrimiento unilateral
3.- Corrimiento bilateral
4.- Corrimiento del centro a los lados
5.- Corrimiento Bilateral Largo 24 led's
MARCO TEORICO
PIC 16F877A
Se denomina microcontrolador a un dispositivo programable capaz de realizar diferentes actividades
que requieran del procesamiento de datos digitales y del control y comunicacin digital de diferentes
dispositivos.
Los microcontroladores poseen una memoria interna que almacena dos tipos de datos; las
instrucciones, que corresponden al programa que se ejecuta, y los registros, es decir, los datos que el
usuario maneja, as como registros especiales para el control de las diferentes funciones del
microcontrolador.
Los microcontroladores poseen principalmente una ALU (Unidad Lgico Aritmtica), memoria del
programa, memoria de registros, y pines I/O (entrada y/0 salida). La ALU es la encargada de procesar
los datos dependiendo de las instrucciones que se ejecuten (ADD, OR, AND), mientras que los pines
son los que se encargan de comunicar al microcontrolador con el medio externo; la funcin de los
pines puede ser de transmisin de datos, alimentacin de corriente para l funcionamiento de este o
pines de control especifico.
En este proyecto se utilizo el PIC 16F877. Este microcontrolador es fabricado por MicroChip familia a
la cual se le denomina PIC. El modelo 16F877 posee varias caractersticas que hacen a este
microcontrolador un dispositivo muy verstil, eficiente y prctico para ser empleado en la aplicacin
que posteriormente ser detallada.
CARACTERISTICAS
CARACTERSTICAS
16F877
Frecuencia mxima
DX-20MHz
8KB
368
256
Puertos E/S
A,B,C,D,E
Nmero de pines
40
Interrupciones
14
Timers
Mdulos CCP
Comunicaciones Serie
MSSP, USART
Comunicaciones paralelo
PSP
Juego de instrucciones
35 Instrucciones
Longitud de la instruccin
14 bits
Arquitectura
Harvard
CPU
Risc
Canales Pwm
Pila Harware
Puerto B:
Puerto e/s 8 pines
Resistencias pull-up programables
RB0 Interrupcin externa
RB4-7 Interrupcion por cambio de flanco
RB5-RB7 y RB3 programacion y debugger in circuit
Puerto C:
Puerto e/s de 8 pines
RC0 RC0, T1OSO (Timer1 salida oscilador) y T1CKI (Entrada de reloj del modulo Timer1).
RC1-RC2 PWM/COMP/CAPT
RC1 T1OSI (entrada osc timer1)
RC3-4 IIC
RC3-5 SPI
RC6-7 USART
Puerto D:
Puerto e/s de 8 pines
Bus de datos en PPS (Puerto paralelo esclavo)
Puerto E:
Puerto de e/s de 3 pines
RE0 RE0 y AN5 y Read de PPS
RE1 RE1 y AN6 y Write de PPS
RE2 RE2 y AN7 y CS de PPS
Dispositivos perifricos:
Timer0: Temporizador-contador de 8 bits con preescaler de 8 bits
Timer1: Temporizador-contador de 16 bits con preescaler que puede incrementarse en modo sleep de
forma externa por un cristal/clock.
Timer2: Temporizador-contador de 8 bits con preescaler y postescaler.
Dos mdulos de Captura, Comparacin, PWM (Modulacin de Anchura de Impulsos).
Conversor A/D de 1 0 bits.
Puerto Serie Sncrono Master (MSSP) con SPI e I2C (Master/Slave).
USART/SCI (Universal Syncheronus Asynchronous Receiver Transmitter) con 9 bit.
Puerta Paralela Esclava (PSP) solo en encapsulados con 40 pines
PIN
TIPO
OSC1/CLKIN
13
ST/MOS
OSC2/CLKOUT
14
MCLR/Vpp/THV
I/P
ST
2
3
4
5
6
7
I/O
I/O
I/O
I/O
I/O
I/O
TTL
TTL
TTL
TTL
ST
TTL
RA0/AN0
RA1/AN1
RA2/AN2/ VrefRA3/AN3/Vref+
RA4/T0CKI
RA5/SS/AN4
RBO/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
RCO/T1OSO/T1CKI
RC1/T1OS1/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SD1/SDA
RC5/SD0
RC6/Tx/CK
RC7/RX/DT
TIPO DE
BUFFER
33
34
35
36
37
38
39
40
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
TTL/ST
TTL
TTL
TTL
TTL
TTL
TTL/ST
TTL/ST
15
16
17
I/O
I/O
I/O
ST
ST
ST
18
I/O
ST
23
24
25
26
I/O
I/O
I/O
I/O
ST
ST
ST
ST
DESCRIPCIN
Entrada del oscilador de cristal / Entrada de
seal de reloj externa
Salida del oscilador de cristal
Entrada del Master clear (Reset) o entrada de
voltaje de programacin o modo de control
high voltaje test
PORTA es un puerto I/O bidireccional
RAO: puede ser salida analgica 0
RA1: puede ser salida analgica 1
RA2: puede ser salida analgica 2 o referencia
negativa de voltaje
RA3: puede ser salida analgica 3 o referencia
positiva de voltaje
RA4: puede ser entrada de reloj el timer0.
RA5: puede ser salida analgica 4 o el esclavo
seleccionado por el puerto serial sncrono.
PORTB es un puerto I/O bidireccional. Puede
ser programado todo como entradas
RB0 pude ser pin de interrupcin externo.
RB3: puede ser la entada de programacin de
bajo voltaje
Pin de interrupcin
Pin de interrupcin
Pin de interrupcin. Reloj de programacin
serial
PORTC es un puerto I/O bidireccional
RCO puede ser la salida del oscilador timer1 o
la entrada de reloj del timer1
RC1 puede ser la entrada del oscilador timer1
o salida PMW 2
RC2 puede ser una entrada de captura y
comparacin o salida PWN
RC3 puede ser la entrada o salida serial de
reloj sncrono para modos SPI e I2C
RC4 puede ser la entrada de datos SPI y
modo I2C
RC5 puede ser la salida de datos SPI
RC6 puede ser el transmisor asncrono
USART o el reloj sncrono.
RC7 puede ser el receptor asncrono USART o
datos sncronos
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
I/O
I/O I/O
I/O I/O
I/O I/O
I/O
ST/TTL
ST/TTL
ST/TTL
ST/TTL
ST/TTL
ST/TTL
ST/TTL
ST/TTL
I/O
ST/TTL
I/O
ST/TTL
10
I/O
ST/TTL
Vss
12.31
Vdd
11.32
NC
REO/RD/AN5
RE1/WR/AN
RE2/CS/AN7
DIODO LED
El LED (Light-Emitting Diode: Diodo Emisor de Luz), es un dispositivo semiconductor que emite luz
incoherente de espectro reducido cuando se polariza de forma directa la unin PN en la cual circula
por l una corriente elctrica . Este fenmeno es una forma de electroluminiscencia, el LED es un
tipo especial de diodo que trabaja como un diodo comn, pero que al ser atravesado por la corriente
elctrica, emite luz . Este dispositivo semiconductor est comnmente encapsulado en
una cubierta de plstico de mayor resistencia que las de vidrio que usualmente se emplean en las
lmparas incandescentes. Aunque el plstico puede estar coloreado, es slo por razones estticas, ya
que ello no influye en el color de la luz emitida. Usualmente un LED es una fuente de luz compuesta
con diferentes partes, razn por la cual el patrn de intensidad de la luz emitida puede ser bastante
complejo.
Para obtener una buena intensidad luminosa debe escogerse bien la corriente que atraviesa el LED y
evitar que este se pueda daar; para ello, hay que tener en cuenta que el voltaje de operacin va desde
1,8 hasta 3,8 voltios aproximadamente (lo que est relacionado con el material de fabricacin y el
color de la luz que emite) y la gama de intensidades que debe circular por l vara segn su
aplicacin. Los Valores tpicos de corriente directa de polarizacin de un LED estn comprendidos
entre los 10 y 20 miliamperios (mA) en los diodos de color rojo y de entre los 20 y 40 miliamperios
(mA) para los otros LED. Los diodos LED tienen enormes ventajas sobre las lmparas indicadoras
comunes, como su bajo consumo de energa, su mantenimiento casi nulo y con una vida aproximada
de 100,000 horas. Para la proteccin del LED en caso haya picos inesperados que puedan daarlo. Se
coloca en paralelo y en sentido opuesto un diodo de silicio comn
En general, los LED suelen tener mejor eficiencia cuanto menor es la corriente que circula por ellos,
con lo cual, en su operacin de forma optimizada, se suele buscar un compromiso entre la intensidad
luminosa que producen (mayor cuanto ms grande es la intensidad que circula por ellos) y la
eficiencia (mayor cuanto menor es la intensidad que circula por ellos).
ESTRUCTURA DEL LED
RESISTENCIAS
Propiedad de un objeto o sustancia que hace que se resista u oponga al paso de una corriente
elctrica. La resistencia de un circuito elctrico determina segn la llamada ley de Ohm cunta
corriente fluye en el circuito cuando se le aplica un voltaje determinado. La unidad de resistencia es el
ohmio, que es la resistencia de un conductor si es recorrido por una corriente de un amperio cuando
se le aplica una tensin de 1 voltio. La abreviatura habitual para la resistencia elctrica es R, y el
smbolo del ohmio es la letra griega omega, . En algunos clculos elctricos se emplea el inverso de
la resistencia, 1/R, que se denomina conductancia y se representa por G. La unidad de conductancia es
siemens, cuyo smbolo es S. An puede encontrarse en ciertas obras la denominacin antigua de esta
unidad, ohm.
CRISTAL
Al utilizar el cristal para estabilizar la frecuencia, un oscilador incorporado funciona a una frecuencia
determinada, y no es afectada por los cambios de temperatura y de voltaje de alimentacin. Esta
frecuencia se etiqueta normalmente en el encapsulado del cristal. Aparte del cristal, los
condensadores C1 y C2 deben estar conectados como se muestra en el siguiente esquema. Su
capacitancia no es de gran importancia. Por eso, los valores proporcionados en la siguiente tabla se
deben tomar como recomendacin y no como regla estricta.
CABLE UTP
Unshielded Twisted Pair: un tipo de cableado utilizado principalmente para comunicaciones.
Es un cable de pares trenzados y sin recubrimiento metlico externo, de modo que es sensible a las
interferencias; sin embargo, al estar trenzado compensa las inducciones electromagnticas
producidas por las lneas del mismo cable. Es importante guardar la numeracin de los pares, ya que
de lo contrario el efecto del trenzado no ser eficaz, disminuyendo sensiblemente, o incluso
impidiendo, la capacidad de transmisin. Es un cable barato, flexible y sencillo de instalar. La
impedancia
de
un
cable
UTP
es
de
100
ohmios.
Como el nombre lo indica, "unshielded twisted pair" (UTP), es un cable que no tiene revestimiento o
blindaje entre la cubierta exterior y los cables. El UTP se utiliza comnmente para aplicaciones de
REDES Ethernet, el trmino UTP generalmente se refiere a los cables categora 3, 4 y 5 especificados
TIPO
DE
DATO
DESCRIPCIN
TAMAO
(NMERO DE
BITS)
RANGO DE VALORES
char
Texto (caracteres)
de 0 a 255
int
Valores enteros
16
de -32768 a 32767
float
32
de 1.1754943508210-38 a
6.805647744071038
double
32
de 1.1754943508210-38 a
6.805647744071038
TIPO DE
DATO
TAMAO (NMERO DE
BITS)
RANGO DE VALORES
char
signed char
de -128 a 128
int
unsigned int
16
de 0 a 65535
short int
de 0 a 255
de -128 a 127
long int
32
de 0 a 4294967295
32
de -2147483648 a 2147483647
data
if
return
typedef
asm
default
inline
rx
typeid
at
delete
int
sfr
typename
auto
do
io
short
union
bit
double
long
signed
unsigned
bool
else
mutable
sizeof
using
break
enum
namespace
static
virtual
case
explicit
operator
struct
void
catch
extern
org
switch
volatile
char
false
pascal
template
while
class
float
private
this
code
for
protected
throw
const
friend
public
true
continue
goto
register
try
OPERADORES ARITMETICOS
OPER ADOR
OPER ACI N
Adicin
Resta
Multiplicacin
Divisin
Resto de la divisin
OPERADORES DE ASIGNACION
EJEM PLO
OPER ADOR
Expresin
Equivalente
+=
a += 8
a=a+8
-=
a -= 8
a=a-8
*=
a *= 8
a=a*8
/=
a /= 8
a=a/8
%=
a %= 8
a=a%8
EJEM PLO
DESCRI PCI N
++a
++
--
OPERADORES RELACIONALES
OPER ADOR
DESCRI PCI N
EJEM PLO
>
mayor que
b>a
si b es mayor que a
>=
a >= 5
<
menor que
a<b
si a es menor que b
<=
a <= b
==
igual que
a == 6
si a es igual que 6
!=
desigual que
a != b
si a es desigual que b
OPERADORES LOGICOS
OPER ADOR
FUNCI N
&&
||
NO
DESCRI PCI N
EJEM PLO
RESULT AD O
Complemento a uno
a = ~b
b=5
a = -5
<<
Desplazamiento a la izquierda
a = b << 2
b = 11110011
a = 11001100
>>
Desplazamiento a la derecha
a = b >> 2
b = 11110011
a = 00011110
&
c=a&b
a = 11100011
b = 11001100
c = 11000000
c=a|b
a = 11100011
b = 11001100
c = 11101111
c=a^b
a = 11100011
b = 11001100
c = 00101111
PRI ORID AD
OPER ADOR ES
Alta
() [] -> .
de izquierda a derecha
de derecha a izquierda
*/%
de izquierda a derecha
+-
de izquierda a derecha
<>
de izquierda a derecha
de izquierda a derecha
== !=
de izquierda a derecha
&
de izquierda a derecha
de izquierda a derecha
de izquierda a derecha
&&
de izquierda a derecha
||
de derecha a izquierda
?:
de derecha a izquierda
de izquierda a derecha
Baja
PROTEUS
Proteus es
diseo
simulacin electrnica,
desarrollado
por Labcenter Electronics que consta de los dos programas principales: Ares e Isis, y los mdulos VSM
y Electra.
ISIS
El Programa ISIS, Intelligent Schematic Input System (Sistema de Enrutado de Esquemas Inteligente)
permite disear el plano elctrico del circuito que se desea realizar concomponentes muy variados,
desde
simples resistencias,
hasta
alguno
que
PROTOBOARD
MICROCONTROLADOR PIC16F877A
24 LEDS
25 RESISTENCIAS (220)
BOTON PULSADOR
CABLE UTP
CRISTAL 4MHZ
FUENTE DE 5 VOLTS
DESARROLLO DE LA PRCTICA:
CONEXION DEL PIC:
Se coloco el PIC16F877A en el Protoboard y se conecto una resistencia en cada pin de cada
una de las salidas en los puertos B (33-40), C (15-18 y 23-26), y D (19-22 y 27-30) para proteger
los LED que posteriormente se conectaron uno a uno en cada resistencia (el nodo se conecto
en la resistencia y el ctodo al negativo [-]).
Se conecto el Botn pulsador con una resistencia a 5V en el Pin 1 para el RESET del
Microcontrolador.
Se conecto el Cristal de 4MHZ en los Pines 13 y 14 para oscilar y generar una frecuencia de
4MHZ.
Se conecto el Pin 11 a 5V y el Pin 12 a negativo (-).
PROGRAMACION Y SIMULACION:
Se realizaron distintos programas haciendo uso de la informacin mencionada con anterioridad para
determinar el funcionamiento necesario indicado en cada uno de los programas, haciendo uso del
programa PCW. Se compilo y se cargo en el PIC16F877A en el circuito armado en ISIS de Proteus para
hacer una simulacin del circuito que se har en fsico, para as poder detectar posibles errores en
conexiones o en el programa y no daar el equipo.
PROGRAMAS REALIZADOS:
3.1.1. Sacar un dato.
3.1.2. Corrimiento unilateral.
3.1.3. Corrimiento bilateral.
3.1.4. Corrimiento centro-extremos.
3.1.5. Corrimiento bilateral 24 leds.
#include "16F877.h"
#use delay (clock=4000000)
#FUSES XT,PUT,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
main()
{
for(A=0;A<=15;A++)
for(B=0;B<=15;B++)
for(C=0;C<=15;C++)
{
output_b(codigo[A]);
output_c(codigo[B]);
output_d(codigo[C]);
delay_ms(100);
}
return 0;
}
Programa para que por medio de ocho leds conectados a la salida de puerto, se visualice como se
enciende un led, luego se apaga y enciende el siguiente, luego se apaga y enciende el siguiente. Haciendo
un recorrido de un extremo a otro de la barra de leds, y cuando termine inicie de nuevo.
#include "16f877.h"
#USE delay(CLOCK=4000000)
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,NOBROWNOUT
const char codigo[]={1,2,4,8,16,32,64,128};
char cnt;
main()
{
for (cnt=0;cnt<=8;cnt++)
{
output_b (codigo[cnt]);
delay_ms(100);
}
return 0;
}
En forma similar al programa del ejercicio anterior, en el que se activa una salida, se apaga y se enciende
la prxima; el circuito deber encender una hilera de led's, con la diferencia de que al llegar al extremo,
deber regresar de forma contraria.
#include "16f877.h"
#USE delay(CLOCK=4000000)
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,NOBROWNOUT
const char codigo[]={1,2,4,8,16,32,64,128,64,32,16,8,4,2};
char cnt;
main()
{
for(;;)
for (cnt=0;cnt<=15;cnt++)
{
output_b (codigo[cnt]);
delay_ms(100);
}
return 0;
}
Programa para el circuito en esta prctica, para visualizar el encendido secuencial de led's, con la
particularidad de que enciende primero en el centro hasta llegar a ambos extremos.
#include "16f877.h"
#USE delay(CLOCK=4000000)
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,NOBROWNOUT
const char codigo[]={24,36,66,129};
char cnt;
main()
{
for(;;)
for (cnt=0;cnt<=4;cnt++)
{
output_b (codigo[cnt]);
delay_ms(200);
}
return 0;
}
Circuito en el que se conecto un led a cada salida de 3 de los puertos (B, C y D) de 8 leds, para hacer un
total de 24 leds. El programa realiza un corrimiento en cada uno de los leds y al llegar al extremo realiza
el corrimiento de forma contraria.
#include "16F877.h"
#use delay (clock=4000000)
#FUSES XT,PUT,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
char A,B=1;
main()
{
for(A=0;A<8;A++){
if(A==0){B=1;}
output_b(B);
delay_ms(100);
B=B*2;
}
output_b(0);
for(A=0;A<8;A++){
if(A==0){B=1;}
output_c(B);
delay_ms(100);
B=B*2;
}
output_c(0);
for(A=0;A<8;A++){
if(A==0){B=1;}
output_d(B);
delay_ms(100);
B=B*2;
}
for(A=0;A<8;A++){
if(A==0){B=128;}
output_d(B);
delay_ms(100);
B=B/2;
}
output_d(0);
for(A=0;A<8;A++){
if(A==0){B=128;}
output_c(B);
delay_ms(100);
B=B/2;
}
output_c(0);
for(A=0;A<8;A++){
if(A==0){B=128;}
output_b(B);
delay_ms(100);
B=B/2;
}
return 0;
}
OBSERVACIONES:
Al principio olvidamos proteger los con las resistencias leds para evitar que se quemaran y dos no
prendieron, tuvimos que cambiarlos y posteriormente colocamos las resistencias para que no
volvieran a daarse otros.
Olvidamos poner el botn del RESET y al momento de energizar el circuito no funciono. Tuvimos que
colocarlo y volvimos energizar para que el circuito realizara lo indicado en el programa.
En el segundo programa hubo un error debido a que no se coloco el puerto en el que tena que salir la
informacin y al momento de compilacin marcaba error, se reviso el programa y se corrigi el error.
Solo se presentaron problemas en el primer programa debido a que apenas comenzbamos a hacer
uso de dicho PIC, se corrigieron los errores y aprendimos de ellos para no cometerlos en los
programas siguientes.
12290391 Negrete Michel Arnan Misael 3fb
CONCLUSIONES:
En conclusin aprendimos a utilizar un microcontrolador y a programar en un pic c para indicar
nuevas funciones que realizara dicho PIC en el circuito. Aprendimos a utilizar nuevos elementos
como el programador, a programar en PIC C, a realizar simulaciones en PROTEUS y a realizar
circuitos con indicaciones dadas por nosotros en el programa.
REFERENCIAS:
http://www.monografias.com/trabajos18/descripcion-pic/descripcion-pic.shtml#ixzz2pkLuYzdn
http://www.monografias.com/trabajos60/diodo-led/diodo-led.shtml#ixzz2pkT1gYbM
http://www.monografias.com/trabajos16/componentes-electronicos/componentes
electronicos.shtml#ixzz2pkVIKF2r
http://www.mikroe.com/chapters/view/82/capitulo-4-ejemplos/
http://cableutpnubiaardila.blogspot.mx/
http://www.mikroe.com/chapters/view/80/capitulo-2-programacion-de-los-microcontroladores/