单片机(LED闪烁)

一、C语言常用的预处理命令

#typedef的使用:

typedef unsigned char u8;

typedef unsigned int u16;

重新定义常用的关键词,可以增强程序的可移植性,不同的编译软件C语言数据类型的关键词的位宽不同

二、while()循环函数

while(i<10)
{
   i=i+1;
}

三、delay()延时函数

void delay(u16 i)
{
   while(i--);
}

(1)让CPU循环执行延时函数体,以达到延时效果。

(2)当i=1时,延时大约为10us,时间不准确,想要延长准确时间,可以使用单片机中的定时器或者单片机小精灵生成精确代码

四、程序代码:

#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit led=P2^0;	//D1
void delay(u16 i)
{
	  while(i--);//只要i不为0,就会一直执行i--
}
void main()
{
	while(1)
	{
		led=0;//此时为点亮状态
		delay(50000);//不能超过65535,u16为无符号整型,范围是0-65535	
		led=1;
		delay(50000);

	}
}

仿真测试延时时间:

(1)设置晶振时间:

(2)跟踪调试测试运行一次delay(50000)花费的时间

计算出结果为0.450601us(秒),即450毫秒

feihu分享到:

          

You may also like...

Scroll Up