GVHD:Ths Nguyễn Đình Luyện
Nhận xét của giáo viên hướng dẫn
...........................................................................................................................................................................................................................................
...........................................................................................................................................................................................................................................
...........................................................................................................................................................................................................................................
...........................................................................................................................................................................................................................................
……………………………………………………………………………………………………………………………………………….
……………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
1
GVHD:Ths Nguyễn Đình Luyện
LỜI MỞ ĐẦU
Các ứng dụng từ vi điều khiển,vi xử lý ngày càng phát triển,đã dần thay thế các
thiết bị thô sơ,bằng các thiết bị điện tử có độ tự động rất cao,tiết kiệm công sức cho
con người.Ở nước ta nông nghiệp vẫn là ngành mũi nhọn của kinh tế của toàn
quốc.Vì vậy việc ứng dụng các tiến bộ khoa học,kỹ thuật vào nông nghiệp là cực kì
quan trọng và có ý nghĩa to lớn với nông dân nói riêng và đời sống con người nói
chung.
Để tạo nền tảng và tăng thêm hiểu biết về những ứng dụng thực tiễn của các
thiết bị vi điều khiển,vi xử lý.Chúng em lựa chọn đề tài “ hệ thống tưới nước tự
động ”.Một ứng dụng rất phổ biến trong nông nghiệp.
Trong quá trình thực hiện đề tài này , dù đã rất cố gắng , nhưng có lẽ do vốn
kiến thức cũng như những nguyên nhân chủ quan khác mà đề tài chắc chắn sẽ
không tránh khỏi thiếu sót . Chúng em rất mong sự đóng góp ý kiến, phê bình và
hướng dẫn thẳng thắn của thầy cô và các bạn đọc.
Sinh viên thực hiện
DiệpThế Qui
Hoàng Thị Phương
Đinh Xuân Hiệp
Nguyễn Ngọc Khang
2
GVHD:Ths Nguyễn Đình Luyện
MỤC LỤC
A.PHẦN MỞ ĐẦU………………………………………………………......4
1.ĐẶT VẤN ĐỀ…………………………………………………………….4
2.GIỚI HẠN ĐỀ TÀI…………………………………………………….....4
B.PHẦN NỘI DUNG ……………………………………………………..... 5
Chương I: SƠ ĐỒ KHỐI………………………………………………… 5
1.SƠ ĐỒ TỔNG QUÁT……………………………………………………. 5
2.SƠ ĐỒ NGUYÊN LÝ……………………………………………………. 6
3.SƠ ĐỒ MẠCH IN ………………………………………………………. 7
Chương II: THIẾT KẾ HỆ THỐNG …………………………………... 8
1.LƯU ĐỒ CHÍNH …………………………………………………………………. 8
2.CÀI ĐẶT THỜI GIAN ……………………………………………. ……8
3. CODE…………………………………………………………………10
C.PHẦN KẾT LUẬN……………………………………………………….31
1. KẾT LUẬN ……………………………………………………………….............31
2. TÀI LIỆU THAM KHẢO………………………………………………………..31
3
GVHD:Ths Nguyễn Đình Luyện
A. PHẦN MỞ ĐẦU
1. Đặt vấn đề
Lâu nay bà con nông dân vẫn sử dụng nhiều phương pháp tưới nước
như dùng gàu hoặc tưới bằng xăng dầu,motor điện với ống chuyển nước… dần dần
thì cách này không còn phát huy hiệu quả vì con khá thủ công,tốn nhiều công
sức,chi phí cao và chưa đáp ứng được cho quá trình công nghiệp hóa,hiện đại hóa
nông nghiệp nông thôn.
Từ nhu câug thiết thực ấy,nhóm chung em bắt tay vào nghiên cứu đề tài
hệ thống tươí nước tự động thích hợp để tưới cây vườn nhà hoặc công viên… vơí
những ưu điểm như giảm được nhân công,giảm chi phí,tiết kiệm thời gian,không
tốn nhiên liệu,tiện lợi cho người sử dụng.
2. Giới hạn của đề tài
2.1 Hạn chế của đề tài
Đề tài này được ứng dụng rất rông rãi trong thực tế nhưng trong mức độ
cho phép chúng em chỉ có thể mô phỏng đề tài ở mức độ đơn giản,chúng em làm
sản phẩm vì điều kiện khách quan nên chúng em đã thay thế máy bơm bằng bóng
đèn để mô tả sản phẩm của mình
2.2 Phương pháp nghiên cứu
Sự hướng dẫn của giáo viên.
Thu thập,tìm hiểu những tài liệu liên quan đến đề tài.
Ứng dụng các kiến thức về vi điều khiển và điện tử số đã học.
2.3 Phạm vi của đồ án và phương hướng mở rộng
- Vì đồ án môn học nên chúng em mới chỉ xây dựng mô phỏng và thiết kế hệ thống
trong phạm vi hẹp cố định một thời khóa biểu.
- Phương hướng mở rộng đồ án môn học thành đồ án tốt nghiệp:
Thiết kế hệ thống tưới nước cho thời khóa biểu 2 mùa , mùa đông và mùa hè.
Trong đó giờ mùa hè buổi sáng vào sớm hơn 15 phút ,buổi chiều vào muộn hơn 30
phút so với giờ mùa đông.
4
GVHD:Ths Nguyễn Đình Luyện
+ Thiết kế Module điều chỉnh bằng quét phím ma trận hoặc giao tiếp bàn phím
máy tính có thể lập trình thời khóa biểu theo ý muốn và giờ giấc của từng cá nhân
sử dụng cũng như phù hợp với từng loại vườn,loại cây
B. PHẦN NỘI DUNG
CHƯƠNG I : SƠ ĐỒ KHỐI
1. Sơ đồ tổng quát
Sơ đồ khối mạch giao tiếp I2C giữa DS1307 & 89S52
5
GVHD:Ths Nguyễn Đình Luyện
Dựa vào sơ đồ khối, điều cơ bản là ta phải viết một phần mềm khởi tạo DS1307,
thực chất là chương trình giao tiếp I2C , đọc giá trị trong RAM của con DS1307
lưu tạm thời vào trong RAM của 89S52. Sau đó,viết thêm 1 phần mềm để đọc nội
dung trong RAM này đưa ra hiển thị.
2. Sơ đồ nguyên lý
Sơ đồ nguyên lý :
6
GVHD:Ths Nguyễn Đình Luyện
3. Sơ đồ mạch in :
CHƯƠNG II : THIẾT KẾ HỆ THỐNG
7
GVHD:Ths Nguyễn Đình Luyện
1. Lưu đồ chính :
Chương trình main của chúng ta sẽ gồm 3 mục chính được mô tả cụ thể
trong lưu đồ của chương trình main hình dưới đây:
2. Cài đặt thời gian :
Trong lưu đồ giả thuật chính ở trên,ta thấy vòng lặp của chương trình sẽ
chạy vô tận đến khi có phím MODE được ấn xuống,khi đó nó nhảy CTC để
giải quyết việc cài đặt thời gian.
Lưu đồ giải thuật của CTC xử lý cài đặt phím được thể hiện ở hình dưới :
8
GVHD:Ths Nguyễn Đình Luyện
Lưu đồ CTC cài đặt giờ
CTC cài đặt phút cũng có nguyên tắc tương tự như cài đặt giờ nên không được
nói ra đây.
Nhìn vào lưu đồ ta thấy, ThanhGhi =02H, là địa chỉ của thanh ghi giờ trong con
DS1307,như vậy,mục đích của việc định nghĩa ô nhớ ThanhGhi là để xác định
địa chỉ thay đổi giá trị trong ô nhớ RAM của con DS1307. CTC cài đặt giờ sẽ
lặp vô tận,trong khi CTC đang chạy vô tận,,nếu có phím INC hoặc DEC được
nhấn thì nó sẽ nhảy đến CTC tăng hoặc giảm tùy vào phím được ấn. CTC tăng
giờ được chỉ ra ở hình bên dưới,nguyên tắc của CTC giảm giờ cũng như vậy.
9
GVHD:Ths Nguyễn Đình Luyện
Lưu đồ CTC tăng giờ
3. code
rs bit p2.0
rw bit p2.1
en bit p2.2
busy bit p0.7
_ok bit p3.4
up bit p3.3
down bit p3.2
10
GVHD:Ths Nguyễn Đình Luyện
scl bit p3.6
sda bit p3.7
dat equ p0
dem equ r4
dulieu equ 20h
giay equ 21h
phut equ 22h
gio equ 23h
org 00h
ljmp setup
org 03h
ljmp tang
org 13h
ljmp giam
org 0bh
ljmp ngat_t0
org 40h
setup:
mov dem, #0
call lcd_int
call rtc_int
setb _ok
11
GVHD:Ths Nguyễn Đình Luyện
setb up
setb down
mov tmod, #01h
mov th0, #high(-500)
mov tl0, #low(-500)
setb tr0
setb et0
setb ex0
setb it0
setb ex1
setb it1
setb ea
main:
jb p3.4, main
clr et0
inc dem
jnb p3.4, $
mode1:
cjne dem, #1, mode2
mov a, #18h
lcall lcd_gotoxy
mov a, #0eh
lcall lcd_cmd
jmp main
mode2:
cjne dem, #2, mode3
mov a, #1bh
12
GVHD:Ths Nguyễn Đình Luyện
lcall lcd_gotoxy
jmp main
mode3:
cjne dem, #3, mode4
mov a, #1eh
lcall lcd_gotoxy
jmp main
mode4:
mov dem, #0
mov a, #0ch
lcall lcd_cmd
call i2c_start
mov a, #0d0h
call i2c_write
mov a, #00h
call i2c_write
mov a, giay
call i2c_write
call i2c_stop
call i2c_start
mov a, #0d0h
call i2c_write
mov a, #01h
call i2c_write
mov a, phut
call i2c_write
call i2c_stop
13
GVHD:Ths Nguyễn Đình Luyện
call i2c_start
mov a, #0d0h
call i2c_write
mov a, #02h
call i2c_write
mov a, gio
call i2c_write
call i2c_stop
setb et0
ljmp main
;====================
;====================
rtc_int:
call i2c_start
mov a, #0d0h
call i2c_write
mov a, #00h
call i2c_write
mov a, #00h
call i2c_write
call i2c_stop
call i2c_start
mov a, #0d0h
call i2c_write
14
GVHD:Ths Nguyễn Đình Luyện
mov a, #01h
call i2c_write
mov a, #00h
call i2c_write
call i2c_stop
call i2c_start
mov a, #0d0h
call i2c_write
mov a, #02h
call i2c_write
mov a, #05h
call i2c_write
call i2c_stop
ret
not_ack:
setb scl
call delay_
setb sda
jnb sda, $
clr scl
call delay_
ret
i2c_start:
setb sda
15
GVHD:Ths Nguyễn Đình Luyện
setb scl
call delay_
clr sda
call delay_
clr scl
call delay_
ret
i2c_stop:
clr sda
clr scl
call delay_
setb scl
call delay_
setb sda
call delay_
ret
i2c_read:
mov dulieu, #00h
mov r0, #8
mov a, #00h
loop1:
setb scl
call delay_
mov c, sda
clr scl
16
GVHD:Ths Nguyễn Đình Luyện
rlc a
call delay_
djnz r0, loop1
mov dulieu, a
setb scl
clr sda
;gui ack
call delay_
clr scl
call delay_
ret
i2c_write:
mov r0, #8
loop2:
rlc a
mov sda, c
setb scl
call delay_
clr scl
call delay_
djnz r0, loop2
setb scl ;cho nhan ack
call delay_
setb sda
jb sda, $
clr scl
call delay_
17
GVHD:Ths Nguyễn Đình Luyện
ret
;====================
;====================
lcd_gotoxy:
mov r0, a
anl a, #0f0h ;Xoa 4 bit thap --> xu ly hang
cjne a, #10h, hang2
mov a, #80h
lcall lcd_cmd
jmp endxy
hang2:
mov a, #0c0h
lcall lcd_cmd
endxy:
mov a, r0
anl a, #0fh ;Xoa 4 bit cao --> xu ly cot
mov r0, a
dec r0
lapdich:
mov a, #14h
lcall lcd_cmd
djnz r0, lapdich
ret
lcd_wait:
clr rs
setb rw
setb busy
18
GVHD:Ths Nguyễn Đình Luyện
here:
clr en
setb en
jb busy, here
ret
lcd_int:
call lcd_wait
clr rs
clr rw
mov dat, #38h
setb en
clr en
call lcd_wait
clr rs
clr rw
mov dat, #0ch
setb en
clr en
ret
lcd_clear:
call lcd_wait
clr rs
clr rw
mov dat, #01h
setb en
clr en
19
GVHD:Ths Nguyễn Đình Luyện
ret
lcd_cmd:
call lcd_wait
clr rs
clr rw
mov dat, a
setb en
clr en
ret
lcd_write:
call lcd_wait
setb rs
clr rw
mov dat, a
setb en
clr en
ret
;====================
;====================
delay_:
nop
nop
nop
nop
nop
nop
ret
20
GVHD:Ths Nguyễn Đình Luyện
;====================
;====================
ngat_t0:
mov a, #80h
call lcd_cmd
;=========
call i2c_start
mov a, #0d0h
call i2c_write
mov a, #00h
call i2c_write
call i2c_start
mov a, #0d1h
call i2c_write
call i2c_read
call not_ack
call i2c_stop
mov giay, dulieu; Luu gia tri giay
call i2c_start
mov a, #0d0h
call i2c_write
mov a, #01h
call i2c_write
call i2c_start
mov a, #0d1h
21
GVHD:Ths Nguyễn Đình Luyện
call i2c_write
call i2c_read
call not_ack
call i2c_stop
mov phut, dulieu; Luu gia tri phut
call i2c_start
mov a, #0d0h
call i2c_write
mov a, #02h
call i2c_write
call i2c_start
mov a, #0d1h
call i2c_write
call i2c_read
mov gio, dulieu; Luu gia tri gio
call not_ack
call i2c_stop
;===================
mov a, #'T'
call lcd_write
mov a, #'i'
call lcd_write
mov a, #'m'
call lcd_write
mov a, #'e'
22
GVHD:Ths Nguyễn Đình Luyện
call lcd_write
mov a, #':'
call lcd_write
mov a, #' '
call lcd_write
mov a, gio
anl a, #0f0h
swap a
add a, #30h
call lcd_write
mov a, gio
anl a, #0fh
add a, #30h
call lcd_write
mov a, #'-'
call lcd_write
mov a, phut
anl a, #0f0h
swap a
add a, #30h
call lcd_write
mov a, phut
anl a, #0fh
23
GVHD:Ths Nguyễn Đình Luyện
add a, #30h
call lcd_write
mov a, #'-'
call lcd_write
mov a, giay
anl a, #0f0h
swap a
add a, #30h
call lcd_write
mov a, giay
anl a, #0fh
add a, #30h
call lcd_write
reti
;====================
;====================
tang:
t_gio:
cjne dem, #1, t_phut
inc gio
mov a, gio
da a
mov gio, a
cjne a, #24h, t_0
mov gio, #0
24
GVHD:Ths Nguyễn Đình Luyện
t_0:
mov a, #17h
lcall lcd_gotoxy
mov a, gio
anl a, #0f0h
swap a
add a, #30h
call lcd_write
mov a, gio
anl a, #0fh
add a, #30h
call lcd_write
mov a, #18h
lcall lcd_gotoxy
t_phut:
cjne dem, #2, t_giay
inc phut
mov a, phut
da a
mov phut, a
cjne a, #60h, t_1
mov phut, #0
t_1:
mov a, #1ah
lcall lcd_gotoxy
25