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

BÀI TẬP LỚN môn học vi xử lý – vi điều khiển

31 19 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ài Tập Lớn Môn Học: Vi Xử Lý – Vi Điều Khiển
Tác giả Lê Công Hiệu
Trường học Trường Đại Học Kỹ Thuật Công Nghiệp Thái Nguyên
Chuyên ngành Vi Xử Lý – Vi Điều Khiển
Thể loại bài tập lớn
Định dạng
Số trang 31
Dung lượng 2,64 MB

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

Nội dung

- Từ truyền thông nối tiếp của VĐK số 2: nhận 4 tín hiệu điều khiển từ VĐK số 2 RUN, STOP, LEFT, RIGHT => điều khiển động cơ chuyển sang các trạng thái tương ứng.. Output: - Điều khiển:

Trang 1

TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP

THÁI NGUYÊN

BÀI TẬP LỚN Môn học: Vi Xử Lý – Vi Điều Khiển

Sinh viên thực hiện: LÊ CÔNG HIỆỤ

MSSV: K185520207014

Trang 2

Phần 1 – Vi Điều Khiển

Câu 2: Tạo 2 xung 10Hz và 5Hz với vi điều khiển AT89C51, trong đó: xung 10Hz

có duty 25% và xung 5Hz có duty 50% Lập trình ASM chạy mô phỏng trên

Proteus Tự chọn các thông số của linh kiện

Thời gian tạo xung cao = thấp = 100000 us

Với delay thấp nhất =25000us vì vậy ta sẽ viết delay =25000us

Phần 2: Mạch mô phỏng

Các linh kiện được dung bao gồm :

Vi điều khiển –at89c51- chịu trách nhiệm phát xung

Máy hiện xung- oscilloscope- sử dụng để kiểm tra xung

Trang 3

Phần 3: Lập trình cho vi điều khiển :

Các lệnh được dùng và các thanh ghi:

1: mov p1,#00000000b ; copy p1=00000000

2 cpl p1.0 ; đảo gia trị tại chân p1.0 : nếu p1.0 = 0 thì đảo =1 và ngược lại

3 call tre ; đây là hàm gọi chạy trương trình con có tên là tre

Các thanh hi sử dụng :

1 thanh ghi timer0 : bao gồm phần th0 và tl0 là phần lưu trữ bit cao và bit thấp

Trang 4

Phần 4: Kết quả :

Xung 1 tần số 10hz duty =25%

Xung 2: tần số 5hz duty 50%

Trang 5

Bài 3: Lập trình ASM cho 2 VĐK AT89C51 (các thông số tự chọn) để hoạt động theo các yêu cầu sau:

VĐK số 1:

1 Input:

- Từ 2 nút bấm: LEFT, RIGHT => để động cơ sẽ quay trái hay sẽ quay phải

- Từ 2 nút bấm: RUN, STOP => để động cơ quay hay dừng

- Từ truyền thông nối tiếp của VĐK số 2: nhận 4 tín hiệu điều khiển từ VĐK số 2 (RUN, STOP, LEFT, RIGHT) => điều khiển động cơ chuyển sang các trạng thái tương ứng

2 Output:

- Điều khiển: động cơ 1 chiều bằng mạch cầu H

- Hiển thị 2 led đơn: trạng thái động cơ STOP hoặc RUN

- Hiển thị 2 led đơn: chiều quay của động cơ LEFT hoặc RIGHT (khi đang RUN: đang quay trái hay đang quay phải khi đang STOP thì 2 led này ý nghĩa là sẽ quay trái hay sẽ quay phải.)

- Hiển thị số lần quay trái lên 2 led 7 thanh pack2 số 1 Số lần quay trái là số lần động cơ chuyển từ trạng thái STOP -> RUN LEFT

- Hiển thị số lần quay phải lên 2 led 7 thanh pack2 số 2 Số lần quay trái là số lần động cơ chuyển từ trạng thái STOP -> RUN RIGHT

- Truyền thông nối tiếp sang VĐK số 2: trạng thái của động cơ, số lần động cơ quay trái, số lần động cơ quay phải (chỉ truyền thông khi có sự thay đổi)

VĐK số 2:

1 Input:

- Từ 2 nút bấm: LEFT, RIGHT => Để động cơ bên vđk số 1 sẽ quay trái hay sẽ quay phải

- Từ 2 nút bấm: RUN, STOP => Để động cơ bên vđk số 1 sẽ quay hay dừng

- Từ truyền thông nối tiếp của VĐK số 1 truyền đến: nhận được trạng thái của động

cơ, số lần quay trái , số lần quay phải => để hiển thị (xem output) - Output:

- Hiển thị 2 led đơn: trạng thái động cơ STOP hoặc RUN

- Hiển thị 2 led đơn: chiều quay của động cơ LEFT hoặc RIGHT khi đang RUN thì

2 led này ý nghĩa là đang quay trái hay đang quay phải khi đang STOP thì 2 led này ý nghĩa là sẽ quay trái hay sẽ quay phải

- Hiển thị số lần quay trái lên 2 led 7 thanh pack2 số 1 Số lần quay trái là số lần động cơ chuyển từ trạng thái STOP -> RUN LEFT

- Hiển thị số lần quay phải lên 2 led 7 thanh pack2 số 2 Số lần quay trái là số lần động cơ chuyển từ trạng thái STOP -> RUN RIGHT

- Truyền thông nối tiếp sang VĐK số 1: trạng thái mới cần chuyển sang của động

cơ (theo nút bấm của input cho VĐK số 2)./

Trang 6

Bài làm Phần 1:

Đưa ra sơ đồ làm việc của hệ thống

1 Khi bắt đầu cấp điện và chưa tác động gì

Trên cả 2 vdk

- Led đơn stop và right sáng các led đơn còn lại tắt

- Led 7 thanh pack 2 hiển thị 00

- Động cơ ở trạng thái dừng :

2 Khi bắt đầu tác động

Muốn tác động trước tiên ta chon trạng thái của động cơ

-Nếu muốn động cơ chạy thì ta ấn nút run còn nếu muốn động cơ dừng ta ấn nút stop

- trường hợp 1 động cơ quay phải

Ta điểu khiển lần lượt như sau

Bên vdk1 ta ấn nút run sau dó ấn nút right

Lúc này vdk1 sẽ xuất giá trị điểu khiển led đơn run và led đơn right sáng các led còn lại tắt

Sau đó sẽ xuất tiếp giá trị điều khiển mạch cầu h làm động cơ quay thuận Sau đó truyền xâu với 4 bit điều khiển sang vdk2

Sau khi truyền xong tiến hành quét tang led 7 thanh pack 2 x1 lên 1 giá trị

Cùng lúc này vdk2 nhận được phản hồi truyền về từ vdk tiến hành phân tích Sau đó hiển thị led đơn và led 7 thanh pack 2

Đối với trường hợp quay trái tương tự

Trường hợp 2 động cơ đang quay phải thì ta điều khiển bên vdk2 cho dc dừng

Trang 7

Linh kiện sử dụng:

1 Vi điều khiển at89c51

2 Led 7 thanh pack 2 anot chung ( các chân abcdefg =0 sáng) chân điều

khiển 1 2 dùng để điều khiển led 7 thanh tương ứng

3 Led đơn màu xanh nối k chung ( =1 sáng)

4 Linh kiện bán dẫn npn và pnp (dùng để tạo mạch cầu h)

5 Motor 1 chiều

6 Nút bấm (button)

Phần 3 lập trình 2 vdk tương tự nhau

Với bài này ta sẽ chia ra làm 3 phần chính;

Phần 1 Kiểm tra điều kiện

Bao gồm:

1 kiểm tra trạng thái các nút bấm

2 kiểm tra cac bit phản hổi từ cả 2 vdk cho nhau

3 kiểm tra trạng thái làm việc hiện tại của động cơ

Phần 2 Thực hiện yêu cầu khi thỏa mãn điều kiện

Bao gồm

1 điều khiển động cơ ở vdk1

2 hiển thị trạng thái làm việc trên led đơn ở cả 2 vdk

3 gửi và nhận phản hồi giữa 2 vdk

4 hiển thi led 7 thanh x1 x2

Trang 8

Lập trình ; đối với vdk1 và 2 các phần lập trình cơ bản là giống nhau tuy nhiên ở vdk1 có them phần điều khiển động cơ vì vậy em sẽ giải thích chi tiết phần vdk1 còn phần vdk 2 em đã giải thích tron phần code rồi ạ

Phần 1 các phần kiểm tra bao gồm:

1 kiểm tra trạng thái các nút bấm và cờ nhận phản hổi ri

2 kiểm tra cac bit phản hổi từ cả 2 vdk cho nhau và tách lấy bit điều khiển

3 kiểm tra trạng thái làm việc hiện tại của động cơ

Phần 2 Thực hiện yêu cầu khi thỏa mãn điều kiện

Bao gồm

1 điều khiển động cơ ở vdk1

1 khi nút run được bấm sẽ thực hiện phần kiểm tra tiếp theo

- Nếu nút left được ấn thì các phần sau sẽ được thực hiện;

 Cho độn cơ quay trái , truyền xâu , hien thi trang thai tren led đơn và tăng x1 lên 1 đơn vị

Trang 9

hiển thi led 7 thanh x1 x2

- Với x1 tăng

Trang 10

Phần giải thích chi tiết có tron code để tránh gây dài dòng cho phần nhật ký

em sẽ ko mô tả nhiểu tại đây

Về bài này sẽ thực hiện tuẩn tự theo các phần từ kiểm tra đến hết

Nhận xét cho bài này thì theo ý kiến riêng của em thì em có những đánh giá như sau

1 Phần khó nhất của bài này là phần phản hồi của 2 vi điều khiển với nhau Các lỗi hay mắc phải bao gồm lỗi tần số thạch anh , lỗi tốc độ truyển và lỗi cần truyển ký tự thành truyền giá trị

2 Phần khó tiếp theo là phần quét led 7 thanh pack 2 việc phải quét led liên tục thì ta mới có thể hiện ở cả 2 led 7 thanh này các lỗi thường gặp Lỗi delay quá lâu , lỗi ko thể thoát ra để thực hiện yêu cầu mới

 Nói chung bài này rất khó tuy nhiên khi chú tâm tìm hiểu và làm thì cũng không quá khó khan mấu chốt vẫn ở tư duy lập trình

Về phần cách làm của em thì em đã viết code riêng cho từng vdk sau đó gắn uart và để kiểm tra ngoải ra em đã viết code co từng phần từng yêu cầu sau đó ghép lại

Và đây là kết quả của em

1 Khi ta cấp nguồn và chưa có tác động

Trang 12

Động cơ dừng và led đơn chuyển trạng thái tử run => stop và giữ nguyên led trạng thái hiện tại

5 khi ta ấn run và chọn chiều quay phải

Động cơ quay phải

Led đơn hiển thị trạn thái quay phải

Led x2 tăng 1

Trang 13

Nhận xét về bài này dưới cuối bài làm !!!!!!!

: phần này để giải thích chi tiết là quá khó vì vậy em xin phép được giải thích ngắn gọn theo lần lượt nhiệm vụ các mảng như sau:

Trang 14

;NHAP CAC PHAN TU TRONG MANG

B LEA DX,CHUOI_B2

Trang 17

; GOI HAM NGAT NHAP 1 KI TU TU BAN PHIM: MA ACCI CUA KI TU DO DUOC LUU TRONG AL

; SAU DO TRU MA ACCI DI KI TU '0' (AL-'0') VA LUU VAO BL, TIEP TUC NHAN KI

TU TIEP THEO

; + NEU KI TU TIEP THEO KHAC PHIM ENTER (CO MA ACCI LA 13) THI NHAN SO

DA LUU O BL VOI 10

; TRU MA ACCI DI KI TU '0' (AL-'0') VA CONG VAO BL

; + SO SANH NEU KI TU TIEP THEO LA PHIM ENTER (CO MA ACCI LA 13) THI

DUNG NHAP SO => DA NHAP SO XONG

Trang 18

; CHIA SO CAN HIEN THI CHO 10 VA DUOC DAY DAN VAO STACK

; CHIA CHO DEN KHI THUONG CUA PHEP CHIA = 0 (AL = 0) THI DUNG CHIA

; CU MOI LAN CHIA THI CX TANG LEN 1 DE PHUC VU CHO VIEC XUAT

Trang 19

; LAN LUOT LAY TUNG SO DA DUOC DAY VAO STACK O TREN DUA VAO AX

; SAU DO CONG THEM '0' DE LAY MA ACCI CUA SO CAN HIEN THI

; GOI NGAT 21 DE XUAT RA MAN HINH VA LAP CHO DEN KHI CX = 0 (CX DA DUOC TICH LUY DAN O PHIA TREN)

Trang 20

; LAY LAN LUOT TUNG PHAN TU O TRONG MANG CAN HIEN THI RA LUU VAO DL

; SAU DO GOI HAM HIEN_THI DE IN SO DO RA MAN HINH

; IN CHO DEN KHI HET PHAN TU TRONG MANG, SO PHAN TU TRONG DUOC LAY TRONG BIEN SOPTU_AB

Trang 21

; SAP XEP MANG A TANG

Trang 22

MOV BX,0

MOV CX,0

LUOT_TIEP_A: MOV DX,1

LEA DI,MANG_TG MOV DI,[DI] ADD DI,CX

PUSH DI

SX_LANLUOT_A: POP DI

PUSH DI

MOV AL,[DI] ADD DI,DX

MOV BL,[DI] CMP AL,BL

JA HOAN_DOI_A JMP BO_QUA_A HOAN_DOI_A: MOV [DI],AL SUB DI,DX

MOV [DI],BL ADD DI,DX BO_QUA_A: MOV BX,DI

Trang 24

LEA DI,SO_PTU

MOV CL,[DI]

LEA DI,SOPTU_TG MOV [DI],CL

MOV CX,0

SX_TANG_B:

LEA DI,SOPTU_TG MOV CL,[DI]

DEC CX

LEA DI,MANG_TG MOV DI,[DI]

ADD CX,DI

LEA DI,DCLUU_SOPTU MOV [DI],CX

ADD DI,CX

PUSH DI

Trang 25

CMP AX,BX

JE XONG_B

INC DX

JMP SX_LANLUOT_B XONG_B:

INC CX

LEA DI,SOPTU_TG

Trang 26

; SAU KHI 2 MANG A B DA DUOC SAP XEP TANG DAN

; LAY TUNG PHAN TU CUA MANG A SO SANH VOI PHAN TU CUA MANG B

; NEU NHO HON THI DUOC DUA VAO MANG C

Trang 27

; NEU PHAN TU O MANG A NHO HON THI DUOC DUA VAO MANG C TRUOC

; NGUOC LAI NEU PHAN TU O MANG B NHO HON THI DUOC DUA VAO MANG C TRUOC

; VI PHAN TU O MANG B NHO HON NEN CHUYEN VAO MANG C TRUOC

; SAU KHI CHUYEN SONG TANG DX LEN THEM 1 DON VI DE SO SANH LUOT TIEP THEO

; DONG THOI TANG BX LEN THEM 1 DON VI DE CHO NHAN PHAN TU TIEP THEO CHUYEN_B_SANG_C:

Trang 29

; KHI NHAN THAY MANG A DA CHUYEN HET PHAN TU THI KO CAN SO SANH NUA, CHUYEN HET PHAN TU TIEP THEO TRONG MANG B VAO C

Trang 31

CHUOI_A2 DB 10,13,"NHAP MANG A: $"

CHUOI_A3 DB 10,13,"MANG A TRUOC KHI SX: $"

CHUOI_A4 DB 10,13,"MANG A SAU KHI SX: $"

CHUOI_B2 DB 10,13,"NHAP MANG B: $"

CHUOI_B3 DB 10,13,"MANG B TRUOC KHI SX: $"

CHUOI_B4 DB 10,13,"MANG B SAU KHI SX: $"

Cuối cùng em rất mong thầy cô giúp đỡ ạ

Ngày đăng: 06/10/2021, 16:23

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

w