顾剑平📒
一、关于定义
1.位操作与总线操作
2.宏定义
// ------------------------分 隔 符------------------------
二、关于人眼对闪烁的识别
1.LED灯的闪烁
Tips:最后一个语句不能删,删了就相当于一直亮了,灭灯没得延时的话,单片机运行速度是很快的,你是看不到有熄灭的。我们人的肉眼对闪烁的光线有一个最低分辨能力,通常情况下当闪烁的频率高于50Hz时,我们看到的信号就是常亮的。即,延时的时间低于20ms的时候,我们的肉眼是分辨不出来小灯是在闪烁的,可能最多看到的是小灯亮暗稍微变化了一下。要想清楚的看到小灯闪烁,延时的值必须大一点,大到什么程度呢,不同的亮度的灯不完全一样,大家可以自己做实验。
三、关于循环
while(1)等价于 for(;;)。这个for循环就是死循环了,就不停的执行(需要执行的语句)
在多重循环中,将最长的循环放在最内层,最短的循环放在最外层,以减少 CPU跨切循环层的次数。
我们C语言里边,除了表达式外,还有常数,习惯上,我们非0的常数都认为是真,只有0认为是假,所以我们程序中加了while(1),这个数字1,可以改成2,3,4......等等都可以,都是一个死循环,不停的执行循环体的语句,但是如果把这个数字改成0,那么就不会执行循环体的语句了。
四、关于调试debug
同学们会发现,有的位置可以设置断点,有的地方不可以设置断点,这是为什么呢?Keil软件本身具备优化我们程序的功能,如果大家想在所有的位置设置断点,可以把优化选项设置到0位置,就是程序不进行优化。如图所示。
我们重点是看看C语言代码的运行时间,在最左侧的register那个框内,有一个sec选项,这个选项就是单片机运行时间的统计选项。
作者QQ4577105