Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PIC 16F877A
ORGANIZACIÓN DE LA MEMORIA
DE DATOS RAM
De esta forma tenemos que el número de ciclos, y por lo tanto el tiempo que
tendremos de retardo está dado por la siguiente expresión: 1+1+(1)(N-1)+2+(2)(N-1) ,
ó 4+N-1+2N-2, o lo que es lo mismo 3N+1. Si queremos un retardo de 100uS entonces
tenemos que 3N+1*(0.2uS)=100uS, despejando tenemos
N=(100uS-0.2uS)/3*0.2uS=166, así que para tener un retardo de 100uS el valor de la
variable N debe ser 166.
RETARDOS POR SOFTWARE
Podemos darnos cuenta que ahora nuestra rutina original (desde CICLO2 hasta goto
CICLO) está afectada por la variable M, así que es como si M multiplicara a nuestro
retardo. Para saber el nuevo valor del retardo de nuevo sumamos todos los ciclos,
tomando en cuenta que M multiplica al retardo original de modo que la expresión ahora
queda de la siguiente manera: [3N+1]M+1+1+(1)(M-1)+2+(2)(M-1), o lo que es lo
mismo [3N+1]M+3M+1, de manera que tenemos dos retardos anidados. Para saber
cuanto sería el retardo total primero calculamos el retardo básico, si queremos que ese
retardo sea de 100uS entonces N=166, si ahora queremos que el retardo total sea
de 10mS entonces ocupamos completar 10000 uS, así que igualamos nuestra expresión
a ese número: [(3(0.2uS)*166)+1(0.2uS)]M+3(0.2uS)M+1(0.2uS)=10000 uS,
despejando tenemos M=(10000uS-0.2uS)/100.4uS, esto es aproximadamente igual
a 99, así que para un retardo de 10mS nuestra variable N =166 y M=99.
RETARDOS POR SOFTWARE
• Así podemos seguir anidando retardos. Para obtener un retardo de 1
segundo utilizaremos la siguiente rutina:
FIN