마이크로 컨트롤러 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 인터페이싱

소스 코드:

#포함
void main ()
{
unsigned int i
동안 (1)
{
P0 = 0x00
for (i = 0i<30000i++)
P0 = 0xff
for (i = 0i<30000i++)
}
}

2. 7-Segment 디스플레이 인터페이스 회로

기술:
세븐 세그먼트 디스플레이 가장 기본적인 전자 디스플레이입니다. LED의 적절한 조합이 켜지면 0에서 9까지의 숫자를 표시하기 위해 순서대로 연결된 8 개의 LED로 구성됩니다. 7 세그먼트 디스플레이는 7 개의 LED를 사용하여 0에서 9까지의 숫자를 표시하고 8 번째 LED는 도트에 사용됩니다. 일반적인 7 개의 세그먼트는 아래 그림과 같이 보입니다.

7 세그먼트 디스플레이

7 세그먼트 디스플레이

7 세그먼트 디스플레이는 여러 시스템에서 숫자 정보를 표시하는 데 사용됩니다. 한 번에 한 자릿수를 표시 할 수 있습니다. 따라서 사용되는 세그먼트 수는 표시 할 자릿수에 따라 다릅니다. 여기서 0에서 9까지의 숫자는 사전 정의 된 시간 지연으로 계속 표시됩니다.

7 세그먼트 디스플레이는 공통 양극과 공통 음극의 두 가지 구성으로 제공됩니다. 여기에서는 마이크로 컨트롤러의 출력 전류가 LED를 구동하기에 충분하지 않기 때문에 공통 양극 구성이 사용됩니다. 7- 세그먼트 디스플레이는 부 논리로 작동하며, 우리는 LED 발광을 위해 해당 핀에 로직 0을 제공해야합니다.

7 세그먼트 디스플레이 구성

7 세그먼트 디스플레이 구성

다음 표는 다른 숫자를 표시하는 데 사용되는 16 진수 값을 보여줍니다.

7 세그먼트 디스플레이 테이블

7 세그먼트 디스플레이 테이블

회로도

7 세그먼트 디스플레이 인터페이스

7 세그먼트 디스플레이 인터페이스

소스 코드:

#포함
sbit a = P3 ^ 0
void main ()
{
부호없는 문자 n [10] = {0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10}
unsigned int i, j
a = 1
동안 (1)
{
for (i = 0i<10i++)
{
P2 = n [i]
for (j = 0j<60000j++)
}
}
}

3. 마이크로 컨트롤러에 대한 LCD 인터페이스

LCD는 한 줄에 문자를 표시 할 수있는 액정 디스플레이를 의미합니다. 여기에서 16x2 LCD 디스플레이는 한 줄에 16 개의 문자를 표시 할 수 있으며 두 줄이 있습니다. 이 LCD에서 각 문자는 5 * 7 픽셀 매트릭스로 표시됩니다.

LCD 디스플레이

LCD 디스플레이

LCD는 세탁기, 자율 주행 로봇, 로봇 등 거의 모든 자동화 기기에 사용되는 매우 중요한 기기입니다. 전력 제어 시스템 및 기타 장치. 이는 7-7 세그먼트 디스플레이, 멀티 세그먼트 LED 등과 같은 소형 디스플레이 모듈에 상태를 표시함으로써 달성됩니다. 그 이유는 LCD가 합리적인 가격에 쉽게 프로그래밍 할 수 있으며 특수 문자 표시에 제한이 없기 때문입니다.

명령 / 명령 레지스터와 데이터 레지스터 등 두 개의 레지스터로 구성됩니다.

명령 / 명령 레지스터는 LCD에 주어진 명령 명령을 저장합니다. 명령은 초기화, 화면 지우기, 커서 포즈 설정, 디스플레이 제어 등과 같은 사전 정의 된 작업을 수행하는 LCD에 제공되는 명령입니다.

데이터 레지스터는 LCD에 표시 할 데이터를 저장합니다. 데이터는 LCD에 표시되는 문자의 ASCII 값입니다.

LCD의 작동은 두 가지 명령으로 제어됩니다. RS = 0, R / W = 1이면 데이터를 읽고, RS = 1, R / W = 0이면 데이터를 기록 (인쇄)합니다.

LCD는 다음 명령 코드를 사용합니다.

LCD 디스플레이 명령

LCD 디스플레이 명령

회로도 :

마이크로 컨트롤러에 대한 LCD 인터페이스

마이크로 컨트롤러에 대한 LCD 인터페이스

소스 코드:

#포함
# 캠 P0 정의

sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit = P2 ^ 2

무효 lcd_initi ()
void lcd_dat (unsigned char)
void lcd_cmd (부호없는 문자)
무효 지연 (unsigned int)
void display (unsigned char * s, unsigned char r)
void main ()
{

lcd_initi ()
lcd_cmd (0x80)
지연 (100)
디스플레이 ( 'EDGEFX TECHLNGS', 15)
lcd_cmd (0xc0)
display (“KITS & SOLTIONS”, 15)
동안 (1)
}

void display (unsigned char * s, unsigned char r)
{
unsigned int w
for (w = 0w{

lcd_dat (s [w])
}
}

무효 lcd_initi ()
{
lcd_cmd (0x01)
지연 (100)
lcd_cmd (0x38)
지연 (100)
lcd_cmd (0x06)
지연 (100)
lcd_cmd (0x0c)
지연 (100)
}
void lcd_dat (서명되지 않은 char dat)
{
빗 = 저것
rs = 1
rw = 0

in = 1
지연 (100)
에서 = 0
}
void lcd_cmd (unsigned char cmd)
{
온 = cmd
rs = 0
rw = 0

in = 1
지연 (100)
에서 = 0
}
무효 지연 (부호없는 정수 n)
{

unsigned int a
for (a = 0a}

4. 스테퍼 모터 인터페이스 회로

스테퍼 모터의 종류 -1

단극 스테퍼 모터

스테퍼 모터 정확한 각도 이동을 위해 가장 일반적으로 사용되는 모터 중 하나입니다. 스테퍼 모터 사용의 장점은 피드백 메커니즘없이 모터의 각도 위치를 제어 할 수 있다는 것입니다. 스테퍼 모터는 산업 및 상업용 응용 분야에서 널리 사용됩니다. 로봇, 세탁기 등과 같은 구동 시스템에서도 일반적으로 사용됩니다.

스테퍼 모터의 종류 -2

바이폴라 스테퍼 ​​모터

스테퍼 모터는 단극 또는 양극 일 수 있으며 여기서는 단극 스테퍼 모터를 사용합니다. 유니 폴라 스테퍼 ​​모터는 6 개의 와이어로 구성되며 그중 4 개는 모터의 코일에 연결되고 2 개는 공통 와이어입니다. 각 공통 와이어는 전압 소스에 연결되고 나머지 와이어는 마이크로 컨트롤러에 연결됩니다.

회로도 :

스테퍼 모터 인터페이스 회로

스테퍼 모터 인터페이스 회로

소스 코드:

#포함
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

}
}

무효 지연 ()
{

서명되지 않은 char i, j, k
for (i = 0i<6i++)
for (j = 0j<255j++)
for (k = 0k<255k++)

}

5. 8051과 인터페이스하는 매트릭스 키패드

기술:

매트릭스 키패드

매트릭스 키패드

키패드는 전화, 컴퓨터, ATM, 전자 잠금 장치 등과 같은 많은 응용 프로그램과 함께 널리 사용되는 입력 장치입니다. 키패드는 추가 처리를 위해 사용자로부터 입력을받는 데 사용됩니다. 여기에서 행과 열로 배열 된 스위치로 구성된 4 x 3 매트릭스 키패드는 마이크로 컨트롤러에 인터페이스 . 출력을 표시하기 위해 16 x 2 LCD도 인터페이스됩니다.

키패드의 인터페이스 개념은 매우 간단합니다. 모든 키패드에는 행과 열 (R, C)이라는 두 개의 고유 한 매개 변수가 할당됩니다. 따라서 키를 누를 때마다 키패드의 행 및 열 번호를 감지하여 번호를 식별합니다.

키패드 내부 다이어그램

키패드 내부 다이어그램

처음에는 컨트롤러에 의해 모든 행이 0 (‘0’)으로 설정되고 키가 눌 렸는지 확인하기 위해 열이 스캔됩니다. 키를 누르지 않으면 모든 열의 출력이 높아집니다 (‘1’).

회로도

8051에 인터페이스하는 매트릭스 키패드

8051에 인터페이스하는 매트릭스 키패드

소스 코드:

#포함
# 캠 P0 정의
sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit = 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
무효 lcd_initi ()
void lcd_dat (unsigned char)
void lcd_cmd (부호없는 문자)
무효 지연 (unsigned int)
void display (unsigned char * s, unsigned char r)

void main ()
{
lcd_initi ()
lcd_cmd (0x80)
지연 (100)
디스플레이 ( '0987654321', 10)
동안 (1)
}

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

unsigned int w
for (w = 0w{

lcd_dat (s [w])
}
}
무효 lcd_initi ()
{
lcd_cmd (0x01)
지연 (100)
lcd_cmd (0x38)
지연 (100)
lcd_cmd (0x06)
지연 (100)
lcd_cmd (0x0c)
지연 (100)
}

void lcd_dat (서명되지 않은 char dat)
{
빗 = 저것
rs = 1
rw = 0

in = 1
지연 (100)
에서 = 0
}
void lcd_cmd (unsigned char cmd)
{
온 = cmd
rs = 0
rw = 0

in = 1
지연 (100)
에서 = 0

}
무효 지연 (부호없는 정수 n)
{

unsigned int a
for (a = 0a}
}

우리는 기본적이면서도 중요한 인터페이스 회로에 대한 충분한 지식을 제공 할 수 있었기를 바랍니다. 마이크로 컨트롤러 8051 . 이것은 모든 임베디드 시스템 애플리케이션에 필요한 가장 기본적인 회로이며 우리가 좋은 개정을 제공하기를 바랍니다.

이 주제와 관련된 추가 질문이나 피드백은 아래 의견 섹션에서 언급 할 수 있습니다.

사진 크레딧