主要电子外围设备与微控制器8051接口

接口是技术中一个重要的概念单片机8051因为微控制器是一种CPU,可以对数据执行一些操作并提供输出。然而,为了执行操作,我们需要输入设备进入数据,并且返回输出设备显示操作结果。在这里,我们使用键盘和LCD显示器作为输入和输出设备以及微控制器。

微控制器8051外围设备
微控制器8051外围设备

接口是将设备连接在一起的过程,这样它们就可以交换信息,这证明编写程序更容易。根据我们的要求有不同类型的输入和输出设备,如led, lcd, 7段,键盘,电机和其他设备。


这里给出了与微控制器8051接口的一些重要模块。

1. LED接口到微控制器:

描述:

LED最常用于许多用于指示输出的应用中。他们在测试期间发现巨大的应用程序作为指标,以检查不同阶段结果的有效性。它们非常便宜,可轻松提供各种形状,颜色和尺寸。

发光二极管
发光二极管

原则LED的操作很容易。简单的LED也是作为基本显示设备的服务器,它开启和关闭状态表达意味着有关设备的完整信息。普通的可用LED具有1.7V电压降,表示当我们申请高于1.7V时,二极管导通。二极管需要10mA电流以充分强度发光。


以下电路描述了“如何发光LED”。

led可以以共同的阳极或共同的阴极配置接口到微控制器。这里led以共同阳极配置连接,因为共同阴极配置消耗更多的电力。

电路图

LED接口到微控制器
LED接口到微控制器

源代码:

#include
void main()
{
unsigned int i;
而(1)
{
p0 = 0x00;
for(i = 0; i <30000; i ++);
p0 = 0xff;
for(i = 0; i <30000; i ++);
}
}

2. 7段显示接口电路

描述:
七个段显示是最基本的电子显示器。它由八个LED组成,该LED以序列方式相关联,以便在接通所示的LED的适当组合时显示0到9的数字。7段显示器使用七个LED显示0到9的数字,第8个LED用于点。典型的七个段看起来如下图所示。

7段显示
7段显示

7段显示器用于许多系统以显示数字信息。他们可以一次显示一个数字。因此,所用的段数取决于要显示的数字数。这里,数字0至9以预​​定义的时间延迟连续地显示。

7段显示器可用两个配置,这些配置是常见的阳极和公共阴极。这里使用常见的阳极配置,因为微控制器的输出电流不足以驱动LED。7段显示器适用于负逻辑,我们必须为相应的引脚提供逻辑0,以便在LED光发光。

7段显示配置
7段显示配置

下表显示了用于显示不同数字的十六进制值。

7段显示表
7段显示表

电路图

7段显示接口
7段显示接口

源代码:

#include
SBIT A = P3 ^ 0;
void main()
{
unsigned char n [10] = {0x40,0xf9,0x24,0x30,0x19,0x12,0x02,0xf8,0xe00,0x10};
unsigned int i,j;
a = 1;
而(1)
{
for(i = 0; i <10; i ++)
{
p2 = n [i];
for(j = 0; j <60000; j ++);
}
}
}

3.LCD接口到微控制器

LCD代表液晶显示,可以显示每行的字符。这里16×2液晶显示屏可以每行显示16个字符,有2行。在此LCD中,每个字符都显示在5 * 7像素矩阵中。

液晶显示器
液晶显示器

LCD是非常重要的设备,用于几乎所有自动化设备,如洗衣机,自主机器人,功率控制系统和其他设备。这是通过在7七个段显示器,多段LED等上显示它​​们的小型显示模块上的状态来实现的。液晶显示器的原因是价格合理的,易于编程,它们没有显示特殊字符的限制。

它由两个寄存器组成,例如命令/指令寄存器和数据寄存器。

命令/指令寄存器存储给LCD的命令指令。命令是给LCD执行一组预定义任务的指令,如初始化、清除屏幕、设置光标位置、控制显示等。

数据寄存器存储要在LCD上显示的数据。数据是要显示在LCD上的字符的ASCII值。

LCD的操作由两个命令控制。当RS = 0,R / W = 1时,它读取数据,当RS = 1,R / W = 0时,它写入(打印)数据。

LCD使用以下命令代码:

LCD显示命令
LCD显示命令

电路图:

LCD接口到微控制器
LCD接口到微控制器

源代码:

#include
#define kam p0

sbit rs = P2 ^ 0;
SBIT RW = P2 ^ 1;
SBIT EN = P2 ^ 2;

void lcd_initi();
void lcd_dat(无符号字符);
void lcd_cmd(无符号字符);
Void delay(unsigned int);
void显示(未签名的char * s,unsigned char r);
void main()
{

lcd_initi();
lcd_cmd(0x80);
延迟(100);
显示(“EDGEFX TECHLNGS”,15);
lcd_cmd(0xc0);
显示(“套件和溶液”,15);
而(1);
}

void显示(无符号char * s,未签名的char r)
{
unsigned int w;
for(w = 0; w {

lcd_dat(s [w]);
}
}

void lcd_initi()
{
lcd_cmd(0x01);
延迟(100);
lcd_cmd(0x38);
延迟(100);
lcd_cmd (0 x06);
延迟(100);
lcd_cmd(0x0c);
延迟(100);
}
void lcd_dat(未签名的char dat)
{
kam = dat;
Rs = 1;
rw = 0;

en = 1;
延迟(100);
en = 0;
}
void lcd_cmd(无符号char cmd)
{
kam = cmd;
rs = 0;
rw = 0;

en = 1;
延迟(100);
en = 0;
}
空白延迟(无符号int n)
{

unsigned int a;
for(a = 0; a }

4.步进电机接口电路

步进电机的类型-1
单极步进电机

一种步进电机是用于精确角度运动的最常用电机之一。使用步进电机的优点是可以在没有任何反馈机构的情况下控制电机的角度位置。步进电机广泛应用于工业和商业领域。它们也常用于驱动系统,如机器人,洗衣机等。

步进电机的类型-2
双极步进电机

步进电机可以是单极或双极,在这里我们使用的是单极步进电机。单极步进电机由六根线组成,其中四根连接到电动机的线圈,两个是普通导线。每个公共线连接到电压源,并且剩余的线连接到微控制器。

电路图:

步进电机接口电路
步进电机接口电路

源代码:

#include
SBIT A = P3 ^ 0;
SBIT B = P3 ^ 1;
SBIT C = P3 ^ 2;
SBIT D = P3 ^ 3;

延迟();

void main()
{

而(1)
{

a = 0;
B = 1;
c = 1;
d = 1;
延迟();
a = 1;
b = 0;
c = 1;
d = 1;
延迟();
a = 1;
B = 1;
c = 0;
d = 1;
延迟();
a = 1;
B = 1;
c = 1;
d = 0;

}
}

void delay()
{

unsigned char i,j,k;
(我= 0;< 6;我+ +)
(j = 0; < 255; j + +)
for(k = 0; k <255; k ++);

}

5.矩阵键盘接口到8051

描述:

矩阵键盘
矩阵键盘

键盘是一种应用广泛的输入设备,在电话、计算机、ATM机、电子门锁等领域有着广泛的应用。一个小键盘用来从用户那里获取输入以便进一步处理。这里是一个4 × 3矩阵键盘,由一排排的开关组成界面界面到微控制器一个16 × 2 LCD也接口显示输出。

键盘的接口概念非常简单。每个数量的键盘都分配了两个是行和列(R,C)的唯一参数。因此,每次按下键时,数字都是通过检测键盘的行和列数来识别。

键盘内部图
键盘内部图

最初,控制器将所有行设置为零(' 0 '),并扫描列以检查是否有任何键被按下。在没有按下键的情况下,所有列的输出都是高的(' 1 ')。

电路图

矩阵键盘接口到8051
矩阵键盘接口到8051

源代码:

#include
#define kam p0
SBIT RS = P2 ^ 0;
SBIT RW = P2 ^ 1;
SBIT EN = P2 ^ 2;
SBIT C1 = P1 ^ 4;
SBIT C2 = P1 ^ 5;
SBIT C3 = P1 ^ 6;
SBIT R1 = P1 ^ 0;
SBIT R2 = P1 ^ 1;
SBIT R3 = P1 ^ 2;
sbit r4 = P1 ^ 3;
void lcd_initi();
void lcd_dat(无符号字符);
void lcd_cmd(无符号字符);
Void delay(unsigned int);
void显示(未签名的char * s,unsigned char r);

void main()
{
lcd_initi();
lcd_cmd(0x80);
延迟(100);
显示(“0987654321”,10);
而(1);
}

void显示(无符号char * s,未签名的char r)
{

unsigned int w;
for(w = 0; w {

lcd_dat(s [w]);
}
}
void lcd_initi()
{
lcd_cmd(0x01);
延迟(100);
lcd_cmd(0x38);
延迟(100);
lcd_cmd (0 x06);
延迟(100);
lcd_cmd(0x0c);
延迟(100);
}

void lcd_dat(未签名的char dat)
{
kam = dat;
Rs = 1;
rw = 0;

en = 1;
延迟(100);
en = 0;
}
void lcd_cmd(无符号char cmd)
{
kam = cmd;
rs = 0;
rw = 0;

en = 1;
延迟(100);
en = 0;

}
空白延迟(无符号int n)
{

unsigned int a;
for(a = 0; a }
}

我们希望我们能够提供有关基本但重要的接口电路的充分知识单片机8051。这些是任何嵌入式系统应用所需的基本电路,我们希望我们为您提供了一个很好的修订。

欢迎在下面的评论部分提出与此主题相关的进一步查询或反馈。

照片学分

2评论

  1. 访问网站 说:

    谢谢你的精彩报道。Ιt实际上ԝ作为一个娱乐帐号іt。
    Ꮮoօk复杂到morе介绍愉快的fгom
    你!通过ԝay,如何沟通?

  2. 哈里 说:

    先生,我想把基于GPS的项目实施到接收纬度和经度值,所以请给我发给我的代码。

添加评论