Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniería Eléctrica
Microcontroladores
Especialidad: Sistemas Eléctricos de Potencia
Materia: Microcontroladores
direccionamiento.
Ingeniería Eléctrica
clrf f 00 → (f) Z
clrw 00 → (W) Z
movf f,d (f) → (destino) Z
Materia: Microcontroladores
bcf f,b Pone a 1el bit ‘b’ del registro ‘f’ Ninguno
bsf f,b Pone a 2el bit ‘b’ del registro ‘f’ Ninguno
Instrucciones de SALTO
NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS
Instrucciones ESPECIALES
NEMÓNICO DESCRIPCIÓN FLAGS
AFECTADOS
clrwdt Borra Timer del Watchdog /TO - /PD
nop sleep No operación Ninguno
Entra en modo de bajo consumo /TO - /PD
texto.
Cada línea puede estructurarse en hasta cuatro campos o
columnas separados por uno o más espacios o tabulaciones
Materia: Microcontroladores
entre sí.
Ingeniería Eléctrica
ASCII.
TIPO SINTAXIS
Decimal D’<valor>’ d’<valor>’ .<valor>
Hexadecima H’<valor>’ h’<valor>’ 0x<valor>
l <valor>H <valor>h
Octal O’<valor>’ o’<valor>’
Binario B’<valor>’ b’<valor>’
ASCII A’<carácter>’ a’<carácter>’ ‘<carácter>’
Cadena “<cadena>”
LIST P=16F877
Ingeniería Eléctrica
Memoria de programa
Ingeniería Eléctrica
0000h RESET
0001h
0006h
0007h
•El PIC16F877 tiene una memoria de
0008h programa no volátil denominada ROM
Flash que admite unas 1000 grabaciones.
0009h
000Ah
000Bh
1FFEh
en palabras de 14 bits cada una.
1FFFh
•Todas las instrucciones ocupan una
posición de memoria de programa
•A la dirección 0 se accederá tras un
RESET y a la posición 4 tras una
interrupción cualquiera
Prof. Germán A. Rodríguez May
2.3 Programación de Puertos Digitales.
Organización de la Memoria
MEMORIA RAM DE DATOS
Especialidad: Sistemas Eléctricos de Potencia
RA0/AN0
RC0
RA1/AN1
RC1
RA2/AN2/Vref-
Puerto A
Materia: Microcontroladores
RC2
RA3/AN3/Vref+
RC3 Puerto C
RA4/TOCKI
Ingeniería Eléctrica
RC4
RA5/AN4 RC5
RC6/Tx
RC7/Rx
RD0
RD1
RD2
Puerto D
RD3
RB0/INT
RD4
RB1
RD5
RB2
RD6
RB3 Puerto B
RD7
RB4
RB5
RB6
RE0/RD/AN5
Puerto E RE1/WR/AN6
RB7
RE2/CS/AN7
Dato
Configura Dirección del Dato
PORTB Tri-State Register (TRISB)
TRISB7TRISB6TRISB5TRISB4TRISB3TRISB2TRISB1TRISB0
#include "p16f877a.inc"
__CONFIG _FOSC_XT & _WDTE_ON & _PWRTE_OFF & _BOREN_ON &
_LVP_OFF & _CPD_OFF & _WRT_OFF & _CP_OFF
LIST P = 16F877A ;Comando que indica el PIC usado
RADIX HEX ;Los valores se representaran en
;hexadecimal
ORG 0 ;Comando que indica al Ensamblador la
;dirección de la memoria donde se
;situara la siguiente instrucción.
;memoria de datos.
bcf STATUS,6 ;Pone a 0 el bit 6 del registro STATUS
;para direccionar la página 1 de la
Materia: Microcontroladores
;memoria de datos.
Ingeniería Eléctrica
#include "p16f877a.inc“
RADIX HEX
nop
nop
movf CONTA3,1 ; Se actualiza Z
Materia: Microcontroladores
Ingeniería Eléctrica
GOTO DELAY2
movf CONTA2,1 ; Se actualiza Z
btfss ESTADO,2 ; Explora Z y si vale 1 se produce "brinco"
goto DELAY1
movlw 0x5f ; W <-- 0x5f
subwf CONTA,W ; CONTA - W --> W
btfss ESTADO,2 ; Explora Z y si vale 1 se produce "brinco"