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

THIẾT kế và THI CÔNG hệ THỐNG tưới nước THEO THỜI GIAN THỰC và QUA TIN NHẮN

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 (1.41 MB, 85 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO

ĐỒ ÁN MƠN HỌC 1

THIẾT KẾ VÀ THI CÔNG HỆ THỐNG TƯỚI NƯỚC
THEO THỜI GIAN THỰC VÀ QUA TIN NHẮN

SVTH:

MAI QUỐC THÁI

MSSV:

13119137

Khố:

2013

Ngành:

CƠNG NGHỆ KỸ THUẬT MÁY TÍNH

GVHD:

ThS. NGUYỄN NGƠ LÂM

Tp. Hồ Chí Minh, tháng 06 năm 2016
1



CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh Phúc

*******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên: Mai Quốc Thái..................................................MSSV: 13119137.......................
Ngành: Cơng Nghệ Kỹ Thuật Máy Tính.................................................................................................
Tên đề tài: Thiết Kế và Thi Công Hệ Thống Tưới Nước Theo Thời Gian Thực và Qua Tin Nhắn......
Họ và tên Giáo viên hướng dẫn:..............................................................................................................
..................................................................................................................................................................
NHẬN XÉT
1. Về nội dung đề tài & khối lượng thực hiện:
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
2. Ưu điểm:
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
3. Khuyết điểm:
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
4. Đề nghị cho bảo vệ hay khơng?
..................................................................................................................................................................
5. Đánh giá loại:
..................................................................................................................................................................

6. Điểm:……………….(Bằng chữ:......................................................................................................)
Tp. Hồ Chí Minh, ngày

tháng 06 năm 2016

Giáo viên hướng dẫn
(Ký & ghi rõ họ tên)

1


CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh Phúc

*******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên: Mai Quốc Thái..................................................MSSV: 13119137.......................
Ngành: Cơng Nghệ Kỹ Thuật Máy Tính.................................................................................................
Tên đề tài: Thiết Kế và Thi Công Hệ Thống Tưới Nước Theo Thời Gian Thực và Qua Tin Nhắn......
Họ và tên Giáo viên phản biện:...............................................................................................................
..................................................................................................................................................................
NHẬN XÉT
1.
Về nội dung đề tài & khối lượng thực hiện:
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
2.
Ưu điểm:

..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
3.
Khuyết điểm:
..................................................................................................................................................................
..................................................................................................................................................................
4.
Đề nghị cho bảo vệ hay không?
..................................................................................................................................................................
5.
Đánh giá loại:
..................................................................................................................................................................
6.

Điểm:……………….(Bằng chữ:.................................................................................................)
Tp. Hồ Chí Minh, ngày
tháng 06 năm 2016
Giáo viên phản biện
(Ký & ghi rõ họ tên)

2


MỤC LỤC
NỘI DUNG

TRAN


PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN........................................I
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN.........................................II
MỤC LỤC.............................................................................................................III
DANH SÁCH CÁC HÌNH ẢNH, BIỂU ĐỒ.........................................................V
DANH MỤC CÁC BẢNG BIỂU..........................................................................VI
DANH MỤC CÁC BẢNG BIỂU..........................................................................VI
DANH MỤC CÁC TỪ VIẾT TẮT......................................................................VI
LỜI MỞ ĐẦU......................................................................................................VII
LỜI CẢM ƠN.....................................................................................................VIII
CHƯƠNG 1: DẪN NHẬP.....................................................................................1
1.1 Đặt vấn đê....................................................................................................1
1.2 Lý do chọn đê tài.........................................................................................1
1.3 Đối tượng nghiên cứu.................................................................................1
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.....................................................................2
2.1 Giới thiệu vê vi điêu khiển..........................................................................2
2.2 Vi điêu khiển PIC16F887............................................................................2
2.3 Giao tiếp với hệ thống GSM.......................................................................6
2.3.1 Giới thiệu GSM GPRS SIM900A........................................................6
2.3.2 Chuẩn giao tiếp UART.........................................................................7
2.4 Hiển thị thời gian thực................................................................................8
2.4.1 Giới thiệu IC DS1307...........................................................................8
2.4.2 Chuẩn giao tiếp I2C............................................................................12
2.4.2.1 Giới thiệu......................................................................................12
2.4.2.2 Đặc điểm giao tiếp i2c..................................................................13
2.5 Khối thiết bị chấp hành............................................................................14
2.5.1 Hiển Thị...............................................................................................14
2.5.2 Động cơ................................................................................................16
2.5.3 Rơ-le 5V...............................................................................................16
CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ......................................................17
3.1 Sơ đồ khối hệ thống...................................................................................17

3.1.1 Yêu cầu hệ thống.................................................................................17

3


3.1.2 Sơ đồ khối............................................................................................17
3.2 Nguyên lý hoạt động của hệ thớng...........................................................17
3.3 Tính tốn lựa chọn linh kiện....................................................................18
3.3.1 Khới nguồn..........................................................................................18
3.3.2 Khới hiển thị chấp hành..................................................................19
3.3.2.1 LCD hiển thị.................................................................................19
3.3.2.2 Rơ-le 5V........................................................................................20
3.3.3 Khối Sim..............................................................................................21
3.3.4 Khối thời gian thực.............................................................................22
3.3.5 Khối vi xử lý trung tâm......................................................................22
Hình 3.8: Sơ đồ ngun lý khới xử lý trung tâm.......................................22
3.3.6 Sơ đồ nguyên lý chi tiết......................................................................23
3.4 Lập trình cho vi điêu khiển......................................................................25
3.4.1 Lưu đồ giải thuật hệ thống....................................................................25
3.4.2 Viết chương trình................................................................................26
3.4.2.1 Code chương trình main:.............................................................26
3.4.2.2 Code chương trình con:...............................................................27
CHƯƠNG 4: KẾT QUẢ NGHIÊN CỨU..........................................................38
4.1 Kết quả nghiên cứu...................................................................................38
4.2 Thực nghiệm..............................................................................................39
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN..................................40
5.1 Kết luận.....................................................................................................40
5.2 Hướng phát triển......................................................................................40
TÀI LIỆU THAM KHẢO.....................................................................................41
PHỤ LỤC.............................................................................................................42


4


DANH SÁCH CÁC HÌNH ẢNH, BIỂU ĐỒ
Hình 2.1: Vi điều khiển PIC16F887.
Hình 2.2: Sơ đồ chân PIC16F887.
Hình 2.3: Modun Sim 900A mini.
Hình 2.4: Cấu trúc truyền dữ liệu Uart.
Hình 2.5: Hai gói cấu tạo chip DS1307.
Hình 2.6: Tổ chức bộ nhớ của DS1307.
Hình 2.7: Tổ chức các thanh ghi thời gian.
Hình 2.8: Số BCD.
Hình 2.9: Bus I2C và các ngoại vi.
Hình 2.10: Kết nối thiết bị vào bus I2C ở chế độ chuẩn (Standard mode) và chế độ
nhanh (Fast mode).
Hình 2.11: Mơ hình truyền nhận i2c.
Hình 2.12: Nút nhấn hình ảnh thực tế.
Hình 2.13: Hình dáng của LCD.
Hình 2.14: Sơ đồ chân của LCD.
Hình 2.15: Động cơ
Hình 2.16: Hình relay 5V thực tế.
Hình 3.1: Sơ đồ khối hệ thống.
Hình 3.2: Sơ đồ khối nguồn.
Hình 3.3: Sơ đồ nguyên lý khối nguồn.
Hình 3.4: Sơ đồ nguyên lý LCD.
Hình 3.5: Sơ đồ nguyên lý Rơ-le.
Hình 3.6: Sơ đồ nguyên lý khối sim.
Hình 3.7: Sơ đồ nguyên lý khối thời gian thực.
Hình 3.8: Sơ đồ nguyên lý khối xử lý trung tâm.

Hình 3.9: Sơ đồ nguyên lý.
Hình 3.10: Mạch in.
Hình 3.11: Lưu đồ giải thuật của hệ thống.
Hình 4.1: Ảnh thực tế của mạch.

5


DANH MỤC CÁC BẢNG BIỂU
Bảng 2.1: Sơ đồ File thanh ghi.
Bảng 2.2: Chức năng của các chân LCD.
Bảng 4.1: Khảo sát trong một tuần hoạt động của hệ thống.

DANH MỤC CÁC TỪ VIẾT TẮT
LCD: Liquid Crystal Display
PIC: Programmable Interface Controller
GSM: Global System for Mobile Communications
GPRS: General Packet Radio Service
UART: Universal Asynchronous Receiver – Transmitter.
I2C: Inter -. Intergrated Circuit
SDA: Serial Data.
SCL: Serial Clock.

6


LỜI MỞ ĐẦU
Hiện nay, việc phát triển của thế giới điện tử số phát triển một cách nhanh
chóng và mạnh mẽ nên việc đo lường dùng điện tử số sẽ đáp ứng được độ chính xác
cao và điện tử số cụ thể là vi xử lí ngày càng trở nên đa dạng và các ứng dụng cũng

gần gũi với chúng ta hơn.
Từ bộ vi xử lý đầu tiên Intel 4004 được sản xuất bởi công ty Intel vào năm
1971 đến nay ngành cơng nghiệp vi xử lí đã có những bước tiến vượt bậc và đa
dạng với nhiều loại như: 8051, PIC, AVR, ARM… Cùng với sự phát triển đa dạng
của ngành cơng nghiệp vi xử lí nên tài ngun của vi xử lý cũng được nâng cao để
đáp ứng các ứng dụng khác nhau trong thực tế.
Ứng dụng vi điều khiển được ứng dụng trong rất nhiều lĩnh vực. Không thể
phủ nhận cuộc sống xung quanh của chúng ta khơng có sự tồn tại của vi điều khiển.
Nước ta có ngành nơng nghiệp rất phát triển, tuy nhiên các ứng dụng công nghệ cao
vào nông nghiệp ở nước ta còn khá mới, cần áp dụng điều khiển tự động để cho
nghành nông nghiệp nước ta tăng chất lượng cũng như về lợi ích kinh tế.
Trong nơng nghiệp việc tưới tiêu cực kỳ quan trọng nên hầu hết người nông
dân phải tốn rất nhiều công sức và thời gian cho việc tưới tiêu, vấn đề đặt ra là làm
sao để cắt giảm thời gian và tạo sự tiện nghi trong khâu tưới tiêu cho người nơng
dân rất được quan tâm.
Vì vậy, sinh viên chọn đề tài về xây dựng hệ thống tưới nước điều khiển
thông qua thời gian thực và tinh nhắn để hiểu biết thêm về vi xử lí và đồng thời tăng
tính tăng tính tiện nghi và chất lượng trong nghành nông nghiệp thông qua việc tưới
tiêu. Mặc dù sinh viên thực hiện đề tài đã cố gắng hoàn thành nhiệm vụ đề tài đặt ra
và đúng thời hạn nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, mong Thầy/
Cơ và các bạn sinh viên thơng cảm. Sinh viên thực hiện đề tài mong nhận được
những ý kiến của Thầy/ Cô và các bạn sinh viên.
TP HCM, Ngày 21 Tháng 06 Năm 2016
Sinh viên thực hiện đê tài
Mai Quốc Thái

7


LỜI CẢM ƠN

Lời đầu tiên, sinh viên thực hiện đề tài xin được phép chân thành gửi lời cảm
ơn đến thầy giáo Nguyễn Ngô Lâm, giáo viên hướng dẫn đề tài đã định hướng và
trao đổi những kinh nghiệm quý báu để sinh viên thực hiện những nội dung trong đề
tài một cách hoàn chỉnh.
Sinh viên thực hiện đề tài cũng xin trân trọng cảm ơn các Thầy (Cô) trong
trường Đại Học Sư Phạm Kỹ Thuật TPHCM nói chung và Thầy (Cơ) khoa Điện –
Điện Tử nói riêng đã tận tình truyền đạt những kiến thức nền tảng để sinh viên thực
hiện hoàn thành tốt đề tài.
TP HCM, Ngày 21 Tháng 06 Năm 2016
Sinh viên thực hiện đê tài
Mai Quốc Thái

8


Đồ án 1

CHƯƠNG 1: DẪN NHẬP
1.1 Đặt vấn đê
Hiện nay, vấn đề áp dụng công nghệ cao vào nông nghiệp đang rất được
quan tâm, yêu cầu đặt ra là chế tạo được sản phẩm có tính tự động và tiện ích,
mà quan trọng đều đầu tiên cần hướng đến là một hệ thống cung cấp nước
thơng minh, vì vậy chúng ta cần chế tạo ra một hệ thống để đảm nhiệm cơng
việc cung cấp một cách tiện lợi và chính xác, tiết kiệm thời gian và công sức
cho người nông dân.
Hệ thống rất cần thiết cho quá trình thúc đẩy áp dụng công nghệ cao trong
nông nghiệp, một hệ thống tưới nước tự động thông qua thời gian thực, và cũng
có thể bật tắt hệ thống qua tin nhắn, mang lại sự tiện ích dù ở bất cứ đâu.
1.2 Lý do chọn đê tài
Tên đề tài sinh viên thực hiện là: “Thiết kế – Thi công mạch tưới nước theo thời

gian thực và điêu khiển qua tin nhắn”, lý do chọn đề tài:
Thứ nhất, giúp sinh viên hiểu rõ về cấu trúc cũng như ngơn ngữ lập trình
cho dịng PIC do hang Micro Controller sản xuất và cụ thể trong để tài này
là PIC16F887.
Thứ hai, nắm rõ giao thức truyền dữ liệu I2C và Uart, hiểu được nguyên lý
hoạt động của modul sim900 mini, và IC thời gian thực DS1307.
Thứ ba, do nhu cầu cầu áp dụng công nghệ vào nơng nghiệp ngày càng
tăng, nên phải có những đề tài hướng đến nhằm đáp ứng nhu cầu phát
triển của thế giới.
Thứ tư, được kỹ năng cũng như kiến thức nền tảng để thực hiện các đồ án
môn học tiếp theo.
1.3 Đối tượng nghiên cứu
Đề tài nghiên cứu tập trung điều khiển hệ thống cung cấp nước cho cây trồng
thông qua thời gian thực nhằm tối đa hóa sự chính xác tưới tiêu trong đời sống,
điều khiển qua tin nhắn dùng modul sim900 nhằm đảm bảo tính tiện nghi cho
người sử dụng điều khiển được hệ thống dù đang ở đâu miễn là có song điện
thoại.

Trang 1


Đồ án 1

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu vê vi điêu khiển
 Vi điều khiển là một máy tính được tích hợp trên một chíp, nó thường được sử
dụng để điều khiển các thiết bị điện tử. Vi điều khiển, thực chất, là một hệ
thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với
các bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi
như bộ nhớ, các mô đun vào/ra, các mô đun biến đổi số sang tương tự và

tương tự sang số,... Ở máy tính thì các mơ đun thường được xây dựng bởi các
chíp và mạch ngồi.
 Vi điều khiển thường được dùng để xây dựng các hệ thống nhúng. Nó xuất
hiện khá nhiều trong các dụng cụ điện tử, thiết bị điện, máy giặt, lị vi
sóng, điện thoại, đầu đọc DVD,thiết bị đa phương tiện, dây chuyền tự động,
v.v.
 Hầu hết các vi điều khiển ngày nay được xây dựng dựa trên kiến trúc Harvard,
kiến trúc này định nghĩa bốn thành phần cần thiết của một hệ thống nhúng.
Những thành phần này là lõi CPU, bộ nhớ chương trình (thơng thường
là ROM hoặc bộ nhớ Flash), bộ nhớ dữ liệu (RAM), một hoặc vài bộ định
thời và các cổng vào/ra để giao tiếp với các thiết bị ngoại vivà các mơi trường
bên ngồi - tất cả các khối này được thiết kế trong một vi mạch tích hợp. Vi
điều khiển khác với các bộ vi xử lý đa năng ở chỗ là nó có thể hoạt động chỉ
với vài vi mạch hỗ trợ bên ngoài.
2.2 Vi điêu khiển PIC16F887
 PIC16F887 là một chip vi xử lí cơ bản đa chức năng và là một sản phẩm thuộc
họ vi xử lí PIC thông dụng của công ty Microchip.
 Vi điều khiển đóng vai trị như là CPU của một hệ thống, nhận các tín hiệu đầu
vào, xử lí và xuất ra các lệnh điều khiển các thiết bị đầu ra. Với bộ nhớ 32kb
Flash lưu trữ chương trình. Và cụ thể ở đồ án này là việc lưu trữ trang web sẽ
được nhúng vào vi điều khiển này.

Trang 2


Đồ án 1

Hình 2.1: Vi điều khiển PIC16F887.

 Hình ảnh sơ đồ chân PIC


Hình 2.1: Sơ đồ chân PIC16F887.
 Sơ đồ nguyên lý kết nối PIC16F887
 Nguồn hoạt động 5VDC.
 Nút nhấn reset vi điều khiển.
 Dao động thạch anh 20Mhz.
 PORTB và thanh ghi TRISB:

Trang 3


Đồ án 1

 Portb (RPB) gồm 8 pin I/O. thanh ghi điều khiển xuất nhập tương
ứng là TRISB. Bên cạnh đó một số chân của PORTB cịn được sử
dụng trong quá trình nạp chường trình cho vi điều khiển với các chế
độ nào khác nhau. PORTB còn liên quan dến ngắt ngoại vi và bộ
Timer0. PORTB cịn được tích hợp chức năng điện trở kéo lên được
điều khiển bởi chương trình.
 Ba chân của PORTB được đa hợp với mạch điện gỡ rối bên trong
và chức năng lập trình điện áp thấp RB3/PGM, RB6/PGC và
RB7PGD.
 Mỗi chân của PORTB có điện trở kéo lên. Bit điều khiển RBPU
(OPTION_REG<7>) =0 thì có thể mở tất cả các điện trở kéo lên.
Khi portb được thiết lập là ngõ ra thì sẽ tự động ngắt chức năng
điện trở kéo lên, cũng tương tự khi CPU bị reset lúc mới cấp điện.
 Bốn chân của portb RB4:RB7 có cấu chúc ngắt thay đổi, chỉ có
những chân được thiết lập ở cấu hình là ngõ vào thì mới có chức
năng ngắt. Các chân ngõ vào là (RB4:RB7) được so sánh với giá trị
cũ đã được chốt trong lần đọc trước của portb. Các ngõ ra không

trùng nhau của các chân RB4:RB7 được OR lại với nhau để tao ra
ngắt ở PORTB với bít cờ báo ngắt RBIF Ngắt này có thể kích hoạt vi điều khiển trở lại trạng thái hoạt động
khi nó đang ở chế độ SLEEP. Trong chương trình phục vụ ngắt thì
người dùng có thể xóa ngắt bằng các cách khác nhau:
o Bất kỳ lệnh đọc hay ghi PORTB sẽ kết thích điều kiện khơng
thích ứng.
o Xóa bít cờ RBIF.
 Điều kiện khơng tương thích sẽ tiếp tục làm cờ báo ngắt RBIF bằng
1. Khi đọc PORTB sẽ chấm dứt điều kiện khơng tương thích và cho
phép xóa bít cờ báo ngắt RBIF.

Trang 4


Đồ án 1

 Cấu trúc ngắt thay đổi dùng để thốt khỏi chế độ nghỉ khi có nhấn
phím và các hoạt động mà PORTB chỉ được dùng cho cấu trúc thay
đổi ngắt.
 PORTC và thanh ghi TRISC:
 PORTC là port 2 chiều 8 bít. Thanh ghi định hướng là TRISC. Khi
bit TRISC=1 thì portc là nhập, khi TRISC=0 thì portc là xuất.
 Portc được đa hợp với vài chức năng ngoại vi. Các chân của portc
có mạch đệm Schmit Trigger ở ngõ vào. Khi khối I 2C được cho
phép thì các chân PORTC (3,4) có thể được định cấu hình ở các
mức I2C hoặc mức SMBUS bằng cách sử dụng bít CKE
(SSPSTAT<6>).
 Khi cho phép chức năng ngoại vi, nên chú ý đến các bít TRIS cho
mỗi chân của PORTC. Một vài thiết bị ngoại vi ghi lên bít TRIS để

làm một chân như là 1 ngõ ra, trong khi đó các thiết bị ngoại vi ghi
lên bít TRIS để làm như một chân ngõ vào. Khi ghi đè bít TRIS thì
khơng ảnh hưởng đến các thiết bị đã cho phép, các kệnh đọc – hiệu
chỉnh – ghi (BSF, BCF, XORWF) với TRISC là đích đến phải tránh
dùng. Người sử dụng tham chiếu tới phần thiết bị ngoại vi tướng
ứng để thiếp lập cho đúng bít TRIS
 PORTD và thanh ghi TRISD:
 PORTD là port 8 bít với ngõ vào có mạch Schmitt Trigger. Mỗi
chân có thể được cấu hình độc lập là ngõ vào hoặc ngõ ra. PORTD
có thể định cấu hình như là port của vi sử lí 8 bít bằng cách thiết lập
bít điều khiển PSPMODE (TRISE<4>). Trong mode này thì các bộ
đến ngõ vào dạng TTL. PORTD và TRISD không được xây dựng
cho các bộ đếm ngõ vào TTL.
 Các BANK thanh ghi:
 Bộ nhớ dữ liệu trên được chia làm nhiều Bank và chứa những chức
năng đặc biệt. hai bit RP0, RP1 nằm trong thanh ghi STATUS
thuộc bit thứ 5 và thứ 6 dùng để chọn BANK thanh ghi.
 Hai BANK thanh ghi: BANK 0 và BANK 1 thuộc địa chỉ từ 0x5
đến 0x09 là địa chỉ của PORTA đến PORTE dùng để xuất nhập dữ

Trang 5


Đồ án 1

liệu. địa chỉ từ 0x85 đến 0x89 là địa chỉ của các thanh ghi định
hướng TRISA đến TRISE.

Trang 6



Đồ án 1

 Khi chọn BANK thanh ghi ta thiết lập các giá trị của RP0 và RP1
thuộc thanh ghi STATUS như sau:
o Bank 0: RP0=0, RP1=0.
o Bank 1: RP0=1, RP1=0.
o Bank 2: RP0=0, RP1=1.
o Bank 3: RP0=1, RP1=1.

Bảng 2.1: Sơ đồ File thanh ghi.

Trang 7


Đồ án 1

 Với phần mềm CCS để viết chương trình C cho PIC, khi truy xuất
các dữ liệu từ các cổng thì ta khơng cần chọn BANK thanh ghi
phức tạp như trên. Ta chỉ cần dùng các lệnh: SET_TRIS_X và
OUTPUT_X là có thể xuất nhập. Nhưng khi nhập dữ liệu với
các cổng ta khơng nên dùng lệnh OUTPUT_X vì trước khi thực
hiện xuất một dữ liệu thì mặc định nó đã SET_TRIS_X. Ta nên
khai báo địa chỉ ban đầu của thanh ghi ví dụ:

Trang 8


Đồ án 1


o #BYTE PORTB =0x06, #BYTE PORTC=0x07.
 Như thế thì ta có thể xuất dữ liệu ra các cổng bằng các lệnh gán
PORTX=0xXX mà không làm ảnh hưởng đến thanh ghi định
hướng ban đầu qua lệnh SET_TRIS_X. Các cổng RB, RC, RD là
cổng vào ra 8 bít, với các chân RX0 đến RX7.
2.3 Giao tiếp với hệ thống GSM
2.3.1 Giới thiệu GSM GPRS SIM900A
Mạch GSM GPRS SIM900A được thiết kế nhỏ gọn với chi phí thấp
nhưng vẫn đảm bảo được khảng năng hoạt động tốt. Mạch được thiết kế ra
các chân cơ bản của SIM900A, Tích hợp khe sim kích cỡ thơng thường và
Anten. Mạch SIM900A được thiết kế để có khả năng cấp nguồn trực tiếp 5V
và nguồn khơng cần phải có dịng lớn (nhờ có Diode và tụ bù), có thể cấp
nguồn từ cổng USB máy tính, các chân GPIO của SIM900A hỗ trợ chuẩn
giao tiếp TTL.

Hình 2.3: Modun Sim 900A mini.

Trang 9


Đồ án 1

2.3.2 Chuẩn giao tiếp UART
Thường là một mạch tích hợp được sử dụng trong việc truyền dẫn dữ liệu nối
tiếp giữa máy tính và các thiết bị ngoại vi. Rất nhiều vi điều khiển hiện nay đã được
tích hợp UART, vì vấn đề tốc độ và độ điện dụng của UART không thể so sánh với
các giao tiếp mới hiện nay nên các dòng PC & Laptop đời mới khơng cịn tích hợp
cổng UART.
Như các chúng ta đã biết giao tiếp SPI và I2C có 1 dây truyền dữ liệu và 1
dây được sử dụng để truyền xung clock (SCL) để đồng bộ trong giao tiếp. Với

UART thì khơng có dây SCL, vấn đề được giải quyết khi mà việc truyền UART
được dùng giữa 2 vi xử lý với nhau, đồng nghĩa với việc mỗi vi xử lý có thể tự tạo
ra xung clock cho chính xử dụng.
Để bắt đầu cho việc truyền dữ liệu bằng UART, một START bit được gửi đi,
sau đó là các bit dữ liệu và kết thúc quá trình truyền là STOP bit.

Hình 2.4 Cấu trúc truyền dữ liệu Uart
Như hình chúng ta có thể thấy. Khi ở trạng thái chờ mức điện thế ở mức 1.
Khi bắt đầu truyềnSTART bit sẻ chuyển từ 1 xuống 0 để báo hiệu cho bộ
nhận là quá trình truyền dữ liệu sắp xảy ra. Sau START bit là đến các bit dữ
liệu D0-D7 (Theo hình vẽ các bit này có thể ở mức High or Low tùy theo dữ
liệu).Sau khi truyền hết dữ liệu thì đến Bit Parity để bộ nhận kiểm tra tính
đúng đắn của dữ liệu truyền. Cuối cùng là STOP bit là 1 báo cho thiết bị rằng
các bit đã được gửi xong.Thiết bị nhận sẽ kiểm tra khung truyền nhằm đảm
bảo tính chính xác.
 Các thơng sớ cơ bản trong trun nhận UART:
 Baund rate (tốc độ baund): Khoảng thời gian dành cho 1 bit được
truyền. Phải được cài đặt giống nhau ở gửi và nhận.
 Frame (khung truyền): Khung truyền quy định về số bit trong mỗi
lần truyền.
 Start bit: là bit đầu tiên được truyền trong 1 Frame. Báo hiệu cho
thiết bị nhận có một gói dữ liệu sắp đc truyền đến.
 Data: dữ liệu cần truyền. Bit có trọng số nhỏ nhất LSB được truyền
trước sau đó đến bit MSB.
 Parity bit: kiểm tra dữ liệu truyền có đúng không.

Trang 10


Đồ án 1


 Stop bit: là 1 hoặc các bit báo cho thiết bị rằng các bit đã được gửi
xong. Thiết bị nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm
bảo tính đúng đắn của dữ liệu.
2.4 Hiển thị thời gian thực
2.4.1 Giới thiệu IC DS1307
DS1307 là chip đồng hồ thời gian thực (RTC : Real-time clock), khái
niệm thời gian thực ở đây được dùng với ý nghĩa thời gian tuyệt đối mà con
người đang sử dụng, tình bằng giây, phút, giờ…DS1307 là một sản phẩm của
Dallas Semiconductor (một cơng ty thuộc Maxim Integrated Products). Chip
này có 7 thanh ghi 8-bit chứa thời gian là: giây, phút, giờ, thứ (trong tuần),
ngày, tháng, năm. Ngồi ra DS1307 cịn có 1 thanh ghi điều khiển ngõ ra phụ
và 56 thanh ghi trống có thể dùng như RAM. DS1307 được đọc và ghi thông
qua giao diện nối tiếp I2C (TWI của AVR) nên cấu tạo bên ngồi rất đơn
giản.

Hình 2.5: Hai gói cấu tạo chip DS1307.
 Các chân của DS1307 được mô tả như sau:
 X1 và X2: là 2 ngõ kết nối với 1 thạch anh 32.768 KHz làm
nguồn tạo dao động cho chip.
 VBAT: cực dương của một nguồn pin 3V nuôi chip.
 GND: chân mass chung cho cả pin 3V và Vcc.
 Vcc: nguồn cho giao diện I2C, thường là 5V và dùng chung
với vi điều khiển. Chú ý là nếu Vcc không được cấp nguồn

Trang 11


Đồ án 1


nhưng VBAT được cấp thì DS1307 vẫn đang hoạt động (nhưng
không ghi và đọc được).
 SQW/OUT: một ngõ phụ tạo xung vuông (Square Wave /
Output Driver), tần số của xung được tạo có thể được lập trình.
Như vậy chân này hầu như không liên quan đến chức năng của
DS1307 là đồng hồ thời gian thực, chúng ta sẽ bỏ trống chân
này khi nối mạch.
 SCL và SDA là 2 đường giao xung nhịp và dữ liệu của giao
diện I2C.
Bộ nhớ DS1307 có tất cả 64 thanh ghi 8-bit được đánh địa chỉ từ 0
đến 63 (từ 0x00 đến 0x3F theo hệ hexadecimal).Tuy nhiên, thực chất chỉ có
8 thanh ghi đầu là dùng cho chức năng “đồng hồ” (tôi sẽ gọi là RTC) cịn lại
56 thanh ghi bỏ trơng có thể được dùng chứa biến tạm như RAM nếu muốn.
Bảy thanh ghi đầu tiên chứa thông tin về thời gian của đồng hồ bao
gồm: giây (SECONDS), phút (MINUETS), giờ (HOURS), thứ (DAY), ngày
(DATE), tháng (MONTH) và năm (YEAR).Việc ghi giá trị vào 7 thanh ghi
này tương đương với việc “cài đặt” thời gian khởi động cho RTC. Việc đọc
giá từ 7 thanh ghi là đọc thời gian thực mà chip tạo ra.
Ví dụ, lúc khởi động chương trình, chúng ta ghi vào thanh ghi “giây”
giá trị 42, sau đó 12s chúng ta đọc thanh ghi này, chúng ta thu được giá trị
54.Thanh ghi thứ 8 (CONTROL) là thanh ghi điều khiển xung ngõ ra
SQW/OUT (chân 6). Tuy nhiên, do chúng ta khơng dùng chân SQW/OUT
nên có thề bỏ qua thanh ghi thứ 8, tổ chức bộ nhớ của DS1307 được trình
bày trong Hình 2.4.2.

Hình 2.6: Tổ chức bộ nhớ của DS1307.

Trang 12



Đồ án 1

Hình 2.7: Tổ chức các thanh ghi thời gian.
Điều đầu tiên cần chú ý là giá trị thời gian lưu trong các thanh ghi theo dạng
BCD. BCD là viết tắt của cụm từ Binary-Coded Decimal, tạm dịch là các số
thập phân theo mã nhị phân, ví dụ muốn cài đặt cho thanh ghi MINUTES giá
trị 42. Nếu quy đổi 42 sang mã thập lục phân thì chúng ta thu được
42=0x2A. Theo cách hiểu thông thường chúng ta chỉ cần gán MINUTES=42
hoặc MINUTES=0x2A, tuy nhiên vì các thanh ghi này chứa giá trị BCD nên
cần chuyển sang dạng số hex nếu giao tiếp với vi điều khiển.

Hình 2.8: Số BCD.
Với số 42 trước hết nó được tách thành 2 chữ số (digit) 4 và 2. Mỗi chữ
số sau đó được đổi sang mã nhị phân 4-bit. Chữ số 4 được đổi sang mã nhị
phân 4-bit là 0100 trong khi 2 được đổi thành 0010. Ghép mã nhị phân của 2
chữ số lại chúng ta thu được mốt số 8 bit, đó là số BCD.
Trang 13


Đồ án 1

Với trường hợp này, số BCD thu được là 01000010 (nhị phân) = 66.
Như vậy, để đặt số phút 42 cho DS1307 chúng ta cần ghi vào thanh ghi
MINUTES giá trị 66 (mã BCD của 42). Tất cả các phần mềm lập trình hay
thanh ghi của chip điều khiển đều sử dụng mã nhị phân thông thường, không
phải mã BCD, do đó chúng ta cần viết các chương trình con để quy đổi từ số
thập nhị phân (hoặc thập phân thường) sang BCD.
 Các thanh ghi trong Chip DS1307:
 Thanh ghi giây (SECONDS): thanh ghi này là thanh ghi đầu tiên
trong bộ nhớ của DS1307, địa chỉ của nó là 0x00. Bốn bit thấp của

thanh ghi này chứa mã BCD 4-bit của chữ số hàng đơn vị của giá
trị giây. Do giá trị cao nhất của chữ số hàng chục là 5 (khơng có
giây 60) nên chỉ cần 3 bit (các bit SECONDS6:4) là có thể mã hóa
được (số 5 =101, 3 bit). Bit cao nhất, bit 7, trong thanh ghi này là 1
điều khiển có tên CH (Clock halt – treo đồng hồ), nếu bit này được
set bằng 1 bộ dao động trong chip bị vô hiệu hóa, đồng hồ khơng
hoạt động. Vì vậy, nhất thiết phải reset bit này xuống 0 ngay từ
đầu.
 Thanh ghi phút (MINUTES): có địa chỉ 0x01, chứa giá trị phút
của đồng hồ. Tương tự thanh ghi SECONDS, chỉ có 7 bit của thanh
ghi này được dùng lưu mã BCD của phút, bit 7 luôn luôn bằng 0.
 Thanh ghi giờ (HOURS): có thể nói đây là thanh ghi phức tạp
nhất trong DS1307. Thanh ghi này có địa chỉ 0x02. Trước hết 4-bits
thấp của thanh ghi này được dùng cho chữ số hàng đơn vị của giờ.
Do DS1307 hỗ trợ 2 loại hệ thống hiển thị giờ (gọi là mode) là 12h
(1h đến 12h) và 24h (1h đến 24h) giờ, bit6 (màu green trong hình
4) xác lập hệ thống giờ. Nếu bit6=0 thì hệ thống 24h được chọn,
khi đó 2 bit cao 5 và 4 dùng mã hóa chữ số hàng chục của giá trị
giờ. Do giá trị lớn nhất của chữ số hàng chục trong trường hợp này
là 2 (=10, nhị phân) nên 2 bit 5 và 4 là đủ để mã hóa. Nếu bit6=1
thì hệ thống 12h được chọn, với trường hợp này chỉ có bit 4 dùng
mã hóa chữ số hàng chục của giờ, bit 5 (màu orangetrong hình 4)
chỉ buổi trong ngày, AM hoặc PM. Bit5 =0 là AM và bit5=1 là PM.
Bit 7 luôn bằng 0. (thiết kế này hơi dở, nếu dời hẳn 2 bit mode và
A-P sang 2 bit 7 và 6 thì sẽ đơn giản hơn).
 Thanh ghi thứ (DAY – ngày trong tuần): nằm ở địa chỉ 0x03.
Thanh ghi DAY chỉ mang giá trị từ 1 đến 7 tương ứng từ Chủ nhật
đến thứ 7 trong 1 tuần. Vì thế, chỉ có 3 bit thấp trong thanh ghi này
có nghĩa.
 DATE chứa ngày trong tháng (1 đến 31), MONTH chứa tháng (1

đến 12) và YEAR chứa năm (00 đến 99). Chú ý, DS1307 chỉ dùng
Trang 14


Đồ án 1

cho 100 năm, nên giá trị năm chỉ có 2 chữ số, phần đầu của năm do
người dùng tự thêm vào (ví dụ 20xx).
 Ngồi các thanh ghi trong bộ nhớ, DS1307 cịn có một thanh ghi
khác nằm riêng gọi là con trỏ địa chỉ hay thanh ghi địa
chỉ (Address Register). Giá trị của thanh ghi này là địa chỉ của
thanh ghi trong bộ nhớ mà người dùng muốn truy cập. Giá trị của
thanh ghi địa chỉ (tức địa chỉ của bộ nhớ) được set trong lệnh Write
mà chúng ta sẽ khảo sát trong phần tiếp theo, AVR và DS1307.
Thanh ghi địa chỉ được tôi tô đỏ trong hình 6, cấu trúc DS1307.
2.4.2 Chuẩn giao tiếp I2C
2.4.2.1 Giới thiệu
Đầu năm 1980 Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2
dây được gọi là I2C, I2C là tên viết tắt của cụm từ Inter-Intergrated Circuit.
Đây là đường Bus giao tiếp giữa các IC với nhau, I2C mặc dù được phát
triển bới Philips, nhưng nó đã được rất nhiều nhà sản xuất IC trên thế giới sử
dụng. I2C trở thành một chuẩn công nghiệp cho các giao tiếp điều khiển, có
thể kể ra đây một vài tên tuổi ngoài Philips như: Texas Intrument(TI),
MaximDallas, analog Device, National Semiconductor ... Bus I2C được sử
dụng làm bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau như các loại
Vi điều khiển 8051, PIC, AVR, ARM... chip nhớ như: RAM tĩnh (Static
Ram), EEPROM, bộ chuyển đổi tương tự số (ADC), số tương tự(DAC), IC
điểu khiển LCD, LED...

Hình 2.9: Bus I2C và các ngoại vi.


Trang 15


Đồ án 1

2.4.2.2 Đặc điểm giao tiếp i2c
Một giao tiếp I2C gồm có 2 dây: Serial Data (SDA) và Serial Clock
(SCL). SDA là đường truyền dữ liệu 2 hướng, còn SCL là đường truyền xung
đồng hồ để đồng bộ và chỉ theo một hướng. Như ta thấy trên hình vẽ trên, khi
một thiết bị ngoại vi kết nối vào đường bus I2C thì chân SDA của nó sẽ nối
với dây SDA của bus, chân SCL sẽ nối với dây SCL.

Hình 2.10: Kết nối thiết bị vào bus I2C ở chế độ chuẩn (Standard mode) và chế độ
nhanh (Fast mode).
Mỗi dây SDA hay SCL đều được nối với điện áp dương của nguồn cấp thông
qua một điện trở kéo lên (pullup resistor). Sự cần thiết của các điện trở kéo
lên này là vì chân giao tiếp I2C của các thiết bị ngoại vi thường là dạng cực
máng hở (opendrain hay opencollector). Giá trị của các điện trở này khác
nhau tùy vào từng thiết bị và chuẩn giao tiếp, thường dao động trong khoảng
1k đến 4.7k.
Trở lại với hình 2.4.2.2 ta thấy có rất nhiều thiết bị (ICs) cùng được kết nối
vào một bus I2C, tuy nhiên sẽ không xảy ra chuyện nhầm lẫn giữa các thiết
bị, bởi mỗi thiết bị sẽ được nhận ra bởi một địa chỉ duy nhất với một quan hệ
chủ/tớ tồn tại trong suốt thời gian kết nối. Mỗi thiết bị có thể hoạt động như
là thiết bị nhận hoặc truyền dữ liệu hay có thể vừa truyền vừa nhận. Hoạt
động truyền hay nhận còn tùy thuộc vào việc thiết bị đó là chủ (master) hãy
tớ (slave).
Một thiết bị hay một IC khi kết nối với bus I2C, ngồi một địa chỉ (duy nhất)
để phân biệt, nó cịn được cấu hình là thiết bị chủ hay tớ. Đó là vì trên một

bus I2C thì quyền điều khiển thuộc về thiết bị chủ . Thiết bị chủ nắm vai trị
tạo xung đồng hồ cho tồn hệ thống, khi giữa hai thiết bị chủ-tớ giao tiếp thì
thiết bị chủ có nhiệm vụ tạo xung đồng hồ và quản lý địa chỉ của thiết bị tớ
trong suốt quá trình giao tiếp. Thiết bị chủ giữ vai trò chủ động, còn thiết bị
tớ giữ vai trò bị động trong việc giao tiếp.
Trang 16


×