Skip to content

Instantly share code, notes, and snippets.

@c1b3rh4ck
Last active December 14, 2015 00:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save c1b3rh4ck/4997157 to your computer and use it in GitHub Desktop.
Save c1b3rh4ck/4997157 to your computer and use it in GitHub Desktop.
Plantilla de registros y direcciones de memoria del pic16f877
;Template para Pic16f877
;ToDo :
;Crear Rutinas de tiempo
;Crear Conversion A/D
;Crear Manejadores de memoria de datos indirecto y directo
;Jugar con registros para XOR en memoria
;Comprar un 18 con memoria flash para alcanzar a jaime A.
;Crear nuevas rutinas para espacio de 96 bytes
;Resumen de FSR's y GPR
;--------------------------------------------------------------------------------
;Memoria de programa : FLASH, 8 K de instrucciones de 14 bits c/u.
; Memoria de datos : 368 bytes RAM, 256 bytes EEPROM.
; Pila (Stack) : 8 niveles (14 bits).
; Fuentes de interrupción : 13
; Instrucciones : 35
; Encapsulado : DIP de 40 pines.
; Frecuencia oscilador : 20 MHz (máxima)
; Temporizadores/Contadores: 1 de 8 bits (Timer 0); 1 de 16 bits (Timer 1); 1 de 8 bits (Timer 2) con pre y post escalador. Un perro guardián (WDT)
; Líneas de E/S : 6 del puerto A, 8 del puerto B, 8 del puerto C, 8 del puerto D y 3 del puerto E, además de 8 entradas análogas.
; Dos módulos de Captura, Comparación y PWM:
;- Captura: 16 bits. Resolución máx. = 12.5 nseg.
;- Comparación: 16 bits. Resolución máx. = 200 nseg.
;- PWM: Resolución máx. = 10 bits.
; Convertidor Análogo/Digital de 10 bits multicanal (8 canales de entrada).
; Puerto serial síncrono (SSP) con bus SPI (modo maestro) y bus I²C (maestro/esclavo).
; USART (Universal Synchronous Asynchronous Receiver Transmitter) con dirección de detección de 9 bits.
; Corriente máxima absorbida/suministrada (sink/source) por línea (pin): 25 mA
; Oscilador : Soporta 4 configuraciones diferentes: XT, RC, HS, LP.
; Tecnología de Fabricación: CMOS
; Voltaje de alimentación: 3.0 a 5.5 V DC
;################BANCO 0##############
;- TMR0: Registro del temporizador/contador de 8 bits.
;- PCL: Byte menos significativo del contador de programa (PC).
;- STATUS: Contiene banderas (bits) que indican el estado del procesador
; después de una operación aritmética/lógica.
;- FSR: Registro de direccionamiento indirecto.
;- PORTA, PORTB, PORTC, PORTD, PORTE: Registro de puertos de E/S de datos. Conectan con los pines físicos del micro.
;- PCLATH: Byte alto (más significativo) del contador de programa (PC).
;- INTCON: Registro de control de las interrupciones.
;- ADRESH: Parte alta del resultado de la conversión A/D.
;- ADCON0: Controla la operación del módulo de conversión A/D
;##################BANCO 1###############
;- OPTION: Registro de control de frecuencia del TMR0.
;- TRISA, TRISB, TRISC, TRISD. TRISE: Registros de configuración de la operación de los pines de los puertos.
;- ADRESL: Parte baja del resultado de la conversión A/D.
;- ADCON1: Controla la configuración de los pines de entrada análoga.
;##########################BANCO 2#######################
;- TMR0: Registro del temporizador/contador de 8 bits.
;- PCL: Byte menos significativo del contador de programa (PC).
;- FSR: Registro de direccionamiento indirecto.
;- EEDATA: Registro de datos de la memoria EEPROM.
;- EEADR: Registro de dirección de la memoria EEPROM.
;- PCLATH: Byte alto (más significativo) del contador de programa (PC).
;- INTCON: Registro de control de las interrupciones.
;#########BANCO 3##################
;- OPTION: Registro de control de frecuencia del TMR0.
;- EECON1: Control de lectura/escritura de la memoria EEPROM de datos.
;- EECON2: No es un registro físico.
;----------------------------------------------------------------------------------------
;Pic 16f877 cuenta con 5 puertos de la {A-E}
pa equ 05h
pb equ 06h
pc equ 07h
pd equ 08h
pe equ 09h
;Definicion de direcionamiento la mayoria de los puertos son bidireccionales
;e y d se utilizan para conversores a/d
ta equ 85h
tb equ 86h
tc equ 87h
td equ 88h
te equ 89h
;Definicion de bits del registro status
status equ 03h
c equ 0
dc equ 1
z equ 2
pd equ 3
T0 equ 4
rp0 equ 5
rp1 equ 6
irp equ 7
;Definicion de Registros temporales
;20h/7fh 96 bytes de memoria para proposito general...alrededor de 12 banco 0
;de A0h / 0EFh 80 bytes de proposito general banco 1
;de 120h/16fh 80 bytes de proposito general banco 2
temp equ 20h
;ToDO :
;addicionar los tiempos de un segundo,a tres segundos
;addicionar la conversion de AD
;Averiguar sobre la comunicacion.
; ************  Proteus Isis Configuration File
list p=16f877 ;it specify the class of pic.
;it is posible replace the inc files doing the proper asignation.see above.
;this values are used by the mpasm,asemp compilers
;when you're   enabling the enviroment values you can 
;use each one instruction inside the Pic,as you now you could 
;modify these options by next to parameters :
;_OPTION_CLASS_ONOROFF 
_CP_ALL                       EQU     H'0FCF'
_CP_HALF                     EQU     H'1FDF'
_CP_UPPER_256                 EQU     H'2FEF'
_CP_OFF                       EQU     H'3FFF'
_DEBUG_ON                 EQU     H'37FF'
_DEBUG_OFF                   EQU     H'3FFF'
_WRT_ENABLE_ON               EQU     H'3FFF'
_WRT_ENABLE_OFF               EQU     H'3DFF'
_CPD_ON                       EQU     H'3EFF'
_CPD_OFF                     EQU     H'3FFF'
_LVP_ON                       EQU     H'3FFF'
_LVP_OFF                     EQU     H'3F7F'
_BODEN_ON                     EQU     H'3FFF'
_BODEN_OFF                   EQU     H'3FBF'
_PWRTE_OFF                   EQU     H'3FFF'
_PWRTE_ON                     EQU     H'3FF7'
_WDT_ON                       EQU     H'3FFF'
_WDT_OFF                     EQU     H'3FFB'
_LP_OSC                       EQU     H'3FFC'
_XT_OSC                       EQU     H'3FFD'
_HS_OSC                       EQU     H'3FFE'
_RC_OSC                       EQU     H'3FFF'
__CONFIG _CP_OFF & _WDT_OFF & _XT_OSC & _PWRTE_ON
;xt oscilator,power on reset on,watchdog timer off,copy protection off
;#####Main############
org 0x000
goto start
@c1b3rh4ck
Copy link
Author

Creado para Curso de Digitales 2-Tecnologia Electrica
Si tienen ideas hfjimenez@utp.edu.co

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment