1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo bài tập lớn vi xử lý

19 4 0

Đ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 19
Dung lượng 11,65 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nhận dữ liệu từ 4 nút nhấn để di chuyển điểm ảnh lên/xuống/trái/phải tương ứng.. 74HC573 Sơ đồ mạch phía cột và hàng của khối LED ma trận  Các tín hiệu dữ liệu hàng và cột được thiết kế

Trang 1

ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM

KHOA ĐIỆN- ĐIỆN TỬ

- -BÁO CÁO BÀI TẬP LỚN

VI XỬ LÝ -Nhóm

1 -Giáo viên hướng dẫn: Đoàn Ngọc Cẩm

Lớp: L16

Trang 2

BẢNG PHÂN CHIA CÔNG VIỆC CỦA CÁC THÀNH VIÊN TRONG NHÓM

ST

Ghi chú

Trang 3

1 ĐỀ TÀI [SỐ THỨ TỰ CỦA ĐỀ TÀI]

Thiết kế mạch điện tử sử dụng vi xử lý 8051 và một vi mạch 74’138 cùng các cổng logic cần thiết để điều khiển một bảng LED ma trận có kích thước 16x16 (được ghép từ 4 LED ma trận 8x8) với địa chỉ truy suất được cho ở bảng dưới đây

Đồng thời thiết kế để giao tiếp với 4 nút nhấn UP, DOWN, LEFT, RIGHT

Yêu cầu:

Vẽ mô phỏng trên Proteus, lập trình cho 8051 sáng 1 điểm ảnh tại vị trí giao nhau của cột 0, hàng 0 (trọng số thấp) Nhận dữ liệu từ 4 nút nhấn để di chuyển điểm ảnh

lên/xuống/trái/phải tương ứng

P/s: Khi thiết kế bảng LED trên Proteus, sinh viên cứ nối dây bằng cách đặt tên, nối dây xong rồi kéo bảng LED lại Chú ý, sinh viên thiết kế sao cho trọng số thấp của hàng nằm phía tay trái, trọng số thấp của cột nằm ở dưới

Trang 4

2 THIẾT KẾ MÔ PHỎNG TRÊN PROTEUS 2.1 Sơ đồ khối tổng quan

2.1.1 Sơ đồ khối tổng quan

Sơ đồ giao tiếp giữa 8051 với LED ma trận

Giải thích các khối:

- 8051: Vi xử lý trung tâm

- Mạch giải mã địa chỉ: Giải mã phân vùng địa chỉ

- 74LS138: Để phân vùng địa chỉ

- 74HC573: Chốt dữ liệu gửi qua LED ma trận

- LED ma trận: ngoại vi cần giao tiếp

Trang 5

2.2 Sơ đồ khối chi tiết của từng phần.

2.2.1 Phần 8051

Chân

(Pin)

Kiểu

Ouput

Nhận và đưa dữ liệu ra 4 khối 74HC573 để hiện thị các cột, hàng

tương ứng của LED ma trận

Ta chỉ sử dụng chân P2.7, P2.6, P2.5, P2.4, P2.3 Trong đó các chân P2.7, P2.6, P2.5 dùng làm ngõ vào của khối 74LS138, từ ngõ

ra của khối 74LS138 kết hợp với chân P2.4, P2.3 làm mạch giải mã

địa chỉ để chọn Chip

2.2.2 74HC573

Sơ đồ mạch phía cột và hàng của khối LED ma trận

 Các tín hiệu dữ liệu hàng và cột được thiết kế theo phương pháp 3 bus Do đó, LED ma trận 16x16 được điều khiển thông qua 4 vi mạch chốt 74HC573, hai chốt

Trang 6

dữ liệu của 2 hàng và 2 để chọn quét cột Tín hiệu cho phép chốt dữ liệu LE được

tổ hợp từ tín hiệu giải mã địa chỉ và tín hiệu cho phép ghi WR\

nhau) với phương pháp quét LED là quét cột nên mỗi cột đã được đệm với dãy transitor ULN2803 có dòng tối đa lên đến 500mA LED có cột là cathode Thiết

kế sử dụg vi mạch ULN2803 cho phép kéo dòng lên đến 500mA ở phía cột Dữ liệu xuất trên cột sẽ là mức 1 vì ULN2803 hoạt động như cổng đảo nên tín hiệu lái cột sẽ có điện áp là mức 0 (tức là gần GND) cho phép các LED trên cột tương ứng được sáng Dữ liệu xuất ra trên hàng là mức 1 khi đó hàng được cấp điện áp nguồn

Trang 7

a) Sơ đồ mạch 8 bit cao của cột

b) Sơ đồ mạch 8 bit thấp của cột

Trang 8

c) Sơ đồ mạch 8 bit cao của hàng

d) Sơ đồ mạch 8 bit thấp của hàng

Trang 9

2.2.3 Trình bày các bước thiết kế mạch giải mã địa chỉ.

Địa chỉ truy

xuất A 15 A 14 A 13 A 12 A 11 … … … A 2 A 1 A 0

- Ta dùng A15, A14, A13, A12, A11 là các bit để chọn vùng địa truy xuất cho ma trận

- Sử dụng IC 74LS138 với ngõ vào là A15, A14, A13 (A15 là MSB) Khi A15 A14 A13 = 000

nên cần sử dụng thêm bit A12, A11 để phân biệt các vùng địa chỉ

- Với địa chỉ truy xuất là 0000H thì tương ứng với tổ hợp A15 A14 A13 = 000, ngõ ra Y0 tích cực, tiếp tục lấy Y0 + A12 + A11, ta được địa chỉ truy xuất là 0000H Để truy xuất tới địa chỉ 17FFH, tương ứng khi ngõ vào A15 A14 A13 = 000, ngõ ra Y0 tích cực, lấy Y0+ ´A12+A11,

ta được địa chỉ truy xuất là 17FFH Ta đã có được vùng địa chỉ 0000H- 17FFH

Mạch giải mã vùng địa chỉ 0000H- 17FFH

-Ở địa chỉ 1800H thì tương ứng với tổ hợp A15 A14 A13 = 000, ngõ ra Y0 tích cực, lấy

Y0+ ´A12+ ´A11, ta thu được địa chỉ truy xuất là 1800H Khi tổ hợp ngõ vào A15 A14 A13 =

001, thì duy nhất ở vùng địa chỉ này có tổ hợp ngõ vào trên, khi qua 74LS138 thì ngõ

ra Y1 tích cực, nên ngõ ra Y1 tương ứng với địa chỉ 3FFFH Ta thu được mạch giải mã vùng địa chỉ 1800H- 3FFFH

Trang 10

Mạch giải mã vùng địa chỉ 1800H- 3FFFH

- Khi tổ hợp ngõ vào A15 A14 A13 = 010, thì duy nhất ở vùng địa chỉ này có tổ hợp ngõ vào trên, khi qua 74LS138 thì ngõ ra Y2 tích cực, nên ngõ ra Y2 tương ứng với địa chỉ 4000H Với địa chỉ 8FFFH thì tương ứng với tổ hợp A15 A14 A13 =100, ngõ ra Y4 tích cực, lấy Y4+A12, ta thu được địa chỉ truy xuất là 8FFFH Ta có được mạch giải mã vùng địa chỉ 4000H- 8FFFH

Mạch giải mã địa chỉ 8FFFH

- Với địa chỉ 9000H thì tương ứng với tổ hợp A15 A14 A13 =100, ngõ ra Y4 tích cực, lấy

Y4+ ´A12, ta thu được địa chỉ truy xuất là 9000H Khi tổ hợp ngõ vào A15 A14 A13 =101, thì duy nhất ở vùng địa chỉ này có tổ hợp ngõ vào trên, khi qua 74LS138 thì ngõ ra Y5 tích

9000H- AFFFH

Mạch giải mã vùng địa chỉ 9000H- AFFFH

Trang 11

3 ASSEMBLY CODE FOR 8051

3.1 Sơ đồ giải thuật chương trình chính.

Sau khi Bắt đầu (là mới nạp lại code, chạy từ đầu), chương trình chạy qua phần Setup

-là bước khởi tạo điểm ảnh ở vị trí bắt đầu

Điểm ảnh ở vị trí bắt đầu

Sau đó chương trình vào vòng lập vô tận, trong vòng lập này làm nhiệm vụ:

- Kiểm tra nút nhấn nào được nhấn (thuật toán xử lý điểm khi được nhấn một nút nhất

Trang 12

tương tự nhau)

- Chương trình tạo trễ để điểm ảnh đảm bảo di chuyển duy nhất 1 điểm ảnh trong một lần bấm nút nhấn

- Xử lý để điểm ảnh di chuyển theo hướng nút nhất được nhấn:

trận 8x8 Đây là một vài ví dụ trường hợp trên

vùng địa chị của điểm ảnh P2.1 là bit kiểm tra điểm ảnh ở 8 bit cao hoặc thấp của hàng P2.2 là bit kiểm tra điểm ảnh ở 8 bit cao hoặc thấp của cột P2.1 và P2.2 sẽ đảo bit nếu điểm ảnh ở vị trị ngoài cùng của 1 ma trận 8x8 và điểm ảnh

di chuyển qua LED ma trận 8x8 khác

Ở vị trí này của điểm ảnh, P2.1=1 và P2.2=1 Nếu điểm ảnh di chuyển sang trái, P2.1=1 và P2.2 lúc này sẽ bằng 0 P2.1 = 1, nếu điểm ảnh ở 8 hàng trên P2.1 = 0, nếu điểm ảnh ở 8 hàng dưới P2.2 = 1, nếu điểm ảnh ở 8 cột trái P2.2 = 0, nếu điểm ảnh ở 8 cột phải

Trang 13

R6, vị trí cột của điểm ảnh trong 1 LED ma trận 8x8 được chứa trong thanh ghi R7 Đối với điểm ảnh di chuyển LÊN thì dịch trái (RL) thanh ghi R6 thông qua thanh ghi A trung gian Điểm ảnh di chuyển XUỐNG thì dịch phải thanh (RR) thanh ghi R6 thông qua thanh ghi A trung gian Điểm ảnh di chuyển PHẢI thì dịch trái thanh ghi R7 thông qua thanh ghi A trung gian Điểm ảnh di chuyển TRÁI thì dịch phải (RR) thanh ghi R7 thông qua thanh ghi A trung gian

- Xuất vị trí mới của điểm ảnh ra LED

Trang 14

4 Phụ lục

4.1 Bản thiết kế mạch điện trên Proteus

4.2 Code chương trình theo yêu cầu

ORG 0000H

START: ;Tạo điểm ảnh bắt đầu

MOV R7, #10000000B

Trang 15

; R7 là vị trị hàng ngang của điểm ảnh trong 8 bit của cột

; vd: R7=01000000B- hiển thị vị trí thứ 2 từ phải qua trong 8 bit của cột

MOV R6, #00000001B

; R6 là vị trí hàng dọc của điểm ảnh trong 8 bit của hàng

; vd: R6=00000010B- hiển thị vị trí thứ 2 từ dưới lên trong 8 bit của hàng

; R7=80H, R6=01H, hiển thị điểm ảnh thứ nhất trong 8 bit của cột từ phải qua, vị trí thứ nhất từ dưới lên trong 8 bit hàng

CLR P2.1

; P2.1 là bit kiểm tra 8 bit hàng của điểm ảnh

; P2.1=0: điểm ảnh ở hàng dưới, P2.1=1: điểm ảnh ở hàng trên

CLR P2.2

; P2.2 là bit kiểm tra 8 bit cột của điểm ảnh

; P2.2=1: điểm ảnh ở cột bên trái, P2.2=0: điểm ảnh ở cột bên phải

MOV DPTR, #0000H ; chốt địa chỉ 8 bit cao của cột

MOV DPTR, #9000H ; chốt địa chỉ 8 bit thấp của hàng

MOV A, R6

MAIN:

JB P1.0, KHAC_1 ; Kiểm tra nút nhấn LÊN (UP)

ACALL DELAY

ACALL UP ; Nếu nút nhấn được nhấn thì điểm ảnh di chuyển LÊN

SJMP MAIN

KHAC_1:

JB P1.1, KHAC_2 ; Kiểm tra nút nhấn XUỐNG (DOWN)

ACALL DELAY

ACALL DOWN ; Nếu nút nhấn được nhấn thì điểm ảnh di chuyển XUỐNG

SJMP MAIN

KHAC_2:

JB P1.2, KHAC_3 ; Kiểm tra nút nhấn PHẢI (RIGHT)

ACALL DELAY

ACALL RIGHT ; Nếu nút nhấn được nhấn thì điểm ảnh di chuyển PHẢI

SJMP MAIN

KHAC_3:

JB P1.3, MAIN ; Kiểm tra nút nhấn TRÁI (LEFT)

ACALL DELAY

ACALL LEFT ; Nếu nút nhấn được nhấn thì điểm ảnh di chuyển TRÁI

SJMP MAIN

UP: ; Thuật toán điểm ảnh di chuyển LÊN

CJNE R6, #80H, TT_UP ; Kiểm tra điểm ảnh có ở vị trí trên cùng theo hàng ngang

Trang 16

; Khi điểm ảnh ở vị trên cùng theo hàng ngang, nếu điểm ảnh tiếp tục di chuyển lên thì

sẽ điểm ảnh sẽ đổi hàng

SJMP DOI_HANG_UP

DOI_HANG_UP:

CPL P2.1 ; Đảo bit kiểm tra hàng của điểm ảnh

TT_UP: ; Di chuyển điểm ảnh và xuất ra LED

MOV A, R6 ; Thanh ghi A chứa vị trí hiện tại của điểm ảnh

RL A ; Dịch trái thanh ghi A = Di chuyển điểm ảnh lên trên

MOV R6, A ; R6 chứa vị trí mới của điểm ảnh

JB P2.1, HANG_TREN_UP

; Kiểm tra bit hàng của điểm ảnh

HANG_DUOI_UP: ; Xuất điểm ảnh nếu điểm ảnh vẫn ở hàng dưới

MOV DPTR, #4000H ; Chốt địa chỉ 8 bit ở hàng trên

MOV A, #00H ; Đảm bảo không hiển thị điểm ảnh ở hàng trên

MOV DPTR, #9000H ; Chốt địa chỉ 8 bit ở hàng dưới

MOV A, R6

SJMP MAIN

HANG_TREN_UP: ; Xuất điểm ảnh nếu điểm ảnh vẫn ở hàng trên

MOV DPTR, #9000H ; Chốt địa chỉ 8 bit ở hàng dưới

MOV A, #00H ; Đảm bảo không hiển thị điểm ảnh ở hàng dưới

MOV DPTR, #4000H ; Chốt địa chỉ 8 bit ở hàng trên

MOV A, R6

SJMP MAIN

RET

; Tương tự với thuật toán TRÊN đối với điểm ảnh di chuyển XUỐNG

DOWN:

CJNE R6, #01H, TT_DOWN

SJMP DOI_HANG_DOWN

DOI_HANG_DOWN:

CPL P2.1

TT_DOWN:

MOV A, R6

HANG_DUOI_DOWN:

MOV DPTR, #4000H

MOV A, #00H

Trang 17

MOVX @DPTR, A

MOV DPTR, #9000H

MOV A, R6

SJMP MAIN

HANG_TREN_DOWN:

MOV DPTR, #9000H

MOV A, #00H

MOV DPTR, #4000H

MOV A, R6

SJMP MAIN

RET

RIGHT: ; Thuật toán điểm ảnh di chuyển PHẢI

CJNE R7, #80H, TT_RIGHT ; Kiểm tra điểm ảnh có ở vị trí ngoài cùng bên phải của 8 bit cột

; Khi điểm ảnh ở vị trí ngoài cùng bên phải của 8 bit cột, nếu điểm ảnh tiếp tục di chuyển qua PHẢI thì sẽ đổi cột cho điểm ảnh

SJMP DOI_COT_RIGHT

DOI_COT_RIGHT:

CPL P2.2 ; Đổi bit kiểm tra cột của điểm ảnh

TT_RIGHT: ; Di chuyển điểm ảnh và xuất ra LED

MOV A, R7 ; Thanh ghi A chứa vị trí hiện tại của điểm ảnh

RL A ; Dịch trái thanh ghi A = Di chuyển điểm ảnh qua PHẢI

MOV R7, A

JB P2.2, COT_TRAI_RIGHT ; Kiểm tra bit cột của điểm ảnh

COT_PHAI_RIGHT:

MOV DPTR, #1800H ; Chốt địa chỉ 8 bit cột trái

MOV DPTR, #0000H ; Chốt địa chỉ 8 bit cột phải

JMP MAIN

COT_TRAI_RIGHT:

MOV DPTR, #0000H ; Chốt địa chỉ 8 bit cột phải

MOV DPTR, #1800H ; Chốt địa chỉ 8 bit cột trái

Trang 18

JMP MAIN

RET

; Tương tự với thuật toán PHẢI đối với điểm ảnh di chuyển TRÁI LEFT: ; Thuật toán điểm ảnh di chuyển TRÁI

CJNE R7, #01H, TT_LEFT

SJMP DOI_COT_LEFT

DOI_COT_LEFT:

CPL P2.2

TT_LEFT:

MOV A, R7

RR A

MOV R7, A

JB P2.2, COT_TRAI_LEFT

COT_PHAI_LEFT:

MOV DPTR, #1800H

MOV DPTR, #0000H

JMP MAIN

COT_TRAI_LEFT:

MOV DPTR, #0000H

MOV DPTR, #1800H

JMP MAIN

RET

DELAY:

PUSH 1 PUSH 2 PUSH 3 MOV R3, #3 DL2: MOV R1,#255

DJNZ R2, $ DJNZ R1, DL DJNZ R3, DL2 POP 3

Trang 19

POP 2 POP 1 RET END

4.3 Video chạy mô phỏng.

BTLVXL - Proteus 8 Professional - Schematic Capture 2022-06-13 22-20-13.mp4

Ngày đăng: 18/08/2022, 06:01

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

TÀI LIỆU LIÊN QUAN

w