1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt

53 2,3K 54

Đ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 53
Dung lượng 1,31 MB

Nội dung

GHÉP NỐI VI XỬ LÝ/VI ĐIỀU KHIỂN VỚI BỘ NHỚ NGOÀI Trong chương II chúng ta đã nói đến chức năng cũng như một số bộ nhớ bán dẫnthông dụng.. Trong phần này chúng ta sẽ tiếp tục nghiên cứu c

Trang 1

BÀI 8: GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ

4.1 GHÉP NỐI VI XỬ LÝ/VI ĐIỀU KHIỂN VỚI BỘ NHỚ NGOÀI

Trong chương II chúng ta đã nói đến chức năng cũng như một số bộ nhớ bán dẫnthông dụng Trong phần này chúng ta sẽ tiếp tục nghiên cứu cách thức ghép nối vi điều khiển

8051 với bộ nhớ ngoài khi muốn mở rộng thêm không gian nhớ

BỘ NHỚ NGOÀI

Ở các ví dụ từ trước đến nay, chúng ta sử dụng ROM trên chip hoặc ROMngoài để lưu mã chương trình Nếu muốn sử dụng đồng thời cả hai bộ nhớ ROM thì cóđược không? Câu trả lời là có (hình 4.2.1a)

- Bằng cách nối EA lên Vcc, khi RESET thì 8051 thực hiện chương trình ở trênchip trước, khi chạy xong thì mới chuyển sang chạy chương trình trên ROMngoài 8051 sẽ nạp các mã lệnh bắt đầu từ địa chỉ 0000h đến 0FFFh (địa chỉcuối cùng của ROM trên chip) Sau đó bộ đếm chương trình (con trỏ lệnh PC)tạo ra địa chỉ 1000h và tự động chuyển hướng ra ROM ngoài có chứa mãchương trình

- Nếu nối EA xuống Mass thì vi điều khiển sẽ chỉ thực hiện lệnh có trên ROMngoài từ địa chỉ 0000h đến FFFFh

0000h

FFFFh

ngoµi chip

ngoµi chip FFFFh

Hình 4.2.1a Bộ nhớ ROM trên chip và ngoài chip

Do thanh ghi PC và thanh ghi DPTR là thanh ghi 16 bit nên vi điều khiển 8051

có thể mở rộng không gian nhớ tới 64 KB cho mỗi loại Cổng P0 và P2 dùng để cungcấp địa chỉ Cổng P0 cấp 8 bit địa chỉ thấp là A0 – A7, Còn P2 thì cấp 8 bit địa chỉ cao

từ A8 – A15 Một nhiệm vụ quan trong nữa đó là P0 còn được dùng để cấp bus dữ liệu

8 bit D0 – D7 Như vậy các chân từ P0.0 - P0.7 vừa được dùng làm bus dữ liệu vừadùng làm bus địa chỉ Vậy làm thế nào để biết được khi nào P0 được dùng làm bus dữliệu, khi nào làm bus địa chỉ? Đó là nhiệm vụ của chân cho phép chốt ALE Khi ALE

= 0 thì P0 làm bus dữ liệu, còn khi ALE = 1 thì P0 làm bus địa chỉ Để mở rộng địa chỉcần nối các chân của P0 tới mạch chốt địa chỉ (đã được giới thiệu trong phần các mạchphụ trợ của vi xử lý) và dùng chân ALE để chốt địa chỉ (hình 4.2.1b)

Trang 2

4.1.1.3 Chân PSEN

Là chân cho phép cất chương trình (Program Store Enable) Đây là tín hiệu ra

và được nối tới chân OE của bộ nhớ ROM chương trình ngoài Nếu không ghép nốivới bộ nhớ chương trình ngoài thì chân PSEN để trống

Là chân cho phép đọc và ghi dữ liệu khi ghép nối 8051 với bộ nhớ dữ liệu

ngoài Chân RD sẽ nối với chân OE của bộ nhớ dữ liệu ngoài chân WR sẽ nối với chân WR của bộ nhớ dữ liệu ngoài Khi đọc dữ liệu từ bộ nhớ vào vi điều khiển thì chân RD sẽ tích cực ở mức thấp, ngược lại khi ghi dữ liệu từ vi điều khiển ra bộ nhớ thì chân WR sẽ tích cực ở mức thấp.

2 3 4 5 6 7 8

IC nhớ 2764 (8Kx8) có 13 chân địa chỉ từ A0 – A12 (Vì 1K = 210 byte=> 8KB=

23.210 = 213 byte nên nó có 13 chân địa chỉ) Số ô nhớ mà IC này tạo ra là 213 = 8192 ô nhớ

Trang 3

= 2000h ô nhớ Nếu nối chân EA xuống Mass thì vùng nhớ cho phép nạp chương trình sẽ

A 4

U 6 9

2 7 6 4

1 0 9 8 7 6 5 4 3

2 5

2 4

2 1

2 3 2

Ghép nối vi điều khiển 8051 với bộ nhớ chương trình ngoài

Khi vi điều khiển lấy lệnh từ bộ nhớ thì chân PSEN được kích hoạt xuống mứcthấp, do vậy chân PSEN được nối với chân OE và CE của ROM chương trình 2764

4.1.3 GHÉP NỐI VI ĐIỀU KHIỂN 8051 VỚI BỘ NHỚ DỮ LIỆU

NGOÀI

Ta biết rằng thanh ghi bộ đếm chương trình PC của 8051 là 16 bit và do vậy có thểtruy cập được 216 = 64Kb mã chương trình ở nhiều ví dụ dữ liệu được đặt trong không

gian mã chương trình và dùng lệnh MOVC A, @A+DPTR để lấy dữ liệu Chữ C trong

lệnh MOVC là từ chữ mã lệnh (Code) để báo rằng dữ liệu được đặt trong không gian mãlệnh của 8051 Tuy nhiên họ 8051 còn có không gian dữ liệu riêng biệt

Vì thanh ghi con trỏ dữ liệu DPTR có độ dài 16 bit nên nó cũng có thể quản lýđược tối đa 64Kb ô nhớ dữ liệu Như vậy 8051 có tổng cộng 128Kb không gian địa chỉ,trong đó 64Kb dành cho mã chương trình và 64Kb dành cho dữ liệu Không gian chươngtrình được truy cập nhờ thanh ghi PC, còn không gian dữ liệu được truy cập nhờ thanh ghiDPTR và một lệnh có tên MOVX (chữ X là từ External để chỉ không gian bộ nhớ dữ liệuđược thực hiện từ bộ nhớ ngoài) Để chuyển dữ liệu lưu trữ ở bộ nhớ dữ liệu ngoài vào

CPU lệnh MOVX A, @DPTR được thực hiện và lệnh sẽ đọc byte dữ liệu do thanh ghi DPTR trỏ đến Mặc dù cả hai lệnh MOVC A, @A+DPTR và MOVX A, @DPTR khá

Trang 4

giống nhau về hình thức, nhưng điểm khác nhau cơ bản một lệnh thực hiện nhận dữ liệu

từ vùng nhớ chương trình, còn lệnh kia thì nhận dữ liệu từ vùng dữ liệu

Để nối ghép 8051 với bộ nhớ dữ liệu ngoài thì cần sử dụng chân RD để điềukhiển đọc dữ liệu và chân WR để điều khiển ghi dữ liệu Bộ nhớ dữ liệu có thể là ROM

dữ liệu hoặc RAM dữ liệu Khi kết nối với ROM dữ liệu thì chỉ cần sử dụng chân RD (vì

bộ nhớ ROM là bộ nhớ chỉ đọc), còn khi kết nối với bộ nhớ RAM dữ liệu thì cần sử dụng

cả 2 chân RD và WR (bộ nhớ RAM vừa cho phép đọc vừa cho phép ghi dữ liệu)

Ví dụ 1: Hãy vẽ sơ đồ kết nối vi điều khiển 8051 với bộ nhớ ROM dữ liệu dung

lượng 8Kx8 và viết chương trình đọc 30 byte dữ liệu ở bộ nhớ dữ liệu ngoài từ địa chỉ1000h đưa ra cổng P1

Giải:

Sơ đồ kết nối 8051 với bộ nhớ ROM dữ liệu như sau:

Lưu ý rằng ta sử dụng cổng logic để làm bộ giải mã cho ROM dữ liệu tạo ra địachỉ vùng dữ liệu từ 0000h – 1FFFh và chân RD của 8051 được nối với chân OE của ROM

dữ liệu

A D 4

R 3 R

1 3

1 4

1 7

1 8 1

1 1

2 5 6 9

2 5

2 4

2 1

2 3 2

Sơ đồ kết nối 8051 với ROM dữ liệu 8Kx8

Chương trình được viết như sau:

MOV DPTR, #1000H ;dia chi dau tien ROM ngoai

AGAIN:

Trang 5

MOVX A, @DPTRMOV P1, AINC DPTRDJNZ R2, AGAIN

Ví dụ 2: Vẽ sơ đồ ghép nối 8051 với RAM dữ liệu ngoài 6264 dung lượng 8Kx8

và viết chương trình để 8051 lấy 10 byte dữ liệu được cất từ địa chỉ 1000h trên RAM dữliệu ngoài đưa vào RAM nội có địa chỉ từ 30h

Giải: Sơ đồ kết nối như sau:

Lưu ý rằng ta sử dụng cổng logic để làm bộ giải mã cho RAM dữ liệu tạo ra địachỉ vùng dữ liệu từ 0000h – 1FFFh và chân RD, WR của 8051 được nối lần lượt với chân

OE, WE của RAM dữ liệu

1 3

1 4

1 7

1 8 1

1 1

2 5 6 9

2 5

2 4

2 1

2 3 2

Sơ đồ kết nối vi điều khiển 8051 với bộ nhớ RAM dữ liệu 6264

Chương trình được viết như sau:

MOV DPTR, #1000H ;dia chi dau tien RAM ngoai

MOV R0, 30H ;dia chi dau tien RAM noiAGAIN:

MOVX A, @DPTRMOV @R0, AINC DPTRINC R0

Trang 6

DJNZ R0, AGAINTrường hợp muốn ghép nối nhiểu ROM, RAM thì chúng ta phải sử dụng vi mạchgiải mã 74LS138 để giải mã cho từng IC như ví dụ dưới đây.

Ví dụ 3: Sử dụng một vi mạch giải mã 74LS138 để thiết kế mạch giải mã địa chỉ

tạo ra các tín hiệu chọn chip và thực hiện vẽ sơ đồ ghép nối vi điều khiển 8051 với bộ nhớtương ứng

Tín hiệu

Đặc tính truy xuất

Loại bộ nhớ Dung lượng

0

16Kx81

16Kx82

8Kx8

Giải:

Trước hết chúng ta hãy phân tích về vùng nhớ của từng IC trên

- EPROM 27128 (16Kx8) có 14 chân địa chỉ từ A0 – A13 vì 16K = 24.210 = 214

A 12

A 11

A 10

A 9

A 8

A 7

A 6

A 5

A 4

A 3

A 2

A 1

A 0

Địa chỉ

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0 1IC2

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0 1IC3

0

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0 1Những vùng có địa chỉ thay đổi đã được đánh dấu như trên bảng trên Những vùngnày sẽ được đưa vào những chân địa chỉ tương ứng của từng IC ở đây ta sử dụng 3 ICnhớ, do vậy sẽ dùng 3 chân đầu ra của IC giải mã 74LS138 là Y0, Y1, Y2 Đối chiếu vớibảng trạng thái của IC này (xem phần các mạch phụ trợ) thấy chân C luông bằng 0, do vậychân này sẽ được nối xuống Mass Ta sẽ sử dụng 2 chân địa chỉ cao là A14 và A15 đểphối hợp với A và B tạo ra các tín hiệu chọn chip

Trang 7

Sơ đồ kết nối như sau:

1 5

1 3

1 1 9

6 5

A C

2 5

2 1 2

2 5

2 1 2

2 5

2 1 2

Sơ đồ kết nối 8051 với bộ nhớ chương trình và dữ liệu ngoài.

Trong sơ đồ ta sử dụng một IC đệm bus là 74LS245 mục đích để tăng công suấtcho bus (xem phần các mạch phụ trợ)

4.2 GHÉP NỐI SONG SONG VÀ LẬP TRÌNH

Sau khi đơn vị xử lý trung tâm đã thu thập và xử lý thông tin, nó cần trao đổi tínhiệu điều khiển hoặc số liệu đến các thiết bị ngoại vi khác nhau, quá trình đó gọi là quátrình vào/ra dữ liệu Sự ghép nối với các thiết bị ngoại vi để vào/ra dữ liệu được thực hiệnthông qua các mạch logic nối với các BUS của hệ vi xử lý Các mạch logic này được gọi

là các bộ ghép nối vào/ra (Interface)

Trong kiểu ghép nối song song các bit dữ liệu được truyền song song đồng thời.Kiểu ghép nối này có ưu điểm là tốc độ trao đổi thông tin lớn nhưng có nhược điểm làphải có nhiều đường dây truyền dữ liệu và các tín hiệu điều khiển, vì vậy nó chỉ thích hợpđối với việc trao đổi thông tin nội bộ hoặc trao đổi thông tin với các thiết bị ngoại vi cókhoảng cách gần

Với vi điều khiển đã có sẵn các cổng vào/ra Nhưng trong trường hợp yêu cầu kỹthuật đòi hỏi nhiều cổng vào/ra hơn hoặc đã sử dụng một số cổng để ghép nối với bộ nhớ.Lúc đó chúng ta cần phải ghép thêm các thiết bị để tăng số lượng cổng vào/ra

Một trong những vi mạch ghép nối song song được sử dụng rộng rãi nhất hiện nay

là IC 8255A 8255A là một vi mạch ghép nối được dùng rất phổ biến cho các hệ vi xử lý 8

- 16 bit Nó cho phép giao tiếp mềm dẻo trong nhiều ứng dụng thực tế với nhiều cửa vào

ra Đối với các hệ vi xử lý nhỏ, 8255A có thể nối trực tiếp với các mạch vi xử lý Trong

Trang 8

các hệ thống lớn hơn, việc ghép nối chỉ cần thêm một số mạch tối thiểu Đó là một trongnhững tính chất quan trọng của bộ ghép nối 8255A.

Tính linh hoạt của vi mạch này thể hiện ở khả năng lập trình Qua một thanh ghiđiều khiển, người sử dụng có thể đặt chế độ hoạt động và cấu hình của các cửa vào ra Cácchân số liệu tạo nên BUS dữ liệu theo hai hướng, rộng 8 bit Tất cả các dữ liệu khi truynhập đọc hoặc ghi được dẫn qua các đường dẫn này

4.2.2 GHÉP NỐI 8051 VỚI 8255A

8255A là một chip DIP 40 chân (Sơ đồ chân hình 4.1.1a và sơ đồ khối hình4.1.1b) Có 3 cổng truy cập riêng biệt Cổng A, cổng B, cổng C và đều là các cổng 8bit Các cổng này có thể là các cổng vào hoặc ra và có thể thay đổi một cách linh hoạt

- Các chân từ PA0 – PA7: Có thể lập trình thanh 8 bit đầu vào hoặc 8 bit đầu rahoặc cả 8 bit hai chiều vào/ra

- Các chân từ PB0 – PB7: Có thể lập trình thanh 8 bit đầu vào hoặc 8 bit đầu rahoặc cả 8 bit hai chiều vào/ra

- Các chân từ PC0 – PC7: Có thể lập trình thanh 8 bit đầu vào hoặc 8 bit đầu ra

8 Bit này cũng có thể được chia thành hai phần: Các bit cao (PC4 – PC7) làPCH và các bit thấp (PC0 – PC3) là PCL Mỗi phần có thể được dùng làm đầuvào hoặc đầu ra

- Các chân RD và WR : Đây là hai chân điều khiển tích cực ở mức thấp tới8255A được nối từ RD , WR của vi xử lý Đó là các tín hiệu điều khiển đọc,ghi Khi tín hiệu chọn chip ( CS ) tích cực ở mức thấp ( CS = 0) và RD = 0 thìcác tín hiệu của cổng được chọn dẫn đến Bus dữ liệu và có thể được gọi bởicác vi mạch khác Khi WR = 0 thì mọi việc xảy ra ngược lại dữ liệu từ Bus dữliệu được đưa đến cổng đã chọn

- Các chân D0 – D7: Là các chân dữ liệu của 8255A Các chân này được nối tớicác chân dữ liệu của vi xử lý để cho phép nó trao đổi dữ liệu giữa vi xử lý vàchip 8255A

- Chân RESET: Đây là đầu vào tín hiệu tích cực ở mức cao tới 8255A Đượcdùng để xoá thanh ghi điều khiển Khi RESET được kích hoạt thì tất cả cáccổng được kích hoạt lại như cổng đầu vào Trong nhiều thiết kế thì chân nàyđược nối đất để không kích hoạt nó hoặc nó cũng có thể để hở

- Các chân A0, A1, CS: Chân CS tích cực ở mức thấp Khi CS được chọn thì

nó cùng với A1, A0 chọn các cổng riêng biệt Các chân này dùng để truy cậpcác cổng A, B, C hoặc các thanh ghi điều khiển theo bảng dưới đây (Bảng5.4.2a)

Trang 9

năng các cổng và thanh ghi điều khiển của 8255A.

Bảng 5.4.2b Các lệnh chọn cổng và thanh ghi của 8255

0 1 1 1 0 Ghi vào từ điều khiển

1 x x x x Đường dẫn dữ liệu ở trạng thái điện trở cao

0 x x 1 1 Đường dẫn dữ liệu ở trạng thái điện trở cao

Hình 4.1.1a Sơ đồ chân của 8255A

PA PB PC

PA3 PA2 PA1 PA0 P1.4 P1.5 GND A1 A0

PA 5 PA 6 PA 7 WR

RESE TTTT TT

D 0

C

PA 4

1 2 3 5 6 4

7 8 9

11 12 10

13 14 15

17 18 16

19 20

40 39 38 36 35 37

34 33 32

30 29 31

28 27 26

24 23 25

22 21

8 2 5 5 A

D 1 D 2D 3 D 4D 5D 6 D 7 PB 7 PB 6 PB 5 PB 4PB 3

PC 7 PC6 PC5 PC4 PC0 PC1 PC 2 PC 3 PB0 PB1

Trang 10

Hình 4.1.1b Sơ đồ khối của 8255A

Trong khi các cổng A, B, C được dùng để xuất/nhập dữ liệu thì thanh ghi điềukhiển phải được lập trình để chọn chế độ làm việc cho các cổng này Các cổng của8255A có thể được lập trình theo một trong các chế độ dưới đây

- Các cửa A, B, C được làm việc độc lập nhau

- Các cửa A, B, C có thể là cửa vào hoặc ra tuỳ theo chế độ trong thanh ghi điềukhiển (ra số liệu được chốt, vào không chốt)

- Không có sự đối thoại giữa vi xử lý với thiết bị ngoại vi Nếu muốn có tín hiệuđối thoại phải dùng các bit của một cửa nào đó (thường là cửa C) bằng cáchxác lập từng bit PCi Khi đó cửa C được xem như là hai cửa 4 bit với khả nănglập/xoá từng bit

Chỉ dùng cho cửa A với số liệu vào/ra 2 chiều tạo thành một Bus chứa:

- Cửa A (Bus hai chiều)

- 5 đường điều khiển (PC3 – PC7)

Điều khiển nhóm B

Cửa A (8)

Cửa C nửa cao (4)

Cửa C nửa thấp (4)

Cửa B (8)

Trang 11

- Logic điều khiển.

- Vào và ra đều chốt

Việc chọn chế độ làm việc cho 8255A được thực hiện nhờ thanh ghi từ điềukhiển Đối với 8255A có hai loại từ điều khiển: Từ điều khiển cấu hình của các cổng(hình 5.4.2b) và từ điều khiển việc lập/xoá các bit ở đầu ra PC (hình 5.4.2c)

Hình 5.4.2b Từ điều khiển cấu hình của 8255A.

Hình 5.4.2c Từ điều khiển lập/xoá các bit PCi của 8255A.

Ví dụ 1: Hãy tìm từ điều khiển cho 8255A cho các cấu hình sau:

Tất cả các cổng A, B, C đều là các cổng ra (chế độ 0)

PA là đầu vào, PB là đầu ra, PCL bằng đầu vào và PCH là đầu ra

Giải:

Từ hình 5.4.2b ta có:

- Trường hợp 1 có từ điều khiển là: 1000 0000 = 80H

- Trường hợp 2 có từ điều khiển là: 1001 0001 = 91H

Ví dụ 2: Cho sơ đồ ghép nối 8081 với 8255A (hình 5.4.2d) hãy:

a) Tìm các địa chỉ vào/ra được gán cho các cổng A, B, C và thanh ghi điều khiển.b) Hãy lập trình 8255A cho các cổng A, B, C thành các cổng ra

c) viết một chương trình để gửi 55H và AAH đến cổng ra một cách liên tục

Port A

1 = Input

0 = Output

Port C (Upper PC7 - PC4)

1 = Input

0 = Output

Mode Selcction

Trang 12

a) Giả sử trong sơ đồ trên ta sử dụng 16 bit địa chỉ (A0 – A15), ta sẽ có địa chỉ cơ

sở dành cho 8255A như sau:

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Địa chỉ

c) Viết chương trình để gửi 55H và AAH đến cổng ra một cách liên tục

MOV DPTR, #4003H ;nap d/c cong cuathanh

;ghi dieu khien

(A=AAH)

Trang 13

Hình 5.4.2d: Nối ghép 8051 với 8255A cho ví dụ 2

Ví dụ 3: Cho sơ đồ ghép nối 8051 với 8255A như hình vẽ (hình 5.4.2e), hãy:

a) Tìm địa chỉ cổng vào/ra được gán cho các cổng A, B, C và thanh ghi điềukhiển

b) Tìm từ điều khiển cho trường hợp PA là đầu ra, PB là đầu vào, PC0 – PC3 làđầu vào, PC4 – PC7 là đầu ra

c) Viết chương trình để nhận dữ liệu từ PB gửi ra PA nhận dữ liệu từ PCL gửi raPCH

OC

QD

A0 A1

AD0

8255 A

WR

CS WR RD

P2.7

PA PB PC

A1

A0 D7

D0 A14

Trang 14

Hình 5.4.2e: Nối ghép 8051 với 8255A cho ví dụ 3

b) Từ điều khiển cho trường hợp PA là đầu ra, PB là đầu vào, PC0 – PC3 là đầuvào, PC4 – PC7 là đầu ra là: 1000 0011B = 83H

c) Viết chương trình để nhận dữ liệu từ PB gửi ra PA nhận dữ liệu từ PCL gửi raPCH

khien

;PCL la cong raMOV R0, #CRPORT ;nap dia chi congthanh

;ghi dieu khien

OC

Q D

D0 D7

A0 A1

D0

A1

8255 A

RES

A2 A7

PCU

Trang 15

MOVX @R0, A ;gui den PCHĐối với hệ thống cần nhiều 8255A ta sử dụng mạch giải mã 74LS138 để giải

mã như sơ đồ dưới đây:

Hình 5.4.2f Sử dụng 74LS138 để ghép nối nhiều vi mạch 8255A

Ví dụ 4: Cho sơ đồ hình 5.4.2g, hãy lập trình cho 8255A để:

b) Sử dụng PC2 để tạo xung vuông liên tục với độ dày xung là 50%

AGAIN: MOV R0, #CRPORT ;nap dia chi cong thanh ghi

;dieu khienMOV A, #00000101 ;chon PC2 = 1

MOV A, #00000100 ;chon PC2 = 0

A B C

A2GB2

74

LS138

Mạch giảI mã

A2

A7

D0 D7

Trang 16

Ví dụ 5: Hãy sử dụng mạch giải mã 74LS138 để giải mã chọn chip 8255A với

địa chỉ cơ sở của cổng là 20h Viết chương trình để điều khiển các 7 LED nối trêncổng PB (từ PB0 – PB6) sáng theo quy luật từ trái qua phải

Giải:

ORG 0000H

CR EQU 80H ;PA, PB, PC LA CONG RA

APORT EQU 20H ;DIA CHI CONG A

BPORT EQU 21H ;DIA CHI CONG B

CPORT EQU 22H ;DIA CHI CONG C

CRPORT EQU 23H ;DIA CHI THANH GHI DIEU KHIEN MOV R0, #CRPORT ;nap dia chi thanh ghi dieukhien

MOV A, #CR

MOVX @R0, A ;xuat gia tri CR toi thanh ghidk

SANGLED:

MOV R0, #BPORT ;nap dia chi cong B

DELAY: MOV R3, #100 ;tao thoi gian tre

HERE2: MOV R4, #255 ;dat R4 = 255

WR RD

D1 D3 D5 P3.0 D7 P3.1 ALE P3.4

A0 A2 A1 A3 A2 A4 A3 A5 A5 A6 A6 A7 A7

Y0

Y0 D0 Y1 D1 Y2 D2 Y3 D3 Y4 D4 Y5 D5 Y6 D6 Y7 D7 RD WR A0

D0 D2 D4 D6

PB0 PB2 PB4 PB6 PC0 PC3 PC5 PC7 PB0 PB3 PB5

PC2 PB2

P3.2 P3.5

PA0

PA7 PA5 PA3 PA1 XTAL2

AD[0 7]

A[8 15]

ALE 30

EA 31PSEN 29

4 Q1 5 D2 7 Q2 6D3

8 Q3 9 D4

13 Q4 12 D5

14 Q5 15 D6

17 Q6 16 D7

18 Q7 19 OE 1 LE 11

U2

74LS373

A 1 B 2 C 3 E1 6 E2 4 E3 5

Y0 15Y1 14Y2 13Y3 12Y4 11Y5 10Y6 9Y7 7

U3

74LS138

D0 34 D1 33 D2 32 D3 31 D4 30 D5 29 D6 28 D7 27 RD 5 WR 36 A0 9 A1 8 RESET 35 CS 6

PA0 4PA1 3PA2 2PA3 1PA4 40PA5 39PA6 38PA7 37PB0 18PB1 19PB2 20PB3 21PB4 22PB5 23PB6 24PB7 25PC0 14PC1 15PC2 16PC3 17PC4 13PC5 12PC6 11PC7 10

U4

8255A

2 4 6 8

1

RP1

10k VCC

Sơ đồ kết nối 8051 với 8255A thông qua mạch chốt 74LS373 và giải mã 74LS138

Trang 17

4.3 PHỐI GHÉP VI ĐIỀU KHIỂN VỚI THẾ GIỚI THỰC 1: PHỐI GHÉP 8051 VỚI MÀN HÌNH TINH THỂ LỎNG LCD, CHUYỂN ĐỔI TƯƠNG TỰ – SỐ ADC VÀ CẢM BIẾN NHIỆT

LCD

Ngày nay trong lĩnh vực thông tin và giải trí, việc dùng màn hình ống tia ca tốt

truyền thống (CRT) đang dần được thay thế bằng việc sử dụng màn hình tinh thể lỏng

(LCD - Liquid Crystal Display) Vì LCD có nhiều ưu điểm vượt trội như: Độ dày màn

hình nhỏ hơn rất nhiều , Kích thước đa dạng từ loại màn hình nhỏ tới màn hình cực lớn,Tiêu thụ ít năng lượng và không nguy hiểm bằng CRT

LCD dùng trong lĩnh vực điều khiển

LCD dùng trong thông tin giải trí(Màn hình Tivi, máy vi tính)

LCD dùng trong truyền thông (Màn hình điện thoại, hiển thị của hệthống chuyên dụng)

Ở phần này chúng ta chỉ xét tới LCD loại nhỏ và việc dùng LCD để hiển thị của hệthống chuyên dụng và đi nghiên cứu cách ghép nối LCD với 8051 và lập trình

LCD có tổng số 14 chân chia làm 3 nhóm (hình 4.3.1a):

Nhóm1: (3chân) Cấp nguồn VDD, VSS: cấp 5V, 0V

VEE: thay đổi điện áp để thay đổi độ tương phản

Nhóm 2: (8 chân) Vào ra thông tin với VĐK: Từ chân D0-D7 Nhóm 3: (3 chân) Điều khiển việc vào ra thông tin: E, RS, R/W

E:(bật /tắt) (cho phép/ không cho phép trao đổi thông tin với VĐK)

Trang 18

RS:(loại thông tin trao đổi)Thông tin trao đổi là lệnh điều khiển hay

Hình 4.3.1a Sơ đồ chân của LCD 14 chân

- R/W (Read/Write) – Chân đọc/ghi: cho phép người dùng đọc/ghi thông tintừ/lên LCD Nếu R/W = 1 thì đọc dữ liệu , nếu R/W = 0 thì ghi dữ liệu

- E (Enable) – Chân cho phép: được sử dụng để chốt thông tin hiển thị có trênchân dữ liệu Khi dữ liệu được cấp đến chân dữ liệu thì một xung từ mức caoxuống mức thấp được áp đến chân E để LCD chốt dữ liệu trên chân dữ liệu.Xung này phải rộng tối thiểu 450ns

- D0 – D7: Đây là các chân dữ liệu 8 bit, được dùng để gửi thông tin lên LCDhoặc đọc nội dung của các thanh ghi trong LCD

Để hiển thị chữ cái và con số mã ASCII của chúng được gửi đến chân này khibật RS = 1 Từ những đặc điểm và chức năng đã được đề cập ở trên ta có thể đi tớiviệc hình thành việc ghép nối của LCD với vi điều khiển như sau:

Trang 20

về vị trí Nguồn DDRAM không thay đổi

Đặt hướng chuyển dịchcon trỏ và xác địnhdịch hiển thị các thaotác này được thực hiệnkhi đọc và ghi dữ liệu

R/L

-Dịch con trỏ và dịchhiển thị mà không thayđổi DD RAM

Trang 21

và đọc nội dung bộđếm địa chỉ

Bảng 4.3.1c là bảng liệt kê lệnh chi tiết của LCD.

Ghi chú: Các ký hiệu viết tắt trong bảng là:

DD RAM: RAM dữ liệu hiển thị (Display Data RAM)

CG RAM: RAM máy phát ký tự (Character Generator RAM)

AGC: Địa chỉ của RAM máy phát ký tự

ADD: Địa chỉ của RAM dữ liệu hiển thị phù hợp địa chỉ con trỏ

Trang 22

thông tin mới Trong mọi trường hợp cần kiểm tra cờ bận trước khi ghi bất kỳ dữ liệunào lên LCD.

Để gửi bất kỳ một lệnh nào ở bảng 4.3.1b đến LCD, cần đưa chân RS = 0, còn

để gửi dữ liệu thì đặt RS = 1 Sau đó gửi một sườn xung cao xuống thấp đến chân E đểcho phép chốt dữ liệu trong LCD Với phương pháp này chúng ta cần phải lưu ý rằngluôn phải đặt một độ trễ lớn trong quá trình xuất dữ liệu hoặc lệnh ra LCD

Ví dụ: Ghép nối 8051 với LCD như hình vẽ, hãy lập trình thực hiện công việc

sau:

- Ghi lệnh chọn LCD 2 dòng, ma trận 5x7

- Hiển thị màn hình và con trỏ

- Xoá LCD

- Dịch con trỏ sang phải

- Hiển thị liên tục dòng chữ “BM KY THUAT VDK !”

XTAL2 18 XTAL1 19

ALE 30 EA 31 PSEN 29

RST 9

Giải:

; gọi độ thời gian trễ trước khi gửi dữ liệu/ lệnh kế tiếp

; chân P1.0-P1.7 được nối tới chân dữ dữ liệu D0-D7 của LCD

; Chân P2.0 được nối tới chân RS của LCD

Trang 23

; Chân P2.1 được nối tới chân R/W của LCD.

; Chân P2.2 được nối đến chân E của LCD

ORG 0000H

STRING: DB 'BM KY THUAT VDK !'

ORG 1000H

LAP: MOV A, #38H ;LCD 2 dong, ma tran 5x7

DELAY: MOV R3, #100 ;tao thoi gian tre

HERE2: MOV R4, #255 ;dat R4 = 255

HERE: DJNZ R4, HERE ;R4 = 0

Trang 24

END

Kết quả mô phỏng chương trình trên phần mềm Proteus như sau:

Ví dụ 1: Làm lại ví dụ trên nhưng trong chương trình chúng ta không dùng

phương pháp tạo trễ mà liên tục kiểm tra cờ bận trước khi gửi lệnh/dữ liệu tới LCD

Chương trình được viết như sau:

; Kiểm tra cờ bận trước khi gửi dữ liệu, lệnh ra LCD

; Đặt P1 là cổng dữ liệu

; Đặt P2.0 nối tới cổng RS

; Đặt P2.1 nối tới chân R/W

; Đặt P2.2 nối tới chân E

ORG 0000H

STRING: DB 'BM KY THUAT VDK !'

ORG 1000H

MOV A, #0EH ;hien thi man hinh, con tro

ACALL COMMAND ;truyen lenh den LCD

ACALL COMMAND ;truyen lenh den LCD

MOV A, #06H ;dich con tro sang phai

ACALL COMMAND ;truyen lenh den LCD

Trang 25

JB P1.7, BACK ;doi cho den khi co ban = 1.

RET

END

Ví dụ 2: Hãy ghép nối 8255A với 8051 với địa chỉ cổng cơ sở là 20h Viết

chương trình hiển thị liên tục dòng chữ

“ GHEP NOI 8255A…!

HIEN THI LCD LM032L.”

Trang 26

A[8 15]

D[0 7]

D0 ALE

WR RD

D1 D3 D5 P3.0 D7 P3.1

ALE P3.4

A0 A2 A1 A3 A2 A4 A3 A5 A5 A6 A6 A7 A7

Y0

Y0 D0 Y1 D1 Y2 D2 Y3 D3 Y4 D4 Y5 D5 Y6 D6 Y7 D7 RD WR A0

D0 D2 D4 D6

PB0 PB2 PB4 PB6

PC0

P P P P P P

PC3 PC5 PC7 PC2

P3.2

P3.5

XTAL2 18 XTAL1 19

RST 9

P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14

P3.7/RD 17P3.6/WR 16P3.5/T1 15

AD[0 7]

A[8 15]

ALE 30

EA 31PSEN 29

P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8

4 Q1 5 D2

7 Q2 6 D3

8 Q3 9 D4

13 Q4 12 D5

14 Q5 15 D6

17 Q6 16 D7

18 Q7 19

OE 1 LE 11

U2

74LS373

A 1 B 2 C 3

E1 6 E2 4 E3 5

Y0 15Y1 14Y2 13Y3 12Y4 11Y5 10Y6 9Y7 7

U3

74LS138

D0 34 D1 33 D2 32 D3 31 D4 30 D5 29 D6 28 D7 27

RD 5 WR 36 A0 9 A1 8 RESET 35

CS 6

PA0 4PA1 3PA2 2PA3 1PA4 40PA5 39PA6 38PA7 37PB0 18PB1 19PB2 20PB3 21PB4 22PB5 23PB6 24PB7 25PC0 14PC1 15PC2 16PC3 17PC4 13PC5 12PC6 11PC7 10

U4

8255A

2 4 6 8

1

RP1

10k VCC

Ghép nối 8051 với 8255A và LCD LM032L, mô phỏng kết qủa trên Proteus

ORG 0000H

START: MOV A, #38H ;LCD 2 dong, ma tran 5x7

Ngày đăng: 13/08/2014, 10:21

HÌNH ẢNH LIÊN QUAN

Hình 4.2.1b. Ghép nối 8051 với IC chốt 74LS373 - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 4.2.1b. Ghép nối 8051 với IC chốt 74LS373 (Trang 2)
Sơ đồ kết nối như sau: - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Sơ đồ k ết nối như sau: (Trang 3)
Sơ đồ kết nối 8051 với bộ nhớ ROM dữ liệu như sau: - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Sơ đồ k ết nối 8051 với bộ nhớ ROM dữ liệu như sau: (Trang 4)
Sơ đồ kết nối vi điều khiển 8051 với bộ nhớ RAM dữ liệu 6264 - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Sơ đồ k ết nối vi điều khiển 8051 với bộ nhớ RAM dữ liệu 6264 (Trang 5)
Bảng phân chia vùng nhớ được xác định như sau: - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Bảng ph ân chia vùng nhớ được xác định như sau: (Trang 6)
Sơ đồ kết nối như sau: - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Sơ đồ k ết nối như sau: (Trang 7)
Hình 4.1.1b.. Sơ đồ khối của 8255A - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 4.1.1b.. Sơ đồ khối của 8255A (Trang 10)
Hình 5.4.2b. Từ điều khiển cấu hình của 8255A. - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 5.4.2b. Từ điều khiển cấu hình của 8255A (Trang 11)
Hình nhỏ hơn rất nhiều , Kích thước đa dạng từ loại màn hình nhỏ tới màn hình cực lớn, Tiêu thụ ít năng lượng và không nguy hiểm bằng CRT - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình nh ỏ hơn rất nhiều , Kích thước đa dạng từ loại màn hình nhỏ tới màn hình cực lớn, Tiêu thụ ít năng lượng và không nguy hiểm bằng CRT (Trang 17)
4.3.1.2. Bảng lệnh của LCD - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
4.3.1.2. Bảng lệnh của LCD (Trang 19)
Bảng 4.3.1b. Mã lệnh LCD - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Bảng 4.3.1b. Mã lệnh LCD (Trang 19)
Bảng 4.3.1c là bảng liệt kê lệnh chi tiết của LCD. - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Bảng 4.3.1c là bảng liệt kê lệnh chi tiết của LCD (Trang 21)
Sơ đồ chân của ADC8084 - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Sơ đồ ch ân của ADC8084 (Trang 29)
Hình 5.6.2a. Kiểm tra ADC ở chế độ chạy tự do - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 5.6.2a. Kiểm tra ADC ở chế độ chạy tự do (Trang 30)
Hình 5.6.2d. Nối ghép ADC0804 với 8051 sử dụng nguồn đồng hồ sẵn có. - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 5.6.2d. Nối ghép ADC0804 với 8051 sử dụng nguồn đồng hồ sẵn có (Trang 31)
Hình 5.6.2c. Phân chia thời gian đọc và ghi của ADC0804 - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 5.6.2c. Phân chia thời gian đọc và ghi của ADC0804 (Trang 31)
Hình vẽ trên ta sử dụng tín hiệu đồng hồ của chính chip ADC0804. Để sử dụng đồng hồ ngoài thì phải ghép nối như thế nào? Hình vẽ 5.6.2e sẽ trả lời câu hỏi đó. - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình v ẽ trên ta sử dụng tín hiệu đồng hồ của chính chip ADC0804. Để sử dụng đồng hồ ngoài thì phải ghép nối như thế nào? Hình vẽ 5.6.2e sẽ trả lời câu hỏi đó (Trang 32)
Hình 5.6.2e. Bộ biến đổi ADC808/809 - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 5.6.2e. Bộ biến đổi ADC808/809 (Trang 33)
Sơ đồ trên sử dụng tín hiệu đồng hồ vào ADC0804 là từ tần số thạch anh. Vì tần số này quá cao nên chúng ta cần sử dụng hai mạch lật Flip – Plop kiểu D (74LS74) để chia tần số này cho 4 - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Sơ đồ tr ên sử dụng tín hiệu đồng hồ vào ADC0804 là từ tần số thạch anh. Vì tần số này quá cao nên chúng ta cần sử dụng hai mạch lật Flip – Plop kiểu D (74LS74) để chia tần số này cho 4 (Trang 33)
Hình 5.6.3d trình bày cách nối ghép bộ cảm biến nhiệt với ADC0804. ở đây dùng điôt zener LM336 – 2.5 để cố định điện áp 2.5V trên triết áp 10K. - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 5.6.3d trình bày cách nối ghép bộ cảm biến nhiệt với ADC0804. ở đây dùng điôt zener LM336 – 2.5 để cố định điện áp 2.5V trên triết áp 10K (Trang 35)
Hình 4.4.1a. Mặt cắt Stator, Rotor động cơ bước. - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 4.4.1a. Mặt cắt Stator, Rotor động cơ bước (Trang 36)
Hình 4.4.1c. Động cơ bước đơn cực 4 pha không chổi than 6 đầu dây. - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 4.4.1c. Động cơ bước đơn cực 4 pha không chổi than 6 đầu dây (Trang 37)
Hình 4.4.1e. chuỗi xung 4 bước điều khiển dạng sóng - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 4.4.1e. chuỗi xung 4 bước điều khiển dạng sóng (Trang 38)
Hình 4.4.1f. Chuỗi xung 4 bước thông thường - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 4.4.1f. Chuỗi xung 4 bước thông thường (Trang 39)
Sơ đồ chân và bảng chân lý của ULN2003A Ví dụ 2: - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Sơ đồ ch ân và bảng chân lý của ULN2003A Ví dụ 2: (Trang 42)
Hình 5.7.1i. Ghép nối 8051 với động cơ bước Lời giải: - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 5.7.1i. Ghép nối 8051 với động cơ bước Lời giải: (Trang 43)
Hình 5.7.2a. Nối ghép bàn phím ma trận tới các cổng. - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 5.7.2a. Nối ghép bàn phím ma trận tới các cổng (Trang 47)
Hình 5.7.2b. Lưu đồ tìm phím ấn của chương trình ví dụ 2. - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 5.7.2b. Lưu đồ tìm phím ấn của chương trình ví dụ 2 (Trang 49)
Hình 5.7.3a giới thiệu mạch tạo tham chiếu dòng điện (thiết lập I ref  = 2mA) bằng cách sử dụng điện áp nuôi 5V và các điện trở 1KΩ, 1.5KΩ - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Hình 5.7.3a giới thiệu mạch tạo tham chiếu dòng điện (thiết lập I ref = 2mA) bằng cách sử dụng điện áp nuôi 5V và các điện trở 1KΩ, 1.5KΩ (Trang 52)
Sơ đồ ghép nối và mô phỏng trên phần mềm Proteus giữa vi điều khiển 8051 với bộ chuyển đổi số – tương tự DAC0808 như sau: - BÀI 8 GHÉP NỐI VÀ TRAO ĐỔI DỮ LIỆU TRONG HỆ VI XỬ LÝ ppt
Sơ đồ gh ép nối và mô phỏng trên phần mềm Proteus giữa vi điều khiển 8051 với bộ chuyển đổi số – tương tự DAC0808 như sau: (Trang 53)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w