世界杯2018_世界杯北美区预选赛 - jmkxjj.com

delay函数(计算机器周期来判断延迟时间)

函数:

typedef unsigned int u16;

void delay(u16 i)

{

while(i--);

计算:

51单片机晶振频率:11.059MHZ(为了方便计算,这里约等于12MHZ)

时钟周期 =1 / 晶振频率 =1 / (12MHZ)

我们这里需要的是计算机器周期.

机器周期:完成一个基本操作所需要的时间

基本操作:取指令,存储器读,存储器写

机器周期 = 12 * 时钟周期 = 12 * 1 / (12MHZ) = 1us

所以开始计数,在程序定时器减1,需要1us

eg:

delay(5000)

1us * 5000 = 5ms

所以,调用delay(5000)即延时5ms

2025-10-01 20:15:43
友情链接