Phần cổng logic NOR 2 ngõ vào:Hình 2.4.Sơ đồ thiết kế phần cổng logic NOR 2 ngõ vàoChân pin Kiểu chân Chức năngWR Input Nhận tín hiệu ghi data ra ngoại vi từ 8051.Nhận tín hiệu mức 1 khi
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
BÁO CÁO BÀI TẬP LỚN
MÔN: VI XỬ LÝ
Lớp: L18
Nhóm:5
Đề tài:4
Tên: MSSV:
-Nguyễn Văn Quang 2010551
-Võ Duy Thức 2012185
-Nguyễn Thành An 2012561
Thành phố Hồ Chí Minh, ngày 7, tháng 6, năm 2022
Trang 2Bảng phân chia công việc của các thành viên trong nhóm:
1 2010551 Nguyễn Văn Quang
2 2012185 Võ Duy Thức
3 2012561 Nguyễn Thành An
Trang 31 ĐỀ TÀI: 4
-Đề 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, vi mạch khác để điều khiển 5 LED 7 đoạn tại địa chỉ được mô tả như sau:
Địa chỉ truy xuất Ngoại vi giao tiếp
0000H-1FFFH Xuất giá trị cần hiển thị lên LED 7 đoạn, data 8 bit
theo thứ tự dp-a-b-c-d-e-f-g Trong đó dp là dấu chấm thập phân, a đến g là các thanh LED 7 đoạn 2000H-3FFFH Lựa chọn cho phép LED sáng/tắt
-Yêu cầu: Vẽ mô phỏng trên Proteus, lập trình cho 8051 hiển thị dòng chữ
“HELLO” lên led 7 đoạn với hiệu ứng nhấp nháy: sáng 0.7s sau đó tắt 0.3s rồi lặp lại
2 THIẾT KẾ MÔ PHỎNG TRÊN PROTEUS:
2.1.Sơ đồ khối tổng quan:
Hình 2.1.Sơ đồ khối tổng quan
Giải thích các khối:
-8051: Vi xử lý trung tâm
-74LS138: Mạch giải mã địa chỉ
Trang 4-74HC573: Mạch chốt giá trị
-LED: Ngoại vi cần giao tiếp
2.2.Sơ đồ khối chi tiết của từng phần:
2.2.1 Phần 8051:
Hình 2.2.Sơ đồ thiết kế phần 8051
Port 0 Output Xuất data ra ngoại vi LED 7 đoạn
Port 2 Output Xuất tín hiệu chọn chip cũng như tín hiệu cho
phép LED 7 đoạn sáng/tắt
WR Output Tín hiệu điều khiển ghi data ra ngoại vi, xuất tín
hiệu mức 1 khi không ghi dữ liệu ra ngoại vi và xuất tín hiệu mức 0 khi xuất tín hiệu ra ngoại vi
Trang 52.2.2 Phần 74LS138:
Hình 2.3.Sơ đồ thiết kế phần 74’138
A Input Nối với chân P2.5 (A13) của vi điều khiển 8051
để nhận tín hiệu định địa chỉ ngoại vi từ port 2
B Input Nối với chân P2.6 (A14) của vi điều khiển 8051
để nhận tín hiệu định địa chỉ ngoại vi từ port 2
C Input Nối với chân P2.7 (A15) của vi điều khiển 8051
để nhận tín hiệu định địa chỉ ngoại vi từ port 2 E1,E2,E3 Power Chân E1 nối lên nguồn, chân E2 và E3 nối đất để
luôn cho phép giải mã địa chỉ Y0 Output Xuất tín hiệu giải mã chọn vùng địa chỉ
0000H-1FFFH, mức 1 khi 3 chân A,B và C đều bằng 0, mức 1 trong các trường hợp khác Y1 Output Xuất tín hiệu giải mã chọn vùng địa chỉ
2000H-3FFFH, mức 0 khi 2 chân C,B bằng 0 và
Trang 6chân A bằng 1, mức 1 trong các trường hợp còn lại
2.2.3 Phần cổng logic NOR 2 ngõ vào:
Hình 2.4.Sơ đồ thiết kế phần cổng logic NOR 2 ngõ vào
Chân (pin) Kiểu chân Chức năng
WR Input Nhận tín hiệu ghi data ra ngoại vi từ 8051
Nhận tín hiệu mức 1 khi không ghi dữ liệu ra ngoại vi, nhận tín hiệu mức 0 khi ghi dữ liệu
ra ngoại vi Y1 Input Nối với ngõ ra Y1 của 74’138 Nhận tín hiệu
mức 0 khi chọn vùng địa chỉ 2000H-3FFFH, nhận tín hiệu mức 1 khi chọn các vùng địa
chỉ khác
LEDEN Output Xuất tín hiệu cho phép xuất giá trị chọn LED
sáng/tắt Xuất tín hiệu mức 1 khi xuất giá trị chọn LED sáng/tắt, xuất tín hiệu mức 0 khi không xuất tín hiệu chọn LED sáng/tắt
2.2.4 Phần cổng logic NOR 3 ngõ vào:
Trang 7Hình 2.5.Sơ đồ thiết kế phần cổng logic NOR 3 ngõ vào
WR Input Nhận tín hiệu ghi data ra ngoại vi từ 8051 Nhận
tín hiệu mức 1 khi không ghi dữ liệu ra ngoại vi, nhận tín hiệu mức 0 khi ghi dữ liệu ra ngoại vi Y0 Input Nối với ngõ ra Y0 của 74’138 Nhận tín hiệu
mức 0 khi chọn vùng địa chỉ 0000H-1FFFH, nhận tín hiệu mức 1 khi chọn các vùng địa chỉ
khác
A8…A12 Input Nối với các chân A8…A12 của 8051 để phân
vùng địa chỉ cho từng LED:
+LED0: 0000H-1EFFH +LED1: 0000H-1DFFH +LED2: 0000H-1BFFH +LED3: 0000H-17FFH +LED4: 0000H-0FFFH EN0…EN4 Output Tín hiệu cho phép LED sáng/tắt Xuất tín hiệu
mức 1 khi cho phép LED sáng, xuất tín hiệu mức 0 khi không cho phép LED sáng:
+EN0: LED 0 +EN1: LED1 +EN2: LED2 +EN3: LED3 +EN4: LED4
2.2.5 Phần 74HC573:
Trang 8Hình 2.6.Sơ đồ thiết kế phần 74’573(1)
D0,D1,…D4 Input Nối với chân P2.4 đến P2.0 (A12 đến A8)
của 8051 để nhận tín hiệu cho phép LED sáng/tắt, mức 1 khi cho phép LED tương ứng sáng, mức 0 khi cho phép LED tương
ứng tắt Q0,Q1,…Q4 Output Chốt và xuất tín hiệu cho phép LED
sáng/tắt, xuất tín hiệu mức 1 thì LED tương ứng sáng, xuất tín hiệu mức 0 thì
LED tương ứng tắt
LE Input Nối với ngõ ra của cổng NOR giữa WR
và ngõ ra Y1 của 74’138 để nhận tín hiệu chốt dữ liệu cho phép LED sáng/tắt Nhận mức 1 thì chốt tín hiệu của ngõ ra theo ngõ vào, mức 0 thì giữ nguyên giá trị ở
ngõ ra
OE Power Nối đất để luôn cho phép 74’573 xuất tín
hiệu
Trang 9Hình 2.7.Sơ đồ thiết kế phần 74’573 (2)
D0,D1,…D7 Input Nối với Port 1 của 8051 để nhận dữ liệu cần
xuất ra LED 7 đoạn Q0,Q1,…Q7 Output Nối với các chân dp-a-b-c-d-e-f-g để chốt giá
trị cần xuất ra LED 7 đoạn
LE Input Nối với ngõ ra của cổng NOR của WR, ngõ ra
Y0 của 74’138 và tín hiệu cho phép LED tương ứng (P2.0 đến P2.4) để chốt giá trị cần xuất ra LED Nhận tín hiệu mức 1 thì chốt giá trị ngõ
ra theo ngõ vào, nhận tín hiệu mức 0 thì giữ
nguyên giá trị ngõ ra
OE Power Nối với đất để luôn cho phép 74’573 xuất tín
hiệu
2.2.6 Phần LED:
Trang 10Hình 2.8.Sơ đồ thiết kế phần LED 7 đoạn anode chung
Chân (pin) Kiểu chân Chức năng
Q0,Q1,…Q7 Input Nối với ngõ ra của các mạch chốt
74’573 để nhận giá trị data cần xuất
ra LED
ELED Input Nối với ngõ ra của mạch chốt dữ
liệu chọn chip Bằng 1 thì LED sáng, bằng 0 thì LED tắt
3 ASSEMBLY CODE FOR 8051:
3.1.Sơ đồ giải thuật chương trình chính:
Trang 11Hình 3.1.Sơ đồ giải thuật chương trình chính
Chương trình chính là một vòng lặp vô hạn, trong vòng lặp này làm nhiệm vụ:
B1: Xuất giá trị cho phép LED sáng/tắt tại vùng địa chỉ 2000H-3FFFH, trong đó 3 tín hiệu A15,A14,A13 để định vùng địa chỉ, các tín hiệu từ A12 đến A8 để cho phép LED sáng/tắt, mức 1 nếu muốn LED sáng và mức 0 nếu muốn LED tắt
B2: Chọn vùng địa chỉ 0000H-1FFFH
B3: Chọn LED để xuất dữ liệu thông qua phân vùng địa chỉ:
+LED0: 0000H-1EFFH +LED1: 0000H-1DFFH +LED2: 0000H-1BFFH +LED3: 0000H-17FFH +LED4: 0000H-0FFFH
Trang 12B4: Nạp giá trị cần xuất ra LED vào thanh ghi A từ bộ nhớ chương trình, sau đó ghi giá trị trong thanh ghi A ra LED tương ứng
B5: Chuyển sang phân vùng địa chỉ của LED tiếp theo
B6: Kiểm tra xem đủ 5 LED sáng hay chưa, nếu chưa thì quay lại B3 B7: Delay 0.7s
B8: Xuất giá trị để 5 LED đều tắt tại địa chỉ 2000H-3FFFH
B9: Delay 0.3s, sau đó quay lại B1
3.2.Sơ đồ giải thuật chương trình ngắt (nếu có):
4 PHỤ LỤC:
4.1.Bản thiết kế mạch điện trên Proteus:
Hình 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:
LED EQU 1FFFH
LEDABLE EQU 2000H
ORG 0
Trang 13LCALL TAT
LCALL DELAY3
SJMP LOOP
TAT: MOV DPTR,#LEDABLE
MOV A,#00H
MOVX @DPTR,A
RET
BAT: MOV DPTR,#LEDABLE
MOV A,#00011111B
MOVX @DPTR,A
MOV R1,#0FEH
MOV R2,#5
MOV R3,#0
LAP: MOV A,R3
MOV DPTR,#TABLE
MOVC A,@A+DPTR
PUSH ACC
MOV DPTR,#LED
MOV A,R1
ANL DPH,A
POP ACC
MOVX @DPTR,A
MOV A,R1
RL A
MOV R1,A
INC R3
DJNZ R2,LAP
RET
DELAY7: MOV R1,#35
DL1: MOV R2,#100
DL2: MOV R3,#100
DJNZ R3,$
DJNZ R2,DL2
DJNZ R1,DL1
RET
Trang 14DELAY3: MOV R1,#15
DL3: MOV R2,#100
DL4: MOV R3,#100
DJNZ R3,$
DJNZ R2,DL4
DJNZ R1,DL3
RET
TABLE: DB 89H,86H,0C7H,0C7H,0C0H
END
4.3. Video chạy mô phỏng: