单片机延迟问题

来源:百度知道 编辑:UC知道 时间:2024/05/19 01:57:28
while(us--); //12M,一次6us,加进入退出14us(8M晶振,一次9us)

可以解释一下为什么是12M,一次6us?????????
谢谢!

建议你首先学习一下汇编,如果是汇编程序,一看就知道了!
US 是一个变量, while(us--); //12M,一次6us 这个看C语言转换的代码是如何的,也不一定是6us. 都常说C语言精确定时不准的!
12MHZ 的晶体 机器周期就是1us, 在C语言中 us 的类型不同时延时也不一样,如:us 为整型,和byte 型 时间是不同的,前者长些!

用C语言,不容易看出定时时间的长短,只能大概估计,如果转变为汇编程序的话才能准确的计算出延时时间

12M 晶振是单片机板定有的,下载程序时你也可以另设的

至于那条语气为什么用那么多时间就要看 变量US 的设定了

在单片机晶振电路中,晶振的频率决定了整机的工作速度。
常用的晶振频率范围是4MHz~24MHz,12MHz用的较多。

while(us--); 是个循环语句。
在晶振频率12MHz条件下,循环一遍,将耗时6us;
在晶振频率 8MHz条件下,循环一遍,将耗时9us。
此数值,可以通过keil软件测定。