Red de conocimientos turísticos - Conocimientos sobre calendario chino - Una pequeña pregunta sobre el lenguaje C del microcontrolador
Una pequeña pregunta sobre el lenguaje C del microcontrolador
El oscilador de cristal que utilice debe ser de 12 M. De hecho, este programa en C está compilado en tres instrucciones MOV y tres instrucciones DNZ. La mayoría de las veces, el programa ejecuta repetidamente esta instrucción. El ciclo de la instrucción DNZ es de 2 us, por lo que el tiempo de este programa es aproximadamente 20 * 20 * 248 = 0,2 s.
Entonces, ¿por qué utilizar K=248 en su lugar? de 250? Porque después de un ciclo (el tercero por ciclo), que son los 248 DJNZ de la variable k, habrá una instrucción DJNZ para j y una instrucción para asignar un valor inicial a k. Estas dos instrucciones duran tres ciclos de reloj, que es 3us. Entonces k es 2us menos uno y j es 2 * 248+2 = 6544. I es 20*499+2+1=9983us, y el tiempo total es 9983 * 21 = 199661US = 0,199661s, lo cual es bastante preciso.