跳到主要内容

与8051的LED接口

发光二极管(LED)是许多应用中最常用的元件。它们由半导体材料制成。在本项目中,我将描述与8051微控制器接口的LED基础知识。

alt text

1. 与8051接口的原理

本电路的主要原理是将LED接口到8051系列微控制器。常用LED的工作电压为1.7V,电流为10mA,以便完全发光。这些电压和电流通过微控制器的输出引脚施加。

2. 电路图

alt text

注意: 建议在8051的PORT0所有引脚上连接1KΩ上拉电阻。该电路图未显示此连接。

3. 所需元件

  • AT89C51(8051微控制器)
  • 8个LED
  • 8个电阻 – 1KΩ
  • 晶振 – 11.0592MHz
  • 2个电容 – 33pF
  • 2个电阻 – 10KΩ
  • 1个电容 – 10μF
  • 1个按钮
  • 8051编程器
  • 5V电源

4. 电路设计

电路主要由AT89C51微控制器组成。AT89C51属于8051微控制器系列,是8位微控制器。该微控制器具有4KB可编程和可擦除只读存储器,以及128字节RAM,可编程和擦除次数最多为1000次。

它具有两个16位定时器/计数器,支持USART通信协议,共40个引脚。四个端口分别为P0、P1、P2和P3。P0端口没有内部上拉电阻,而其他端口有内部上拉电阻。

alt text

在本电路中,LED连接到P0端口。控制器通过外部晶振连接到18和19引脚,晶振两端通过33pF电容接地。

5. 如何控制LED

LED是半导体光源。常用LED的截止电压为1.7V,电流为10mA。当施加其所需电压和电流时,LED将以全强度发光。

LED类似于普通PN二极管,但它以光的形式发出能量。发光颜色取决于半导体材料的带隙。

alt text

因此,LED通过限流电阻连接到AT89C51微控制器。电阻值可通过以下公式计算:

R=V1.710mAR = \frac{V - 1.7}{10\text{mA}}

通常,微控制器输出最大电压为5V,因此电阻值计算为330Ω。该电阻可以连接到LED的阴极或阳极。

注意: 本文中连接LED的电阻为1KΩ。

6. 电路操作方法

  1. 首先,将代码烧录到微控制器中。
  2. 将LED连接到微控制器的Port0。
  3. 打开电路电源,观察LED发光。
  4. 关闭电路电源。

7. 算法

  1. 首先在代码中包含reg51.h头文件。
  2. 编写延时函数(使用for循环实现)。
  3. 启动主函数。
  4. 在while循环内编写端口引脚逻辑高低电平条件。
  5. 初始使端口高电平延时1000微秒,然后置低电平,再延时1000微秒。
  6. 使用for循环重复8次。
  7. 在另一个循环中,用LED表示前255个数的二进制等效值。
  8. 结束while循环及主函数。

8. 代码

#include<reg51.h>
#define led P0
unsigned char i=0;
void delay (int);

void delay (int d)
{
unsigned char i=0;
for(;d>0;d--)
{
for(i=250;i>0;i--);
for(i=248;i>0;i--);
}
}

void main()
{
while(1)//// led blink
{
led=0xff;
delay(1000);
led=0x00;
delay(1000);
++i;
if(i==7)
{
i=0;
break;
}
}
while(1)//// binary equivalent representation of 1byte data
{
led=i++;
if(i==256)
{
i=0;
break;
}
delay(500);
}

while(1);
}

9. 代码逻辑

程序前7秒执行LED闪烁函数,即所有LED以1秒间隔开关。随后程序跳转至用8个LED表示1字节数据的二进制形式,每500毫秒增加1,直到255,然后从头开始。

10. 电路应用

  • LED广泛用于七段显示器
  • 点阵显示器
  • 路灯
  • 指示灯
  • 交通信号灯
  • 应急灯
  • 电子设计项目

11. 总结

将LED与8051微控制器接口是一个基础实验,有助于初学者理解微控制器如何控制外部设备。通过将LED连接到AT89C51(8051系列变体)输出端口,可以观察数字信号如何控制LED的开关。本实验还涉及计算适当的电阻值,并使用二进制模式显示序列。