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

CODE ASSEMBLY Đo khoảng cách sử dụng cảm biến siêu âm SRF05 xuất lên LCD dùng vi điều khiển 8051

59 61 2

Đ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 đề Đo Khoảng Cách Sử Dụng Cảm Biến Siêu Âm SRF05 Xuất Lên LCD Dùng Vi Điều Khiển 8051
Người hướng dẫn Giảng Viên Hướng Dẫn
Trường học Trường Đại Học Viện
Chuyên ngành Ngành Điện
Thể loại Đồ Án
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 59
Dung lượng 3,29 MB
File đính kèm Sản phẩm thực tế mạch in.zip (2 MB)

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI (5)
    • 1.1. Tổng quan về các phương phép đo mức nước (5)
      • 1.1.1 Đo mức chất lỏng bằng phao tuyến tính (5)
      • 1.1.2 Đo mức chất lỏng dạng quang (6)
      • 1.1.3 Đo mức chất lỏng bằng cảm biến điện dung (6)
      • 1.1.4 Đo mức chất lỏng bằng cảm biến siêu âm radar (7)
      • 1.1.5 Cảm biến đo mức sông hồ dạng thủy tĩnh (thả chìm) (9)
      • 1.1.6 Đo mức chất lỏng bằng sóng siêu âm (9)
    • 1.2. Lý do chọn cảm biến sóng siêu âm (11)
    • 1.3. Cảm biến siêu âm SRF-05 (11)
      • 1.3.1 Thông số kỹ thuật (12)
      • 1.3.2 Các đầu vào/ra của cảm biến (12)
      • 1.3.3 Các chế độ hoạt động của SRF-05 (12)
      • 1.3.4 Hoạt động phát và nhận phản hồi sóng âm cơ bản của SRF-05 (14)
  • CHƯƠNG 2. THIẾT KẾ THI CÔNG (15)
    • 2.1. Thiết kế phần cứng (15)
      • 2.1.1 Khối nguồn (15)
      • 2.1.2 Khối điều khiển (16)
      • 2.1.3 Khối cảm biến (21)
      • 2.1.4 Khối hiển thị (22)
      • 2.1.5 Mạch nguyên lý của hệ thống (26)
      • 2.1.6 Thiết kế mạch in (27)
    • 2.2. Thiết kế phần mềm (29)
      • 2.2.1 Lưu đồ thuật toán (29)
      • 2.2.2 Phần khởi tạo (30)
      • 2.2.3 Phần nhận tín hiệu đo (33)
      • 2.2.4 Phần xử lý tín hiệu đo (34)
      • 2.2.5 Phần hiển thị kết quả (38)
      • 2.2.6 Kiểm tra (40)
      • 2.2.7 Trường hợp vật ngoài khoảng đo (40)
      • 2.2.8 Tổng kết phần mềm (42)
  • CHƯƠNG 3. MÔ PHỎNG VÀ KẾT QUẢ (44)
    • 3.1. Mô phỏng (44)
    • 3.2. Kết quả (46)
  • CHƯƠNG 4. KẾT LUẬN (51)
    • 4.1. Kết luận (51)
    • 4.2. Hướng phát triển của đồ án (51)
  • TÀI LIỆU THAM KHẢO (53)
  • PHỤ LỤC (54)

Nội dung

Đo khoảng cách sử dụng cảm biến siêu âm SRF05 xuất lên LCD dùng vi điều khiển 8051, cụ thể là AT89S52Báo cáo trình bày cụ thể từ thiết kế mạch nguồn, thiết kế phần cứng, thiết kế phần mềm.Thiết kế phần cứng bao gồm thiết kế mạch nguyên lý, thiết kế mạch in, giải thích lý do chọn các thành phần.Thiết kế phần mềm có lưu đồ thuật toán và code assembly chi tiết

TỔNG QUAN VỀ ĐỀ TÀI

Tổng quan về các phương phép đo mức nước

Giám sát chất lỏng trong các nhà máy công nghiệp và đo mức nước tại các trạm thủy điện, khu vực thủy văn là một vấn đề quan trọng, với nhiều phương pháp khác nhau được áp dụng.

• Đo mức chất lỏng bằng phao tuyến tính

• Phương pháp đo mức axit, hóa chất, dầu dạng quang

• Đo mức chất lỏng bằng cảm biến điện dung

• Phương pháp đo mức chất lỏng bằng sóng siêu âm

• Phương pháp đo mức chất lỏng bằng sóng radar

• Sử dụng cảm biến áp suất để đo mức chất lỏng

• Cảm biến đo mức sông hồ dạng thủy tĩnh (thả chìm)

Sau đây là giới thiệu chung về một vài thiết bị đo mức được sử dụng phổ biến trong nhà máy

1.1.1 Đo mức chất lỏng bằng phao tuyến tính Đây là loại cảm biến đo mức nước, chất lỏng có chức năng nhận biết hoặc kiểm soát toàn bộ mức nước Tín hiệu của loại này là tín hiệu 4-20mA Cấu tạo phần thân của cảm biến được làm từ nhiều chất liệu khác nhau như inox, PVC, PP,…

Hình 1.1 Phao cảm biến đo mức chất lỏng

Tùy thuộc vào từng trường hợp và môi trường cụ thể, việc lựa chọn cảm biến mực nước phù hợp là rất quan trọng Cảm biến này có khả năng hoạt động hiệu quả trong không gian hạn chế và chịu được nhiệt độ cao, mang lại nhiều ưu điểm cho người sử dụng.

1.1.2 Đo mức chất lỏng dạng quang Đây là phương pháp thường được dùng trong môi trường dầu, hóa chất hoặc axit do đặc tính của phần đầu dò làm bằng nhựa nên tránh bị ăn mòn và tránh bị bám dính

Phương pháp này hoạt động dựa trên nguyên lý khi chất lỏng tiếp xúc với đầu cảm biến, nó sẽ phát tín hiệu PNP để thông báo hoặc điều khiển các thiết bị khác.

Với cấu tạo có ren kết nối, loại này được gắn trực tiếp vào thành bồn theo phương thẳng đứng hoặc nằm ngang.

Hình 1.2 Cảm biến dạng quang

Hiện nay, cảm biến dạng quang ít được sử dụng do độ tin cậy không cao, trong khi các loại cảm biến điện dung và siêu âm trở thành lựa chọn chính cho nhiều ứng dụng.

1.1.3 Đo mức chất lỏng bằng cảm biến điện dung

Cảm biến điện dung là thiết bị dạng que điện cực dài, được cắm trực tiếp vào chất lỏng để đo mức Thường thì, hai que sẽ được gắn ở vị trí cao nhất và thấp nhất để xác định tình trạng đầy hoặc cạn Loại cảm biến này thường được sử dụng để điều khiển bơm, tự động tắt khi bể đầy và mở khi bể cạn.

Hình 1.3 Cảm biến điện dung đo mức chất lỏng

Cảm biến này không chỉ đo mức chất lỏng mà còn có khả năng đo chất rắn như xi măng, hạt nhựa trong các bồn chứa với độ chính xác cao Những ưu điểm nổi bật của cảm biến này giúp nâng cao hiệu quả trong việc giám sát và quản lý chất lượng vật liệu.

• Độ chính xác cao, dễ lắp đặt

• Chịu được nhiệt độ và áp suất cao

• Lắp đặt đơn giản, chỉ cần thiết kế ren và gắn vào thành bồn chứa

• Dùng được trong nhiều môi trường: xăng, dầu, chất rắn, nước,…

Nhược điểm: vì đây là dạng que dò điện cực nên chiều dài tối đa của que dò là 2m

Ngoài ra, điện dung vẫn có loại dây cáp nối dài đo tối đa 40m với độ chính xác cao

1.1.4 Đo mức chất lỏng bằng cảm biến siêu âm radar Đây là phương pháp được coi là hoàn mỹ nhất trong các phương pháp đo mức chất lỏng hiện nay Dòng cảm biến này cũng có phương pháp đo và nguyên lý hoạt động tương tự như dòng cảm biến siêu âm Tuy nhiên, loại cảm biến này sẽ sử dụng sóng radar thay vì sóng siêu âm

Hình 1.4 Cảm biến radar đo mức chất lỏng, chất rắn, xi măng

Cảm biến đo mức bằng sóng radar không chỉ đo lường mức chất lỏng mà còn có khả năng đo liên tục mức chất rắn như hạt nhựa, xi măng, thức ăn gia súc, gạo và cám Thiết bị này mang lại độ chính xác cực kỳ cao với sai số chỉ 1mm trên toàn dải đo.

Cảm biến đo mức sử dụng sóng radar hoạt động dựa trên nguyên lý phát sóng và phản xạ sóng, tương tự như cảm biến siêu âm, nhưng với sự khác biệt là sóng radar được phát dọc theo que cảm biến, giúp nâng cao độ chính xác Ưu điểm nổi bật của cảm biến radar là khả năng đo lường chính xác trong nhiều điều kiện khác nhau.

• Đo không cần tiếp xúc, độ chính cao rất cao (sai số 1mm trên toàn dải đo)

• Có thể thay đổi khoảng cách đo trực tiếp trên đầu cảm biến

• Có thể chịu được nhiệt độ và áp suất cao

• Đo được nhiều ứng dụng khác nhau: đo dầu, đo xăng, đo xi măng, đo hạt nhựa…

Nhược điểm chính của dòng cảm biến đo mức này là giá thành cao, khiến nó trở thành lựa chọn đắt đỏ nhất trong các phương pháp đo mức chất lỏng đã được đề cập.

1.1.5 Cảm biến đo mức sông hồ dạng thủy tĩnh (thả chìm)

Cảm biến dạng thủy tĩnh là thiết bị phổ biến trong việc đo mức nước ở sông, hồ và hồ thủy điện Ưu điểm nổi bật của loại cảm biến này là tính đơn giản trong cách sử dụng; người dùng chỉ cần chọn mức đo phù hợp và thả cảm biến xuống vị trí cần đo.

Nhược điểm: không thể cài đặt được khoảng cách đo do đó phải chọn chính xác dải đo

Hình 1.5 Cảm biến đo mức dạng thủy tĩnh (thả chìm) 1.1.6 Đo mức chất lỏng bằng sóng siêu âm

Cảm biến đo mức chất lỏng không tiếp xúc là giải pháp an toàn cho các môi trường có nguy cơ cháy nổ, như trong việc đo mức xăng dầu.

Cảm biến siêu âm, mặc dù là phương pháp đo mức không tiếp xúc, vẫn đảm bảo độ chính xác cao với sai số chỉ 0,15% trên toàn dải đo.

Lý do chọn cảm biến sóng siêu âm

• Giá thành tương đối thấp so với các loại cảm biến khác như: radar, điện dung

• Đo không tiếp xúc nên hạn chế việc hư hỏng trong lúc đo lường

• Độ chính xác cao so với các phương pháp khác

• Ổn định cao theo thời gian

• Cài đặt đơn giản và thay đổi tuỳ ý theo thực tế

• Thời gian đáp ứng nhanh

• Tín hiệu ngõ ra dạng analog 4-20mA hoặc 0-10V và dạng digital bằng độ rộng xung.

Cảm biến siêu âm SRF-05

Cảm biến siêu âm SRF-05 được nhóm em chọn lựa vì tính phổ biến, giá thành rẻ và phù hợp với sinh viên Đặc biệt, cảm biến này có đầu ra số, giúp việc sử dụng trở nên dễ dàng hơn.

Hình 1.7 Cảm biến siêu âm SRF-05

• Điện áp hoạt động: 5VDC

• Khoảng cách phát hiện: 2 cm – 450 cm

• Tín hiệu kích hoạt đầu vào: 10 us xung TTL

• Kích thước: 43mm x 20mm x 17mm

1.3.2 Các đầu vào/ra của cảm biến

Cảm biến siêu âm SRF-05 có 5 chân, bao gồm:

• Chân VCC: Chân cấp nguồn 5V

Chân Trigger (Trig) là bộ phận quan trọng trong việc kích hoạt phát sóng siêu âm Trong chế độ 2, chân Trigger không chỉ có nhiệm vụ kích hoạt phát sóng siêu âm mà còn nhận tín hiệu phản hồi khi module tiếp nhận sóng siêu âm trở lại.

• Chân Echo: Sử dụng để nhận biết có sóng siêu âm phản hồi

• Chân Out: Chân chọn chế độ

• Chân GND: Chân nối đất của cảm biến

1.3.3 Các chế độ hoạt động của SRF-05 a) Chế độ 1: Tách biệt kích hoạt và phản hồi Ở chế độ này, 2 chân Trigger và Echo được sử dụng độc lập với nhau Để sử dụng chế độ này, chân Out để hở mạch (không kết nối) Để kích hoạt cảm biến SRF-05 phát ra sóng siêu âm, cần tạo 1 xung có độ rộng mức 1 tối thiểu là 10 us trên chân Triggẻ Sau đó cảm biến sẽ tạo ra 8 xung để phát ra sóng siêu âm Sau khi 8 sóng siêu âm được phát ra, chân Echo ngay lập tức được kéo lên mức cao Nếu sóng siêu âm gặp vật cản và phản hồi ngược lại cảm biến siêu âm, chân Echo sẽ được đưa xuống mức 0 Nếu độ rộng xung đo được lớn hơn 30ms, nghĩa là không có vật cản, hoặc vật cản nằm ngoài khoảng cho phép của module Bằng cách đo xung, ta hoàn toàn có thể để tính toán khoảng cách theo inch/cm hoặc đơn vị đo khác

Giản đồ xung các chân cảm biến ở chế độ 1 như sau:

Hình 1.8 Giản đồ xung ở chế độ 1

Cảm biến có thể kích hoạt sau 50 ms, tương đương 20 lần mỗi giây, vì vậy cần chờ 50 ms trước khi kích hoạt lần tiếp theo, ngay cả khi SRF05 phát hiện đối tượng gần và phản hồi ngắn hơn Điều này giúp đảm bảo sóng siêu âm đã được triệt tiêu, tránh sai số trong các lần đo tiếp theo Trong chế độ 2, chân TRIG vừa thực hiện chức năng kích hoạt sóng siêu âm vừa nhận tín hiệu phản hồi, và để sử dụng chế độ này, cần kết nối chân Out với 0V.

Giản đồ xung của các chân cảm biến trong chế độ 2 như sau

Hình 1.9 Giản đồ xung ở chế độ 2

Để kích hoạt phát sóng siêu âm, giống như chế độ 1, cần tạo xung Trigger có độ rộng tối thiểu 10 us Sau đó, cảm biến siêu âm sẽ phát ra 8 xung Khi sóng siêu âm được phát đi, chân Trigger sẽ được kéo lên mức cao.

1, trong khoảng thời gian 100us-25ms, nếu có sóng siêu âm phản hồi, chân Trigger

Nếu độ rộng xung đo lớn hơn 30 ms, điều này cho thấy không có vật cản hoặc vật cản nằm ngoài khoảng cho phép của module.

Thời gian chờ sau mỗi lần đo cũng tương tự như chế độ 1

1.3.4 Hoạt động phát và nhận phản hồi sóng âm cơ bản của SRF-05

Cảm biến hoạt động dựa trên nguyên tắc phát ra xung âm thanh điện tử và lắng nghe tiếng vọng khi sóng âm thanh gặp đối tượng và phản xạ trở lại Thời gian phản hồi được tính toán chính xác dựa trên khoảng cách đến đối tượng Xung âm thanh của SRF05 là siêu âm, nằm ngoài khả năng nghe của con người Mặc dù tần số thấp có thể được sử dụng cho nhiều ứng dụng, tần số cao lại mang lại hiệu suất tốt hơn trong các tình huống yêu cầu độ chính xác cao và phạm vi ngắn.

Nếu ngưỡng phát hiện đối tượng quá gần cảm biến, các đối tượng trên cùng một đường có thể gặp va chạm tại điểm mù Ngược lại, nếu ngưỡng này đặt quá xa, các đối tượng sẽ bị phát hiện mà không tạo ra đường va chạm.

Một kỹ thuật hiệu quả để giảm điểm mù và mở rộng khả năng phát hiện ở cự ly gần là lắp đặt thêm một đơn vị SRF-05 và hướng hai cảm biến về phía trước Cách thiết lập này tạo ra một khu vực phát hiện chồng chéo, giúp nâng cao độ chính xác trong việc phát hiện vật thể.

THIẾT KẾ THI CÔNG

Thiết kế phần cứng

Thiết bị đo mức bao gồm bốn thành phần chính: khối nguồn, khối cảm biến, khối điều khiển và khối hiển thị Khối nguồn đảm bảo cung cấp điện áp ổn định cho toàn bộ hệ thống Cảm biến siêu âm trong khối cảm biến sẽ truyền dữ liệu đến vi xử lý, sau đó kết quả được hiển thị trên màn hình LCD 1602.

Để đảm bảo hệ thống hoạt động ổn định, nhóm em đã sử dụng mạch nguồn ổn áp với IC LM7805, một linh kiện phổ biến cho các mạch nguồn vi điều khiển nhờ vào tính ổn định và chi phí thấp.

12 Điện áp đầu vào có thể được lấy từ nguồn xoay chiều 220V AC qua adapter 7-12V

DC hoặc lấy từ pin hoặc accquy có điện áp lớn hơn 7V Nhóm em sử dụng adapter 9V/1A

Mạch điện sử dụng 2 tụ hóa 100uF và 2 tụ gốm 104 để lọc và ổn định điện áp, đảm bảo đầu ra ổn định ở mức 5V cho các thiết bị trong hệ thống.

Ngoài ra đầu ra của mạch nguồn cũng sẽ được nối với 1 đèn LED để báo hiệu trạng thái nguồn

Vi điều khiển AT89S52 được ưa chuộng nhờ giá thành phải chăng và tính phổ biến cao, đặc biệt hỗ trợ chức năng nạp ISP, giúp quá trình sử dụng trở nên thuận tiện và dễ dàng hơn.

Vi điều khiển AT89S52 thuộc dòng vi điểu khiển 8052, nằm trong họ vi điều khiển

Vi điều khiển 8051 có bộ nhớ chương trình ROM 8K và bộ nhớ dữ liệu RAM 256 bytes, đi kèm với 3 bộ định thời, 32 chân tín hiệu vào/ra, 1 cổng truyền tin nối tiếp và 8 nguồn ngắt Thiết kế của vi điều khiển này dựa trên kiến trúc Harvard.

Chân 40 - Vcc là chân nguồn, cấp điện 5V cho vi điều khiển

Chân 20 – GND là chân nối đất

Port 0 (từ chân 32 đến 39) là cổng vào ra 8 bit Trường hợp là đầu ra, mỗi chân có thể nối sink dòng cho 8 thiết bị dòng TTL Khi được đưa lên logic 1, các cổng của port 0 có thể được sử dụng như đầu vào trở kháng cao

Port 1 (từ chân 1 đến chân 8) là cổng vào ra 8 bit với điện trở kéo lên bên trong Cổng P1.0 và P1.1 của dòng 8052 còn được dùng cho bộ định thời thứ 3 T2 của vi điều khiển

Port 2 (từ chân 21 đến 28) là cổng vào ra 8 bit với điện trở kéo lên bên trong Cổng này còn có chức năng là bus địa chỉ cao khi kết nối với bộ nhớ ngoài (Port 0 là địa chỉ thấp)

Port 3 (từ chân 10 đến chân 17) là cổng vào ra 8 bit với điện trở kéo lên bên trong Ngoài ra, cổng này còn dùng để điểu khiển bộ nhớ chương trình ngoài, giao tiếp nối tiếp cũng như phục vụ cho chắc năng của 2 bộ định thời T0 và T1

Chân 9 – RST là ngõ vào để thiết lập trạng thái ban đầu của vi điều khiển, khi được đưa lên logic 1 trong 2 chu kỳ máy

Chân 30 – ALE/𝑃𝑅𝑂𝐺 dùng để chốt địa chỉ cho bus địa chỉ thấp khi truy cập đến bộ nhớ ngoài Chân này có thể bỏ trống khi không sử dụng

Chân 29 - 𝑃𝑆𝐸𝑁 dùng để cho phép sử dụng bộ nhớ chương trình ngoài Chân này có thể bỏ trống khi không sử dụng

Chân 31 – 𝐸𝐴/𝑉𝑃𝑃 dùng để xác định chương trình thực hiện được lấy từ ROM nội hay là ngoại Chân này cần được nối với Vcc để sử dụng bộ nhớ chương trình trong

Chân 18 và 19 – XTAL1, XTAL2 là 2 chân để cấp nguồn xung dao động clock từ bên ngoài cho vi điều khiển 2 chân này thường được ghép nối với thạch anh, qua

2 tụ lọc 33pF và xuống mass

Hình 2.5 Tổ chức bộ nhớ

Vi điều khiển AT89S52 có 256 bytes bộ nhớ dữ liệu, với 128 bytes cao từ 80H đến FFH cần truy cập thông qua phương thức gián tiếp Vùng nhớ các thanh ghi chức năng đặc biệt được tổ chức song song với vùng nhớ byte cao và được truy cập bằng chế độ địa chỉ trực tiếp.

Mạch dao động thạch anh sử dụng tinh thể thạch anh 12MHz để cung cấp xung clock cho vi điều khiển, đồng thời được trang bị 2 tụ lọc 33pF nhằm ổn định dao động.

Mạch Reset có nút bấm để kích hoạt khi cần

Sơ đồ kết nối chung

Chân nguồn VCC và chân chọn bộ nhớ chương trình trong được nối với điện áp 5V từ mạch nguồn, chân GND được nối với mass

Chân P1.0 và P1.1 lần lượt được kết nối với 2 chân TRIGGER và ECHO của cảm biến siêu

Cổng P2 được dùng để truyền dữ liệu cho LCD, các chân P3.5, P3.6, P3.7 dùng để điều khiển LCD

Chân P1.2 được kết nối với đất thông qua một nút ấn, cho phép kiểm tra việc tiếp tục đo sau khi hiển thị Khi nhấn nút, hệ thống sẽ tiếp tục đo giá trị mới; nếu không nhấn, hệ thống sẽ tạm dừng và hiển thị kết quả hiện tại trên màn hình LCD.

2.1.3 Khối cảm biến a) Nguyên lý hoạt động

Cảm biến siêu âm SRF-05 hoạt động ở chế độ xung TRIGGER và xung ECHO trên hai chân khác nhau, vì vậy chân OUT sẽ không được sử dụng trong quá trình hoạt động.

Thiết kế phần mềm

Quy trình đo bao gồm 4 bước cơ bản và 1 bước kiểm tra để tiếp tục chương trình Đầu tiên, bước khởi tạo cài đặt các thành phần của hệ thống Tiếp theo, bước lấy tín hiệu đo xuất một xung có độ rộng tương ứng với khoảng cách đến vi điều khiển Bước xử lý kết quả đo do vi điều khiển thực hiện, tính toán và hiển thị kết quả lên màn hình LCD Cuối cùng, kết quả sẽ được hiển thị trên LCD, và quá trình đo có thể được lặp lại theo yêu cầu của người dùng.

Nội dung mã nguồn đầy đủ được trình bày trong phần phụ lục Sau đây là phần trình bày chi tiết về các thành phần của phần mềm

Hình 2.18 Lưu đồ quá trình 2.2.2 Phần khởi tạo

Phần khởi tạo sẽ bao gồm các bước:

• Khai báo và khởi tạo các cổng vào ra

• Khởi tạo bộ định thời

• Khởi tạo cho màn hình LCD a) Khai báo và khởi tạo các cổng vào ra

Khai báo cổng Port 2 là cổng giao tiếp LCD, chân P3.5-P3.6 lần lượt kết nối với chân E,RW,RS của LCD

Về phần giao tiếp với cảm biến siêu âm, khai báo chân Trig và Echo tương ứng với đầu ra P1.0 và P1.1

LCD EQU P2 ;Khai báo data bus cho LCD

E BIT P3.5 ;Khai báo các chân điều khiển LCD

TRIGGER BIT P1.0 ;Khai báo chân giao tiếp cảm biến

PHAN_NGUYEN EQU 40H ;Khai báo kết quả đo để xử lý số liệu

CLR TRIGGER ;Đặt chế độ ra/vào cho chân

Ngoài ra, phải đưa các chân ở chế độ đầu ra xuống logic 0 b) Khai báo bộ định thời

Bộ định thời trong chương trình sử dụng Timer 0 của AT89S52, hoạt động ở chế độ 1 – timer 16 bit, với giá trị #01H được nạp vào thanh ghi TMOD.

MOV TMOD,#01H c) Khởi tạo màn hình LCD

Để điều khiển LCD và ghi giá trị lên màn hình, trước tiên cần thiết lập dữ liệu trên Port 2 Sau đó, nâng chân E lên 1 để LCD xác nhận dữ liệu, rồi hạ chân E về 0 để tiếp tục các thao tác khác Có hai loại lệnh được sử dụng: ghi lệnh cho LCD thông qua thanh ghi IR (RS = 0) và ghi dữ liệu để hiển thị trên LCD qua thanh ghi DR (RS = 1).

CMD_LCD: ;Ra lệnh cho LCD

WRT_LCD: ;Viết lên màn hình

EXE: ;Do 2 câu lệnh có chung 1 phần nội dung MOV LCD,A ;nên sử dụng nhãn EXE để tiết kiệm

SETB E ;Truyền dữ liệu sang LCD

Để tối ưu hóa chương trình và đảm bảo giao tiếp chính xác với LCD, cần kiểm tra cờ BF trước khi thực hiện lệnh, vì LCD cần khoảng 10 micro giây để thực hiện mỗi lệnh.

28 sẵn sàng thực hiện lệnh hay chưa Đây là lệnh đọc dữ liệu từ LCD nên RS = 0 và

SETB BF ;latch for read

JB BF,recheck ;Kiểm tra lại

Hình 2.19 Lưu đồ khởi tạo LCD

Sau khi cấp nguồn, phải chờ tối thiểu 40 ms để có thể bắt đầu thiết lập các giá trị ban đầu cho LCD

Lệnh Function set có mã 38H, cho phép thiết lập chế độ giao tiếp 8 bit với vi điều khiển, hiển thị thông tin trên 2 hàng và sử dụng kiểu ký tự 5x8 điểm ảnh.

Lệnh Display on/off có mã 0CH tương ứng với chế độ hiển thị màn hình, không hiển thị con trỏ

Tiếp đến là câu lệnh 01H xóa hiển thị còn lưu trong LCD

Lệnh Entry mode set với mã 06H sẽ tăng vị trí con trỏ thêm 1 ô và tăng giá trị của thanh ghi AC thêm 1 đơn vị mỗi khi thực hiện ghi hoặc đọc DDRAM, trong khi nội dung hiển thị sẽ không bị dịch chuyển.

MOV LCD,#38H ;;8 bit, 2 hàng, 5X8 điểm ảnh

MOV A,#0CH ;Hiển thị màn hình, không hiển thị con trỏ CALL CMD_LCD

MOV A,#06H ;Tang con tro va AC nhung

CALL CMD_LCD ;noi dung k dich chuyen khi ghi DDRAM

;;;;DELAY de khoi tao LCD

Do cờ BF không thể kiểm tra khi khởi tạo hàm Function set lần đầu, nên hàm CMD_LCD không thể sử dụng Vì vậy, hàm Function set được gọi hai lần để đảm bảo thiết lập chế độ cho LCD một cách chính xác.

2.2.3 Phần nhận tín hiệu đo

Hình 2.20 Lưu đồ đo tín hiệu

JNB ECHO,$ ;Doi srf05 phat 8 xung sieu am

MOV TH0,#0C6H ;Khoi tao gia tri de co gioi han

MOV TL0,#03BH ;cho xung Echo la 15 ms

Trong phần RET, giá trị Timer 0 được đặt là C63BH, tương đương với 50747 Nhóm em chọn giới hạn đo khoảng 2.5m, tương ứng với thời gian 15 ms, nhằm dễ dàng xử lý số liệu và giảm thiểu ảnh hưởng của nhiễu ở khoảng cách lớn.

Kết thúc quá trình này, thời gian đo được được lưu vào 2 ô TH0 (byte cao của thời gian) và TL0 (byte thấp của thời gian)

2.2.4 Phần xử lý tín hiệu đo

Hình 2.21 Lưu đồ xử lý số liệu

Quá trình xử lý số liệu gồm 2 giai đoạn chính là tính toán và xử lý số liệu, được chia ra làm 3 bước

Để tính toán độ rộng xung, ta lấy giá trị đo được từ 2 byte TH0 và TL0, sau đó trừ đi giá trị đã đặt cho Timer Kết quả sau đó được chia cho 58 để chuyển đổi sang đơn vị cm, từ đó xác định được khoảng cách đo được.

MOV R0,TH0 ;lưu giá trị để tính toán

MOV R1,A ;lưu byte thấp vào R1

MOV R0,A ;lưu byte cao vào R0

Giá trị thời gian 16-bit được lưu trữ trong hai thanh ghi R0 (byte cao) và R1 (byte thấp) Chúng ta thực hiện phép trừ giữa byte thấp và byte cao Vì giá trị thu được luôn lớn hơn giá trị khởi tạo, nên việc trừ byte thấp và byte cao không cần phải xem xét các trường hợp đặc biệt.

Kết quả là độ rộng xung sau đó lại được lưu vào 2 thanh ghi R0 và R1 với R1 chứa byte thấp, R0 chứa byte cao

• Tính khoảng cách đo được

Khoảng cách đo được sẽ được tính bằng cách chia độ rộng xung được lưu trong R0-R1 cho 58

DIVIDE_58: //CHIA RO-R1 CHO 58; KET QUA = R3; PHAN DU = R1 MOV R3,#0

SUBB A,#00 ;Trừ byte cao cho Carry nếu byte thấp bị MOV R0,A ;tràn

NEXT: ;Xử lý số dư

Phép chia cho 58 được thực hiện bằng cách trừ hai số 16-bit, từ đó xác định được số lần trừ là kết quả và giá trị còn lại là số dư Quy trình này được minh họa qua lưu đồ thuật toán chia.

Hình 2.22 Lưu đồ phép chia

Thương của phép chia được lưu vào thanh ghi R3 còn số dư được lưu vào thanh ghi R1

Sau khi tính toán được giá trị, ta lưu kết quả gồm phần nguyên và phần thập phân vào ô tương ứng

Với phần nguyên, ta chỉ việc đưa giá trị của thanh ghi R3 mới tính được sau phép chia vào là xong

Phần thập phân được xác định bằng cách lấy số dư của phép chia, nhân với 10, và tiếp tục chia cho 58 Kết quả của phép chia này sẽ là phần thập phân, được làm tròn đến chữ số thứ nhất sau dấu phẩy.

MOV R0,B ;Thiết lập giá trị cho phép chia

Vậy kết thúc quá trình tính toán, ta thu được phần nguyên của kết quả ở ô 40H và phần thập phân ở ô 41H trong RAM b) Hex to BCD

Bước này là để chuyển giá trị đang ở hệ hexa của phần nguyên và phần thập phân về hệ cơ số 10 để hiển thị ra màn hình

Để chuyển đổi số từ hệ cơ số hexa sang mã BCD, ta thực hiện chia số cần chuyển liên tiếp theo số chữ số đã định sẵn Quy trình này rất đơn giản và hiệu quả.

10 và giữ lại phần dư là các mã BCD cần tìm

HEXTOBCD1: ;Chuyển 3 chữ số phần nguyên về mã BCD

MOV 52H,B ;Phần dư được chuyển vào ô 52H-hàng đơn vị MOV B,#10

HEXTOBCD2: ;Chuyển chữ số phần thập phân về mã BCD MOV A,R0

MOV 53H,B ;Ô 53H chứa chữ số phần thập phân

Kết thúc quá trình trên, ta thu được 3 chữ số phần nguyên lần lượt ở các ô nhớ 50H, 51H, 52H còn phần thập phân được lưu ở ô 53H c) BCD to ASCII

Để LCD có thể hiểu và hiển thị mã BCD, cần chuyển đổi nó thành mã ASCII Quá trình chuyển đổi này rất đơn giản, vì các ký tự trong bảng mã ASCII được mã hóa với giá trị lớn hơn mã BCD là 30H Chỉ cần cộng thêm 30H vào từng ô nhớ chứa giá trị cần in.

MOV R0,#50H ;Chuyển giá trị con trỏ vào R0 TIEPTHEO: ;Vòng lặp để cộng 4 ô liên tục MOV A,@R0

Kết quả của bước này là các ô từ 50H đến 54H trong RAM đã chứa các chữ số để sẵn sàng hiển thị lên LCD

2.2.5 Phần hiển thị kết quả Để hiện thị kết quả, trước hết cần chọn được vị trí trên màn hình muốn hiển thị Để thỏa mãn điều này, nhà sản xuất cung cấp câu lệnh đặt địa chỉ cho vùng DDRAM sẽ được ghi có mã 1XXXXXXXB với 7 bit có trọng số thấp là địa chỉ của ô nhớ cần ghi trong DDRAM Ở chế độ hiển thị 2 hàng được sử dụng trong đề tài này, hàng 1 có địa chỉ từ 00H đến 27H, hàng 2 có địa chỉ từ 40H đến 67H Tuy nhiên hiển thị trên màn hình chỉ có 16 ô ở mỗi hàng

MÔ PHỎNG VÀ KẾT QUẢ

Mô phỏng

Sử dụng Proteus thu được các kết quả mô phỏng

Hình 3.1 Kết quả mô phỏng

Khi khởi động hệ thống, giá trị của cảm biến là 229 LCD hiển thị tương ứng kết quả 229 cm

Tuy nhiên khi thay đổi giá trị cảm biến lên 233, LCD không hiển thị theo ngay lập tức

Phải sau khi nút ấn ở chân P1.2 được kích hoạt, hệ thống mới tiếp tục hoạt động và hiển thi giá trị 233 cm tương ứng với cảm biến

Khi vật nằm ngoài khoảng đo, LCD cũng hiển thị thông báo:

Khi đưa vật trở lại khoảng đo, LCD tiếp tục hiển thị giá trị đo được nếu bấm nút

Qua kết quả trên, có thể thấy phần mềm đã hoạt động hiệu quả, đúng yêu cầu lập trình.

Kết quả

Dựa theo mạch nguyên lý, nhóm em xây dựng các khối trên breadboard theo hình sau:

Hình 3.6 Sản phẩm trên breadboard

Cảm biến có 4 chân được kết nối theo thứ tự từ trên xuống: GND, Out, Echo, Trig và VCC Chân Out để hở mạch vì cảm biến hoạt động ở chế độ phát sóng và thu sóng qua hai chân khác nhau.

Hình 3.8 Khối nguồn và khối điều khiển

Khối nguồn sử dụng IC ổn áp LM7805 được cấp điện từ adapter 9V/1A qua Jack DC 5.5mm Ngoài ra, khối còn có một đèn LED bên phải kết nối với nguồn 5V qua trở 1k Ohm để hiển thị trạng thái nguồn.

Khối điều khiển sử dụng vi điều khiển AT89S52 đã được trang bị đầy đủ các điều kiện hoạt động, bao gồm mạch dao động thạch anh, mạch reset với nút bấm kích hoạt, cùng với các chân VCC, EA và GND được kết nối với nguồn 5V và 0V tương ứng.

Màn hình LCD được kết nối với vi điều khiển thông qua các chân tín hiệu và điều khiển tương ứng Mạch hiển thị sử dụng biến trở 10k Ohm để điều chỉnh độ tương phản, giúp cải thiện chất lượng hình ảnh Để đảm bảo đèn nền đủ tối cho việc chụp ảnh, chân A của màn hình LCD được nối tiếp qua một trở 10k Ohm lên nguồn 5V.

Khoảng cách hiển thị chính xác khi đo ở khoảng cách gần, đặc biệt là dưới 50cm, nơi giá trị đo ít biến động Tuy nhiên, khi khoảng cách tăng lên, giá trị đo sẽ có sự thay đổi nhỏ do sự ảnh hưởng của các vật cản không cố định.

Hình 3.12 Độ chính xác của sản phẩm có thể được kiểm chứng bằng thước đo

Khi để cảm biến phát sóng vào không gian trống phía trước, cảm biến hiển thị thông báo vật nằm ngoài khoảng đo

Sau khi đưa vật vào phạm vi đo, cảm biến lại hiện thị giá trị khoảng cách

Sản phẩm đã được thử nghiệm và hoạt động đúng như yêu cầu Bước tiếp theo là thiết kế mạch in và đóng hộp để hoàn thiện sản phẩm.

Ngày đăng: 16/08/2021, 21:56

TỪ KHÓA LIÊN QUAN

w