Ensamblador usando programación de segmentos
Retraso de 500 milisegundos:
MOV R7, # 0x0F
Bucle 3: MOV R6, #0xCA
Bucle 2: MOV R5, #0xA2
bucle1: DJNZ R5, bucle1
DJNZ R6, segundo bucle
DJNZ R7, bucle 3
Remojado en agua para suavizarlo
Tiempo total de retardo = bucle de tres capas + llamada de subrutina 2us + retorno de subrutina 2us = 499996+4 = 500000us =500ms.
Este programa de retardo es más preciso, puedes utilizar un osciloscopio para verlo.
Organización 0000H
AJMP MIAN
ORG 0100H
Mian:
Siguiente: CPL P3.0
Retraso de llamada 500 milisegundos
El siguiente es SJMP
Puedes compilar este programa directamente, descargarlo al microcontrolador y ejecutarlo.
Pero le sugiero que no utilice este método, porque consume demasiado tiempo del sistema y es ineficiente. Puede hacerlo con regularidad, lo que no sólo es muy preciso sino que también requiere mucho tiempo. El sistema también puede manejar muchas otras cosas.