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

Tn1 Vxl .Docx

16 0 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

Tiêu đề Báo Cáo Thí Nghiệm 1
Tác giả Trần Lê Minh Hoàng, Nguyễn Minh Khánh, Trịnh Nguyên Dũ
Người hướng dẫn Th.s Nguyễn Trung Hiếu
Trường học Đại Học Bách Khoa - Đại Học Quốc Gia TP.Hồ Chí Minh
Chuyên ngành Khoa Điện - Điện Tử
Thể loại Báo cáo thí nghiệm
Năm xuất bản 2023
Thành phố TP.Hồ Chí Minh
Định dạng
Số trang 16
Dung lượng 315,46 KB

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

Nội dung

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ o0o Môn Vi xử lý Báo Cáo Thí Nghiệm 1 GVHD Th s Nguyễn Trung Hiếu Thành viên nhóm Trần Lê Minh Hoàng 2033530[.]

Trang 1

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

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

BỘ MÔN ĐIỆN TỬ

-o0o -Môn Vi xử lý Báo Cáo Thí Nghiệm 1

GVHD: Th.s Nguyễn Trung Hiếu

Thành viên nhóm:

- Trần Lê Minh Hoàng 2033530

- Nguyễn Minh Khánh 1932023

- Trịnh Nguyên Dũ 2148076

TP.Hồ Chí Minh, ngày 24 tháng 2, 2023

Trang 2

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN

THÍ NGHIỆM 1

Mục tiêu: Nắm được cách thức điều khiển trực tiếp ngoại vi thông qua các port I/O của

8051

Yêu cầu: Viết chương trình thực hiện việc đọc liên tục trạng thái của nút nhấn được

nối đến P1.0 và hiển thị ra led được nối tại chân P3.0 (bit thứ 0 của led thanh BL202).

Trả lời:

ORG 0000H

mov P3,#000H

loop:

JB P1.0,SET1 JNB P1.0,SET0 SET1:

SETB P3.0 JMP LOOP SET0:

CLR P3.0 JMP LOOP END

 Thử giải thích tại sao có đến 2 led cùng bị tác động khi nhấn hoặc thả nút?

+ Khi nhấn nút tại P1.0 LED tại P1.0 sáng đồng thời truyền giá trị nút nhấn đến P3.0  LED tại P3.0 đồng thời sáng

 Tổng kết xem các bit nào của 2 port có thể được dùng trong thí nghiệm

trên và giải thích tại sao?

+ Có 2 bit được sử dụng là bit 0 và bit 1 tương ứng với 2 trạng thái của nút nhấn Nhấn xuống là bit 0 và nhả ra là bit 1

Trang 3

THÍ NGHIỆM 2

Mục tiêu: Nắm được cách tạo trễ dùng vòng lặp lệnh.

Yêu cầu: Viết chương trình tạo xung vuông 1 Hz, chu kỳ nhiệm vụ 50% trên chân

P1.0

Kiểm tra:

 Biên dịch, thực thi và kiểm tra chương trình bằng cách sử dụng

oscilloscope để kiểm tra.

Trả Lời:

ORG 0000H

LOOP:

CPL P1.0 MOV R0, #5 LOOP3:

MOV R2, #200 LOOP2:

MOV R1, #250 LOOP1:

DJNZ R1, LOOP1 DJNZ R2, LOOP2 DJNZ R0, LOOP3 JMP LOOP

END

Trang 4

 Để tạo xung 1Hz, các vòng trễ tạo ra như thế nào Tính toán chính xác dựa

trên chương trình đã viết.

+ Để tạo độ trễ cho sung ta sử dụng vòng lặp, bằng 3 vòng lặp lồng nhau = 2 x

250 x 200 x 5 thì sẽ tạo ra độ trễ bằng 500 000 chu kì máy = 0.5s ( do chu kì nhiệm vụ 50% trên P1.0 )

 Sai số nhỏ nhất có thể đạt được so với yêu cầu là bao nhiêu?

Sai số nhỏ nhất có để đạt được là + 4 chu kì máy = 4us

Trang 5

THÍ NGHIỆM 3

Mục tiêu: Nắm được cách viết chương trình con để tạo trễ.

Yêu cầu: Viết chương trình con Delay1sIns và dùng chương trình con này để chớp/tắt

LED đơn gắn vào P1.0 sau mỗi khoảng thời gian 1s

Kiểm tra:

Biên dịch, thực thi và kiểm tra chương trình bằng cách quan sát LED đơn Trả lời:

ORG 0000H

LOOP:

CPL P1.0 CALL Delay1sIns Delay1sIns:

MOV R0, #10 LOOP3:

MOV R2, #200 LOOP2:

MOV R1, #250 LOOP1:

DJNZ R1, LOOP1 DJNZ R2, LOOP2

DJNZ R0, LOOP3

Trang 6

JMP LOOP

RET

END

Thời gian 1s được tạo ra như thế nào?

+ Để tạo độ trễ cho sung ta sử dụng vòng lặp, bằng 3 vòng lặp lồng nhau = 2 x 250

x 200 x 10 thì sẽ tạo ra độ trễ bằng 1000 000 chu kì máy = 1s

Bây giờ nếu một bạn sinh viên muốn viết chương trình con tạo trễ 2s thì phải sửa lại chương trình con đã viết như thế nào?

Thay thế câu lệnh MOV R0, #10 = MOV R0, #20

Trang 7

THÍ NGHIỆM 4

Mục tiêu: Nắm được cách sử dụng chương trình con để tạo xung.

Yêu cầu: Viết chương trình tạo xung vuông 2Hz chu kỳ nhiệm vụ 70% tại chân P1.0 Kiểm tra:

Biên dịch, thực thi và kiểm tra chương trình bằng cách quan sát LED đơn Trả lời:

ORG 0000H

LOOP:

SETB P1.0 CALL Delay1 CLR P1.0 CALL Delay2 JMP LOOP Delay1:

MOV R0, #4 LOOP3:

MOV R2, #175 LOOP2:

MOV R1, #250

Trang 8

LOOP1:

DJNZ R1, LOOP1 DJNZ R2, LOOP2

DJNZ R0, LOOP3

RET

Delay2:

MOV R0, #2

LOOP6:

MOV R2, #150 LOOP5:

MOV R1, #250 LOOP4:

DJNZ R1, LOOP4 DJNZ R2, LOOP5

DJNZ R0, LOOP6

RET

END

Thời gian mức cao và mức thấp của xung lần lượt là bao nhiêu chu kỳ máy? (Lấy tần số của thạch anh xấp xỉ 12MHz) Giá trị nạp vào các thanh ghi là bao nhiêu?

F=2Hz  T = 0.5s = 500 000 MCs

D =Ton T = 70%  Ton 350 000 MCs = 2 x 250 x 175 x 4

T off= 2x250x150x2

Trang 9

Viết lại chương trình tạo xung vuông 2Hz với chu kỳ nhiệm vụ bây giờ là 80%?

+ D =T on

T = 80%  T on =400 000 MCs = 2 x 200 x 100 x 10

+ T off=100 000 MCs=2x250x100x2

ORG 0000H

LOOP:

SETB P1.0

CALL Delay1

CLR P1.0

CALL Delay2

JMP LOOP

Delay1:

MOV R0, #10

LOOP3:

MOV R2, #100

LOOP2:

MOV R1, #200

LOOP1:

DJNZ R1, LOOP1

DJNZ R2, LOOP2

DJNZ R0, LOOP3

RET

Trang 10

MOV R0, #2

LOOP6:

MOV R2, #100 LOOP5:

MOV R1, #250 LOOP4:

DJNZ R1, LOOP4 DJNZ R2, LOOP5

DJNZ R0, LOOP6

RET

END

Trang 11

THÍ NGHIỆM 5

Mục tiêu: Nắm được cách tạo nhiều xung khác nhau trên 8051.

Yêu cầu: Viết chương trình tạo 2 xung vuông 0.5Hz và 1Hz với cùng chu kỳ nhiệm vụ

là 50% lần lượt trên chân P1.0 và P1.1

Kiểm tra:

Biên dịch, thực thi và kiểm tra chương trình bằng cách quan sát trên các LED đơn.

F1=0,5Hz  T = 2s = 2 000 000 MCs

D =Ton T = 50%  T1on= 1 000 000 MCs = 2 x 250 x 100 x 20 2

T 1 off= T1on=1 000 000 MCs = 2 x 250 x 100 x 20

F2=1Hz T2 = 1s = 1 000 000 MCs

D =Ton T = 50%  T2on= 500 000 MCs = 2 x 250 x 100 x 10 2

T 2 off= T2on=500 000 MCs = 2 x 250 x 100 x 10

Trả lời :

ORG 0000H

LOOP:

SETB P1.0

SETB P1.1

Trang 12

CALL Delay1

CLR P1.0

SETB P1.1

CALL Delay1

SETB P1.0

CLR P1.1

CALL Delay1

CLR P1.0

CLR P1.1

CALL Delay1

JMP LOOP

Delay1:

MOV R0, #5

LOOP6:

MOV R2, #100 LOOP5:

MOV R1, #250 LOOP4:

DJNZ R1, LOOP4 DJNZ R2, LOOP5

DJNZ R0, LOOP6

RET

END

Trang 13

 Vẽ giản đồ của 2 xung? Các chương trình con viết với thời gian trễ là bao nhiêu?

 Chương trình con với độ trễ là 0.25s

 Tại mỗi thời gian tạo trễ, các chân P1.0 và P1.1 xuất tín hiệu như thế nào?

Tại thời gian độ trễ đầu tiên P1.0 = 1, P1.1 = 1

Tại độ trễ thứ 2 P1.0 =0; P1.1 =1

Tại độ trễ thứ 3 P1.0 = 1; P1.1 = 0

Tại độ trễ thứ 4 P1.0 = 0; P1.1 = 0

Trang 14

THÍ NGHIỆM 6

Mục tiêu: Hiểu được cách hiển thị trên và tạo hiệu ứng trên bar LED.

Yêu cầu: Viết chương trình tạo hiệu ứng quay LED: các LED đơn trên BARLED1

sáng lần lượt từ trái sang phải sau thời gian 1s và lặp lại Sử dụng chương trình con

Delay1sIns đã viết ở trên.

Kiểm tra:

 Biên dịch, thực thi và kiểm tra chương trình bằng cách quan sát hiệu ứng

trên bar led.

Trả lời:

ORG 0000H

LOOP:

MOV P1, #0FFH CLR P1.0

CALL Delay1

SETB P1.0 CLR P1.1 CALL Delay1

SETB P1.1

Trang 15

CLR P1.2 CALL Delay1

SETB P1.2 CLR P1.3 CALL Delay1

SETB P1.3 CLR P1.4 CALL Delay1

SETB P1.4 CLR P1.5 CALL Delay1

SETB P1.5 CLR P1.6 CALL Delay1

SETB P1.6 CLR P1.7 CALL Delay1

Trang 16

JMP LOOP Delay1:

MOV R0, #10 LOOP6:

MOV R2, #200 LOOP5:

MOV R1, #250 LOOP4:

DJNZ R1, LOOP4 DJNZ R2, LOOP5

DJNZ R0, LOOP6 RET

END

 Led ngoài cùng bên trái kết nối đến MSB (most significant bit) hay LSB

(less significant bit) của port 1?

ĐA: MSB (most significant bit)

Ngày đăng: 20/04/2023, 12:41

🧩 Sản phẩm bạn có thể quan tâm

w