51单片机第一篇章-点亮LED

排版能力不强,小白一个。学习理解能力一般,当做边学习边复盘。有错误请指正,交个朋友,交流51,也可交流就业趋势!

不论学习什么单片机,最简单的外设莫过于 IO 口的高低电平控制。

什么是LED?

 

 LED 即发光二极管-两个脚,长阳短阴。 在实验板中,LED的位置在这

 

 LED驱动后实现亮灯效果

 

那么LED 如何实现点亮呢?硬件原理?软件编程?

- 基本实现

只要在P2的引脚置低电平即可。 #include <REGX52.H> 头文件必须有 P2_2=0 或者 sbit LED P2^2; LED=0;

  • 硬件原理

GPIO

通过控制 51 单片机的 GPIO 使开发板上的 LED 灯点亮 GPIO 介绍

  1. 通用输入输出口的简称
  2. 通过软件实现输入输出
  3. 普中51实验板(即该篇章涉及的实验板用的单片机是STC89C52)共有40个引脚

 

那么是不是所有引脚都是 GPIO 呢?当然不是,51 单片机引脚可以分为这么几大类: (1)电源引脚:引脚图中的 VCC、 GND 都属于电源引脚。

(2)晶振引脚:引脚图中的 XTAL1、XTAL2 都属于晶振引脚。

(3)复位引脚:引脚图中的 RST/VPD 属于复位引脚,不做其他功能使用。

(4)下载引脚:51 单片机的串口功能引脚(TXD、RXD)可以作为下载引脚使用。

(5) GPIO 引脚:引脚图中带有 Px.x 等字样的均属于 GPIO 引脚。从引脚图可以看出,GPIO 占用了芯片大部分的引脚,共达 32 个,分为了 4 组,P0、P1、P2、P3,每组为 8 个 IO,而且在 P3 组中每个 IO 都具备额外功能,只要通过相应的寄存器设置即可配置对应的附加功能,同一时刻,每个引脚只能使用该引脚的一个功能。

查阅 STC89CXX 芯片数据手册获取信息,数据手册在我们资料“\6--芯片资料\开发板芯片数据手册”内,里面有一个 STC89CXX 数据手册.pdf。里面的第 23 页中就有介绍,我们截取了一部分内容如下图所示:

我的理解:GPIO 实现无需什么时序规则,给高低电平即可。

那为什么给电平它就实现响应呢

看看原理图

 

 此为P0 原理图。P1,P2与之基本一样。图在 P0 口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态)。可翻阅普中的51单片机开发查阅其原理图电路的原理。(涉及数电知识)

 

可能有的朋友会很懵、看不懂,没关系,这些都不会影响你编写单片机应用程序,大家记住以下几点即可:

①P0 口是漏极开路,要使其输出高电平,必须外接上拉电阻,通常选择4.7K~10K 阻值。

②P0、P1、P2 几乎都用作普通 I/O 口使用,既可作为输入,又可作为输出。

③P3 口既可用作普通 I/O 口,又可作为第二功能使用,比如串口、外部中

断、计数器等

通过实践:得出该实验板的GPIOP2^0~7为LED,P2^5为蜂鸣器。

LED 模块 硬件电路

 

为什么置0亮灯,1熄灭呢?

图中 LED 采用共阳接法,即所有LED 阳极管脚接电源 VCC,阴极管脚通过一个 470 欧的限流电阻接到 P2 口上。根 据前面 LED 的介绍我们知道,要让 LED 发光即对应的阴极管脚应该为低电平,若为高电平则熄灭。

  • 软件编程 让一个P2的引脚0点亮

#include <REGX52.H> typedef unsigned int u16; sbit LED1=P2^0; void main() { LED1=0;//点亮 while(1) {} } 即可实现 如果要实现8个的灯都亮 则 P2=0X00; 效果如下

 编译器截图

 

 LED全亮

新人入门嵌入式,可看b站普中或江科大51视频

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值