51单片机

这篇博客探讨了单片机中的延时算法,包括固定延时和可调延时函数,并展示了如何在LED闪烁和按键抖动消除中应用这些延时技术。通过具体的C语言代码示例,阐述了12MHz时钟频率下单片机的延时实现方法,强调了延时精度和抗干扰的重要性。
摘要由CSDN通过智能技术生成

电子计数:103=10 00=1k欧姆(即最后一个数就是几个零)

单片机的延时算法(好傻啊)

led闪烁:

#include <REGX52.H>

void Delay1s(float i);//每单位延时一秒左右;

void main(){
    P2=0;
	Delay1s(0.5);
	P2=0xff;
	Delay1s(1.0);
}
void Delay1s(float i)
{
	unsigned int j=100000*i;
	while(j>0)
		j--;
}

#include <REGX52.H>

void Dealy(unsigned xms){//ÑÓʱxÃ룬12Mhz;
	unsigned int i,j;
	while(xms--){
		i=2;
		j=239;
		do
		{
			while(--j);
		}while(--i);
	}
}

void main(){
while(1){
	P2_0=0;
  Dealy(1);
	P2_0=1;
	Dealy(1);
}
}

 按键通过延时消除抖动;

#include <REGX52.H>

void Dealy(unsigned xms){//延时x秒;12Mhz;
	unsigned int i,j;
	while(xms--){
		i=2;
		j=239;
		do
		{
			while(--j);
		}while(--i);
	}
}

void main(){
	unsigned char LEDNum=0;//51单片机用unsigned char定义缓存区,八位二进制;
while(1){
	//按键消除抖动
	while(1){
	if(P3_1==0)
	{
		Dealy(1);
		if(P3_1==0)
		{
			LEDNum++;
			P2=~LEDNum;
		}
	}
	}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值