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

Thí nghiệm Vi xử lý 4: Thí nghiệm giao tiếp Timer và Serial Port

22 208 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 22
Dung lượng 605,71 KB

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

Nội dung

Báo cáo thí nghiệm Vi xử lý Đại học Bách Khoa Đại học Quốc Gia thành phố Hồ Chí Minh.Bài thí nghiệm 3: Thí nghiệm giao tiếp Timer và Serial Port.Thí nghiệm 1: Mục tiêu: Nắm được cách thức tạo trễ sử dụng Timer chế độ 1.Yêu cầu: Viết chương trình tạo sóng vuông 1 Hz trên chân P1.0 sử dụng timer 0 ở chế độ 1.

Trang 1

BÀI THÍ NGHIỆM 4

THÍ NGHIỆM GIAO TIẾP TIMER VÀ SERIAL PORT

MỤC TIÊU

 Nắm được cách lập trình điều khiển timer

 Nắm được cách lập trình điều khiển serial port

CHUẨN BỊ

 Đọc chương 1, chương 3, chương 6 và chương 8 của tài liệu hướng dẫn

 Viết chương trình và mô phỏng các bài thí nghiệm trên Proteus dựa trên bài thí nghiệm 0

Trang 2

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

 Để tạo sóng 1 Hz, ta có thể sử dụng timer ở chế độ 2 được không?

 Dạng sóng có bị sai số không? Để hạn chế sai số ta phải nạp các giá trị vào timer như thế nào?

Trang 3

b Trả lời câu hỏi

1) Để tạo sóng 1 Hz, ta có thể sử dụng timer ở chế độ 2 được không?

Để tạo sóng 1Hz, có thể sử dụng timer ở chế độ 2 (với số vòng lặp lớn hơn nhiều so với 10)

2) Dạng sóng có bị sai số không? Để hạn chế sai số ta phải nạp các giá trị vào timer như thế nào?

Dạng sóng có bị sai số

Để hạn chế sai số, ta phải nạp các giá trị vào timer là ước lớn nhất mà timer có thể có của giá trị thời gian cần tạo trễ để hạn chế sai số trong mỗi vòng lặp.

Trang 4

BÀI THÍ NGHIỆM 4

THÍ NGHIỆM GIAO TIẾP TIMER VÀ SERIAL PORT

THÍ NGHIỆM 2

Mục tiêu: Nắm được cách thức tạo trễ sử dụng Timer chế độ 2

Yêu cầu: Viết chương trình tạo sóng vuông 1 Hz trên chân P1.0 sử dụng timer 0 ở chế độ 2

Hướng dẫn: Dùng một biến đếm 16 bit để đếm mỗi lần timer tràn Khi đếm đủ số lần timer tràn thì

đảo chân port

Kiểm tra:

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

 Ở chế độ 2, độ trễ gây ra do các câu lệnh đảo giá trị bit có gây sai số cho dạng sóng ngõ ra không? Vì sao?

 Nên sử dụng chế độ 1 hay chế độ 2 khi tạo trễ? Tại sao?

Trang 5

b Trả lời câu hỏi

1) Ở chế độ 2, độ trễ gây ra do các câu lệnh đảo giá trị bit có gây sai số cho dạng sóng ngõ

ra không? Vì sao?

Trang 6

BÀI THÍ NGHIỆM 4

THÍ NGHIỆM GIAO TIẾP TIMER VÀ SERIAL PORT

Ở chế độ 2, độ trễ gây ra do các câu lệnh đảo giá trị bit không gây ra sai số cho dạng sóng ngõ ra, vì trong khi thực hiện các câu lênh đảo bit thì Timer vẫn tiếp tục chạy, không phải dừng lại để thực thi câu lệnh đảo bit như Timer ở chế độ 1

2) Nên sử dụng chế độ 1 hay chế độ 2 khi tạo trễ? Tại sao?

Nên sử dụng chế độ 2 để tạo trễ vì ở chế độ 2, timer chạy liên tục mà không bị ngắt khi

cờ báo tràn bật để thực hiên các câu lệnh khác, do đó nó giảm thiểu được sai số gây ra

Trang 7

BÀI THÍ NGHIỆM 4

THÍ NGHIỆM GIAO TIẾP TIMER VÀ SERIAL PORT

THÍ NGHIỆM 3

Mục tiêu: Hiểu được cách chống rung (debounce) nút nhấn bằng cách dùng phần mềm

Yêu cầu: Viết chương trình làm nhiệm vụ, khi nhấn SW lần thứ nhất led ở chân P1.1 sáng Tiếp đó,

SW nhấn lần 2 thì led ở chân P1.1 tắt Cứ tiếp tục như vậy, …

Kiểm tra:

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

 Thời gian được chọn để chống rung nút nhấn là bao nhiêu? Số lần đọc là bao nhiêu?

 Thử viết chương trình giảm thời gian chống rung và tăng số lần đọc?

WAIT: JB P1.0, MAIN ; Chờ SW310 (chân P1.0) được nhấn

ACALL DL50ms ; Thời gian tạo trễ 50ms

Trang 9

BÀI THÍ NGHIỆM 4

THÍ NGHIỆM GIAO TIẾP TIMER VÀ SERIAL PORT rung nút nhấn) thì led nối với chân P1.1 mới bật/tắt

b Trả lời câu hỏi

1) Thời gian được chọn để chống rung nút nhấn là bao nhiêu? Số lần đọc là bao nhiêu?

Thời gian được chọn để chống rung là 50ms, số lần đọc là 2.

2) Thử viết chương trình giảm thời gian chống rung và tăng số lần đọc?

Trang 10

 Biên dịch và kiểm tra hoạt động của chương trình

 Khi sử dụng serial port, timer nào có thể được dùng để chỉnh tốc độ baud? Để đạt được tốc độ baud là 19200bps, bit SMOD bằng mấy và giá trị nạp cho timer là bao nhiêu và timer ở mode làm việc nào?

 Cờ báo bộ phát đã phát xong tên là gì? Ở địa chỉ bao nhiêu?

Trang 12

BÀI THÍ NGHIỆM 4

THÍ NGHIỆM GIAO TIẾP TIMER VÀ SERIAL PORT

MESS: DB "Hello World!", 0

2 Kết quả thì nghiệm

a Kết qu ả mô phỏng: (Time/div = 0.25s, V/div = 1V cho Channel A)

 Channel A: chân P1.0

b Trả lời câu hỏi

1) Khi sử dụng serial port, timer nào có thể được dùng để chỉnh tốc độ baud? Để đạt được

tốc độ baud là 19200bps, bit SMOD bằng mấy và giá trị nạp cho timer là bao nhiêu và timer ở mode làm việc nào?

Khi sử dụng serial port, timer 1 được sử dụng để chỉnh tốc độ baud Để đạt được tốc độ baud là 19200bps, bit SMOD bằng 1 và giá trị nạp cho timer 1 là –3 và timer ở mode 2

2) Cờ báo bộ phát đã phát xong tên là gì? Ở địa chỉ bao nhiêu?

Cờ báo đã phát xong tên là TI, ở địa chỉ 9AH

Trang 13

Viết chương trình nhận các ký tự từ máy tính gửi đến EME-MC8 thông qua Hercules (bằng cách

gõ các ký tự trên bàn phím khi đang ở trong chương trình Hercules) và hiển thị lên LCD tại vị trí cột 0 hàng 0, đồng thời phát trở lại lên serial port

Kiểm tra:

 Biên dịch và kiểm tra hoạt động của chương trình

 Tại sao sau khi nhận xong 1 byte dữ liệu, ta phải xóa cờ RI?

Trang 14

BÀI THÍ NGHIỆM 4

THÍ NGHIỆM GIAO TIẾP TIMER VÀ SERIAL PORT ACALL DISP ; Xuất ký tự lên màn hình

ACALL TRANSMIT ; Gửi ký tự lên serial port

SJMP MAIN ; Bắt đầu lại chương trình

TRANSMIT: ; Chương trình gửi ký tự

INIT_LCD: ; Chương trình khởi động LCD

MOV A, #38H ; 8 bit interface + chế độ 2 hàng

Trang 16

BÀI THÍ NGHIỆM 4

THÍ NGHIỆM GIAO TIẾP TIMER VÀ SERIAL PORT

Tại sao sau khi nhận xong 1 byte dữ liệu, ta phải xóa cờ RI?

Khi nhận xong 1 byte, ta phải xóa cờ RI vì khi cờ RI bằng 1 là trạng thái đã nhận xong

dữ liệu và ngừng nhận dữ liệu mới, nên ta phải xóa cờ RI để MCU có thể tiếp tục nhận dữ liệu mới

Trang 17

Cải thiện chương trình viết trong thí nghiệm 5 thêm các tính năng sau:

Nếu ký tự nhận được là chữ thì hiển thị lên LCD; nếu ký tự nhận được là Enter thì xuống hàng; nếu ký tự nhận được là ESC thì xóa màn hình LCD; nếu ký tự nhận được là Backspace thì xóa ký

tự bên trái dấu nháy

Kiểm tra:

 Biên dịch và kiểm tra hoạt động của chương trình

 Mã ASCII của phím Enter, ESC và Backspace là gì?

 Để xóa ký tự bên trái dấu nháy, ta phải thực hiện dịch con trỏ sang trái, sau đó chèn khoảng trắng và dịch con trỏ sang trái một lần nữa? Mã lệnh cần nạp cho LCD để điều khiển con trỏ là gì?

Trang 18

ACALL INIT_LCD ; Khởi động LCD

CHECK_LETTER: ; Kiểm tra ký tự: Letter?

ACALL LETTER ; Gọi chương trình kiểm tra ký tự JNB F0, MAIN ; Nếu F0 = 0, không phải ký tự

ACALL DISP ; Hiển thị letter lên LCD

Trang 19

BÀI THÍ NGHIỆM 4

THÍ NGHIỆM GIAO TIẾP TIMER VÀ SERIAL PORT

ACALL CURSOR ; Thực hiện tăng vị trí cursor

ACALL TRANSMIT ; Gửi letter lên serial port SJMP MAIN ; Quay lại chờ nhận ký tự tiếp theo

JB ROW, E_R2 ; Kiểm tra đang ở hàng nào

BACKSPACE: ; Chương trình thực thi BACKSPACE

JB ROW, B_R2 ; Kiểm tra đang ở hàng nào B_R1: DEC R1 ; Lùi vị trí cursor hàng 1 đi 1

MOV A, R1

B_R2: DEC R2 ; Lùi vị trí cursor hàng 2 đi 1

MOV A, R2 B_S: ADD A, #80H ; Lấy mã lệnh đặt vị trí cursor tại vị trí xóa

PUSH ACC ; Cất mã lệnh vào stack ACALL COMD ; Thực hiện đặt vị trí cursor ở vị trí xóa MOV A, #' '

ACALL DISP ; Chèn kí tự space vào, cursor dịch phải 1 POP ACC ; Lấy mã lệnh từ stack

ACALL COMD ; Đặt cursor lại vị trí tại vị trí xóa

Trang 20

CURSOR: ; Tăng vị trí cursor sau mỗi lần nhập ký tự

JB ROW, C_R2 ; Kiểm tra đang ở hàng nào

C_R1: INC R1

RET C_R2: INC R2

RET TRANSMIT:

Trang 22

b Trả lời câu hỏi

1) Mã ASCII của phím Enter, ESC và Backspace là gì?

Mã ASCII của Enter, ESC, Backspace lần lượt là 0DH, 1BH, 08H.

2) Để xóa ký tự bên trái dấu nháy, ta phải thực hiện dịch con trỏ sang trái, sau đó chèn

khoảng trắng và dịch con trỏ sang trái một lần nữa? Mã lệnh cần nạp cho LCD để điều khiển con trỏ là gì?

Mã lệnh cần nạp cho LCD để điều khiển con trỏ là 80H + xxH với xxH là vị trí DDRAM cần đặt con trỏ

Ngày đăng: 20/09/2021, 11:40

TỪ KHÓA LIÊN QUAN

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

w