LED的闪烁

延时函数

根据之前的学习,我们可以通过控制管脚口的电平来控制LED的亮灭,那么理论上来说,如下代码就可以LED的闪烁

while(1){
    P2 = 0xFE;
    P2 = 0xFF;
}

烧录程序我们会发现,LED灯并没有闪烁,而是常亮。为什么呢?

因为我们晶振的频率是12MHz,执行语句的时候延迟非常短,它亮灭的频率非常高,一秒内会执行十几兆,我们肉眼是看不出它的闪烁的。

我们可以通过STC-ISP这个软件来生成延时函数,使得执行语句时中间有长时间的停顿,帮助我们更好的观察闪烁。

image.png

复制代码,粘贴的主函数文件的开头。同时添加头文件**<INTRINS.H>**

这里解释一下添加头文件的原因:延时函数里面用到了一个__nop__()函数,这是一个空函数,没有什么实际意义,但是它定义在头文件INTRINS.H中,所以需要添加头文件。我们也可以删掉__nop__()语句

image.png

烧录程序,就可以观察到LED的闪烁。

————————————————

版权声明:本文为CSDN博主「孤心亦暖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/Destiny_Di/article/details/126728739