51单片机入门教程——(1)LED灯

CPU通过配置寄存器来控制硬件电路实现功能

实例1 点亮一个LED

#include <REGX52.H>

void main()
{
	P2 = 0xFE; //1111 1110
		
	while(1)
	{
		
	}
}

实例2 LED闪烁

#include <REGX52.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();
	}
}

实例3 LED流水灯

//延时函数通过STC-ISP生成
#include <REGX52.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;	//1111 1110
		Delay500ms();
		P2 = 0xFD;	//1111 1101
		Delay500ms();
		P2 = 0xFB;	//1111 1011
		Delay500ms();
		P2 = 0xF7;	//1111 0111
		Delay500ms();
		P2 = 0xEF;	//1110 1111
		Delay500ms();
		P2 = 0xDF;	//1101 1111
		Delay500ms();
		P2 = 0xBF;	//1011 1111
		Delay500ms();
		P2 = 0x7F;	//0111 1111
		Delay500ms();		
	}
}

实例4 LED流水灯Plus

//给定参数调节延时
#include <REGX52.H>

void Delay1ms(unsigned int xms)		//@11.0592MHz
{
	unsigned char i, j;
	while(xms)
	{
		i = 2;
		j = 199;
		do
		{
			while (--j);
		} while (--i);
		xms --;
	}
}

void main()
{
	while(1)
	{
		P2 = 0xFE;	//1111 1110
		Delay1ms(100);
		P2 = 0xFD;	//1111 1101
		Delay1ms(100);
		P2 = 0xFB;	//1111 1011
		Delay1ms(100);
		P2 = 0xF7;	//1111 0111
		Delay1ms(100);
		P2 = 0xEF;	//1110 1111
		Delay1ms(100);
		P2 = 0xDF;	//1101 1111
		Delay1ms(100);
		P2 = 0xBF;	//1011 1111
		Delay1ms(100);
		P2 = 0x7F;	//0111 1111
		Delay1ms(100);
	}
}

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>