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

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

8051单片机外围设备
8051单片机外围设备

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


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

1. LED接口到微控制器:

描述:

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

发光二极管
发光二极管

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


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

发光二极管可以以共同阳极或共同阴极配置接口到微控制器。在这里,led以共同的阳极结构连接,因为共同的阴极结构消耗更多的功率。

线路图

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

源代码:

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

2. 7段显示接口电路

描述:
七段显示器是最基本的电子显示器。它由8个led组成,它们按顺序相关联,这样当适当组合的led打开时,就可以显示从0到9的数字。7段显示器使用7个LED来显示0到9的数字,第8个LED用于点阵。典型的7段如下图所示。

7段显示
7段显示

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

7段显示器有两种配置,即普通阳极和普通阴极。这里使用的是普通阳极配置,因为微控制器的输出电流不足以驱动led。7段显示工作在负逻辑上,我们必须提供逻辑0到相应的引脚使LED发光。

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

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

7-Segment显示表
7-Segment显示表

线路图

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。
= 1;
而(1)
{
(我= 0;< 10;我+ +)
{
p2 = n [i];
for(j = 0; j <60000; j ++);
}
}
}

3.LCD接口到微控制器

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

液晶显示器
液晶显示器

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

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

命令/指令寄存器存储给液晶屏的命令指令。命令是给液晶显示器的指令,它执行一系列预定义的任务,如初始化、清除屏幕、设置光标姿势、控制显示等。

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

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

LCD使用以下命令代码:

LCD显示命令
LCD显示命令

线路图:

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

源代码:

#include
#定义锦P0

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

void lcd_initi();
void lcd_dat(无符号字符);
void lcd_cmd (unsigned char);
void delay(unsigned int);
void display(unsigned char *s, unsigned char r);
void main ()
{

lcd_initi();
lcd_cmd (0 x80);
延迟(100);
显示(“EDGEFX TECHLNGS”,15);
lcd_cmd (0 xc0);
显示(“包& SOLTIONS”,15);
(1);
}

void display(unsigned char *s, unsigned char r)
{
unsigned int w;
(w = 0; w < r。w + +)
{

lcd_dat (s [w]);
}
}

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

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

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

无符号整型;
(= 0; < n; + +);
}

4.步进电机接口电路

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

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

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

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

线路图:

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

源代码:

#include
SBIT A = P3 ^ 0;
sbit b = P3 ^ 1;
sbit c = P3 ^ 2;
sbit d = P3 ^ 3;

延迟();

void main ()
{

而(1)
{

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

}
}

空白延迟()
{

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

}

5.矩阵键盘接口到8051

描述:

矩阵键盘
矩阵键盘

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

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

键盘内部图
键盘内部图

最初,控制器将所有行设置为0(' 0 '),并扫描列以检查是否按了任何键。如果没有按下键,所有列的输出将是high(' 1 ')。

线路图

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

源代码:

#include
#定义锦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 (unsigned char);
void delay(unsigned int);
void display(unsigned char *s, unsigned char r);

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

void display(unsigned char *s, unsigned char r)
{

unsigned int w;
(w = 0; w < r。w + +)
{

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

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

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

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

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

无符号整型;
(= 0; < n; + +);
}
}

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

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

照片学分

2评论

  1. 访问网站 说:

    谢谢你的好评论。Ιt事实上ԝο指标提供一个娱乐账户іt。
    Ꮮoօk复杂铁道部е介绍fгom和蔼可亲的
    yοu !ԝay,ԝe怎么交流?

  2. 哈里 说:

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

添加评论