要想实现LED闪烁,其实操作很简单,只需要循环让D1指示灯先亮一会后熄灭。这里就涉及一个延时问题,我们知道单片机执行每一条代码指令都是需要时间的,因此只需要编写一循环函数,让CPU不干其他事,专门在那循环运行即可实现延时功能。
延时函数如下:
void delay_10us(u16 ten_us)
{
while(ten_us--);
}
函数入口有一个形式参数ten_us,如果ten_us等于1,则while循环一次,调用该函数延时时间大约10us(这种使用循环来实现延时是不精确的)。
代码中的函数形参ten_us是u16类型,这不是C语言数据类型关键字,是我们重定义的数据类型,如下:
typedef unsigned int u16;//对系统默认数据类型进行重命名
typedef unsigned char u8;
下面看main函数代码,如下:
void main()
{
while(1)
{
LED1=0; //点亮
delay_10us(50000); //大约延时450ms
LED1=1; //熄灭
delay_10us(50000);
}
}
具体代码如下:
标签:10us,LED,函数,ten,数据类型,入门教程,51,us,延时 From: https://blog.csdn.net/2303_76725996/article/details/143781375