PIC单片机 C编程技巧(11)
发布时间:2021-06-06
发布时间:2021-06-06
或 for(x=0;x<100;x++){;}。 。 来写一个延时函数。 来写一个延时函数。 在这里要特别注意: 在这里要特别注意:X=100,并不表示只运行 100 个指令时间 , 就跳出循环。 就跳出循环。 可以看看编译后的汇编: 可以看看编译后的汇编: x=100;while(--x){;} 汇编后: 汇编后: movlw 100 bcf 3,5 bcf 3,6 movwf _delay l2 decfsz _delay goto l2 return 从代码可以看出总的指令是是 303 个,其公式是 8+3*(X-1)。 ( )。 注意其中循环周期是 X-1 是 99 个。这 类型的循环体, 时候, 里总结的是 x 为 char 类型的循环体,当 x 为 int 时候,其中 值的影响较大。 受 X 值的影响较大
。建议设计一个 char 类型的 循环体,然后再用一个循环体来调用它, 循环体,然后再用一个循环体来调用它,可以实现精确的长时 间的延时。 间的延时。下面给出一个能精确控制延时的 函数,此函数的汇编代码是最简洁、最能精确控制指令时间的: 函数,此函数的汇编代码是最简洁、最能精确控制指令时间的: void delay(char x,char y){ char z; do{ z=y;