单片机延时时间计算。c语言,晶振频率是12MHZ

如题所述

第1个回答  2018-06-08
对for
循环的
编译,不同编译器的编译结果不尽
相同;对不同
单片机系列,编译结果也不尽相同。

标准51单片机,KEIL
为例:(已知12MHz,12T时钟模式,一个机械周期
t
则为
1us)
一条
赋值语句(count=1),2个机械周期
t;一条判断(C>0)4t;一条自减(C--)
1t;一条空语句
(nop)1t(不是空函数,是
空语句);
第一个
for
循环:
①执行
赋初值
2t,②判断
4t,③执行空语句
1t,④执行自减
1t,⑤执行判断
4t,结束。
共计
12
个机械周期,12us;
第二个for
循环:
①执行一次
赋值
2t;
②执行
30次
判断,4t×30=120t;
③执行
30次
空语句,30t;
④执行
30次
自减,30t;
⑤又执行
1次判断
4t,结束。
共计
186
机械周期
186us。
相似回答