Documente Academic
Documente Profesional
Documente Cultură
;*******************************************************
;*******************************************************
LIST P=16F877A
w equ 00h
CBLOCK 0X20
ENDC
;Configuraciones iniciales
goto Comienzo
org 05h
Comienzo
bsf Estado,5
clrf Trisb
bcf Estado,5
Encender
movlw b'00111111' ;0
movwf Portb
call Retardo_200ms
call Retardo_200ms
call Retardo_100ms
movlw b'00000110' ;1
movwf Portb
call Retardo_200ms
call Retardo_200ms
call Retardo_100ms
movlw b'01011011' ;2
movwf Portb
call Retardo_200ms
call Retardo_200ms
call Retardo_100ms
movlw b'01001111' ;3
movwf Portb
call Retardo_200ms
call Retardo_200ms
call Retardo_100ms
movlw b'01100110' ;4
movwf Portb
call Retardo_200ms
call Retardo_200ms
call Retardo_100ms
movlw b'01101101' ;5
movwf Portb
call Retardo_200ms
call Retardo_200ms
call Retardo_100ms
movlw b'01111101' ;6
movwf Portb
call Retardo_200ms
call Retardo_200ms
call Retardo_100ms
movlw b'01000111' ;7
movwf Portb
call Retardo_200ms
call Retardo_200ms
call Retardo_100ms
movlw b'01111111' ;8
movwf Portb
call Retardo_200ms
call Retardo_200ms
call Retardo_100ms
movlw b'01101111' ;9
movwf Portb
call Retardo_200ms
call Retardo_200ms
call Retardo_100ms
goto Encender
INCLUDE<RETARDOS.INC>
END
RETARDOS
; ===================================================================
; ===================================================================
; Se han calculado para un sistema microcontrolador con un PIC trabajando con un cristal
; de cuarzo a 4 MHz. Como cada ciclo máquina son 4 ciclos de reloj, resulta que cada
; ciclo máquina tarda 4 x 1/4MHz = 1 µs.
; ZONA DE DATOS
*********************************************************************
CBLOCK
R_ContB
R_ContC
ENDC
; A continuación retardos pequeños teniendo en cuenta que para una frecuencia de 4 MHZ,
; "return" toma otros 2 ciclos máquina y cada instrucción "nop" tarda 1 ciclo máquina.
RetardoMicros
Rmicros_Bucle
; = (2 + 4M + 4KM) ciclos máquina. Para K=249 y M=1 supone 1002 ciclos máquina
Retardos_ms
R1ms_BucleExterno
movlw d'249' ; Aporta Mx1 ciclos máquina. Este es el valor de
"K".
R1ms_BucleInterno
; = (2 + 4M + 4MN + 4KM) ciclos máquina. Para K=249, M=100 y N=1 supone 100011
; ciclos máquina que a 4 MHz son 100011 µs = 100 ms = 0,1 s = 1 décima de segundo.
Retardo_1Decima
R1Decima_BucleExterno2
movlw d'100' ; Aporta Nx1 ciclos máquina. Este es el valor de
"M".
R1Decima_BucleExterno
R1Decima_BucleInterno
; ===================================================================
; ===================================================================