51单片机实现LED闪烁

LED的闪烁

延时函数

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

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

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

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

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

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值