Escolar Documentos
Profissional Documentos
Cultura Documentos
2009
PERU
063817
INTRODUCCION
El presente trabajo es el resultado de la
colaboracin de todos los miembros
del grupo que contribuyeron con dicho
proyecto en forma continua.
Los resultados del proyecto sern
analizados en este informe de forma
matemtica y practica
INDICE
Objetivos..4
Materiales.4
Circuito Electrnico..5
Anlisis del Circuito.....9
1.- PIC.....9
2.- MAX 232.......16
3.- ULN2803......16
4.-Registros y transistores....17
Conclusiones13
Bibliografa..13
I.-
OBJETIVOS
II.-
MATERIALES
III.-
CIRCUITO ELECTRONICO
ETAPA DE CONTROL:
ETAPA DE POTENCIA:
U11
D11
D12
D13
D14
D15
D16
D17
D18
D21
D22
D23
D24
D25
D26
D27
D28
D31
D32
D33
D34
D35
D36
D37
D38
D41
D42
D43
D44
D45
D46
D47
D48
D51
D52
D53
D54
D55
D56
D57
D58
D61
D62
D63
D64
D65
D66
D67
D68
D71
D72
D73
D74
D75
D76
D77
D78
D81
D82
D83
D84
D85
D86
D87
D88
NOT
U12
NOT
U13
NOT
CLK
8
9
CLK
8
C1/->
1D
1
2
CLK
8
&
3 D21
1D
D281
2
C1/->
&
CLK
8
SRG8
1D
4 D22
4 D32
5 D13
5 D33
6 D14
6 D24
6 D34
10 D15
10 D25
10 D35
11 D16
11 D26
11 D36
12 D17
12 D27
12 D37
D38
1
2
&
3 D41
1D
4
5
6
D48
1
2
SRG8
11
12
74LS164
9
CLK
8
C1/->
&
3 D51
1D
D58
1
2
SRG8
9
CLK
8
C1/->
&
3 D61
1D
4 D52
5 D53
5 D63
D68
1
2
U10
SRG8
9
CLK
8
C1/->
&
3 D71
1D
D78
1
2
SRG8
U6
NOT
C1/->
&
4 D82
5 D83
D64
6 D74
6 D84
10 D55
10 D65
10 D75
10 D85
11 D56
11 D66
11 D76
11 D86
12 57
12 D67
12 D77
12 D87
13 D58
13 D68
13 D78
13 D88
D54
NOT
1D
5 D73
D62
U15
D81
4 D72
13 D48
74LS164
U9
U5
10 D45
13 D38
13 D28
9
CLK8
C1/->
3 D31
4 D12
13
U8
U3
SRG8
D23
&
3 D11
C1/->
D18
DATA
1
2
SRG8
SRG8
D18
U7
U2
D47 D46
U4
U16
NOT
U17
NOT
U18
74LS164
74LS164
74LS164
74LS164
74LS164
NOT
74LS164
VT1
RXD
TXD
RTS
CTS
U1
13
12
11
10
9
8
7
6
3
2
DATA1
CLK18
17
RB7/T1OSI
RB6/T1OSO/T1CKI
RB5
RB4
RB3/CCP1
RB2/TX/CK
RB1/RX/DT
RB0/INT
RA4/T0CKI/CMP2
RA3/AN3/CMP1
RA5/MCLR
RA2/AN2/VREF
RA1/AN1
RA6/OSC2/CLKOUT
RA0/AN0
RA7/OSC1/CLKIN
PIC16F628A
4
15
16
IV.-
1.- PIC:
Para nuestro caso se uso el PIC16F628A teniendo las siguientes Caractersticas:
Usando a la vez para propsitos del panel el siguiente lenguaje de programacin en lenguaje C
#include <18F452.h>
#include letrero.h>
#fuses NOWDT,WDT128,HS, NOPROTECT, NOOSCSEN, BROWNOUT, BORV20,
NOPUT, STVREN, NODEBUG, NOLVP, NOWRT, NOWRTD, NOWRTB, NOWRTC,
NOCPD, NOCPB, NOEBTR, NOEBTRB
#use delay(clock=20000000)
#use rs232(baud=57600,xmit=PIN_C6,rcv=PIN_C7)
//Defines-----------------------------------------#BYTE port_a = 0x0f80
#BYTE port_b = 0x0f81
#BYTE port_c = 0x0f82
#BYTE port_d = 0x0f83
#BYTE port_e = 0x0f84
#BYTE tris_a = 0x0f92
9
10
0b01101110,
0b11111101,
0b00111100},//X
0b10110001},//S
0b11111110,
{0b00111111,
{0b01111111,
0b11111101,
0b11011111,
0b01111111,
0b00000011},//V
0b11100000,
0b00000000,
{0b00000000,
0b11011111,
0b01111111,
0b11111101,
0b00111111},//Y
0b01111111},//T
0b11110011,
{0b00111000,
{0b00000001,
0b11111101,
0b01110110,
0b11111110,
0b10000000},//W
0b01101110,
0b11111110,
{0b00111100,
0b01011110,
0b11111110,
0b11011011,
0b00111100}//Z
0b00000001},//U
0b11000111,
};
{0b00000011,
0b11011011,
//letra minuscula en realidad muestra Letra mayuscula de doble grosor
unsigned int8 letramin[26][5]={
{0b10000000,
{0b00000000,
{0b10000001,
0b00000000,
0b00000000,
0b00000000,
0b00110011,
0b11100111,
0b00111100,
0b00000000,
0b00000000,
0b00000000,
0b10000000},//A
0b00000000},//H
0b10000001},//O
{0b00000000,
{0b00111100,
{0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b00101100,
0b00000000,
0b01110011,
0b00000000,
0b00111100,
0b00000111,
0b10010001},//B
0b00111100},//I
0b10001111},//P
{0b10000001,
{0b00111111,
{0b10000001,
0b00000000,
0b00000000,
0b00000000,
0b00111100,
0b00000000,
0b01111010,
0b00111100,
0b00111100,
0b00000001,
0b10011001},//C
0b00110001},//J
0b10000010},//Q
{0b00000000,
{0b00000000,
{0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b00111100,
0b11000111,
0b01110111,
0b00000000,
0b10010011,
0b00000000,
0b10000001},//D
0b00111100},//K
0b10001100},//R
{0b00000000,
{0b00000000,
{0b10011101,
0b00000000,
0b00000000,
0b00001100,
0b00100100,
0b11111100,
0b00100100,
0b00100100,
0b11111100,
0b00100000,
0b00100100},//E
0b11111100},//L
0b10110001},//S
{0b00000000,
{0b00000000,
{0b00111111,
0b00000000,
0b10000000,
0b00000000,
0b00110011,
0b11001111,
0b00000000,
0b00110011,
0b10000000,
0b00111111,
0b00110011},//f
0b00000000},//M
0b00111111},//T
{0b10000001,
{0b00000000,
{0b00000001,
0b00000000,
0b10000000,
0b00000000,
0b00100100,
0b11100111,
0b11111100,
0b00101100,
0b00000001,
0b00000000,
0b10010001},//G
0b00000000},//N
0b00000001},//U
11
{0b00000011,
0b00000001,
0b11111100,
0b00000001,
0b00000011},//V
{0b00000000,
0b00000001,
0b11100111,
0b00000001,
unsigned int8 simbolos[17][5]={
{0b10000001,
0b01110110,
0b01101110,
0b01011110,
0b10000001},//0
{0b11011110,
0b10111110,
0b01111110,
0b00000000,
0b11111110},//1
{0b10110000,
0b01100000,
0b01101100,
0b00011100,
0b10011100},//2
{0b10111101,
0b01101110,
0b01101110,
0b00000000,
0b10011001},//3
{0b11000111,
0b10110111,
0b01110111,
0b00000000,
0b00000000},//4
{0b00001101,
0b00001100,
0b01101110,
0b01100000,
0b10000000},//W
{0b00111100,
0b10011001,
0b11000011,
0b10011001,
0b00111100},//X
{0b00011111,
0b11000000,
0b11100000,
0b11001111,
0b00111111},//Y
{0b00111000,
0b00110000,
0b01100110,
0b00001100,
0b00011100}//Z
};
0b01110001},//5
{0b10000001,
0b00000000,
0b01101110,
0b00100000,
0b10110001},//6
{0b00111111,
0b01111111,
0b01110000,
0b00000000,
0b00011111},//7
{0b10010001,
0b01101110,
0b01101110,
0b01101110,
0b10010001},//8
{0b10011101,
0b01101110,
0b01101110,
0b01101110,
0b10000001},//9
{0b00000000,
0b11101111,
0b11101111,
0b11010011,
0b00111100},//K
{0b00000000,
0b11111110,
0b11111110,
0b11111110,
0b11111100}//L
{0b00000000,
0b11101111,
0b11101111,
0b11010011,
0b00111100},//K
{0b00000000,
0b11111110,
0b11111110,
0b11111110,
0b11111100}//L
{0b00000000,
0b11101111,
0b11101111,
0b11010011,
0b00111100},//K
{0b00000000,
0b11111110,
0b11111110,
0b11111110,
0b11111100}//L
{0b00000000,
0b11101111,
0b11101111,
0b11010011,
0b00111100}//K
};
12
{
tempo++;
write_eeprom(posicion,'\0');
printf("%C%Cfin de mensaje %U",13,10,tempo);
}
posicion++;
if(posicion==255)
{
write_eeprom(posicion,'\0');
printf("%C%Cla memoria ha sido excedida",13,10);
}
}while(caracter!=13&&posicion<255);
/*enciende un LED de fin de escritura si es q se retorno de lainterrupcion*/
printf("%C%Cfin de escritura de datos",13,10);
}
//-------------------------------------------------//Main---------------------------------------------//-------------------------------------------------void main()
{ int8 j;
fConfigurar_puertos();
output_high(CLOCK); //pin RELOJ = alto
output_low(DATA); //pin dataDATA bajo
output_high(CLR); //se prohibe reset en los registros
/*habilita la interrupcion externa y luego las globales*/
enable_interrupts(INT_RDA);
enable_interrupts(global);
barrido();
}
//-------------------------------------------------//-BARRIDO ESTATICO//-------------------------------------------------/*La siguiente duncion configura los puertos de acuerdo a lo requerido*/
void Barrido(void)
{
freset(); //se resetea los registros borrando antes los puertos
//condiciones de inicio de barrido
ApuntaCaracter=0;
IndiceByte=0;
tempo=virtualwindow(ApuntaCaracter,Indice);
if(tempo==255)//ve si es fin de linea
return ;
for(i=1;i<longitud;i++)//empieza en 1 por que ya se encuentra en la posicion 1
{
port_b=tempo;
port_d=tempo;
delay_ms(1000);// hace que se pueda ver el barrido se debe calibrar
tempo=virtualwindow(ApuntaCaracter,Indice);
if(tempo==255)
return ;
13
if(Indice==0)
{//espacio
port_b=255;
port_d=255;
fclock();
fclock();
fclock();
}
port_b=255;//con esto evito que se mande un dato
port_d=255;
fclock();
}
//-------------------------------------------------//- FUNCIONES//-------------------------------------------------/*La siguiente duncion configura los puertos de acuerdo a lo requerido*/
void fConfigurar_puertos(void){
tris_a = 0b11000000; //PORTA salida
tris_b = 0b00000000; //PORTB salida
//tris_c se dfine en el progrrama
tris_d = 0b00000000; //PORTD salida
// tris_e = 0b11111000; //PORTE se configura cada vez que se usa
}
//-------------------------------------------------/*carga el primer registro con un 1*/
//-------------------------------------------------void fdata(void)
{
output_high(DATA); //se pone data a alto
output_low(CLOCK); //estas dos lineas hacen un clock
output_high(CLOCK);
output_low(DATA); //aseguramos cargar los reg con un pulso
}
//-------------------------------------------------/*manda un pulso de reloj a los registros*/
//-------------------------------------------------void fclock(void)
{
output_low (CLOCK);
output_high(CLOCK);
}
//-------------------------------------------------/*produce reseteo en los registros de desplazamiento (toda sus salidas ceros)
14
15
EL MAX 232
El MAX232 es un circuito integrado que convierte los niveles de las lneas de un puerto
serie RS232 a niveles TTL y viceversa. Lo interesante es que slo necesita una
alimentacin de 5V, ya que genera internamente algunas tensiones que son necesarias
para el estndar RS232. Otros integrados que manejan las lneas RS232 requieren dos
voltajes, +12V y -12V.
EL ULN2803:
Dentro del ULN2803 se encuentran 8 transistores NPN Darlington. Es un circuito integrado
ideal para ser empleado como interfaz entre las salidas de un PIC o cualquier integrante de
las familias TTL o CMOS y dispositivos que necesiten una corriente ms elevada para
funcionar.
Todas sus salidas son a colector abierto y se dispone de un diodo para evitar las corrientes
inversas. El modelo ULN2803 esta especialmente diseado para ser compatible con entradas
TTL, mientras que el modelo ULN2804 est optimizado para voltajes entre 6 y 15 volt,
tpicos de la familia CMOS.
En la construccin del panel hemos utilizado este integrado en el panel, como Mdulo Reles
x 8 que forma parte del PIC16F628A.
16
LOS TRANSISTORES:
Hemos utilizado los TIP para propsitos de amplificacin de seal
17
V.-
CONCLUSIONES
Se ha visto la construccin del panel en su forma esquemtica y los resultados en
su forma prctica vistos en su exposicin
VI.-
BIBLIGRAFIA
www.foroselectronica.com
www.electronicafacil.com
18