单片机简单程序

前言

本文章以B站江科大老师的视频而写,仅作为笔记,以便以后参考

单片机简单程序

1.点亮第一个LED灯

#include <REGX52.H>
void main()
{
	//P2 = 1111 1110(D1亮)
	//P2 = 0XFE;
	//P2 = 1110 1111(D5亮)
	//P2 = 0XEF;
	//P2 = 0111 1111(D8亮)
	//P2 = 0X7F;
	//P2 = 0000 0000(全亮)
	//P2 = 0X00;
	//P2 = 1111 1111(全灭)
	//P2 = 0XFF;
	while(1) {
		
	}
}

实现了某一个灯的点亮

注意:

在单片机中,1表示暗,0表示亮(与电路板连接方法有关系,具体没深入了解)

2.LED灯闪烁

#include <REGX52.H>
#include <INTRINS.H>

//延迟500毫秒
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流水灯

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

实现了LED灯依次闪烁

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 -= 1;
	}
	
}


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(500);
}

是第三个小项目的升级版,可以实现输入具体的延迟时长。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值