Tải bản đầy đủ (.docx) (36 trang)

ĐO KHOẢNG CÁCH và XUẤT LCD dùng 89c51 ( có code và mạch in )

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 (433.75 KB, 36 trang )

ĐỒ ÁN 2

ĐO KHOẢNG CÁCH VÀ XUẤT LCD

MỤC LỤC


DANH MỤC HÌNH VẼ


DANH MỤC BẢNG BIỂU


DANH MỤC TỪ VIẾT TẮT
IC – Integrated Circuit


Mạch đo khoảng cách

CHƯƠNG 1
GIỚI THIỆU MẠCH ĐO KHOẢNG CÁCH DÙNG CẢM BIẾN
1.1.Tính quan trọng của sản phẩm
− Đo khoảng cách nhanh hơn
− Tiết kiệm được sức người, tăng năng suất lao động
1.2.Phương pháp nghiên cứu:
− Tìm hiểu cấu tạo,nguyên lý hoạt động của các linh kiện: 89C51, LM25,
SRF05…
− Tìm hiểu,nghiên cứu cách viết chương trình bằng Assemly.
− Thiết kế mạch.
1.3.Kết quả nghiên cứu:
Xây dựng được một mạch đo khoảng cách dùng cảm biến hoạt động tốt đúng với yêu


cầu đặt ra.

5


Mạch đo khoảng cách

CHƯƠNG 2
TỔNG QUAN VỀ MẠCH ĐO KHOẢNG CÁCH DÙNG CẢM BIẾN
2.1.Sơ đồ khối và chức năng của từng khối
2.1.1.Sơ đồ khối:

Khối nguồn

Khối cảm biến

Khối xử lý

Khối hiển thị

Hình 2.1 : Sơ đồ khối

2.1.2.Chức năng của từng khối:
− Khối nguồn: Sử dụng nguồn 5V cung cấp điện áp cho các linh kiện trong mạch
hoạt động
− Khối cảm biến: Sử dụng IC SRF05 phát xung tới vị trí cần đo, sau đó nó tự tạo
ra 1 xung ở chân ECHO, độ rộng xung này tỉ lệ với khoảng cách cần đo.
− Khối xử lý: Sử 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 tới LCD hiển thị.

− Khối hiển thị: Sử dụng LCD 16x2 để hiển thị khoảng cách đo được.

6


Mạch đo khoảng cách

2.2.Giới thiệu các linh kiện sử dụng trong mạch:
2.2.1.AT 89S52
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.

Hình 2.2 : IC 89S52[1]
− 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ó

7


Mạch đo khoảng cách

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.

− Chân PSEN (program store enable): Tín hiệu xuất ra từ vi điều khiển để điều
khiển đọc bộ nhớ chương trình.

− 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.

8


Mạch đo khoảng cách

• 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.
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.
Bộ nhớ mở rộng bên ngoài 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.
2.2.2.Cảm biến SRF05:

9



Mạch đo khoảng cách

Hình 2.3 : Cảm biến siêu âm SRF05[2]
Sóng siêu âm(sonar) là một loại sóng mà con người không thể nghe thấy
được.Tuy nhiên ta có thể thấy sự hiện diện của sóng siêu âm ở khắp mọi nơi trong tự
nhiên.Ta biết những loài động vật như dơi,cá heo…dùng sóng siêu âm để liên lạc với
đồng loại,để săn mồi hay định vị trong không gian.
Nguyên tắc các loài vật dùng sóng siêu âm có thể tóm gọn trong 3 bước:
1.Vật chủ phát ra sóng âm
2.Sóng âm này va chạm vơi môi trường xung quanh và bị bức xạ lại.
3.Dựa vào thời gian phát/thu,khoảng cách giữa vật chủ và môi trường âm thanh được
tính ra.
Việc tính toán khoảng cách cũng phụ thuộc rất lớn vào môi trường truyền dẫn,
ví dụ sóng âm truyền trong môi trường nước hay kim loại sẽ nhanh hơn rất nhiều khi
truyền trong môi trường không khí. Đặc biệt sóng âm không truyền được trong môi
trường chân không.
Theo nguyên tắc này dựa trên sự tiến bộ của khoa học công nghệ hiện đại ta
thấy được ứng dụng của sóng âm rất nhiều có thể kể đến như thiết bị định vị dưới biển
của tàu ngầm, thiết bị radar, các thiết bị đo khoảng cách môi trường như đo độ sâu của
đại dương ...
Cảm biến siêu âm SRF05 là bước phát triển từ SRF04 và được thiết kế để nâng
cao độ linh hoạt,tầm đo và giảm giá thành.Cảm biến siêu âm SRF05 cũng hoạt động
theo như nguyên tắc ở trên, thiết bị gồm có 2 loa - thu và phát - cùng với 5 chân để kết
nối với Arduino.
Chức năng của các chân như sau:

1. Vcc: cấp nguồn cho cảm biến.
10



Mạch đo khoảng cách

2. Trigger: chân này là chân phát xung để kích hoạt cho cảm biến hoạt động. Quá
trình kích hoạt khi một chu kì điện cao / thấp diễn ra.

3. Echo: chân trả tín hiệu xung khi sóng siêu âm phản xạ lại, bình thường sẽ ở
trạng thái 0V, được kích hoạt lên 5V ngay khi có tín hiệu trả về, sau đó trở về
0V.

4. Gnd: nối với cực âm của mạch
5. OUT: không sử dụng.
Nguyên lý hoạt động: để đo được khoảng cách ta sẽ phát xung rất ngắn(5us) từ
chân Trigger.Sau đó cảm biến sẽ tạo ra một xung “High” ở chân Echo cho đến khi nhân
lại sóng phản xạ ở pin này.Chiều rộng của xung sẽ bằng với thời gian sóng siêu âm
được phát từ cảm biến và quay trở lại.

- Độ rộng xung là sóng truyền từ cảm biến tới vật và từ vật trở về cảm biến.
- Thời gian là sóng truyền từ cảm biến tới vật.
- Tốc độ âm thanh của không khí là một hằng số vật lý bằng 340m/s tương đương
-

29,412us/cm.
Thời gian = Độ rộng/2.
Khoảng cách = Thời gian/Tốc độ của âm thanh trong không khí.
2.2.3.LCD

Hình 2.4 : LCD 16x2[3]
Chức năng các chân của LCD:

11



Mạch đo khoảng cách

Chân
1
2
3
4

5
6

7

Tên
Vss

Chức năng
Chân nối đất cho LCD,khi vẽ mạch nối chân này với
GND của mạch điều khiển
Vdd
Chân cấp nguồn của LCD,khi thiết kế mạch chân này
nối với Vcc=5V
Chân này dùng để điều chỉnh độ tương phản của LCD
RS
Chân chọn thanh ghi(Register select).Nối chân này
với mức “0” hoặc mức “1” để chọn thanh ghi
-Mức “0”:Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR
của LCD hoặc với bộ đếm địa chỉ.

-Mức “1” :Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu
DR bên trong LCD
R/W
Chân chọn chế độ đọc/ghi.Nối chân này với mức “0”
để LCD ghi,mức “1” để LCD đọc
E
Chân cho phép(enable).Sau khi các tín hiệu đặt lên
bus DB0-DB7 các lệnh chỉ chấp nhận khi có 1 xung
cho phép của chân E
-Ở chế độ ghi:Dữ liệu ở bus sẽ được chuyển vào
thanh ghi bên trong LCD khi phát hiện 1 xung cho
phép của chân E
-Ở chế độ đọc:Dữ liệu LCD sẽ xuất ra Db0-DB7 khi
phát hiện cạnh lên của chân E và được giữ ở bus cho
đến khi chân E xuống mức thấp
DB0-DB7 8 đường của bus dữ liệu dùng để trao đổi thông tin
với MPU.Có 2 chế độ sử dụng:
-Chế độ 8 bit: dữ liệu truyền trên 8 đường với bit
MSB là bit DB7
-Chế độ 4 bit:dữ liệu truyền trên 4 đường từ DB4 đến
DB7,MSB là DB7.

12


Mạch đo khoảng cách

Bảng 2.1. Chức năng các chân của LCD
2.3 : Sơ đồ nguyên lí mạch:


H
ình 2.5 : Sơ đồ nguyên lí
2.4 : Nguyên lí hoạt động:
Khoảng cách mà cảm biến đo được sẽ được đưa qua vi điều khiển xử lí, tính
toán. Sau khi vi điều khiển xử lí xong sẽ đưa dữ liệu qua LCD để hiển thị khoảng
cách mà ta đã đo được.

13


Mạch đo khoảng cách

CHƯƠNG 3
THIẾT KẾ VÀ THI CÔNG MẠCH
3.1. Mạch in

Hình 3.1 : Mạch in
3.2. Lưu đồ giải thuật:

START
14


Mạch đo khoảng cách

KHỞI TẠO NGẮT TIMER
0
KHỞI TẠO LCD

HIỂN THỊ HÀNG 1


HIỂN THỊ HÀNG 2

DEM = 0

TẠO XUNG TRIGGER

ECHO=1

15


Mạch đo khoảng cách

NẠP GIÁ TRỊ CHO
TIMER

CHO TIMER CHẠY

ECHO=0

DỪNG TIMER

CAL_PULSE

HEXTOBCD

16
HIỂN THỊ
BCDTOASCII

KẾT QUẢ


Mạch đo khoảng cách

BCDTOASCII

HIỂN THỊ KẾT QUẢ

Hình 3.2 : Lưu đồ giải thuật
3.3. Mạch thực tế :

Hình 3.3 : Mạch thực tế

17


Mạch đo khoảng cách

CHƯƠNG 4
KẾT LUẬN CHUNG
4.1. Ưu điểm:
Mạch điện tử đơn giản, dễ xử lí
Sóng phản hồi không phụ thuộc vào màu sắc, bề mặt của vật thể hay tính chất phản xạ
ánh sáng của đối tượng.
4.2. Khuyết điểm:
Sóng phản hồi của sóng siêu âm chịu ảnh hưởng của sóng âm thanh tạp âm.
Cảm biến siêu âm yêu cầu cần có một khoảng thời gian sau mỗi lần sóng phát đi để
nhận lại sóng phản hồi nên nhìn chung chậm hơn các cảm biến khác.
Cảm biến siêu âm có giới hạn khoảng cách phát hiện.

4.3. Hướng phát triển:
Nghiên cứu, tìm hiểu thêm để giảm thiểu sai số đến giá trị nhỏ nhất, khắc phục những
khuyết điểm nêu trên.

18


Mạch đo khoảng cách

TÀI LIỆU THAM KHẢO
[1]. Tống Văn On. Họ vi điều khiển 8051. Tp.HCM, NXB Lao động xã hội,
2001.
/>q=89s52&biw=1366&bih=623&tbm=isch&tbo=u&source=univ&sa=X&sqi=2&
ved=0ahUKEwiy95Kxvu_LAhWHEpQKHQcnB2UQsAQIGw#imgrc=KbPz0tK
oswi6wM%3A
[2]. />q=datasheet+srf05&biw=1366&bih=623&source=lnms&tbm=isch&sa=X&ved=
0ahUKEwjBw_vYvu_LAhWMkpQKHXfgBVsQ_AUIBigB#imgrc=Vfqt34nUovG4M%3A
[3]. />q=lcd&biw=1366&bih=623&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiZ
vabvvu_LAhXCFZQKHY7kDl0Q_AUIBigB#tbm=isch&q=lcd+16x2&imgrc=
mH8O72tVtshKDM%3A

19


Mạch đo khoảng cách

PHỤ LỤC
Code chương trình:
LCD_E BIT P3.0
LCD_RW BIT P3.1

LCD_RS BIT P3.2
LCD_DATA EQU P2
ECHO BIT P1.0
TRIGGER BIT P1.1
DEM EQU R0
CHUCDONVI EQU 10H
NGANTRAM EQU 11H
CHUCNGAN EQU 12H
DEMTV EQU R3
CHUKY EQU R4
BL EQU R6
BH EQU R7
ORG 000H
JMP MAIN
ORG 000BH

20


Mạch đo khoảng cách

INC DEM
MOV TH0,#HIGH(-232)
MOV TL0,#LOW(-232)
RETI

MAIN:
MOV TMOD,#01H
SETB EA
SETB ET0


CALL KTAO_LCD
CALL HT_HANG1
CALL HT_HANG2

LB0: MOV DEM,#0
SETB TRIGGER
CALL DELAY10US
CLR TRIGGER

21


Mạch đo khoảng cách

JNB ECHO,$
MOV TH0,#HIGH(-232)
MOV TL0,#LOW(-232)
SETB TR0
JB ECHO,$

CLR TR0
CALL CAL_PULSE
MOV B,23H
MOV A,24H
CALL HEXTOBCD
CALL BCDTOASCII
CALL HT_RESULT
JMP LB0


;3.2.2 CÁC CHƯƠNG TRÌNH CON
;A/ CHƯƠNG TRÌNH CON KHỞI TẠO LCD

22


Mạch đo khoảng cách

KTAO_LCD:
MOV LCD_DATA,#38H
CALL GHI_DIEUKHIEN
MOV LCD_DATA,#38H
CALL GHI_DIEUKHIEN
MOV LCD_DATA,#38H
CALL GHI_DIEUKHIEN

MOV LCD_DATA,#0CH
CALL GHI_DIEUKHIEN
MOV LCD_DATA,#01H
CALL GHI_DIEUKHIEN
MOV LCD_DATA,#06H
CALL GHI_DIEUKHIEN
RET

;B/ CHƯƠNG TRÌNH CON HEXTOBCD

23


Mạch đo khoảng cách


HEXTOBCD:
MOV CHUCDONVI,#0
MOV NGANTRAM,#0
MOV CHUCNGAN,#0
MOV BH,A
MOV BL,B
MOV 50H,BH
MOV 51H,BL
MOV DEMTV,#15

HEXTOBCD1:
CALL XOAYDULIEU
;KIEM TRA HANG DON VI
MOV A,CHUCDONVI
ANL A,#0FH
CJNE A,#5,$+3
JC HEXTOBCD2
MOV A,CHUCDONVI

24


Mạch đo khoảng cách

ADD A,#3
MOV CHUCDONVI,A
;KIEM TRA HANG CHUC
HEXTOBCD2:
MOV A,CHUCDONVI

ANL A,#0F0H
CJNE A,#50H,$+3
JC HEXTOBCD3
MOV A,CHUCDONVI
ADD A,#30H
MOV CHUCDONVI,A
;KIEM TRA HANG TRAM
HEXTOBCD3:
MOV A,NGANTRAM
ANL A,#0FH
CJNE A,#5,$+3
JC HEXTOBCD4
MOV A,NGANTRAM
ADD A,#3

25


×