1. Trang chủ
  2. » Luận Văn - Báo Cáo

mạch điều khiển ma trận phím hiển thị lên lcd

14 2K 81

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 1,14 MB

Nội dung

Chính vì những lý do trên nhóm chúng em tiến hành thi công một mạch ứng dụng vi điều khiển: MẠCH ĐIỀU KHIỂN MA TRẬN PHÍM HIỂN THỊ LÊN LCD I./SƠ ĐỒ KHỐI 1.. Nhiệm vụ của khối bàn phím l

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC LẠC HỒNG



KHOA ĐIỆN – ĐIỆN TỬ

BÁO CÁO 60%

MÔN

THÍ NGHIỆM VI ĐIỀU KHIỂN

ĐỀ TÀI:

SVTH : Nguyễn Công Liêm MSSV: 109000701

Lớp : 09DV111

BIÊN HÒA, Ngày 08 tháng 02 năm 2012

Trang 2

Vi điều khiển ra đời là một bước ngoặc lớn trong ngành điện tử, nó đưa ngành điện tử lên một tầm cao mới Ứng dụng của vi điều khiển hết sức phong phú trong công nghiệp cũng như trong dân dụng Nó tạo ra những thiết bị tiện lợi trong việc sử dụng điện

Vi điều khiển còn là một môn học thú vị, nó giúp cho sinh viên mở rộng được óc sáng tạo của bản thân khi thi công các mô hình tự học Chính vì những lý do trên nhóm chúng em tiến hành thi công một mạch ứng dụng vi điều khiển:

MẠCH ĐIỀU KHIỂN MA TRẬN PHÍM HIỂN THỊ LÊN LCD

I./SƠ ĐỒ KHỐI

1 Khối nguồn

Nguồn điện được sử dụng ở đây là nguồn 5VDC sử dụng 7805 để ổn định nguồn ra là 5V

2 Khối bàn phím:

Là một khối gồm 16 nút nhấn đơn được liên kết lại với nhau tạo thành một ma trận phím Nhiệm vụ của khối bàn phím là nhập dữ liệu vào khối điều khiển chính để xuất ra khối hiển thị

3 Khối hiển thị:

Khối hiển thị là một màn hình LCD 16x2 bao gồm 16 cột và 2 dòng Nhiệm vụ của khối hiển thị là đưa ra ở màn hình những thông số khối điều khiển chính đã nhận từ khối bàn phím

KHỐI NGUỒN

KHỐI ĐIỀU KHIỂN CHÍNH

KHỐI BÀN PHÍM

KHỐI HIỂN THỊ

Trang 3

4 Khối điều khiển chính:

Khối này sử dụng vi điều khiển AT89C51 có nhiệm vụ thu thập thông tin từ khối bàn phím sau đó xuất tín hiệu và kích cho LCD hoạt động và hiển thị các thông số ra khối hiển thị

II Các linh kiện sử dụng trong mạch.

1 IC AT89S52

Chức năng: Nhận dữ liệu từ bàn phím và từ người lập trình rồi xuất ra khối hiển thị

Sơ đồ chân:

IC CD4047 hoạt động ở mức điện áp 5V Chức năng của các chân như sau:

- P0.0 đến P0.7 là các chân của cổng 0

- P1.0 đến P1.7 là các chân của cổng 1

- P2.0 đến P2.7 là các chân của cổng 2

- P3.0 đến P3.7 là các chân của cổng 3

- RST: Chân vào Reset, tích cực ở mức logic cao trong khoảng 2 chu kỳ máy

- XTAL1: Chân vào mạch khuyếch đaị dao động

- XTAL2: Chân ra từ mạch khuyếch đaị dao động

- EA: Truy cập bộ nhớ ngoài

- /PSEN : Chân cho phép đọc bộ nhớ chương trình ngoài (ROM ngoài)

- ALE (/PROG): Chân tín hiệu cho phép chốt địa chỉ để truy cập bộ nhớ ngoài, khi On-chip xuất

ra byte thấp của địa chỉ Tín hiệu chốt được kích hoạt ở mức cao, tần số xung chốt = 1/6 tần số

Trang 4

dao động của bộ VĐK Nó có thể được dùng cho các bộ Timer ngoài hoặc cho mục đích tạo xung Clock Đây cũng là chân nhận xung vào để nạp

chương trình cho Flash (hoặc EEPROM) bên trong On-chip khi nó ở mức thấp

- /EA/Vpp: Cho phép On-chip truy cập bộ nhớ chương trình ngoài khi /EA=0, nếu

/EA=1 thì On-chip sẽ làm việc với bộ nhớ chương trình nội trú (trường hợp cần truy

cập vùng nhớ lớn hơn dung lượng bộ nhớ chương trình nội trú, thì bộ nhớ chương

trình ngoài cũng được sử dụng) Khi chân này được cấp nguồn điện áp 12V (Vpp) thì

On-chip đảm nhận chức năng nạp chương trình cho Flash bên trong nó

- Vcc: Cung cấp dương nguồn cho On-chip (+ 5V)

- GND: nối Mass

Hình dạng thực tế:

2 IC 7805:

Chức năng: Là Ic ổn định ngõ ra 5VDC cho mạch nguồn

Sơ đồ chân:

Trang 5

Hình dạng thực tế:

3.LCD 16x2:

Là một màn hình hiển thi gồm 16 cột và 2 hàng dùng để hiển thị các thông số do người dùng nhập vào

Sơ đồ chân:

Trang 6

Nguyên lý hoạt động của LCD:

- Chân VCC, V và VSS: Các chân VEECC, V: Cấp dưong nguồn5v và đất

tưong ứng thì V0 được dùng để điều khiển độ tưong phản của LCD - Chân chọn thanh

ghi RS (Register Select): Có hai thanh ghi trong LCD, chân RS(Register Select) được

dùng để chọn thanh ghi, như sau: Nếu RS = 0 thì thanh ghi mà lệnh được chọn để cho

phép người dùng gửi một lệnh chẳng hạn như xoá màn hình, đưa con tr ỏ về đầu dòng

v.v… Nếu RS = 1 thì thanh ghi dữ liệu được chọn cho phép người dùng gửi dữ liệu

cần hiển thị trên LCD

- Chân đọc/ ghi (R/W): Ðầu vào đọc/ ghi cho phép người dùng ghi thông tin lên

LCD khi R/W = 0 hoặc đọc thông tin từ nó khi R/W = 1

- Chân cho phép E (Enable): Chân cho phép E dược sử dụng bởi LCD để chốt dữ

liệu của nó Khi dữ liệu được cấp dến chân dữ liệu thì một xung mức cao xuống thấp

phải được áp đến chân này để LCD chốt dữ liệu trên các chân dữ liệu Xung này phải

rộng tối thiểu là 450ns

- Chân D0 - D7: Ðây là 8 chân dữ liệu 8 bít, được dùng dể gửi thông tin lên LCD

hoặc đọc nội dung của các thanh ghi trong LCD Ðể hiển thị các chữ cái và các con số,

chúng ta gửi các mã ASCII của các chữ cái từ A đến Z, a đến f và các con số từ 0 - 9

đến các chân này khi bật RS = 1

Cũng có các mã lệnh mà có thể được gửi đến LCD để xoá màn hình hoặc đưa con

trỏ về đầu dòng hoặc nhấp nháy con trỏ

- Chú ý:Chúng ta cũng sử dụng RS = 0 để kiểm tra bít cờ bận để xem LCD có sẵn

sàng nhận thông tin Cờ bận là bít D7 và có thể được đọc khi R/W = 1 và RS = 0 như

sau:

Nếu R/W = 1, RS = 0 khi D7 = 1 (cờ bận 1) thì LCD bận bởi các công việc bên

trong và

sẽ không nhận bất kỳ thông tin mới nào Khi D7 = 0 thì LCD sẵn sàng nhận

thông tin mới Lưu ý chúng ta nên kiểm tra cờ bận truớc khi ghi bất kỳ dữ liệu nào lên LCD

Hình dạng thực tế:

Trang 7

4 Ma trận phím:

Là một tổ hợp gồm 16 nút nhấn được kết nối với nhau dùng để nhập dữ liệu vào vi điều khiển

Sơ đồ chân:

Nguyên lí quét phím:

- Vì sao mạch phím đấu theo ma trận Nếu để đọc từ 16 nút bấm bình thường phải dùng 16 chân

vi điều khiển Nếu đấu theo dạng ma trận thì chỉ mất 8 chân ta cũng có thể đọc được 16 phím bấm

- Có 2 cách quét phím theo cột và theo hàng, tôi chọn cách quét theo cột, quét theo

hàng các bạn có thể làm tưong tự

- Bước 1 : Ta đưa chân P1.0 nối với cột 1 xuống 0V.Rồi ta kiểm tra giá trị logic của

các chân P1.4,P1.5,P1.6,P1.7.Nếu phím 1 được bấm thì hàng 1_ P1.4 sẽ có giá trị bằng

0

Nếu phím 2 được bấm thì hàng 2_ P1.5 sẽ có giá trị bằng 0 Nếu phím 3 được bấm thì

hàng 3_ P1.6 sẽ có giá trị bằng 0 Nếu phím 4 được bấm thì hàng 4_ P1.7 sẽ có giá trị

bằng 0 Ta căn cứ vào đó để xác định xem phím nào được bấm

- Bước 2 : Ta đưa chân P1.1 nối với cột 2 xuống 0V.Rồi ta kiểm tra giá trị logic của

các chân P1.4,P1.5,P1.6,P1.7.Nếu phím 5 được bấm thì hàng 1_ P1.4 sẽ có giá trị bằng

0

Nếu phím 6 được bấm thì hàng 2_ P1.5 sẽ có giá trị bằng 0 Nếu phím 7 được bấm thì

hàng 3_ P1.6 sẽ có giá trị bằng 0 Nếu phím 8 được bấm thì hàng 4_ P1.7 sẽ có giá trị

bằng 0 Ta căn cứ vào đó để xác định xem phím nào được bấm Tương tự ta thực hiện

cho các cột còn lại Ta sẽ dùng câu lệnh if để kiểm tra

Trang 8

IV./ SƠ ĐỒ NGUYÊN LÝ VÀ GIẢI THÍCH:

1 Sơ đồ nguyên lý:

V C C

S W 8

S W 7

S W 1

S W 1 1

1 0 0 R 1

C 2

S W 2

V C C

S W 6

R 2

8 K 2

C 3

1 0 u F

S W 1 5

S W 5

C 1

3 3 p F

S W 3

S W 1 4

S W 1 3

S W 4

S W 1 6

L C D _ T E X T

U 1

L C D

V R D D D D V

S W 9

V C C

R 1

1 0 K

U 2

A T 8 9 S 5 2

9

1 8

2 9

3 1

1 3 5 7

2 1

2 3

2 5

2 7

1 0

1 2

1 4

1 6

3 9

3 7

3 5

3 3

R S T

X T A L 2

P S E N

A L E / P R O G

E A / V P P

P 1 0 / T 2

P 1 1 / T 2 - E X

P 1 2

P 1 4

P 1 6

P 2 0 / A 8

P 2 2 / A 1 0

P 2 4 / A 1 2

P 2 6 / A 1 4

P 3 0 / R X D

P 3 1 / T X D

P 3 2 / I N T 0

P 3 4 / T 0

P 3 6 / W R

P 3 7 / R D

P 0 0 / A D 0

P 0 2 / A D 2

P 0 4 / A D 4

P 0 6 / A D 6

V C C

2 Giải thích:

Sau khi cấp nguồn LCD sẽ hoạt động và hiển thị lên những dữ liệu mà người cài đặt vào Dữ liệu được nhập vào bằng bàn phím từ ma trận phím và được xử lý thông qua chíp

AT89S52 Ma trận phím được nối vào PORT 2 của chân vi điều khiển Chân 18, 19 của chíp AT89S52 được nối với thạch anh tạo nên mạch dao động trên chíp với 2 tụ 33pF dùng để ổn định mạch dao động Chân 9 được nối với 1 nút nhấn tạo nên bộ phận reset cho mạch, khi nút Reset được nhấn thì sẽ trở về trạng thái ban đầu Tín hiệu được đưa vào chíp từ ma trận phím và được vi điều khiển xử lý thông qua đoạn chương trình mà ta nạp vào cho nó Đoạn chương trình như sau:

#include <reg52.h>

#include <stdio.h>

sbit RS_LCD = P3^5;

sbit RW_LCD = P3^6;

sbit E_LCD = P3^7;

unsigned int i;

Trang 9

// -void delay_short()

{

unsigned int i;

for(i=0;i<3;i++);

}

// -void delay(unsigned int ms)// delay 1ms

{

unsigned int x,y;

for(x=0;x<ms;x++)

{

}

}

}

// -void kt_ban()

{

unsigned char x;

P1 = 0xff;

RS_LCD = 0;

RW_LCD = 1;

do

{ E_LCD = 1;

delay_short();

E_LCD = 0;

x=P1;

x=x&0x80;

}

while(x!=0x80);

}

// -void ghi_lenh(unsigned char commant)

{

kt_ban();

delay(50);

P1 = commant;

RS_LCD = 0; // chon thanh ghi lenh

RW_LCD = 0; // write to LCD

E_LCD = 1;

delay_short();

E_LCD = 0;

Trang 10

// -void ghi_kytu(unsigned char kytu)

{

kt_ban();

delay(30);

P1 = kytu;

RS_LCD = 1;

RW_LCD = 0;

E_LCD =1;

delay_short();

E_LCD = 0;

}

void ghi_chuoi(char *str)

{

while(*str)

{ ghi_kytu(*str);

str++;

}

}

// -*/

void setting()

{

ghi_lenh(0x38); // hai dong va ma tran 5x7

ghi_lenh(0x01); //Xoa man hinh

ghi_lenh(0x0f); //Co dich hien thi

ghi_lenh(0x0c); //Bat hien thi ,tat con tro

}

// -void hienthi()

{

if(P2==0xee)

{

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 1");

}

if(P2==0xde)

{

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 2");

}

Trang 11

if(P2==0xbe)

{

ghi_lenh(0x01);

ghi_chuoi("Phim so 3");

}

if(P2==0x7e)

{

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 4");

}

if(P2==0xed)

{

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 5");

}

if(P2==0xdd)

{

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 6");

}

if(P2==0xbd)

{

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 7");

}

if(P2==0x7d)

{

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 8");

}

if(P2==0xeb)

Trang 12

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 9");

}

if(P2==0xdb)

{

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 10");

}

if(P2==0xbb)

{

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 11");

}

if(P2==0x7b)

{

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 12");

}

if(P2==0xe7)

{

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 13");

}

if(P2==0xd7)

{

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 14");

}

if(P2==0xb7)

{

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 15");

Trang 13

}

if(P2==0x77)

{

ghi_lenh(0x01);

ghi_lenh(0x80+3);

ghi_chuoi("Phim so 16");

}

}

// -

void quetphim(void)

{

int n[4] = {0xfe,0xfd,0xfb,0xf7};

for (i=0; i<=3;++i)

P2 = n[i];

hienthi();

}

}

void main()

{

setting();

ghi_lenh(0x01);

ghi_lenh(0x80);

ghi_chuoi(" Bao cao ");

ghi_lenh(0xc0);

ghi_chuoi(" Vi Dieu Khien ");

delay(300);

ghi_lenh(0x01);

ghi_lenh(0x80);

ghi_chuoi("Moi chon phim");

while(1)

quetphim();

}

}

Trang 14

V./ SƠ ĐỒ MẠCH IN VÀ MẠCH THỰC TẾ:

 Sơ đồ mạch in:

 Mạch thực tế:

Kết luận: mạch hoạt động tốt và ổn định

 HẾT 

Ngày đăng: 17/04/2014, 17:03

HÌNH ẢNH LIÊN QUAN

Sơ đồ chân: - mạch điều khiển ma trận phím hiển thị lên lcd
Sơ đồ ch ân: (Trang 3)
Hình dạng thực tế: - mạch điều khiển ma trận phím hiển thị lên lcd
Hình d ạng thực tế: (Trang 4)
Hình dạng thực tế: - mạch điều khiển ma trận phím hiển thị lên lcd
Hình d ạng thực tế: (Trang 5)
Sơ đồ chân: - mạch điều khiển ma trận phím hiển thị lên lcd
Sơ đồ ch ân: (Trang 5)
Hình dạng thực tế: - mạch điều khiển ma trận phím hiển thị lên lcd
Hình d ạng thực tế: (Trang 6)
Sơ đồ chân: - mạch điều khiển ma trận phím hiển thị lên lcd
Sơ đồ ch ân: (Trang 7)
1. Sơ đồ nguyên lý: - mạch điều khiển ma trận phím hiển thị lên lcd
1. Sơ đồ nguyên lý: (Trang 8)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w