Thiết bị ngoại vi điện tử chính Giao diện với Vi điều khiển 8051

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Giao diện là một trong những khái niệm quan trọng trong vi điều khiển 8051 bởi vì vi điều khiển là một CPU có thể thực hiện một số thao tác trên dữ liệu và đưa ra kết quả đầu ra. Tuy nhiên để thực hiện thao tác chúng ta cần một thiết bị đầu vào để nhập dữ liệu và đến lượt thiết bị đầu ra hiển thị kết quả của thao tác. Ở đây chúng tôi đang sử dụng bàn phím và màn hình LCD làm thiết bị đầu vào và đầu ra cùng với bộ vi điều khiển.

Vi điều khiển 8051 Thiết bị ngoại vi

Vi điều khiển 8051 Thiết bị ngoại vi



Interfacing là quá trình kết nối các thiết bị với nhau để chúng có thể trao đổi thông tin và điều đó chứng tỏ việc viết chương trình sẽ dễ dàng hơn. Có nhiều loại thiết bị đầu vào và đầu ra khác nhau theo yêu cầu của chúng tôi như đèn LED, màn hình LCD, 7segment, bàn phím, động cơ và các thiết bị khác.


Dưới đây là một số mô-đun quan trọng được giao tiếp với vi điều khiển 8051.



1. Giao diện LED với Vi điều khiển:

Sự miêu tả:

Đèn LED được sử dụng phổ biến nhất trong nhiều ứng dụng để chỉ thị đầu ra. Họ tìm thấy một loạt các ứng dụng làm chỉ số trong quá trình thử nghiệm để kiểm tra tính hợp lệ của kết quả ở các giai đoạn khác nhau. Chúng rất rẻ và dễ dàng có sẵn với nhiều hình dạng, màu sắc và kích thước.

Điốt phát sáng

Điốt phát sáng

Nguyên tắc của hoạt động của đèn LED là rất dễ dàng. Một đèn LED đơn giản cũng phục vụ như một thiết bị hiển thị cơ bản, trạng thái Bật và TẮT thể hiện nghĩa là đầy đủ thông tin về một thiết bị. Các đèn LED phổ biến có sẵn có điện áp giảm 1,7v có nghĩa là khi chúng tôi áp dụng trên 1,7V, diode sẽ dẫn điện. Diode cần dòng điện 10mA để phát sáng với cường độ đầy đủ.


Mạch sau đây mô tả 'cách phát sáng đèn LED'.

Đèn LED có thể được giao tiếp với vi điều khiển ở cấu hình cực dương chung hoặc cực âm chung. Ở đây các đèn LED được kết nối trong cấu hình cực dương chung vì cấu hình cực âm chung tiêu thụ nhiều điện hơn.

Sơ đồ mạch

Giao diện LED với Vi điều khiển

Giao diện LED với Vi điều khiển

Mã nguồn:

#include
void main ()
{
int i không dấu
trong khi (1)
{
P0 = 0x00
cho (i = 0i<30000i++)
P0 = 0xff
cho (i = 0i<30000i++)
}
}

2. Mạch giao diện hiển thị 7 đoạn

Sự miêu tả:
Một màn hình bảy phân đoạn là màn hình điện tử cơ bản nhất. Nó bao gồm tám đèn LED được liên kết theo trình tự để hiển thị các chữ số từ 0 đến 9 khi các kết hợp đèn LED thích hợp được bật. Màn hình 7 đoạn sử dụng bảy đèn LED để hiển thị các chữ số từ 0 đến 9 và đèn LED thứ 8 được sử dụng cho dấu chấm. Bảy phân đoạn điển hình trông giống như trong hình dưới đây.

Hiển thị 7 phân đoạn

Hiển thị 7 phân đoạn

Màn hình 7 đoạn được sử dụng trong một số hệ thống để hiển thị thông tin dạng số. Chúng có thể hiển thị một chữ số tại một thời điểm. Do đó số lượng phân đoạn được sử dụng phụ thuộc vào số lượng chữ số để hiển thị. Ở đây, các chữ số từ 0 đến 9 được hiển thị liên tục với độ trễ thời gian xác định trước.

Màn hình 7 đoạn có sẵn trong hai cấu hình là cực dương chung và cực âm chung. Ở đây cấu hình cực dương chung được sử dụng vì dòng điện đầu ra của bộ vi điều khiển không đủ để điều khiển các đèn LED. Màn hình 7 đoạn hoạt động trên logic âm, chúng ta phải cung cấp logic 0 cho chân tương ứng để làm cho đèn LED phát sáng.

Cấu hình hiển thị 7 phân đoạn

Cấu hình hiển thị 7 phân đoạn

Bảng sau đây cho thấy các giá trị hex được sử dụng để hiển thị các chữ số khác nhau.

Bảng hiển thị 7 phân đoạn

Bảng hiển thị 7 phân đoạn

Sơ đồ mạch

Giao diện hiển thị 7 phân đoạn

Giao diện hiển thị 7 phân đoạn

Mã nguồn:

#include
sbit a = P3 ^ 0
void main ()
{
char n không dấu [10] = {0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10}
int i, j không dấu
a = 1
trong khi (1)
{
cho (i = 0i<10i++)
{
P2 = n [i]
cho (j = 0j<60000j++)
}
}
}

3. Giao diện LCD với Vi điều khiển

LCD là viết tắt của màn hình tinh thể lỏng có thể hiển thị các ký tự trên mỗi dòng. Ở đây màn hình LCD 16 x 2 có thể hiển thị 16 ký tự trên mỗi dòng và có 2 dòng. Trong màn hình LCD này, mỗi ký tự được hiển thị trong ma trận 5 * 7 pixel.

Màn hình LCD

Màn hình LCD

LCD là thiết bị rất quan trọng được sử dụng cho hầu hết các thiết bị tự động như máy giặt, rô bốt tự động, hệ thống kiểm soát điện năng và các thiết bị khác. Điều này đạt được bằng cách hiển thị trạng thái của chúng trên các mô-đun hiển thị nhỏ như màn hình 7-bảy đoạn, đèn LED nhiều đoạn, v.v. Lý do là, màn hình LCD có giá cả hợp lý, dễ dàng lập trình và chúng không có giới hạn hiển thị các ký tự đặc biệt.

Nó bao gồm hai thanh ghi như thanh ghi lệnh / lệnh và thanh ghi dữ liệu.

Thanh ghi lệnh / lệnh lưu trữ các lệnh lệnh được cung cấp cho màn hình LCD. Lệnh là một lệnh được đưa cho màn hình LCD để thực hiện một tập hợp các tác vụ được xác định trước như khởi tạo, xóa màn hình, đặt vị trí con trỏ, điều khiển màn hình, v.v.

Thanh ghi dữ liệu lưu dữ liệu sẽ được hiển thị trên màn hình LCD. Dữ liệu là giá trị ASCII của các ký tự được hiển thị trên màn hình LCD.

Hoạt động của LCD được điều khiển bởi hai lệnh. Khi RS = 0, R / W = 1, nó đọc dữ liệu và khi RS = 1, R / W = 0, nó ghi (in) dữ liệu.

LCD sử dụng các mã lệnh sau:

Lệnh hiển thị LCD

Lệnh hiển thị LCD

Sơ đồ mạch:

Giao diện LCD với Vi điều khiển

Giao diện LCD với Vi điều khiển

Mã nguồn:

#include
#define kam P0

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

void lcd_initi ()
void lcd_dat (ký tự không dấu)
void lcd_cmd (ký tự không dấu)
void delay (unsigned int)
void display (unsigned char * s, unsigned char r)
void main ()
{

lcd_initi ()
lcd_cmd (0x80)
trì hoãn (100)
hiển thị (“EDGEFX TECHLNGS”, 15)
lcd_cmd (0xc0)
hiển thị (“KITS & SOLTIONS”, 15)
trong khi (1)
}

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

lcd_dat (s [w])
}
}

void lcd_initi ()
{
lcd_cmd (0x01)
trì hoãn (100)
lcd_cmd (0x38)
trì hoãn (100)
lcd_cmd (0x06)
trì hoãn (100)
lcd_cmd (0x0c)
trì hoãn (100)
}
void lcd_dat (unsigned char dat)
{
lược = cái đó
rs = 1
rw = 0

trong = 1
trì hoãn (100)
trong = 0
}
void lcd_cmd (không dấu char cmd)
{
đến = cmd
rs = 0
rw = 0

trong = 1
trì hoãn (100)
trong = 0
}
void delay (unsigned int n)
{

unsigned int a
cho (a = 0a}

4. Mạch giao diện động cơ bước

Các loại động cơ bước-1

Động cơ bước đơn cực

ĐẾN động cơ bước là một trong những động cơ được sử dụng phổ biến nhất để chuyển động góc chính xác. Ưu điểm của việc sử dụng động cơ bước là vị trí góc của động cơ có thể được điều khiển mà không cần bất kỳ cơ cấu phản hồi nào. Động cơ bước được sử dụng rộng rãi trong các ứng dụng công nghiệp và thương mại. Chúng cũng thường được sử dụng như trong các hệ thống truyền động như rô bốt, máy giặt, v.v.

Các loại động cơ bước-2

Động cơ bước lưỡng cực

Động cơ bước có thể là đơn cực hoặc lưỡng cực và ở đây chúng tôi đang sử dụng động cơ bước đơn cực. Động cơ bước đơn cực bao gồm sáu dây trong đó bốn dây được kết nối với cuộn dây của động cơ và hai là dây chung. Mỗi dây chung được kết nối với nguồn điện áp và các dây còn lại được kết nối với bộ vi điều khiển.

Sơ đồ mạch:

Mạch giao diện động cơ bước

Mạch giao diện động cơ bước

Mã nguồn:

#include
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3

void delay ()

void main ()
{

trong khi (1)
{

a = 0
b = 1
c = 1
d = 1
sự chậm trễ()
a = 1
b = 0
c = 1
d = 1
sự chậm trễ()
a = 1
b = 1
c = 0
d = 1
sự chậm trễ()
a = 1
b = 1
c = 1
d = 0

}
}

void delay ()
{

ký tự không dấu i, j, k
cho (i = 0i<6i++)
cho (j = 0j<255j++)
cho (k = 0k<255k++)

}

5. Giao diện bàn phím ma trận với 8051

Sự miêu tả:

Bàn phím ma trận

Bàn phím ma trận

Bàn phím là một thiết bị nhập liệu được sử dụng rộng rãi với nhiều ứng dụng như điện thoại, máy tính, ATM, khóa điện tử ... Bàn phím được sử dụng để lấy thông tin đầu vào từ người dùng để xử lý thêm. Đây là bàn phím ma trận 4 x 3 bao gồm các công tắc được sắp xếp theo hàng và cột là giao diện với bộ vi điều khiển . Màn hình LCD 16 x 2 cũng được giao diện để hiển thị đầu ra.

Khái niệm giao diện của bàn phím rất đơn giản. Mỗi số bàn phím được gán hai tham số duy nhất là hàng và cột (R, C). Do đó, mỗi khi nhấn một phím, số sẽ được nhận dạng bằng cách phát hiện số hàng và cột của bàn phím.

Sơ đồ bên trong bàn phím

Sơ đồ bên trong bàn phím

Ban đầu, tất cả các hàng được bộ điều khiển đặt thành không (‘0’) và các cột được quét để kiểm tra xem có phím nào được nhấn hay không. Trong trường hợp không có phím nào được nhấn, đầu ra của tất cả các cột sẽ ở mức cao (‘1’).

Sơ đồ mạch

Bàn phím ma trận giao tiếp với 8051

Bàn phím ma trận giao tiếp với 8051

Mã nguồn:

#include
#define kam P0
sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit at = 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 (ký tự không dấu)
void lcd_cmd (ký tự không dấu)
void delay (unsigned int)
void display (unsigned char * s, unsigned char r)

void main ()
{
lcd_initi ()
lcd_cmd (0x80)
trì hoãn (100)
hiển thị (“0987654321”, 10)
trong khi (1)
}

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

int w
cho (w = 0w{

lcd_dat (s [w])
}
}
void lcd_initi ()
{
lcd_cmd (0x01)
trì hoãn (100)
lcd_cmd (0x38)
trì hoãn (100)
lcd_cmd (0x06)
trì hoãn (100)
lcd_cmd (0x0c)
trì hoãn (100)
}

void lcd_dat (unsigned char dat)
{
lược = cái đó
rs = 1
rw = 0

trong = 1
trì hoãn (100)
trong = 0
}
void lcd_cmd (không dấu char cmd)
{
đến = cmd
rs = 0
rw = 0

trong = 1
trì hoãn (100)
trong = 0

}
void delay (unsigned int n)
{

unsigned int a
cho (a = 0a}
}

Chúng tôi hy vọng chúng tôi có thể cung cấp kiến ​​thức phong phú về các mạch giao diện cơ bản nhưng quan trọng của vi điều khiển 8051 . Đây là những mạch cơ bản nhất cần có trong bất kỳ ứng dụng hệ thống nhúng nào và chúng tôi hy vọng chúng tôi đã cung cấp cho bạn một bản sửa đổi tốt.

Chúng tôi hoan nghênh bạn có thêm thắc mắc hoặc phản hồi liên quan đến chủ đề này trong phần bình luận bên dưới.

Tín ảnh