4.LED闪烁

1.C语言的预处理命令:
typedef的使用:
增强程序可移植性,因为在不同软件当中位宽不同
typedef unsigned char u8;
typedef unsigned int u16;
即用u8,u16代替unsigned char/int,8指8位即一个字节(unsigned char占用一个字节),16指16位即两个字节(unsigned int占用两个字节)
2.while循环函数

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

计算表达式的值,为真则执行循环体
3.延时函数:
利用占用CPU时间来达到延时

void delay(u16 i)//i=1大约延时10us
{
	while(i--);
}

程序:

#include<reg51.h>
typedef unsigned char u8;
typedef unsigned int u16;

sbit led=P2^0;//D1

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

void main()
{
	while(1)
	{
		 led=0;
		 delay(50000);//450ms
		 led=1;
		 delay(50000);//450ms
	}
}

利用仿真计算延时时间:
点击此处
在这里插入图片描述
修改为12.0,符合开发板实际使用的晶振
在这里插入图片描述
设置断点
在这里插入图片描述
点击开始仿真
在这里插入图片描述
reset计时时间
在这里插入图片描述
开始运行
在这里插入图片描述
第二个断点处:
在这里插入图片描述
第三个断点处:
在这里插入图片描述
相减得到延时时间约为450ms

猜你喜欢

转载自blog.csdn.net/qq_44628230/article/details/97550601