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

đo khoảng cách bằng sóng siêu âm

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 (321.58 KB, 30 trang )

Mục Lục

LỜI MỞ ĐẦU
Ngày nay, với những ứng dụng của khoa học kỹ thuật tiên tiến, xã hội của chúng
ta ngày càng thay đổi, văn minh và hiện đại hơn. Sự phát triển của kỹ thuật điện tử đã
tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật như sự chính xác cao, tốc độ
nhanh, gọn nhẹ là những yếu tố rất cần thiết góp phần cho hoạt động của con người đạt
hiệu quả.
Điện tử đang trở thành một ngành kỹ thuật đa nhiệm vụ.Nó đã đáp ứng được
những nhu cầu cần thiết trong hoạt động đời sống hằng ngày.Nó được ứng dụng nhiều
trong cuộc sống con người. Kỹ thuật Điện tử biến những điều không thể thành có
thể,một trong số đó là khả năng đo khoảng cách bằng sóng siêu âm tại những nơi mà ta
không thể dùng thước để đo,hoặc tiếp xúc trực tiếp tới vị trí cần đo khoảng cách.
Chính vì vậy,nhóm chúng em đã đi đến thống nhất tìm hiểu và nghiên cứu chế
tạo một sản phẩm ứng dụng đo khoảng cách bằng sóng siêu âm.
Sau một thời gian học tập và rèn luyện, với sự chỉ bảo tận tình của thầy giáo
PHẠM DUY KHÁNH cùng sự trợ giúp của các bạn trong nhóm và các tài liệu có liên
quan,chúng em đã hoàn thành xong đề tài.
Đồ án đã hoàn thành xong, nhưng không thể tránh nhiều thiếu sót mong thầy cô
giáo thông cảm và chỉ bảo thêm để đề tài có thể ứng dụng rộng rãi trong thực tế.
Chúng em xin chân thành cảm ơn các thầy cô!

Đồ án Điện tử điển hình

1

GVHD: ThS. Phạm Duy Khánh


CHƯƠNG 1 : TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ:


Siêu âm là âm thanh có tần số cao hơn tần số tối đa mà tai người nghe thấy (cao
hơn 20000 Hz). Ngược lại các âm thanh có tần số ≤ 20000 Hz là hạ âm.Siêu âm có thể
lan truyền trong nhiều môi trường như môi trường âm thanh, không khí, các chất lỏng
và rắn.
Ngày nay sóng siêu âm được ứng dụng trong nhiều lĩnh vực như y học, khoa
học công nghệ…Đặc biệt là trong khoa học công nghệ sóng siêu âm được ứng dụng để
đokhoảng cách. Ví dụ như đo khoảng cách gữa 2 bức tường, đo khoảng cách từ mặt
đất lên một vật phía trên, đo khoảng cách phía đuôi ô tô để báo vật cản khi lùì, đo
khoảng cách mực nước trong bể hay trong hồ…
Vì vậy trong đồ án này chúng ta cùng nhau đi nghiên cứu về đo khoảng cách
bằng sóng siêu âm.

1.2 GIỚI THIỆU MỘT SỐ THIẾT BỊĐO KHOẢNG CÁCH BẰNG SÓNG
SIÊU ÂM.
Trên thị trường hiện nay có bán rất nhiều loại máy đo khoảng cách bằng sóng
siêu âm. Hầu hết các loại máy đo khoảng cách đó đều có tính năng đo khoảng cách rất
xa và lưu trữ thông tin đo. Dưới đây là một loại máy đo thông dụng trên thị trường.

1.2.1 Leica DISTO - D2

o

Đây là thiết bị thiết thựcvà phổ biến nhất, với các đặc tính tiêu biểu:
- Sử dụng các phím chức năng nhanh nhạy, xác định điểm xa nhất và gần nhất,
cho phép đo các đường ngang vàchéo trong một góc
- Công nghệ Power RangeTechnologyTM cho phép khoảng đo 80m không cần
tấm phản quang. Điều này cầnthiết cho việc sử dụng ngoài trời, và trong điều
kiện ánh sáng mạnh.
-


Đồ án Điện tử điển hình

2

GVHD: ThS. Phạm Duy Khánh


- Thiết bị có bộ nhớ lưu trữ. Có thể xem lại các thông số đo.
- Cấu trúc gọn nhẹ với thiết kế đặc biệt cho các yêu cầu đo đạc dân dụng.
- Các phím chức năng tiện lợi, nhanh nhạy khi đo như: Cộng, trừ, tính toán diện
tích và thể tích chính xác. Cũng như tất cả các thiết bị phát tia laser có thể nhìn
thấy bằng mắt thường.
- Điểm cuối của tia Laser luôn được nhìn thấy trong tầm hoạt động quy định của
thiết bị. Với Leica DISTOTM D2 chúng ta không cần phải sử dụng thước đo với
khoảng cách quá dài và tiết kiệm chi phí tối đa, nhằm đạt hiệu quả cao nhất.

Khoảng cách đo
Sai số đo
Màn hình hiển thị
Nút nhấn
Hằng số lưu trữ giá
trị
Gọi lại giá trị trước

0.05 - 60m
± 1.5mm
3 dòng
Trực tiếp dễ sử dụng
1
10

0.000m, 0'0"1/16, 0 in
1/16, 0.00ft
5.000
AAA 2x1.5V
IP54
100g

Đơn vị đo
Số lần đo của Pin
Loại Pin
Cấp bảo vệ
Trọng lượng

1.2.2 Máy đo độ dài siêu âm CP3007
Máy đo khoảng cách siêu âm thích hợp cho việc trang trí nội thất, tính toán diện tích,
thể tích...để lắp đặt điều hòa nhiệt độ... Các đại lý bất động sản hay công nhân xây
dựng cần phải có các công cụ đo lường nhanh của căn phòng và kích thước phòng....
Máy sử dụng công nghệ truyền sóng siêu âm đến đối tượng, sau đó tính toán thời gian
truyền đi để xác định khoảng cách đo. Tia Laser để định vị mục tiêu cần xác định độ
dài

Đồ án Điện tử điển hình

3

GVHD: ThS. Phạm Duy Khánh


-


Thông số kỹ thuật:
Độ chính xác: + / -0.5%
Tần số: 40 kHz (siêu âm)
Nhiệt độ làm việc: 0oC ~ 43oC
Phạm vi: 0.91m đến 15m
Kích thước (H-P-l): 142 x 73 x 47mm
Pin: 9v
Trọng lượng (không có pin): 144.6g
Chùm tia laser: Công suất 1mW (mW = miliwatt)
Bước sóng: 650nm (nm = nanomet)

1.3 CÁC GIẢI PHÁP VÀ CÁCH XÁC ĐỊNH BÀI TOÁN
Yêu cầu của hệ thống:
-

Dạo diện người dùng dễ sử dụng.
Khoảng cách đo được tối đa 2m
Có thể lưu trữ lại được thông tin các lần đo
Nhỏ gọn có thể mang đi lại di chuyển được
Điện áp hoạt động của hệ thống không gây nguy hiểm đến người sử dụng.

Đồ án Điện tử điển hình

4

GVHD: ThS. Phạm Duy Khánh


Lựa chọn phương án:
Với yêu cầu về tính năng như trên, chúng em chọn các thiết bị chính:

- Vi điều khiển AT89S52
- Màn hình LCD 16x2 với mục đích hiển thị thông tin, giao tiếp vi điều khiển với

người dùng
- 1 phím chức năng đơn giản dễ sử
-

Nhỏ gọn,bền chắc chắn.
Nguồn là pin AA có thay thế dễ dàng

Xác Định Bài Toán Và Giới Hạn Của Đề Tài
Xác Định Bài Toán

-

Điểm quan trọng nhất của bài toán đo khoảng cách này bằng sóng siêu âm là
tính chính xác được thời gian bắt đầu phát ra sóng siêu âm tới thời điểm thu
được sóng phát ra lúc đầu là bao nhiêu.rồi ta mới tính toán được khoảng cách từ
máy đo tới vật cần đo..
Vì vậy bài toán chính là ta cần quan tâm là :

-

Thời điểm bắt đầu phát ra sóng siêu âm.

-

- Thời điểm thu lại được sóng đã phát ra
- Một bộ đếm timer để tính khoảng thời gian đó


Giới Hạn Của Đề Tài
Các ràng buộc :
- Sai số trong phạm vi cho phép 3 cm.
- Chi phí của bộ sản phẩm (không có động cơ) không quá 1.000.000vnđ.
- Nguồn điện sử dụng được lâu,và có thể thay mới ngay khi lúc cần
- Tầm xa có thể đo được trên 1.5m.

Đồ án Điện tử điển hình

5

GVHD: ThS. Phạm Duy Khánh


CHƯƠNG 2 :THIẾT KẾ HỆ THỐNG
2.1. SƠ ĐỒ KHỐI CỦA HỆ THỐNG

HIỂN THỊ

ĐIỀU KHIỂN TRUNG TÂM
KHỐI NGUỒN

NÚT BẤM

KHỐI CẢM BIẾN
2.1.1 Khối Điều Khiển Trung Tâm

Hình 6: Khối vi điều khiển
Đồ án Điện tử điển hình


6

GVHD: ThS. Phạm Duy Khánh


2.1.2 Khối Hiển Thị
a. Hình dáng và kích thước:
Có rất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau, trên hình
1 là hai loại LCD thông dụng.

Hình 2.6: Hình dáng của LCD
Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển (HD44780) bên
trong lớp vỏ và chỉ đưa các chân giao tiếp cần thiết. Các chân này được đánh số thứ tự
và đặt tên như bên dưới :

Hình 2.7: Sơ đồ chân của LCD

Đồ án Điện tử điển hình

7

GVHD: ThS. Phạm Duy Khánh


b. Chức năng các chân:

Chân số
1

Tên

Vss

2

Vdd

3
4

Vee
Rs

5

R/w

6

E

7-14

DB0DB7

Chức năng
Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với
GND của mạch điều khiển
Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với
VCC=5V của mạch điều khiển
Chân này dùng để điều chỉnh độ tương phản của LCD.

Chân chọn thanh ghi (Register select). Nối chân RS với logic “0”
(GND) hoặc logic “1” (VCC) để chọn thanh ghi.
+ 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
DR bên trong LCD.
Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic
“0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để
LCD ở chế độ đọc.
Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên
bus DB0-DB7, các lệnh chỉ được chấp 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.
Tám đường của bus dữ liệu dùng để trao đổi thông tin với
MPU. 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

Bảng 2.1: Chức năng của cán chân LCD


Đồ án Điện tử điển hình

8

GVHD: ThS. Phạm Duy Khánh


c. Các thanh ghi
Chíp HD44780 có 2 thanh ghi 8 bit quan trọng : Thanh ghi lệnh IR (Instructor
Register) và thanh ghi dữ liệu DR (Data Register)
- Thanh ghi IR : Để điều khiển LCD, người dùng phải “ra lệnh” thông qua tám
đường bus DB0-DB7. Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng. Người
dùng chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR. Nghĩa là, khi ta
nạp vào thanh ghi IR một chuỗi 8 bit, chíp HD44780 sẽ tra bảng mã lệnh tại địa chỉ mà
IR cung cấp và thực hiện lệnh đó.
VD : Lệnh “hiển thị màn hình” có địa chỉ lệnh là 00001100 (DB7…DB0)
Lệnh “hiển thị màn hình và con trỏ” có mã lệnh là 00001110
- Thanh ghi DR : Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vào vùng
RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùng
RAM này gởi ra cho MPU (ở chế độ đọc). Nghĩa là, khi MPU ghi thông tin vào DR,
mạch nội bên trong chíp sẽ tự động ghi thông tin này vào DDRAM hoặc CGRAM.
Hoặc khi thông tin về địa chỉ được ghi vào IR, dữ liệu ở địa chỉ này trong vùng RAM
nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU. Bằng cách điều khiển
chân RS và R/W chúng ta có thể chuyển qua lại giữ 2 thanh ghi này khi giao tiếp với
MPU. Bảng sau đây tóm tắt lại các thiết lập đối với hai chân RS và R/W theo mục đích
giao tiếp.
RS
0
0


R/W
0
1

1
1

0
1

Khi cần
Ghi vào thanh ghi RS để ra lệnh cho thanh ghi
Đọc cờ bận ở DB7 và giá trị của bộ đếm địa chỉ ở DB0DB6
Ghi vào thanh ghi DR
Đọc dữ liệu từ DR

Trong chương trính sử dụng LCD ở chế độ 4bit. Các lệnh được sử dụng:
 lcd_send_byte( BYTE address, BYTE n ) để điều khiển LCD ví dụ như lệnh :
lcd_send_byte(0,0x01) dùng để xóa màn hình, lcd_send_byte(0,0x08) để đưa
con trỏ về đầu dòng thứ nhất…
 lcd_gotoxy(a,b) để đưa con trỏ về các vị trí mong muốn thộc các dòng khác
nhau của LCD. Lcd_gotoxy(x,1) đưa con trỏ về dòng 1 vị trí x, vị trí x có thể từ
1->16 của LCD
 printf(lcd_putc,”…”): in một xâu ký tự ra màn hình.xâu ký tự có độ dài < 16 ký
tự để LCD có thể hiển thị được đầy đủ
 lcd_putc(‘…’) : in một ký tự ra màn hình.

2.1.3 Nút bấm
Nguyên lý hoạt động khi chưa tác động nút nhấn thì nhận được mức logic 0, khi tác
động thì nhận được mức logic 1.

Đồ án Điện tử điển hình

9

GVHD: ThS. Phạm Duy Khánh


2.1.4. Khối cảm biến siêu âm
Cảm biến siêu âm có nhiệm vụ phát tín hiệu sóng siêu âm và thu lại tín hiệu
sóng siêu âm bằng cách báo bằng mức logic ở các chân của cảm biến.

Hình 2.5 : Cảm biến siêu âm
Cảm biến SRF05 là một loại cảm biến khoảng cách dựa trên nguyên lý thu phát siêu
âm. Cảm biến gồm một bộ phát và một bộ thu sóng siêu âm. Sóng siêu âm từ đầu phát
truyền đi trong không khí, gặp vật cản (vật cần đo khoảng cách tới) sẽ phản xạ ngược
trở lại và được đầu thu ghi lại. Khoảng cách đo được của SRF05 nằm trong phạm vi từ
4cm đến 300cm.

2.1.5 Khối Nguồn

Cung cấp nguồn nuôi cho vi điều khiển hoạt động theo yêu cầu đề tài.

Đồ án Điện tử điển hình

10

GVHD: ThS. Phạm Duy Khánh


Cung cấp nguồn nuôi cho vi điều khiển hoạt động theo yêu cầu đề tài. ở đây ta

tạo ra nguồn 5v cấp cho vi điều khiển.

2.2 Lựa chọn linh kiện
Một số đặc tính cơ bản của AT89S52:
- Bộ nhớ chương trình bên trong: 8KB (ROM)
- Bộ nhớ dữ liệu bên trong: 128 bye (RAM)
- 4 port xuất nhập (I/O port) 8 bit
- 2 bộ định thời 16 bit
- Mạch giao tiếp nối tiếp
- Bộ xử lí bit (thao tác trên các bit riêng lẻ)
- 210 vị trí nhớ được định chỉ, mỗi vị trí 1 bit – nhân/chia trong 4 µs
Sơ đồ chân họ vi điều khiển 89S52:

Đồ án Điện tử điển hình

11

GVHD: ThS. Phạm Duy Khánh


-

-

Chân vcc : chân số 40 là Vcc cấp điện áp cho nguồn vi điều khiển. Nguồn
cấp là 5v
Chân GND: chân số 20 nối GND khi thiết kế cần sử dụng 1 mạch ổn áp để
bảo vệ cho vi điều khiển, cách đơn giản là sử dụng IC 7805
Port 0: gồm 8 chân từ 32 đến 39có 2 chức năng là
+ Chức năng xuất/nhập : các chân nay dùng để nhận tín hiệu từ bên ngoài

vào để xử lý hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn xuất tín
hiệu điêug khiển led đơn sáng tắt
+ Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0): 8 chân này còn làm
nhiêm vụ lấy dữ liệu từ ROM vào RAM ngoài, đồng thời Port0 còn được
dùng để làm định địa chỉ của bộ nhớ ngoài
Port 1(P1) gồm 8 chân chỉ có chức năng làm đường xuất/nhập không có
chức năng khác
Port 2(P2) gòm 8 chân (từ chân 21 đến chân 28) có 2 chức năng:
+ chức năng xuất/ nhập
+ chức năng là bus địa chỉ cao (A8-A15): khi kết nối vớ bộ nhớ ngoài có
dung lượng lớn, cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0 đảm
nhận, byte cao do P2 này đảm nhận

Đồ án Điện tử điển hình

12

GVHD: ThS. Phạm Duy Khánh


-

Port 3 gồm 8 chân (từ 10 đến 17): chân cho phép bộ nhớ chương trình PSEn
tín hiệu được xuất ở chân 29 dùng để truy xuất bộ
Chức năng xuất/nhập

BIT
P3.0
P3.1
P3.2

P3.3
P3.4
P3.5
P3.6

TÊN
RxD
TxD
INT0
INT1
T0
T1
WR

P3.7

RD

P1.0
P1.1

T2
T2X

CHỨC NĂNG
Ngõ vào nhận dữ liệu nối tiếp
Ngõ xuất dữ liệu nối tiếp
Ngõ vào ngắt cứng thứ 0
Ngõ vào ngắt cứng thứ 1
Ngõ vào của timer/counter thứ 0

ngõ vào củatimer/counter thứ 1
Ngõ điều khiển ghi dữ liệu từ bộ nhớ
ngoài
Ngõ điều khiển đọc dữ liệu từ bộ nhớ
ngoài
ngõvào của timer/couter thứ2
ngõnạp lại/thu nhận của timer/ counter
thứ2

- Chân Reset ngõ vào ở chân 9 là ngõ vào reset dùng để thiết lập trạng thái ban đầu cho

vi điều khiển. Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này ở mức 1
tối thiểu chu kỳ này
- Chân XTAL1 và XTAL2: 2 chân này có vị trí là 18 và 19 được sử dụng xung clock từ
bên ngoài để hoạt động, thường được ghép nối với thạch anh với các tụ để tạo nguồn
xung clock ổn định.
- Chân cho phép bộ nhớ chương trình PSEN: tín hiệu xuất ra ở chân 29 dùng để
truy xuất bộ nhớ chương trình ngoài. Chân này được nối với chân OE của ROM ngoài.
- Chân ALE có chức năng là bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ.
Tín hiệu ở chân ALE dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và
các đường dữ liệu khi kết nối chúng với IC chốt.

2.3 Nguyên lý hoạt động
Bộ vi điều khiển nhận các tín hiệu từ môi trường bên ngoài thông qua bộ biến
đổi ADC, được sử dụng để thu dữ liệu. Các máy tính số chỉ sử dụng giá trị thập phân,
nhưng trong thực tế là các đại lượng vật lý như: vận tốc, nhiệt độ, áp suất… Do đó cần
cố bộ biến đổi để chuyển các đại lượng vật lý thành các tín hiệu điện hoặc điện áp, các
bộ điều khiển có thể được coi như là các cảm biến. Các cảm biến có thể cho ra tín hiệu
dạng dòng điện hoặc điện áp ở dạng liên tục.
Đồ án Điện tử điển hình


13

GVHD: ThS. Phạm Duy Khánh


Tín hiệu được đưa vào chip sẽ được sử lý hiển thị trên màn hình LCD.

Đồ án Điện tử điển hình

14

GVHD: ThS. Phạm Duy Khánh


CHƯƠNG III: XÂY DỰNG HỆ THỐNG
3.1 Phần mềm proteus
Proteus là phần mềm của hãng Labcenter Electronics, nó mô phỏng được
cho
hầu hết các linh kiện điện tử thông dụng, đặc biệt có hỗ trợ cho cả các MCU như
PIC, 8051, AVR, Motorola.
Đặc biêt proteus cực kỳ hữu ích đối với những bạn đam mê lập trình vi điều khiển, vì
nó có thể giúp ta kiểm tra chương trình cực nhanh
+) Ưu điểm
- Dễ dàng tạo ra một sơ đồ nguyên lý đơn giản từ các mạch điện đơn giản, đến các
mạch có bộ lập trình vi xử lý.
- Dễ dàng chỉnh sửa các đặc tính của linh kiện trên sơ đồ nguyên lý
- Công cụ hỗ trợ kiểm tra lỗi thiết kế trên sơ đồ nguyên lý. Xem và lưu lại phần báo lỗi
- Chạy mô phỏng và phân tích các tính chất của mạch điện cơ bản.
- Ngoài ra Proteus còn cung cấp cho người sử dụng các công cụ mạnh mà các phần

mềm khác hâu như không có. Chẳng hạn như LED với các loại màu sắc khác nhau kể
cả led 7 đoạn
- Một ưu điểm nữa của Proteus là có thể mô phỏng công cụ phát và thu tín hiệu từ các
mạch giao tiếp với máy tính qua công cụ RS232
- Proteus có một thu viện khá lớn với hơn 6000 linh kiện các loại và càng ngày càng
được bổ sung. Ngoài ra còn có keypad ( ma trận phím tạo đơn giản cho người thiết kế
khi cần thao tác trên các ma trận phím).
+) Khả năng ứng dụng
- Khả năng ứng dụng chính của Proteus là mô phỏng, phân tích các kết quả từ các
mạch nguyên lý. Proteus giúp cho người sử dụng có thể thấy trước mạch thiết kế chạy
đúng hay sai trước khi thiết kế trên bo mạch
- Các công cụ phục vụ cho việc phân tích mạch có độ chính xác khá cao như đo vôn
hay ampe, máy đo dao động.
+) Nhược điểm
Phần mềm nào cũng có nhược điểm của nó do đó Proteus cũng không tránh khỏi các
nhược điểm:
- Trong khi thiết kế có nhiều phần trong Proteus chạy không theo một quy tắc nào làm
người sử dụng dụng đôi lúc gặp khó khăn.
- Sử dụng khá phức tạp nhất là đối với các mạch vi xử lý hay các mạch cần chỉnh sửa
các tính chất các linh kiện.
Đồ án Điện tử điển hình

15

GVHD: ThS. Phạm Duy Khánh


- Phần mềm do công ty nước ngoài viết nên không có tài liệu hướng dẫn sử dụng.
- Hướng dẫn sử dụng Proteus hoàn toàn bằng tiếng anh nên đòi hỏi người sử dụng
cũng phải có một nền tảng tiếng anh cơ bản nếu muốn sử dụng nó một cách hiệu quả.


3.2 Phần mềm keil sử dụng C++
C++ hiện là ngôn ngữ lập trình (NNLT) được ưa chuộng và sử dụng rộng rãi do tính
năng mạnh mẽ, đa dụng của nó. Đây là NNLT được nhiều trường đại học và cao đẳng
trong và ngoài nước sử dụng để giảng dạy lập trình ban đầu cho sinh viên. Giáo trình
“Lập trình C++” này được viết nhằm phục vụ cho đối tượng là sinh viên các hệ Cao
đẳng và Đại học thuộc khối ngành Kỹ thuật (Không chuyên về Công nghệ Thông Tin).

3.3 Bảng linh kiện sử dụng
stt

T ên linh kiện

Số lượng

1
2
3
4
5
6

LCD 16x2
Chip AT89S52
Thạch anh
SRF05
Điện trở
Biến trở
Tụ điện


1
1
1
1
2
2
13

7
8
9
10
11
12
13
14

Thanh điện trở
Biến trở tinh
LM 7805
Đi ốt
Giắc cắm 5 chân
Công tắc 2 cực
Đèn led
Giắc cắm 4 chân

1
1
1
1

1
1
1
1

Ghi chú

12hz
1k
10k
( 10k)
210k
1N0047
Màu xanh

3.4 Sơ đồ mạch nguyên lý

Đồ án Điện tử điển hình

16

GVHD: ThS. Phạm Duy Khánh


3.5 Lập trình
Mã code dùng trong lập trình
#include <AT89X52.H>
#include <stdio.h>
#define Line_1 0x80
#define Line_2 0xC0

#define Clear_LCD 0x01
#define CPU_F 25000
#define LCD_RS P0_0
#define LCD_WR P0_1
#define LCD_EN P0_2
//Dinh Nghia Cac Chan DaTa
#define LCD_D4 P2_7

Đồ án Điện tử điển hình

17

GVHD: ThS. Phạm Duy Khánh


#define LCD_D5 P2_6

#define LCD_D6 P2_5
#define LCD_D7 P2_4
#define TRIGGER P1_7
#define ECHO P3_2
unsigned char range_ok;
unsigned int distance;
float range;
//unsigned long range=0xffffffff;
float temp1;
//unsigned int temp1;
bit trans_busy;
//unsigned char str1[1];
unsigned char data_recv[10];

unsigned char index;

void delay_us(unsigned int time)
{
unsigned int temp;
for(temp=0;temp}
void delay_ms(unsigned int time)
{
unsigned int i,j;
Đồ án Điện tử điển hình

18

GVHD: ThS. Phạm Duy Khánh


for(i=0;ifor(j=0;j<125;j++);
}
void StartRange()
{
TRIGGER=1;
delay_ms(12);
ECHO=1;

// Phai tao 1 xung len co do lon it nhat 10ms
// set chan ECHO la cong vao

delay_us(1);

TRIGGER=0;
while(!(ECHO));

// Bat dau phep do.
// Doi cho den khi chan ECHO duoc keo len

cao
//TR0=1;

// Cho phep timer 0 hoat dong

TR0=IT0=EX0=EA=1;
toan cuc

// cho phep ngat

}

void lcd_enable_pulse(void)
{
LCD_EN=1;
delay_us(1);
LCD_EN=0;
delay_us(1);
}
void lcd_send_4bit_data ( unsigned char Data )

Đồ án Điện tử điển hình

19


GVHD: ThS. Phạm Duy Khánh


{
LCD_D4= Data&0x01;
LCD_D5=((Data>>1)&1);
LCD_D6=((Data>>2)&1);
LCD_D7=((Data>>3)&1);
}
#ifdef USE_LCD_READ
unsigned char lcd_read_4bit_data(void)
{
unsigned char n = 0x00;
/* Read the data port */
n |= LCD_D4;
n |= (LCD_D5) << 1;
n |= (LCD_D6) << 2;
n |= (LCD_D7) << 3;
return(n);
}
unsigned char lcd_read_byte(void)
{
unsigned char low,high;
LCD_D4=LCD_D5=_LCD_D6=_LCD_D7=1;
LCD_RS=1;
delay_us(1);
LCD_EN=1;
delay_us(1);
Đồ án Điện tử điển hình


20

GVHD: ThS. Phạm Duy Khánh


high = lcd_read_4bit_data();
LCD_EN=0;
delay_us(1);
LCD_EN=1;
delay_us(1);
low = lcd_read_4bit_data();
LCD_EN=0;
return( (high<<4) | low);
}
char lcd_getc(unsigned char x, unsigned char y)

//lay 1 ky tu tai dia chi x,y

{
char value;
lcd_gotoxy(x,y);
// Wait until busy flag is low.
while(bit_test(lcd_read_byte(),7));
LCD_RS=1;
value = lcd_read_byte();
LCD_RS=0;
return(value);
}
#endif

void lcd_send_command (unsigned char Data )
{
#ifdef USE_LCD_READ
while ( 0x80&lcd_read_byte() ) ;
Đồ án Điện tử điển hình

21

GVHD: ThS. Phạm Duy Khánh


#else
delay_us(20);
#endif
lcd_send_4bit_data ( Data >>4 );

/* send 4 bit high */

lcd_enable_pulse () ;
lcd_send_4bit_data ( Data );

/* send 4 bit low */

lcd_enable_pulse () ;
}
void lcd_init ( void )
{
lcd_send_4bit_data ( 0x00 );
delay_ms(10);


//Was 200

LCD_RS=0;

// che do gui lenh

LCD_WR=0;

// che do ghi

LCD_EN=0;
lcd_send_4bit_data ( 0x03 );

// ket noi 8 bit

lcd_enable_pulse () ;
lcd_enable_pulse () ;
lcd_enable_pulse () ;
lcd_send_4bit_data ( 0x02 );

// ket noi 4 bit

lcd_enable_pulse () ;
lcd_send_command( 0x2C );

// giao thuc 4 bit, hien thi 2 hang, ki tu 5x8

delay_ms(5);
lcd_send_command( 0x80);
lcd_send_command( 0x0c);

Đồ án Điện tử điển hình

// cho phep hien thi man hinh
22

GVHD: ThS. Phạm Duy Khánh


lcd_send_command( 0x06 );

// tang ID, khong dich khung hinh

delay_ms(5);
lcd_send_command( Clear_LCD );

// xoa toan bo khung hinh

delay_ms(10);
}
void lcd_gotoxy(unsigned char x, unsigned char y)
{
unsigned char address;
if(!y)
address = (Line_1+x);
else
address = (Line_2+x);
delay_us(1000);
lcd_send_command(address);
delay_us(50);
}

void lcd_clear()
{
lcd_send_command( Clear_LCD );
delay_us(10);
}
void lcd_putchar ( unsigned int Data )
{
LCD_RS=1;

// che do gui du lieu

lcd_send_command( Data );
Đồ án Điện tử điển hình

23

GVHD: ThS. Phạm Duy Khánh


LCD_RS=0;

// che do gui lenh

}
void lcd_puts(char *s)
{
while (*s)
{
lcd_putchar(*s);
s++;

}
}
void init_timer1()
{
TMOD &= ~(0x20);// setup mode for timer 1
TMOD |= 0x20;
// Baud rate = 9600
// PCON.7 = 0, without increasing baud rate 2 times
TL1 = 0xFD; //-3
TH1 = 0xFD; //-3
TR1 = 1; //start timer1
}
void initUart()
{
//IE = 0xb0;
//SCON: SM0 SM1 SM2 REN TB8 RB8 TI RI
ES = 1;

// enable UART

Đồ án Điện tử điển hình

24

GVHD: ThS. Phạm Duy Khánh


IP = 0x10; // set priority for serial port
SCON = 0x50; // Uart mode 1
PCON=PCON&(~(0x80));

}

void sendChar(unsigned char c)
{
trans_busy = 1;
SBUF = c;
while(trans_busy);
}
void sendStr(char *s)
{
while (*s)
{
sendChar(*s);
s++;
}
}
void uart_isr(void) interrupt 4
{
if (TI == 1)
{
trans_busy = 0;
TI = 0;
Đồ án Điện tử điển hình

25

GVHD: ThS. Phạm Duy Khánh



×