View
81
Download
2
Category
Preview:
DESCRIPTION
PROGRAMACION DEL MICROCONTROLODADOR PIC16F877. Ing. Carlos Guerra Cordero. INTRODUCCION Los Microcontroladores son utilizados en muchas áreas de la actividad humana como: electrónica de consumo, telecomunicaciones, automotriz, domótica, etc. - PowerPoint PPT Presentation
Citation preview
PROGRAMACION DEL MICROCONTROLODADOR
PIC16F877
Ing. Carlos Guerra Cordero
INTRODUCCION
Los Microcontroladores son utilizados en muchas áreas de la actividad humana como: electrónica de consumo, telecomunicaciones, automotriz, domótica, etc.
El microprocesador esta diseñado para buscar, decodificar y ejecutar instrucciones sin detenerse. La diferencia entre un microcontrolador y un microprocesador, es que en este ultimo la memoria es externa requiriendo de un bus de datos y direcciones. Un microcontrolador es un dispositivo que integra el CPU, la memoria y los puertos de entrada y salida.
Objetivos• Determinar las características de los microcontroladores
• Determinar las instrucciones de la arquitectura de la gama media
• Programar instrucciones aplicados a sistemas digítales del uCo. 16F877
Características de los uCo. PIC16F877
Arquitectura es Harvard
Usa arquitectura en la Gama Baja, Media y Alta
Lenguaje de Maquina
Interpreta las instrucciones, que indican el código de operación y los operandos
Usa el software MPLAB para la programación
Usa el PROTEUS como herramienta de simulación
R A0 /AN 02
R A1 /AN 13
R A2 /AN 2 /VR E F -4
R A 4 /T 0 C K I6
R A 5 /AN 4 /S S7
R E 0 /AN 5 /R D8
R E 1 /AN 6 /W R9
R E 2 /AN 7 /C S1 0
O S C 1 /C L K IN1 3
O S C 2 /C L K O U T1 4
R C 1 /T 1 O S I/C C P 2 1 6
R C 2 /C C P 1 1 7
R C 3 /S C K /S C L 1 8
R D 0 /P S P 0 1 9
R D 1 /P S P 1 2 0
R B 7 /P G D 4 0R B 6 /P G C 3 9
R B 5 3 8R B 4 3 7
R B 3 /P G M 3 6R B 2 3 5R B 1 3 4
R B 0 /IN T 3 3
R D 7 /P S P 7 3 0R D 6 /P S P 6 2 9R D 5 /P S P 5 2 8R D 4 /P S P 4 2 7R D 3 /P S P 3 2 2R D 2 /P S P 2 2 1
R C 7 /R X /D T 2 6R C 6 /T X /C K 2 5R C 5 /S D O 2 4
R C 4 /S D I/S D A 2 3
R A3 /AN 3 /VR E F +5
R C 0 /T 1 O S O /T 1 C K I 1 5
M C L R /V p p /T H V1
U 1
P IC 1 6 F 8 7 7
ARQUITECTURA DE LA GAMA MEDIA
C = 2{13} x 14 Bit’s = 8192 Instrucciones = 8 KBytes
C = 2{7} x 8 Bit’s = 128 Bytes
Determinar las instrucciones de la arquitectura de la gama media
a) Instrucciones con Inmediato:
Aritmético:
ADDLW INMED ; (W ← INMED + W)
SUBLW INMED ; (W ← INMED – W)
Lógicos:
ANDLW INMED ; (W ← INMED AND W)
IORLW INMED ; (W ← INMED OR W)
XORLW INMED ; (W ← INMED XOR W)
Transferencia:
MOVLW INMED ; (W ← INMED)
RETLW INMED ; (W ← INMED)
b) Instrucción con Acceso a Memoria:
Aritmético:
ADDWF F, d ; (d ← {dato} + W)
SUBWF F, d ; (d ← {dato} – W)
Lógico:
ANDWF F, d ; (d ← {dato} AND W)
IORWF F, d ; (d ← {dato} OR W)
XORWF F, d ; (d ← {dato} XOR W)
---------------------------------------------------------------------------------------------------------------------------------
INCF F, d ; (d ← {dato} + 1)
DECF F, d ; (d ← {dato} – 1)
MOVF F, d ; (d ← {dato})
SWAPF F, d ; (Intercambiar)
COMF F, d ; (d ← {dato}’)
RLF F, d ; (Rotar Izquierda)
RRF F, d ; (Rotar Derecha)
----------------------------------------------------------------------------------------------------------------------------------
INCFSZ F, d ; (Incrementar y saltar cero)
DECFSZ F, d ; (Decrementar y saltar cero)
c) Instrucciones para manipular bit´s:
a) Escritura (Forzar)
BSF F, Bit ; (poner “1” en la dirección del bit)
BCF F, Bit ; (poner “0” en la dirección del bit)
b) Lectura (Testear)
BTFSS F, Bit ; (¿Bit = 1?)
BTFSC F, Bit ; (¿Bit = 0?)
------------------------------------------------------------------------------------------------------------
d) Instrucciones de salto:
GOTO Dirección
CALL Dirección
Otras Instrucciones:
CLRW ; Borrar Instrucción
CLRF ; Borrar Dirección
MOVWF F ; (Mover W → Dirección)
SLEEP ; Descansa
CLRWDT ; Perro Guardián
NOP ; No hace nada
SFR : Son registros propios del CPU que se encuentran en la memoria de datos, y son:
STATUS, INDF, FSR, INTCON, PLC y PCLATH
Hay parte de los registros del CPU que se encuentran en la memoria de datos
Configuran los puertos como entrada/salida:
* TRISX (A, B, C, D, E) ; Define la configuración de los puertos y determina el sentido (in/out)
TRSIB { 1 = Entrada y 0 = Salida }
* PORTX (A, B, C, D, E); Determina si entra “0” o “1” al puerto
Registro de Control
USO DEL MPLAB:
• MPLAB ←
• Proyect – New ←
• Configure – Select Device ←
• Project – Set Language Tool Locations ←
microchip MPASM Toolsuite
Executables
MPASM Assembler (mpasmwin.exe) OK
• Debugger ←
Select Tool – MPLAB SIM ←
• File – New ←
Despues de copiar el archivo fuente, procedemos a guardarlo en una carpeta
Simulación en Proteus 6 Professional
• C ←
Program Files – Labcenter Electronics – Proteus 6 Professional – BIN – ISIS - yes
; Activar Led
LIST P=16F877
INCLUDE <P16F877.INC>
ORG 0000H
CLRF PORTB ; 00000000
BSF STATUS,RP0 ; BNK-1
BCF TRISB,0 ; RBO COMO SALIDA
BCF STATUS,RP0 ; BNK 0
BSF PORTB,0 ; LED ON
GOTO $
END
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA4/T0CKI6
RA5/AN4/SS7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP216
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RB7/PGD40
RB6/PGC39
RB538
RB437
RB3/PGM36
RB235
RB134
RB0/INT33
RD7/PSP730
RD6/PSP629
RD5/PSP528
RD4/PSP427
RD3/PSP322
RD2/PSP221
RC7/RX/DT26
RC6/TX/CK25
RC5/SDO24
RC4/SDI/SDA23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI15
MCLR/Vpp/THV1
U1
PIC16F877
R1
0.3k
D1LED-GREEN
; Controlar el Led con un Boton
LIST P=16F877
INCLUDE <P16f877.INC>
ORG 0000H
BSF STATUS,RP0 ; BNK-1
BSF TRISC,0 ; RC0 COMO ENTRADA
BCF TRISB,0 ; RB0 COMO SALIDA
BCF STATUS,RP0 ; BNK-0;------------------------------------------------------------------------------------------------------------------------------------TESTEA
BTFSS PORTC,0 ; ¿RC0=1?
GOTO ACTIVARAPAGAR
BCF PORTB,0 ; (LED OFF)(RB0=0)
GOTO TESTEAACTIVAR
BSF PORTB,0 ; (LED ON)(RB0=1)
GOTO TESTEA
END
D2LED-BLUE
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA4/T0CKI6
RA5/AN4/SS7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP216
RC2/CCP117
RC3/SCK/SCL 18
RD0/PSP0 19
RD1/PSP1 20
RB7/PGD40
RB6/PGC39
RB5 38RB4
37RB3/PGM
36RB2
35RB1
34RB0/INT
33
RD7/PSP7 30RD6/PSP6
29RD5/PSP5
28RD4/PSP4
27RD3/PSP3
22RD2/PSP2
21
RC7/RX/DT26
RC6/TX/CK25
RC5/SDO24
RC4/SDI/SDA23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI15
MCLR/Vpp/THV1
U1
PIC16F877
R1
0.3k
R210k
LABORATORIO # 3
Hacer un programa y simularlo y que haga lo siguiente:
1.- Hay 8 Led’s conectados al puerto “B” y que se comporte como un contador
2.- Se desea que el Led se desplace a la izquierda uno a la vez y debe retroceder y así sucesivamente.
3.- Que en el Display salga los # de 0 al 9
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA4/T0CKI6
RA5/AN4/SS7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP2 16
RC2/CCP1 17
RC3/SCK/SCL 18
RD0/PSP0 19
RD1/PSP1 20
RB7/PGD 40RB6/PGC 39RB5 38RB4 37
RB3/PGM 36RB2 35RB1 34
RB0/INT 33
RD7/PSP7 30RD6/PSP6 29RD5/PSP5 28RD4/PSP4 27RD3/PSP3 22RD2/PSP2 21
RC7/RX/DT 26RC6/TX/CK 25RC5/SDO 24
RC4/SDI/SDA 23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI 15
MCLR/Vpp/THV1
U1
PIC16F877
R110k
D1LED-GREEN
D2LED-GREEN
D3LED-GREEN
D4LED-GREEN
D5LED-GREEN
D6LED-GREEN
D7LED-GREEN
D8LED-GREEN
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA4/T0CKI6
RA5/AN4/SS7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP2 16
RC2/CCP1 17
RC3/SCK/SCL 18
RD0/PSP0 19
RD1/PSP1 20
RB7/PGD 40RB6/PGC 39RB5 38RB4 37
RB3/PGM 36RB2 35RB1 34
RB0/INT 33
RD7/PSP7 30RD6/PSP6 29RD5/PSP5 28RD4/PSP4 27RD3/PSP3 22RD2/PSP2 21
RC7/RX/DT 26RC6/TX/CK 25RC5/SDO 24
RC4/SDI/SDA 23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI 15
MCLR/Vpp/THV1
U1
PIC16F877
D1LED-GREEN
D2LED-GREEN
D3LED-GREEN
D4LED-GREEN
D5LED-GREEN
D6LED-GREEN
D7LED-GREEN
D8LED-GREEN
Problema 1 Problema 2
Problema 3
FIN
Recommended