Đồ án môn học 2 đo khoảng cách dùng sóng siêu âm
Trang 1LỜI NÓI ĐẦU
Ngày nay với sự phát triển không ngừng của khoa học kỹ thuật đã làm chocuộc sống của con người ngày càng được nâng cao về mọi mặt trong cuộc sống,trong sinh hoạt cũng như trong sản xuất Với việc ứng dụng khoa học kỹ thuật vàocuộc sống đã làm cho chất lượng cuộc sống nâng lên rõ rệt, đặt biệt là nâng caonăng suất lao động trong các nhà máy, xí nghiệp Đó là việc ứng dụng các mạchđiện tử vào trong các dây chuyền sản xuất Các mạch điện tử này với độ chính xáccao và dễ sử dụng đã dần dần thay thế được vai trò của người công nhân trong cácnhà máy, xí nghiệp
LỜI CẢM ƠN
Để hoàn thành đồ án này em đã nhận được sự hướng dẫn và chỉ bảo tận tình của Giáo viên hướng dẫn Em xin chân thành cảm ơn thầy Nguyễn Duy Thảo đã tậntình hướng dẫn và chỉ dạy cho em trong suốt quá trình thực hiện đồ án này
Qua đây em cũng xin gửi lời cảm ơn đến các Thầy Cô trong khoa Điện- Điện
tử cũng như trong trường đã cung cấp cho em những kiến thức nền tảng cũng nhưchuyên ngành trong suốt những học kỳ qua Chính những điều này đã giúp em hoànthành đồ án này một cách tốt đẹp
Xin cảm ơn quí thầy cô trong thư viện trường đã tạo điều kiện cho em có được
các tài liệu cần thiết để thực hiện đồ án này.
Sau cùng, em xin gửi lời cảm ơn chân thành đến những người thân trong giađình, các bạn bè trong và ngoài lớp, những người đã luôn góp ý, động viên, khuyến
Trang 2Ngày 28 tháng 11 năm 2011
Sinh viên thực hiện
Nguyễn Đông Thức
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 3
Tp Hồ Chí Minh, ngày 28 tháng 11 năm 2011
Giáo viên hướng dẫn
Nguyễn Duy Thảo
PHẦN 3: THIẾT KẾ VÀ THI CÔNG
3.1 Lưu đồ giải thuật
3.2 Mã nguồn chương trình(code)
3.3 Mô phỏng
3.4 Sơ đồ mạch in
Trang 4PHẦN 5: TÀI LIỆU THAM KHẢO
Trang 5PHẦN 1: GIỚI THIỆU ĐỀ TÀI
Sau 3 năm học tại khoa Điện-điện tử của trường đại học sư phạm kỹ thuật thành phố Hồ Chí Minh, em đã có một số kiến thức nhất định về điện tử cơ bản, kỹ thuật số, và những kỹ năng lập trình cho vi xử lý Quan sát cuộc sống thực tế thì em thấy đo khoảng cách là một ứng dụng thường được sử dụng Thì bằng những kiến thức đã có em đã tìm hiểu và từng bước cho ra đời sản phẩm là một mạch đo khoảng cách Mặc dù nó không được chính xác như một chiếc máy đo chuyên dụng nhưng cũng tương đối chính xác và có thể sử dụng được.
PHẦN 2: LÝ THUYẾT TỔNG QUAN
2.1 SƠ ĐỒ KHỐI HỆ THỐNG
KHỐI NGUỒN
KHỐI HIỂN THỊ
KHỐI XỬ LÝ
KHỐI
CẢM
BIẾN
Trang 6Sử dụng vi điều khiển AT89S52 để kích xung điều khiển SRF05 hoạt động và đo
độ rộng xung ở chân ECHO của SRF05.Sau khi đo xong vi điều khiển sẽ tính toán
và đưa giá trị đến cho LCD hiển thị kết quả
2.2.4 Khối hiển thị
Sử dụng LCD 16x2 để hiển thị khoảng cách đo được
Trang 72.3 GIỚI THIỆU LINH KIỆN
2.3.1 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.
Trang 8Châ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
Trang 9Châ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
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ậphoặ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àmIO; 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 giaotiế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
Trang 10 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ộ 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
Trang 11RAM 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
Trang 12chỉ 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ưutrữ 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
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:
Trang 13Thanh 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 8bit 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ị trongthanh ghi B, kết quả nguyên lưu trong A, số dư lưu trong B
D/ BỘ ĐỊNH THỜI TIMER TRONG VI ĐIỀU KHIỂN
Thanh ghi chọn kiểu làm việc cho Timer-Mode Register
Trang 14 Thanh ghi điều khiển- Control Register
Trang 15E/ HOẠT ĐỘNG NGẮT CỦA VI ĐIỀU KHIỂN
Trang 17Hoạt động của từng bit trong thanh ghi cho phép ngắt IE được tóm tắt trong bảng dưới đây:
Cấu trúc ngắt của vi điều khiển
Trang 18 Các vector ngắt
2.3.1 CẢM BIẾN SIÊU ÂM
Trang 19A/ CÁC MODE HOẠT ĐỘNG
Sơ đồ chân SRF05
Trang 20Giản đồ xung mode 1:
Trang 21B/ TÍNH TOÁN KHOẢNG CÁCH
Trang 222.3.2 LCD 16X2
A/ CHỨC NĂNG CÁC CHÂN
Trang 23B/ CÁC LỆNH ĐẾN THANH GHI CỦA LCD
C/ DẠNG SÓNG DIỀU KHIỂN LCD
Trang 242.4 SƠ ĐỒ NGUYÊN LÝ
Trang 25PHẦN 3: THIẾT KẾ VÀ THI CÔNG
3.1 LƯU ĐỒ GIẢI THUẬT
3.1.1 LƯU ĐỒ KHỞI TẠO LCD
Trang 263.1.2 LƯU ĐỒ MAIN PROGRAM
Trang 33;KIEM TRA HANG TRAM
Trang 35C/ CHƯƠNG TRÌNH CON BCDTOASCII
Trang 413.3 MÔ PHỎNG
Trang 44PHẦN 4: KẾT LUẬN
1 Thành quả đạt được
- Mạch chạy ổn định, hiển thi khoảng cách đến giá trị nhỏ hơn mm
- Biết lập trình được các mạch cơ bản ứng dụng trong thực tế
- Nắm được nguyên tắc hoạt động của mạch
2 Nhược điểm
- Chưa xóa số 0 vô nghĩa nên nhìn hơi bị rối mắt
- Không có nút nhấn chuyển từ đơn vị này sang đơn vị khác ( từ cm qua m hoặc cm qua inch)
3 Hướng phát triển
Tìm hiểu thêm phần lập trình để hoàn hiện hóa các chức năng như: xóa số không vô nghĩa, thêm chức năng chuyển qua lại giữa các đơn vị đo và giảm thiếu sai số đo đến giá trị nhỏ nhất
Trang 45PHẦN 5: TÀI LIỆU THAM KHẢO
1. Giáo trình vi xử lý 1-Thầy Nguyễn Đình Phú - Trường Đại học Sư Phạm Kỹ Thuật TPHCM
2. Giáo trình thực tập vi xử lý-vi điều khiển –Thầy Nguyễn Đình Phú
3 Một số trang web tham khảo:
sao-rap-cam-bien-sieu-am-srf05-39140/
http://www.dientuvietnam.net/forums/cam-bien-do-khoang-cach-103/lam- www.datasheet.com