Tải bản đầy đủ (.doc) (16 trang)

Thiết kế mạch đo khoảng cách dùng cảm biến siêu âm và vi xử lý 8051

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (614.2 KB, 16 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN

BÁO CÁO
MÔN VI XỬ LÝ

ĐỀ TÀI: Thiết kế mạch đo khoảng cách dùng
cảm biến siêu âm và vi xử lý 8051

Giảng viên hướng dẫn : Nguyễn Cảnh Quang

1


NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
Ngày

tháng



năm

(chữ kí)

2


MỤC LỤC

3


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
2.1 Lý thuyết về sóng siêu âm
Siêu âm là sóng cơ học có tần số lớn hơn tần số âm nghe thấy (trên 20kHz). Thính giác
của con người rất nhạy cảm với dải tần số từ âm trầm (vài chục Hz) đến các âm thanh rất
cao (gần 20kHz). Một số loài vật như dơi, ong có thể cảm nhận được siêu âm.
Các nguồn sóng siêu âm có trong tự nhiên: Dơi, một vài loài cá biển phát sóng siêu
âm để định hướng … Nói chung các sóng này nằm trong vùng tần số 20
– 100 kHz. Sóng siêu âm ứng dụng trong y học có tần số từ 700 KHz đến 50 MHz
trong đó siêu âm chẩn đoán sử dụng các tần số từ 2 MHz đến 50 MHz.

2.2 Cảm biến siêu âm HC-SR04(SRF05)
a)Giới thiệu
SRF05 là một bước phát triển từ SRF04, được thiết kế làm tăng tính linh hoạt, tăng phạm
vi, ngoài ra còn giảm bớt chi phí. SRF05 là hoàn toàn tương thích với SRF04.
Khoảng cách được tăng từ 3 – 4m.

Hình 1: Cảm biến siêu âm SRF 05

SRF05 cho phép sử dụng một chân duy nhất cho cả kích hoạt và phản hồi, do đó tiết
kiệm giá trị trên chân điều khiển. Khi chân chế độ không kết nối, thì SRF05 hoạt động riêng
biệt chân kích hoạt và chân hồi tiếp, như SRF04. SRF05 bao gồm một thời gian trễ trước
khi xung phản hồi để mang lại điều khiển chậm hơn hẳn như bộ điều khiển thời gian cơ bản
Stamps và Picaxe để thực hiện các xung lệnh.
b)Hoạt động phát và nhận phản hồi song âm cơ bản của SRF05
Nguyên tắc cơ bản của sonar: là tạo ra một xung âm thanh điện tử và sau đó lắng nghe
tiếng vọng tạo ra khi các làn sóng âm thanh số truy cập một đối tượng và được phản xạ trở
lại. Để tính thời gian cho phản hồi trở về, một ước tính chính xác có thể được làm bằng
4


khoảng cách tới đối tượng. Xung âm thanh tạo ra bởi SRF05 là siêu âm, nghĩa là nó ở trên
phạm vi nhận xét của con người. Trong khi tần số thấp hơn có thể được sử dụng trong các
loại ứng dụng, tần số cao hơn thực hiện tốt hơn cho phạm vi ngắn, nhu cầu độ chính xác
cao.

Hình 2: Phản xạ sóng – nguyên lí cơ bản cưa cảm biến siêu âm
- Một số đặc điểm khác của cảm biến siêu âm SRF05
Mức độ của sóng âm hồi tiếp phụ thuộc vào cấu tạo của đối tượng và góc phản xạ của nó.

Hình 3: Phản xạ sóng với 1 số vật
Một đối tượng mềm có thể cho ra tín hiệu phản hồi yếu hoặc không có phản hồi. Một đối
tượng ở một góc cân đối thì mới có thể chuyển thành tín hiệu phản chiếu một chiều cho cảm
biến nhận.
- Vùng phát hiện của SRF05
Nếu ngưỡng để phát hiện đối tượng được đặt quá gần với cảm biến, các đối tượng trên
một đường có thể bị va chạm tại một điểm mù. Nếu ngưỡng này được đặt ở một khoảng
cách quá lớn từ các cảm biến thì đối tượng sẽ được phát hiện mà không phải là trên một
đường va chạm.


Hình 4: Vùng phát hiện vật của SRF 05
5


Một kỹ thuật phổ biến để làm giảm các điểm mù và đạt được phát hiện chiều rộng lớn
hơn cự ly gần là thêm một cải tiến bằng cách thêm một đơn vị SRF05 bổ sung và gắn kết
của hai đơn vị hướng về phía trước. Thiết lập như vậy thì có một khu vực mà hai khu vực
phát hiện chồng chéo lên nhau.
c)Thông số kỹ thuật:

d)Cách tính toán khoảng cách
Sóng siêu âm được truyền đi trong không khí với tốc độ khoảng 343m/s. Nếu một cảm
biến phát ra sóng siêu âm và thu về các sóng phản xạ đồng thời, đo được khoảng thời
gian từ lúc phát đi tới lúc thu về, thì máy tính có thể xác định được quãng đường mà
sóng đã di truyền tring không gian. Quãng đường đi của sóng sẽ bằng 2 lần khoảng
cách từ cảm biến tới chướng ngại vật, theo hướng phát sóng của siêu âm. Hay khoảng
cách từ cảm biến đến chướng vật sẽ được tính theo nguyên lý TOF: d=v*t/2.
SRF05 là bản nâng cấp của HC-SR04

6


Hình 5: Biểu đồ thời gian xung của SRF 05
Dựa vào giản đồ xung ở trên ta thấy:
Để SRF05 hoạt động chúng ta cần tạo 1 xung có độ rộng tối thiểu là 10us trên chân Trigger.
Sau khi có xung được kích trên chân Trigger, SRF05 sẽ phát ra chuỗi 8 xung để phát sóng
siêu âm.
Sau kết thúc việc phát 8 xung, SRF05 sẽ kéo chân Echo lên mức cao. Chúng ta sẽ dựa vào
thời gian tồn tại mức cao (Độ rộng xung mức cao) của chân Echo để tính khoảng cách.

Nếu độ rộng xung mức cao nằm trong khoảng 100us-25ms thì nghĩa là có vật cản nằm trong
phạm vi phát hiện của SRF05. Và khoảng cách từ cảm biến tới vật cản được tính theo công
thức:
Khoảng cách=(((Độ rộng mức cao(us))/58) (cm) =(((Độ rộng mức cao(us))/148 ) (inch).
Nếu độ rộng xung mức cao lớn hơn hoặc bằng 300ms nghĩa là không có vật nằm trong
phạm vi của cảm biến SRF05.
-Phương pháp đo khoảng cách với 8051:
Dựa vào tính chất độ rộng xung mức cao trên chân Echo có liên quan với khoảng cách từ
cảm biến SRF05 đến vật, ta sẽ dùng vi điều khiển AT89S52 để đo độ rộng xung mức cao
trên chân Echo.
Ở đây sẽ sử dụng Timer để tính độ rộng xung mức cao trên chân Echo. Nghĩa là sau khi
chân Echo được SRF05 kéo lên mức 1, sẽ cho Timer hoạt động, sau đó, khi chân Echo
xuống mức 0, ta sẽ dừng Timer và từ giá trị đếm được trong thanh ghi TH và TL của Timer
để tính ra khoảng cách.

2.3 Sơ lược về vi điều khiển AT89S52
AT89S52 thuộc họ 8051 có 40 chân cho các chức năng khác nhau như vào ra I/O,
đọc RD, ghi WR, địa chỉ, dữ liệu và ngắt.

7


Hình 6: Mô tả các chân của vi điều khiển AT89S52
a) Mô tả các chân
Chân VCC:
Chân số 40 là VCC cấp điện áp nguồn cho chip. Nguồn điện áp là +5V.
Chân GND:
Chân số 20 là GND.
Chân XTAL1 và XTAL2:
89S52 có một bộ giao động trên chip nhưng nó yêu cầu có một xung đồng hồ ngoài

để chạy nó. Bộ giao động thạch anh thường xuyên nhất được nối tới các chân đầu vào
XTAL1 (chân 19) và XTAL2 (chân 18). Bộ giao động thạch anh được nối tới XTAL1 và
XTAL2 cũng cần hai tụ điện giá trị 33pF. Một phía của tụ điện được nối xuống đất.
Chân Reset:
Chân số 9 là chân tái lập reset. Nó là một đầu vào tích cực mức cao(bình thường mức
thấp).Nhằm làm cho đầu vào RESET có hiệu quả thì nó phải có tối thiểu 2 chu kì máy, hay
nói cách khác, xung cao phải kéo dài 2 chu kì máy trước khi nó xuống thấp.Trong 8051 một
chu kì máy bằng 12 chu kì dao động.
Chân EA:
Tín hiệu vào EAở chân 31 thường được mất lên mức 1 hoặc mức 0.
Nếu ở mức 1, 89S52 thi hành chương trình từ bộ nhớ nội.
Nếu ở mức 0, 89S52 sẽ thi hành chương trình từ bộ nhớ ngoại.
8


Chân PSEN (program store enable): tín hiệu xuất ra từ vi điều khiển để điều khỉên đọc bộ
nhớ chương trình. Nếu sử dụng bộ nhớ chương trình ngoài thì PSEN được nối với OE của
ROM, nếu không sử dụng thì bỏ trống chân này.
Chân ALE ( address latch enable): cho phép chốt địa chỉ. Tín hiệu ALE sẽ được nối với
chân LE của IC chốt.
Các PORT:
Port 0 (chân 32 – 39): là port có hai chức năng. Trong các thiết kế cỡ nhỏ không
dùng bộ nhớ mở rộng, nó có chức năng như các đường IO. Đối với các thiết kế cỡ
lớn có bộ nhớ mở rộng, nó được kết hợp giữa bus địa chỉ và bus dữ liệu.
Port 1 (chân 1 – 8): là port IO, các chân P1.0, P1.1, P1.2, có thể dùng cho giao tiếp
với các thiết bị ngoài nếu cần. Ngoài ra chân P1.0 cũng là ngõ vào của timer 2, chân
P1.1 là ngõ vào ngắt ngoài timer 2 của 8952.
Port 2 (chân 21 – 28): là 1 port đa năng được dùng như các đường xuất nhập hoặc là
byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng.
Port 3 (chân 10 – 17): là port đa năng nếu không sử dụng thì port 3 dùng làm IO; nếu

có sử dụng thì có các chức năng đặc biệt sau :
 P3.0 - RxD: dùng để nhận dữ liệu nối tiếp trong khi giao tiếp UART hay giao tiếp
máy tính.
 P3.1 - TxD: dùng để truyền dữ liệu nối tiếp trong khi giao tiếp UART hay giao tiếp







máy tính.
P3.2 - INT0: tín hiệu ngắt ngoài thứ 0.
P3.3 - INT1: tín hiệu ngắt ngoài thứ 1.
P3.4 - T0: ngõ vào nhận xung ngoại cho timer / counter 0.
P3.5 - T1: ngõ vào nhận xung ngoại cho timer / counter 1.
P3.6 - WR: điều khiển ghi dữ liệu.
P3.7 - RD: điều khiển đọc dữ liệu.

b) Tổ chức bộ nhớ
Vi điều khiển 89S52 có bộ nhớ nội bên trong và có khả năng giao tiếp với bộ nhớ
bên ngoài nếu bộ nhớ bên trong không có đủ khả năng lưu trữ chương trình.
Bộ nhớ bên trong gồm có 2 loại bộ nhớ: bộ nhớ dữ liệu và bộ nhớ chương trình. Bộ
nhớ dữ liệu có 256 byte, bộ nhớ chương trình có dung lượng 8 kbyte.
Bộ nhớ mở rộng bên ngoài cũng gồm có 2 loại: bộ nhớ dữ liệu và bộ nhớ chương
trình. Khả năng giao tiếp là 64kbyte cho mỗi loại. Hình sau minh hoạ khả năng giao tiếp bộ
nhớ của vi điều khiển 89S52.
9



Bộ nhớ mở rộng bên ngoài và bộ nhớ chương trình bên trong và bộ nhớ chương trình
bên trong không có gì đặc biệt – chỉ có chức năng lưu trữ dữ liệu và mã chương trình nên
không cần phải khảo sát.
Bộ nhớ chương trình bên trong của vi điều khiển thuộc loại bộ nhớ FLASH ROM
cho phép xoá bằng xung điện và lập trình lại.
Bộ nhớ RAM nội bên trong là một bộ nhớ đặc biệt người sử dụng vi điều khiển cần
phải nắm rõ cách tổ chức và các chức năng đặc biệt của bộ nhớ này.
RAM bên trong 89S52 được phân chia như sau:
 Các bank thanh ghi có địa chỉ từ 00H đến 1FH.
 RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH.
 RAM đa dụng từ 30H đến 7FH.
 Các thanh ghi chức năng đặc biệt 80H đến FFH.
c) Các thanh ghi có chức năng đặc biệt
Các ô nhớ có địa chỉ 80H, 90H, A0h, B0h: Là các Port của 89S52 bao gồm port0 có
địa chỉ là 80H, Port1 có địa chỉ 90H, Port2 có địa chỉ A0H và Port3 có địa chỉ B0H.
Tất cả các Port này có thể truy xuất từng bit nên rất thuận tiện trong điều khiển IO.
 Ô nhớ có địa chỉ 81H: Là thanh ghi con trỏ ngăn xếp SP (stack pointer) - có chức
năng quản lý địa chỉ của bộ nhớ ngăn xếp. Bộ nhớ ngăn xếp dùng để lưu trữ dữ liệu
tạm thời trong quá trình vi điều khiển thực hiện chương trình.
 Ô nhớ có địa chỉ 82h và 83h: Là 2 thanh ghi dpl (byte thấp) có địa chỉ là 82H và dph
(byte cao) có địa chỉ 83H. Hai thanh ghi này có thể sử dụng độc lập nếu lưu trữ dữ
liệu và có thể kết hợp lại tạo thành 1 thanh ghi 16 bit có tên là dptr và gọi là con trỏ
dữ liệu – được dùng để lưu địa chỉ 16 bit khi truy xuất dữ liệu bên ngoài.
 Ô nhớ có địa chỉ 87H: Là thanh ghi pcon (power control) có chức năng điều khiển
công xúât khi vi điều khiển làm việc hay ở chế độ chờ.
 Các ô nhớ có địa chỉ từ 88H đến 8DH : Là các thanh ghi phục vụ cho 2 timer/
counter T1, T0. Thanh ghi TH0 và TL0 kết hợp lại tạo thành 1 thanh ghi 16 bit có
chức năng lưu trữ xung đếm cho timer/counter T0. Tương tự cho 2 thanh ghi TH1 và
TL1 kết hợp lại lưu trữ xung đếm cho timer/counter T1. Khả năng lưu trữ số lượng
xung đếm là 65536 xung.

 Các ô nhớ có chức năng 98H đến 99H : Là 2 thanh ghi scon và sbuf:scon (series
control): thanh ghi điều khiển truyền dữ liều nối tiếp. Sbuf (series buffer ): thanh ghi
đệm dữ liệu truyền nối tiếp.
10


 Các ô nhớ có địa chỉ từ A8H đến B9H : Là 2 thanh ghi IE và IP – thanh ghi IE
(interrupt enable): thanh ghi điều khiển cho phép / không cho phép ngắt. IP (interrupt
priority): thanh ghi điều khiển ưu tiên ngắt.
 Thanh ghi trạng thái chương trình (PSW: Program Status Word): Thanh ghi trạng
thái chương trình có địa chỉ D0H được tóm tắt như sau:


 Thanh ghi B : Thanh ghi B có địa chỉ F0H được dùng cùng với thanh ghi A để thực
hiện các phép toán nhân chia. Lệnh MUL AB: sẽ nhận giá trị không dấu 8 bit với 8
bit trong hai thanh ghi A và B, rồi trả về kết quả 16 bit trong A (byte cao) và B(byte
thấp). Lệnh DIV AB: lấy giá trị trong thanh ghi A chia cho giá trị trong thanh ghi B,
kết quả nguyên lưu trong A, số dư lưu trong B.

11


CHƯƠNG 2: THIẾT KẾ
3.1 Mạch mô phỏng nguyên lí

Hình 7: Sơ đồ mô phỏng nguyên lí mạch
Mô tả phần cứng mạch:
- Mạch Reset: sử dụng nút nhấn , tụ 10uF, điện trở 8.2K
- Mạch định tần: thạch anh 12 MHz, 2 tụ 33pF
- Mạch hiển thị:, sử dụng 3 led 7 thanh – anot chung, các điện trở mạch gián tiếp nhàm bảo

vệ LED 7 thanh khi kết nói với Port 0, các LED 7 thanh này được điều khiển bật tắt bằng
các transistor, do dòng từ vi điều khiển yếu nên phải dùng trực tiếp nguồn 5v cấp cho LED
7 thanh, các transistor như công tắc đóng mở khi có tìn hiệu điều khiển từ vi điều khiển,
thao tác đóng cắt nhanh, các Port 1.0, 1.1, 1.2 điều khiển tương ứng với các LED 7 thanh 1,
2, 3 hiển thi số hàng trăm, chục và đơn vị trong việc đo khoảng cách.
- Cảm biến siêu âm SRF 05: sử dụng module SRF 05, với các chân Vcc, GND, Trigger,
Echo kết nối với P3.0 và P3.1 vủa vi điều khiển

12


3.2 Mã nguồn chương trình(code)

Hình 8: Lưu đồ thuật toán chính

13


Hình 9: Chương trình hiển thị ra LED 7 thanh

3.3 Thực hiện mạch thật
Nhóm đã tập trung làm việc nghiêm túc, phân công rõ việc từng thành viên thực hiện
mạch thật theo đúng mạch mô phỏng và code đã làm trước đó.

14


KẾT LUẬN
Dưới sự hướng dẫn tận tình của thầy Nguyễn Cảnh Quang, nhóm đã tập trung làm việc và
đã thực hiện thành công mạch ứng dụng cảm biến siêu âm vào đo khoảng cách sử dụng

8051 hiển thị LCD.
Tuy mạch đã hoạt động nhưng vẫn còn 1 số thiếu sót như mạch đi dây còn xấu, chưa gọn
gàng, bố trí linh kiện trên bảng mạch chưa khoa học do đây là mạch đầu tiên nhóm thực
hiện.

15


PHỤ LỤC: TÀI LIỆU THAM KHẢO
1. SRF05 Technical Document
2. HC-SR04 Datasheet
3. Các giáo trình về vi xử lý 8051 và lập trình ngôn ngữ C

16



×