1.2 控制LED闪烁

思路大体上跟上次一样没有啥本质上的区别

所以只需要控制一个灯亮灭亮灭即可

不过单片机的指令周期较短,灯闪烁通过人眼观察不到

所以延时函数在这里就很重要

话不多说,直接在stc-isp 上生成一个 500ms的代码(选的时候注意观察自己的芯片,晶振频率)

 void Delay500ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 4;
	j = 129;
	k = 119;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

 只需要在我们的程序上面添加一个延时函数即可

稍微注意一下:函数里面有个Nop 指令,需要添加头文件 #include <INTRINS.H>

下面我们直接看程序就可以了

#include <REGX51.H>
#include <INTRINS.H>

void Delay500ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 4;
	j = 129;
	k = 119;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}


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


}

喜欢的小伙伴的可以试一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值