
La verdad es que eso lo hice de rápido y pero la idea es mostrar un while en ensamblador de una forma básica. Espero les pueda servir y bueno, ya luego les pongo el método principal.
__CONFIG _LVP_OFF & _CP_OFF & _PWRTE_ON & _XT_OSC & _BODEN_OFF & _WDT_OFF
list p=pic16f877
include <p16f877.inc>
;Variables
Cont equ 0x20
Hrs equ 0x21
Min equ 0x22
Seg equ 0x23
ContadorC equ 0x24
Temp0 equ 0x25
Temp1 equ 0x26
ContadorB equ 0x27
ContadorA equ 0x28
org 0
goto Principal
org 4
retfie
org 5
Un_Min
movlw d'60'
movwf Temp0
decfsz Temp0,1 ;Este es mi while. Temp0 == 0?
goto retraso_1_seg ;No...
return ;Si!
retraso_1_seg
movlw D'6'
movwf ContadorC
retraso_1_seg_bucle
call sub_delay_1_seg
decfsz ContadorC,1 ; Aquí otro; ContadorC == 0?
goto retraso_1_seg_bucle ;No...
return ;Si!!1
sub_delay_1_seg
movlw D'217'
movwf ContadorB
movlw D'111'
movwf ContadorA
sub_delay_1_seg_bucle
decfsz ContadorA,1
goto sub_delay_1_seg_bucle
decfsz ContadorB,1
goto sub_delay_1_seg_bucle
return
No hay comentarios:
Publicar un comentario