Aplicaciones de mControladores
Objetivos
q Programar una aplicacin que permita verificar el
funcionamiento del uC 16F873A
q Uso del MPLAB
q Uso del Programador
Aplicaciones de mControladores
q
q
q
q
q
Generar un proyecto
Grabar el programa
Implementar Circuito Bsico
Energizar la protoboard
Verificar Funcionamiento
Aplicaciones de mControladores
Circuito Bsico
20
28
9
21
10
8
19
Aplicaciones de mControladores
Circuito Bsico
20
28
9
21
XTAL -20MHz
10
8
19
Aplicaciones de mControladores
Circuito Bsico
20
28
9
22pF
21
XTAL -20MHz
10
22pF
19
Aplicaciones de mControladores
Circuito Bsico
20
28
9
22pF
21
XTAL -20MHz
10
22pF
19
Aplicaciones de mControladores
Circuito Bsico
5V
20
28
9
22pF
21
XTAL -20MHz
10
22pF
19
Aplicaciones de mControladores
Circuito Bsico
5V
5V
1K
Reset
20
28
9
22pF
21
XTAL -20MHz
10
22pF
19
Aplicaciones de mControladores
Circuito Bsico
5V
5V
1K
Reset
20
28
PORTB.7
21
PORTB.0
9
22pF
XTAL -20MHz
10
22pF
19
Aplicaciones de mControladores
Circuito Bsico
5V
5V
1K
Reset
20
28
PORTB.7
21
PORTB.0
9
22pF
XTAL -20MHz
10
22pF
19
Aplicaciones de mControladores
Programacin
q Gran Parte de la Programacin se basa en el manejo
de registros, por lo general de 8 bit.
q La memoria de programas es un arreglo de registros
q Los puertos de Entrada Salida se consideran como
registros
q Todos los subsistemas del uC se configuran
asignndole valores a los registros internos.
q Cada subsistema
q ADC
q PWM
q PORTX (X:A,B,C)
q Comunicaciones
q Etc
Aplicaciones de mControladores
uns16 dato;
dato.low8 corresponde a los 8 bit menos significativos
dato.high8 son los 8 bit ms significativos
Aplicaciones de mControladores
Test01.C
void main()
{
TRISB.7=0;
PORTB.7=1;
while(1)
{
if(PORTB.7==1)PORTB.7=0;
else PORTB.7=1;
}
}
Aplicaciones de mControladores
Circuito Bsico
5V
5V
1K
Reset
PORTB.7
20
28
LED
9
22pF
21
XTAL -20MHz
10
22pF
19
Aplicaciones de mControladores
Test02.C
void ret(uns16 r)
{
while(r>0)
{
r--;
}
}
void main()
{
TRISB.7=0;
PORTB.7=1;
while(1)
{
if(PORTB.7==1)PORTB.7=0;
else PORTB.7=1;
ret(5000);
}
}
Aplicaciones de mControladores
Test03.C
void ret(uns16 r)
{
while(r>0)
{
r--;
}
}
void main()
{
char dato;
TRISB=0x00;
dato=0xAA;
while(1)
{
PORTB=dato;
dato=!dato;
ret(5000);
}
}
Aplicaciones de mControladores
Circuito Bsico
5V
5V
1K
220W
20
1
Reset
LED
28
27
26
16F873A
9
22pF
XTAL 20MHz
22pF
25
24
23
10
22
8
19
21
Aplicaciones de mControladores