上一片文章讲到如何点亮第一颗LED,今天来尝试一下怎么让这颗LED灯闪烁。
程序设计思考
我们还没有学习单片机内的时钟,我们应该如何大致确认每次闪烁的时间呢?或者换个说法我们要如何控制他一会儿亮一会儿灭呢?
我这里可以提供一个思路,只要我们让程序一段时间内不去改变LED引脚的电平变化那就可以做到控制他的亮和灭。那我们是不是只要先改变高低电平然后让程序去跑其他东西,然后过段时间再来改变一下引脚的高低电平就可以了?
实际上这个做法确实是可行的,我们可以设计一个for或者是while的空循环,让他在里面绕上个千百万次的,这不就起到了拖延时间的作用了吗。但是这个方式是不精确的,因为每次运行循环的时间也都是不定的,所以我们只能大致实现LED灯一亮一灭的效果。
创建工程
首先我们创建一个项目工程
具体怎么创建工程可以看这篇文章:https://www.tylerhong.cn/点亮第一个led/tylerhong/
编写代码
引入头文件
导入我们需要使用的头文件库“reg52.h”我的开发版上P2^ 0引脚连接的是第一颗D1 LED灯,所以我要自定义一个变量名LED1到引脚P2^ 0上
编写main函数
编写time_delay函数
总体的代码实现
编译以及烧录
具体的烧录方式和编译方式可以参考这篇文章:https://www.tylerhong.cn/点亮第一个led/tylerhong/