今天小编要和大家分享的是控制,MCU相关信息,接下来我将从C语言编程常用的4种延时方法解析,avr单片机对外部ram的扩展这几个方面来介绍。

控制,MCU相关技术文章C语言编程常用的4种延时方法解析avr单片机对外部ram的扩展

控制,MCU相关技术文章C语言编程常用的4种延时方法解析

C 语言常用的延时方法,有如图4-2所示4种。

C语言编程常用的4种延时方法解析

图2-4 C 语言延时方法

图2-4是 C 语言编程常用的4种延时方法,其中两种非精确延时,两种精确一些的延时。for 语句和 while 语句都可以通过改变 i 的范围值来改变延时时间,但是 C 语言循环的执行时间都是不能通过程序看出来的。精确延时有两个方法,一个方法是用定时器来延时,这个方法我们后边课程要详细介绍,定时器是单片机的一个重点。另外一个就是用库函数nop();,一个 NOP 的时间是一个机器周期的时间,这个后边也要介绍。

非精确延时,只是在我们做一些比如小灯闪烁,流水灯等简单演示实验中使用,而实际项目开发过程中其实这种非精确延时用的很少。

好了,介绍完了,我们就要实战了。上节课的 LED 小灯闪烁的程序,我们用的延时方式是 for(i=0;i《30000;i++);大家如果把这里的 i 改成100,下载进入单片机,会发现小灯一直亮,而不是闪烁状态,现在就请大家都把这个程序改一下,改成100,然后下载观察一下现象再继续。..。..

观察完了,毫无疑问,实际现象和我提到的理论是相符合的,这是为什么呢?这里介绍一个常识。我们人的肉眼对闪烁的光线有一个最低分辨能力,通常情况下当闪烁的频率高于 50 Hz 时,我们看到的信号就是常亮的。即,延时的时间低于 20 ms 的时候,我们的肉眼是分辨不出来小灯是在闪烁的,可能最多看到的是小灯亮暗稍微变化了一下。要想清楚的看到小灯闪烁,延时的值必须大一点,大到什么程度呢,不同的亮度的灯不完全一样,大家可以自己做实验。

那么如何观察我们写的延时到底有多长时间呢?选择 Keil 菜单项 Project--》Options for Target ?Target1?。..,或点击在图2-17中已提到过的图标,进入工程选项,如图4-3所示。

C语言编程常用的4种延时方法解析