MCU-51:初识单片机,从点亮一个灯开始

本文介绍了单片机的基本概念,强调其在微型计算机系统中的作用,并详细讲解了如何使用单片机点亮LED灯。首先阐述了LED的工作原理,然后通过两种不同的方法展示了如何通过编程控制P21口实现LED灯的点亮。这些基础知识对于学习更高级的微控制器如STM32和ARM至关重要。
摘要由CSDN通过智能技术生成

一、什么是单片机

单片机又称单片微控制器,把一整个计算机系统集成到一个芯片上,当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。一块芯片就成了一台计算机。体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
单片机属于一种集成式电路芯片。主要包含CPU、只读存储器ROM和随机存储器RAM、时钟电路、中断系统和定时/计数器及各种输入输出IO口构成,多样化数据采集与控制系统能够让单片机完成各项复杂的运算,无论是对运算符号进行控制,还是对系统下达运算指令都能通过单片机完成。

从最基础的51单片机入门学习,可以为我们后面学习STM32、ARM微控器等其微控制器的学习奠定知识基础。

单片机基本结构如下:
在这里插入图片描述

二、点亮一个LED灯

2.1 LED原理和知识

LED即发光二极管,是一种半导体固体发光器件。具有单向导通性,两极分别为P极和N极,也有说成是阳极和阴极,如图2中阳极接电源端,只需阴极给低电平LED就会发光。
在这里插入图片描述
VCC(电源)连接LED(D1-D8)的阳极,IO口P20-P27进电阻(RP9、RP10)一次链接LED(D1-D8)的阴极。电阻有限流保护LED的作用。
LED(发光二极管)只有在电流方向正确时才会被点亮;也就是说要让电流从“大头”进、“小头”出(阳极接正极,阴极接负极),才能成功点亮。
那么要如何实现呢?例如:我要点亮“D2”,只需要让P21口输出一个低电平(0)、VCC(电源)输出一个高电平(1),如此就实现了LED的点亮条件。

下面介绍两个方法,点亮LED灯

2.2 方法一

sbit是定义特殊功能的寄存器的位变量。此处用法为:sbit 变量名=地址值;例如:sbit LED=P2^0 ,
说明P2^0 是 变量LED的地址值,把地址赋给变量。

#include<reg52.h>    //51或者52都可以
 
sbit LED=P2^1;       //注意P21口的写法,用keil的话,sbit要用在函数声明之前,原因很简单,自己想吧
 
void main()
{
     while(1)        //死循环结构,让主程序一直运行
     {
      LED=0//使P21口输出低电平,以此点亮D2
     }
}

2.3 方法二

同样还是点亮第二个LED。如果P2口除了P21口都是高电平(1),只有P21低电平(0),是不是可以实现同样的功能呢?代码如下:

P2=0xFD;   //二进制1111 1101的16进制是0xFD,0x表示16进制

单片机的每组IO口的电平状态都储存在一个单独的8位寄存器中,1和0就对应IO口的高低电平。P2口对应的寄存器叫做“P2寄存器”,如果P2口除了P21口都是高电平(1),只有P21低电平(0),寄存器储存的值如下表:(注意IO口的顺序!)
在这里插入图片描述
也就是1111 1101,换算成16进制就是0xFD,0x表示16进制。
如直接1111 1101的话,会被识别成十进制,所以用16进制。

#include <reg52.h>
 
void main()
{
	while(1)
	{
		P2=0xFD; 
	}
}

将以上代码烧写进单片机,恭喜你,点灯成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello xiǎo lěi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值