LỜI MỞ ĐẦUMỤC LỤCPHẦN I: CƠ SỞ LÝ THUYẾT1.Cảm biến siêu âm1.1.Đặc điểm kỹ thuật cảm biến SRF041.2.Nguyên tắc hoạt động1.3.Tầm quét của cảm biến siêu âm1.4.Tính toán khoảng cách1.5.Một số đặc điểm khác của SRF042.Vi điều khiển 8051 (89S52)2.1.Cấu tạo chân2.2. Sơ đồ khối2.3.Chức năng của các chân 89S522.4.Giao tiếp với cảm biến siêu âm để đo khoảng cách3.LCD Giao tiếp với Vi điều khiển 89S523.1.Hình dáng và kích thước:3.2. Sơ đồ chân3.3. Kết nối với vi điều khiển4.Một số linh kiện khácPHẦN II: THIẾT KẾ VÀ THỰC HIỆN1.Sơ đồ khối2.Thiết kế phần cứng2.1.Sơ đồ nguyên lý2.2.Sơ đồ mạch3.Thực hiện phần mềm3.1.Lưu đồ thuật toán lập trình3.2.Phần mềm CodeKẾT LUẬN1.Ưu điểm2.Khuyết điểm3.Hướng phát triểnTÀI LIỆU THAM KHẢO
Trang 1KHOA ĐIỆN - ĐIỆN TỬ VIỄN THÔNG
MSSV: 1451030148
TP HỒ CHÍ MINH, 12 - 2017
Trang 2LỜI MỞ ĐẦU
Ngày nay vi điều khiển đã trở nên quen thuộc trong cácthiết bị kỹ thuật Các bộ vi điều khiển có khả năng xử lý nhiềuhoạt động phức tạp mà chỉ cần một chip vi mạch nhỏ, nó đãthay thế các tủ điều khiển lớn và phức tạp bằng những mạchđiện gọn nhẹ, dễ dàng thao tác sử dụng Vi điều khiển khôngnhững góp phần vào kỹ thuật điều khiển mà còn góp phần tolớn vào việc phát triển thông tin Cho nên đối với các sinh viênngành Điện - Điện tử viễn thông, việc tìm hiểu, khảo sát vi điềukhiển và ứng dụng chúng vào thực tế là hết sức cần thiết Vì
thế, em quyết định chọn đề tài cho Đồ án môn học là: “Thiết
kế mạch đo khoảng cách (dùng vi điều khiển 89s52 và Cảm
biến siêu âm”)
Em xin cảm ơn toàn thể các thầy cô giáo trong khoa Điện Điện tử viễn thông đã giảng dạy và truyền đạt những kiến thức,kinh nghiệm quý báu và tạo điều kiện tốt nhất cho em được họctập và nghiên cứu tại trường Cuối cùng em xin chân thành cảm
-ơn thầy Chu Hồng Hải giảng viên Trường ĐH Giao Thông
Vận Tải TP Hồ Chí Minh hướng dẫn giúp đỡ nhiệt tình em
trong quá trình thực hiện đồ án
Em xin chân thành cảm ơn!
TP Hồ Chí Minh, tháng 12 năm2017
Sinh viên thực hiện
SVTH: Lương Thành Trưởng Trang 1
Trang 3Lương Thành Trưởng
MỤC LỤC
LỜI MỞ ĐẦU 1
MỤC LỤC 2
PHẦN I: CƠ SỞ LÝ THUYẾT 4
1 Cảm biến siêu âm 4
1.1 Đặc điểm kỹ thuật cảm biến SRF04 5
1.2 Nguyên tắc hoạt động 6
1.3 Tầm quét của cảm biến siêu âm 6
1.4 Tính toán khoảng cách 7
1.5 Một số đặc điểm khác của SRF04 8
2 Vi điều khiển 8051 (89S52) 10
2.1 Cấu tạo chân 11
2.2 Sơ đồ khối 12
2.3 Chức năng của các chân 89S52 2
2.4 Giao tiếp với cảm biến siêu âm để đo khoảng cách.5 3 LCD - Giao tiếp với Vi điều khiển 89S52 6
3.1 Hình dáng và kích thước: 6
3.2 Sơ đồ chân 6
3.3 Kết nối với vi điều khiển 8
4 Một số linh kiện khác 9
PHẦN II: THIẾT KẾ VÀ THỰC HIỆN 10
1 Sơ đồ khối 10
SVTH: Lương Thành Trưởng Trang 2
Trang 42 Thiết kế phần cứng 11
2.1 Sơ đồ nguyên lý 11
2.2 Sơ đồ mạch 12
3 Thực hiện phần mềm 13
3.1 Lưu đồ thuật toán lập trình 13
3.2 Phần mềm Code 14
KẾT LUẬN 19
1 Ưu điểm 19
2 Khuyết điểm 19
3 Hướng phát triển 19
TÀI LIỆU THAM KHẢO 20
SVTH: Lương Thành Trưởng Trang 3
Trang 5PHẦN I: CƠ SỞ LÝ THUYẾT
1 Cảm biến siêu âm
Cảm biến siên âm có nhiều loại, tùy theo công dụng như
để nhận biết vật trong khoảng cách gần hay xa, nhận biết cácvật có tính chất khác nhau và trong những điều kiện hoạt độngkhác nhau mà người ta chế tạo các loại cảm biến siêu âm cũngkhác nhau
SRF05 là một bước phát triển từSRF04, được thiết kế để làm tăng tínhlinh hoạt, tăng phạm vi, ngoài ra còn giảm bớt chi phí Range isincreased from 3 meters to 4 meters.Khoảng cách được tăng từ
3 mét đến 4 mét A new operating mode (tying the mode pin toground) allows the SRF05 to use a single pin for both triggerand echo, thereby saving valuable pins on your controller.SRF05cho phép sử dụng một chân duy nhất cho cả kích hoạt và phảnhồi, do đó tiết kiệm giá trị trên chân điều khiển.When the modepin is left unconnected, the SRF05 operates with separatetrigger and echo pins, like the SRF04 Khi chân chế độ khôngkết nối, thì SRF05 hoạt động riêng biệt chân kích hoạt và vàchân hồi tiếp, giống như SRF04
SVTH: Lương Thành Trưởng Trang 4
Trang 6The SRF05 includes a small delay before the echo pulse to give slower controllers such as the Basic Stamp and Picaxe time
to execute their pulse in commands
1.1 Đặc điểm kỹ thuật cảm biến SRF04The SRF05 is an evolutionary step from the SRF04, and has been
designed to increase flexibility, increase range, and to
reduce costs still further.
Thông số kỹ thuật Module SRF04:
- Trig nối vi điều khiển (ngõ phát)
- Echo nối vi điều khiển (ngõ thu)
- Gnd nối âm
SVTH: Lương Thành Trưởng Trang 5
Hình 5 Sơ đồ chân cảm biến SRF04
Trang 71.2 Nguyên tắc hoạt động
Nguyên tắc TOF (Time Of Flight): Sóng siêu âm được
truyền đi trong không khí với vận tốc khoảng 343m/s Nếu mộtcả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 đã dichuyển trong không gian Quãng đường di chuyển của sóng sẽ
bằng 2 lần khoảng cách từ cảm biến tới chướng ngoại vật, theohướng phát của sóng siêu âm
Nếu đo được chính xác thời gian và không có nhiễu, mạchcảm biến siêu âm trả về kết quả cực kì chính xác Điều này phụthuộc vào cách viết chương trình không sử dụng các hàm delay.Sóng siêu âm chỉ bị dội lại khi gặp 1 số loại vật cản, nếu phátsóng siêu âm vào chăn, nệm thì nó sẽ không nhận được sóng
SVTH: Lương Thành Trưởng Trang 6
Hình 6 Nguyên tắc TOF
Trang 8phản hồi Có thể sử dụng các loại chip thông dụng để nhận và
xử lý dữ liệu như 8051, AVR, PIC, Arduino,…
1.3 Tầm quét của cảm biến siêu âm
Cảm biến siêu âm có thể được mô hình hóa thành một hìnhquạt, trong đó các điểm ở giữa dường như không có chướng
ngại vật, còn các điểm trên biên thì dường như có chướng ngạivật nằm ở đâu đó
1.4 SRF05 = 0 ' start with pin lowCalculating the
DistanceTính toán khoảng cáchThe SRF05 Timing diagrams
are shown above for each mode
Chỉ cần cung cấp một đoạn xung ngắn 10us kích hoạtđầu vào để bắt đầu đo khoảng cách.The SRF05 will send out an
8 cycle burst of ultrasound at 40khz and raise its echo line high(or trigger line in mode 2) It then listens for an echo, and as
SVTH: Lương Thành Trưởng Trang 7
Hình 7 Góc quét cảm biến SRF04
Hình 8 Giản đồ định thời của SRF04
Trang 9soon as it detects one it lowers the echo line again Các SRF04
sẽ cho ra một chu kỳ 8 burst của siêu âm ở 40KHz và tăng caodòng phản hồi của nó Sau đó chờ phản hồi, và ngay sau khiphát hiện nó giảm các dòng phản hồi lại.The echo line istherefore a pulse whose width is proportional to the distance tothe object Dòng phản hồi là một xung có chiều rộng tỷ lệ vớikhoảng cách đến đối tượng.By timing the pulse it is possible tocalculate the range in inches/centimeters or anything else.Bằng cách đo xung, ta hoàn toàn có thể để tính toán khoảngcách theo inch/centimet hoặc đơn vị đo khác If nothing isdetected then the SRF05 will lower its echo line anyway afterabout 30mS.Nếu không phát hiện gì thì SRF04 giảm thấp hơndòng phản hồi của nó sau khoảng 30mS.The SRF05 can betriggered as fast as every 50mS, or 20 times each second Youshould wait 50ms before the next trigger, even if the SRF05detects a close object and the echo pulse is shorter
Cách tính khoảng cách từ thời gian đo được:
Gọi S là quãng đường đi của sóng âm: S = 2*d
Gọi V là vận tốc của sóng âm: v = 344m/s = 34400cm/s =
0.0344cm/us
Gọi t là thời gian truyền, ta có: s = 2*d = v*t
d = v * = 0.0344 * = 0.0344 * = ≈ (*)Vậy: d = (Đơn vị của khoảng cách d là cm, đơn vị của thời gian t
Trang 10cho ra tín hiệu phản hồi yếu hoặc không có phải hồi Một đốitượng ở một góc cân đối thì mới có thể chuyển thành tín hiệuphản chiếu cho cảm biến nhận.
Vùng phát hiện của SRF04: Các vùng phát hiện của
SRF04 nằm trong khoảng 1m chiều rộng từ bên này sang bênkia và không quá 4m chiều dài
There are two constraints in this scenario to consider.If thethreshold for object detection is set too close to the sensor thenobjects on a collision path might be in a blind spot.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ù If thethreshold is set at too great a distance from the sensor thenobjects will be detected which are not on a collision path(assuming that the width of the robot is less than a meter).Nếungưỡng này được đặt ở một khoảng cách quá lớn từ các cảmbiến thì các đối tượng sẽ được phát hiện mà không phải là trênmột đường va chạm
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ảitiến bằng cách thêm một cảm biến bổ sung và cùng hướng về
SVTH: Lương Thành Trưởng Trang 9
Hình 10 Vùng phát hiện SRF04
Trang 11phía trước If the setup is such that there is a region where thetwo detection zones overlap, then an algorithm can beestablished around four possible states according to thefollowing truth table: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ác vùng hoạt động của 2 cảm biến SRF04 tạo góc chung
30 độ Vùng chung thì được phân biệt bởi 2 phần tín hiệu tráiphải và phần cản ở giữa
SVTH: Lương Thành Trưởng Trang 10
Hình 11 Kết hợp 2 cảm biến SRF04
Trang 122 Vi điều khiển 8051 (89S52)
AT89S52 cung cấp những đặc tính chuẩn như: 8 KByte bộ nhớ chỉ đọc có
thể xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 3
TIMER/COUNTER 16 Bit, 6 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối
tiếp bán song công, 1 mạch dao động tạo xung Clock và bộ dao động ON-CHIP
Các đặc điểm của chip AT89S52 được tóm tắt như sau:
- 8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu
kỳ ghi/xoá
- Tần số hoạt động từ: 0Hz đến 24 MHz
- 3 mức khóa bộ nhớ lập trình
- 3 bộ Timer/counter 16 Bit
- 128 Byte RAM nội
- 4 Port xuất /nhập I/O 8 bit
- Giao tiếp nối tiếp
SVTH: Lương Thành Trưởng Trang 11
Hình 12 Vi điều khiển AT89S52
Trang 13- 64 KB vùng nhớ mã ngoài
2.1 Cấu tạo chân
Tuỳ theo khả năng của từng người (về kinh tế, kỹ thuật…)
mà các nhà sản xuất các sản phẩm ứng dụng có thể chọn 1
trong 3 kiểu chân do ATMEL đưa ra
SVTH: Lương Thành Trưởng Trang 12
Trang 14CPU: bộ xử lý trung tâm
OSC (Oscillator): mạch daođộng
Bus control: điều khiển busI/O ports: các portxuất/nhập
Serial port: port nối tiếpAddress/data: địa chỉ/dữliệu
SVTH: Lương Thành Trưởng Trang 13
Hình 13 Các kiểu chân của AT89S52
Hình 14 Sơ đồ khối AT89S52
Trang 15năng đưa một tín hiệu giữ nhịp từ bên ngoài.
Chương trình đang chạy có thể cho dừng lại nhờ một khốiđiêu khiển ngắt ở bên trong Các nguồn ngắt có thể là: các biến
cố ở bên ngoài, sự tràn bộ đếm định thời, hoặc cũng có thể làgiao diện nối tiếp Hai bộ định thời 16 bit hoạt động như một bộđếm
Giao diện nối tiếp cũng chứa một bộ truyền và bộ nhậnkhông đồng bộ làm việc độc lập với nhau Tốc độ truyền quacổng nối tiếp có thể đặt trong dải rộng và được ấn định bằngmột bộ định thời
Trong vi điều khiển 89S52 có hai thành phần quan trọngkhác là bộ nhớ và thanh ghi:
- Bộ nhớ gồm có bộ nhớ RAM và bộ nhớ ROM dùng để lưutrữ dữ liệu và mã lệnh
- Các thanh ghi sữ dụng để lưu trữ thông tin trong quátrình xử lý Khi CPU làm việc nó thay đổi nội dung của cácthanh ghi
2.3 Chức năng của các chân 89S52
Trang 16Trong các thiết kế cỡ nhỏ (không dùng bộ nhớ mở rộng) có chứcnăng như các đường I/O Đối với các thiết kế lớn với bộ nhớ mởrộng nó được kết hợp giữa các bus địa chỉ và bus dữ liệu.
Port 1: từ chân 1 đến 8 (P1.0 - P1.7) Port 1 là một port I/O
dùng cho thiết bị ngoại vi nếu cần
Port 2: từ chân 21 đến 28 (P2.0 - P2.7) Port 2 có công
dụng kép được dùng như các đường xuất nhập hoặc là byte caocủa bus địa chỉ 16 bit đối với các thiết kế dùng bộ nhớ mở rộnghoặc các thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu ngoài
Port 3: từ chân 10 đến 17 (P3.0 - P3.7) Các chân của port
này có nhiều chức năng, có công dụng chuyển đổi có liên hệđến các đặc tính đặc biệt của 89S52 như ở bảng sau:
Trang 17thường được nối đến chân OE (Output Enable) của một EPROM
để cho phép đọc các byte mã lệnh
PSEN sẽ ở mức thấp trong thời gian lấy lệnh Các mã nhị phâncủa chương trình được đọc từ EPROM qua bus và được chôt vàothanh ghi lệnh của 89S52 để giải mã lệnh Khi thi hành chươngtrình trong ROM nội (89S52) PSEN sẽ ở mức thụ động (mức cao)
ALE (Address Latch Enable ): tín hiệu ra ALE trên chân 30
tương hợp với các thiết bị làm việc với các xử lý 8585, 8088,
8086, 8051 dùng ALE một cách tương tự cho việc giải mã cáckênh các bus địa chỉ và dữ liệu khi port 0 được dùng trong chế
độ chuyển đổi của nó: vừa là bus dữ liệu vừa là bus thấp của địachỉ, ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoàitrong nữa đầu của chu ký bộ nhớ Sau đó các đường port 0 dùng
để xuất hoặc nhập dữ liệu trong nữa sau chu kỳ của bộ nhớ.Các xung tín hiệu chân ALE có tốc độ bằng 1/6 lần tần sốdao động trên chip và có thể dùng làm nguồn xung nhịp cho các
hệ thống Nếu xung trên chân 8051 là 12MHz thì ALE có tần số2MHz Chỉ ngoại trừ khi thi hành lệnh MOVX, một xung ALE sẽ bịmất Chân này cũng được làm ngõ vào cho xung lập trình choEPROM trong 8051
Trang 18cao, 8051 thi hành chương trình từ ROM nội trong khoảng địachỉ thấp (4K) Nếu ở mức thấp, chương trình chỉ được thi hành
từ bộ nhớ mở rộng Khi dùng 8031, EA luôn được nối mức thấp
vì không có bộ nhớ chương trình trên chip Nếu EA được nối mứcthấp bộ nhớ bên trong chương trình 89S52 sẽ bị cấm và chươngtrình thi hành từ EPROM mở rộng Người ta còn dùng chân EAlàm chân cấp điện áp 21V khi lập trình cho EPROM trong89S52
RST (Reset): ngõ vào RST trên chân 9 là ngõ reset của
8051 Khi tín hiệu này được đưa lên mức cao (trong ít nhất 2chu kỳ máy ), các thanh ghi trong 89S52 được tải những giá trịthích hợp để khởi động hệ thống
Các ngõ vào bộ dao động trên chip:
Như trong hình trên, 89S52 có một bộ dao động trên chip
Nó thường được nối với thạch anh giữa hai chân 18 và 19 Các
tụ giữa cũng cần thiết như đã vẽ Tần số thạch anh thôngthường là 12MHz và giá trị tụ thường được chọn là 33pF
Các chân nguồn: 89S52 vận hành với nguồn đơn +5V Vcc
được nối vào chân 40 và Vss (GND) được nối vào chân 20
2.4 Giao tiếp với cảm biến siêu âm để đo khoảng cách
Trang 19mức cao có thể dùng một trong các bộ Timer của vi điều khiển.
Để đo khoảng cách ta làm các bước như sau:
1 Kích chân Trigger: xuất mức 1 ra chân Trigger và delay tốithiểu 10us
2 Sau đó đợi chân ECHO lên mức cao
3 Khi chân ECHO lên mức cao, kích hoạt Timer
- Đợi chân ECHO xuống thấp
- Cho phép ngắt cạnh xuống
4 Khi chân ECHO xuống mức thấp (hoặc trong chương trình
xử lý ngắt), dừng Timer và tính toán giá trị thời gian từTimer, từ đó suy ra khoảng cách
5 Reset giá trị đếm của Timer để chuẩn bị cho lần đo tiếptheo
Trang 20Màn hình LCD được sử dụng trong rất nhiều các ứng dụngnhúng So với các dạng hiển thị khác, LCD có rất nhiều ưu điểm:
- Có khả năng hiển thị ký tự đa dạng, trực quan
- Hiển thị được nhiều ký tự
- Giao tiếp với vi điều khiển rất đơn giản, tốn ít tài nguyêncủa vi điều khiển
- Ngoài ra: tiết kiệm năng lượng, kích thước nhỏ gọn, giáthành rẻ,
- LCD 16x2: hiển thị được 2 dòng, mỗi dòng 16 kí tự
- LCD 20x2: hiển thị được 2 dòng, mỗi dòng 20 kí tự
- LCD 20x4: hiển thị được 4 dòng, mỗi dòng 20 kí tự
3.2 Sơ đồ chân
Hình 15 Các loại LCD thông dụng
Hình 16 Sơ đồ chân LCD 16x2
Trang 21- Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh
IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
- Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu
Trang 226 E
nhận khi có 1 xung cho phép của chân E.
- Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E.
- Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.
Có 2 chế độ sử dụng 8 đường bus này:
- Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7.
- Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7.
3.3 Kết nối với vi điều khiển