初识51单片机-LED&按键

一、 51单片机基础要点

  1. C51系列单片机是八位单片机,供电是TTL电平(5V为1,0V为0)

  2. CPU通过配置外设寄存器(高低电平)来控制硬件电路的电压变化,硬件电路执行功能

  3. 51单片机的IO口是一种弱上拉(高电平驱动能力弱)强下拉(低电平驱动能力强)的工作模式

  4. 寄存器顺序从高位到低位进行配置(例子:P2_7-P2_0)

二、LED

  1. LED中文名:发光二极管
  2. 要点:区分正负极,电流从正极流向负极,LED点亮

如下图所示,左正右负

Alt
Alt

2.1 点亮一个LED灯

  LED正极接到VCC,负极接到单片机的IO口,通过配置单片机的P2口来选择点亮LED灯

代码如下所示:
#include <REGX51.H>
void main()
{
	P2=0xFE; //1111 1110 P2_7~P2_0
	while(1)
	{
		
	}
}

2.2 LED闪烁

  选择控制LED亮灭状态交替循环扫描,即可实现LED闪烁功能

代码如下所示:
#include <REGX51.H>

/*
函数功能:程序延时500ms
*/
void Delay500ms()		//@11.0592MHz
{
	unsigned char i, j, k;

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

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

2.3 LED流水灯

  通过LED闪烁,循环扫描每个LED,实现流水灯

代码如下所示:
#include <REGX52.H>

/*
函数功能:程序延时500ms
*/
void Delay500ms()		//@11.0592MHz
{
	unsigned char i, j, k;
	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();
	}
}

三、按键

  按键本质上是一个电子开关,当按键按下的时候,电路导通,松手,电路断开;

注意点:按键在按下和松手的过程中,金属弹片会存在抖动的情况,即反应的延迟。
解决办法:延时消抖处理

Alt

如上图所示,在按下按键和松手时,按键会存在5-10ms的抖动过程,影响程序的进行。

按键原理图如下所示:

Alt

3.1 按键控制LED亮灭

  通过循环扫描按键状态,进行LED灯的电平翻转,实现按键点亮LED

#include <REGX52.H>
/*
函数功能:程序延时x ms
参数:延时时间
*/
void Delay(unsigned int xms)
{
	while(xms)
	{
		unsigned char i, j;
		i = 2;
		j = 199;
		do
		{
			while (--j);
		} while (--i);
		xms --;
	}
} 


void main()
{
	while(1)
	{
		if (P3_1 == 0)		//判断是否按下按键
		{
			Delay(20);		//消抖
			while(P3_1 == 0)		//检测是否按键是否松手
			Delay(20);		//消抖
			P2_0 = ~P2_0; 		//电平翻转
		}
	}
}

四、总结

  初识51单片机部分,学习了单片机编程的基本流程,项目创建,.c程序新建,.hex文件的生成和烧录;了解了51系列单片机的相关知识,以及寄存器配置在51单片机中的重要地位;学习了LED和按键模块的相关知识和如何使用。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值