Chính vì vậy ngoài việc dùng điện thoại để liên lạc một vấn đề được đặt ra là chúng ta có thể sử dụng điện thoại như một chiếc Remote để điều khiển các thiết bị điện từ xa.. - Kinh nghiệ
Trang 1BỘ NÔNG NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔN
HỌC VIỆN NÔNG NGHIỆP VIỆT NAM
-o0o -ĐỒ ÁN MÔN HỌC VI XỬ LÝ TRONG ĐIỀU KHIỂN
Đề tài : “Thiết kế hệ thống đo nhiệt độ, độ ẩm và điều khiển thiết bị
điện bằng module Bluetooth”
Giảng viên hướng dẫn : Th.S Lại Văn Song
Sinh viên thực hiện : Nguyễn Thanh Phú _ 576126
Phạm Thế Sự _ 576134
Vũ Văn Kiệm _576117
Trang 2CHƯƠNG I :TỔNG QUAN VỀ HỆ THỐNG
1.1 Giới thiệu
Ngày nay, ngành công nghệ thông tin đã đạt được những tiến bộ vượt bậc với
sự ra đời của ngành công nghiệp phần cứng, cũng như phần mềm việc giải quyết các công việc giúp con người trở nên dễ dàng, thuận tiện và nhanh chóng Cùng với sự phát triển của ngành công nghệ thông tin là sự phát triển mạnh mẽ của các hệ thống thông tin liên lạc, sự ra đời của các dịch vụ điện thoại mà cụ thể là điện thoại di động với ưu thế dễ dàng hoạt động khi di chuyển mọi lúc mọi nơi Chính vì vậy ngoài việc dùng điện thoại để liên lạc một vấn đề được đặt ra là chúng ta có thể sử dụng điện thoại như một chiếc Remote để điều khiển các thiết bị điện từ xa Từ yêu cầu trên và những kiến
thức em được học ở trường em đã lựa chọn đề tài: “Thiết kế chế tạo mô hình
hệ thống điều khiển các thiết bị điện trong nhà thông qua điện thoại.”
1.2Mục tiêu của đề tài
Nghiên cứu và xây dựng mô hình điều khiển quá trình dựa trên vi điều khiển AT89S52 Từ đó phát triển cao hơn, đưa bộ điều khiển áp dụng vào trong thựctế
Làm quen với việc tính toán thiết kế , chế tạo, nguyên lý hoạt động của quá trình khoá mở cửa điện tử và củng cố phần lý thuyết về mạch điện tử, cảm biến
và mạch điều khiển bằng vi điều khiển
1.3 Nội dung đề tài
Việc thực hiện nghiên cứu đề tài ‘‘Thiết kế chế tạo mô hình hệ thống điều khiển các thiết bị điện trong nhà thông qua điện thoại.”trong điều kiện :
- Thời gian thực hiện đề tài chỉ trong một học kỳ
- Kinh nghiệm thực tế chưa nhiều
- Vật tư và linh kiện không đồng bộ
Vì vậy em đã thực hiện nghiên cứu đề tài với những đặc điểm chính sau đây:
- Lập trình bằng vi xử lý AT89S52
- Tìm hiểu cách thức hoạt động của 1 số loại linh kiện điện tử
- Thiết kết mô hình thí nghiệm
1.4 Phương pháp nghiên cứu
Phương pháp kế thừa: Kế thừa từ các tài liệu, công trình nghiên cứu trước đó
về hai mảng chính của đề tài: Cấu trúc vi điều khiển 8051
Phương pháp thực nghiệm kiểm chứng: Sau khi đã xây dựng xong cơ sở lý thuyết của đề tài sẽ tiến hành thử nghiệm sự hoạt động trên các thiết bị hiện có
Trang 3Các bước tiến hành nghiên cứu là tìm hiểu cơ sở lý thuyết về vấn đề nghiên cứu, tiến hành thiết kế chương trình điều khiển và mạch điều khiển, sau đó thử nghiệm trên mô hình để đưa ra kết luận
CHƯƠNG II: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN VÀ CÁC THIẾT
số học 8 bit gồm cả lệnh nhân và lệnh chia Nó cung cấp những hổ trợ mở rộngtrên chip dùng cho những biến một bit như là kiểu dữ liệu riêng biệt cho phép quản
lý và kiểm tra bit trực tiếp trong hệ thống điều khiển
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, 3TIMER/COUNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếpbá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
64 KB vùng nhớ mã ngoài
Trang 4 64 KB vùng nhớ dữ liệu ngoại.
4 s cho hoạt động nhân hoặc chia
Hình 2.1 Sơ đồ khối của 8051
Trang 5Hình 2.2 Sơ đồ khối AT89S52
2.1.2 Mô tả chân 89S52
a) Sơ đồ chân 89S52
Mặc dù các thành viên của họ 8051(ví
dụ 8751, 89S52, 89C51, DS5000) đều có các
kiểu đóng vỏ khác nhau, chẳng hạn như hai
hàng chân DIP (Dual In-Line Pakage), dạng
vỏ dẹt vuông QPF (Quad Flat Pakage) và dạng
chip không có chân đỡ LLC (Leadless Chip
Carrier) thì chúng đều 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 Cần
phải lưu ý một số hãng cung cấp một phiên
bản 8051 có 20 chân với số cổng vào ra ít hơn
cho các ứng dụng yêu cầu thấp hơn Tuy nhiên
vì hầu hết các nhà phát triển sử dụng chíp
đóng vỏ 40 chân với hai hàng chân DIP nên ta
chỉ tập trung mô tả phiên bản này
b) Chức năng của các chân 89S52
Port 0:từ chân 32 đến chân 39 (P0.0 _P0.7) Port 0 có 2 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 thiết kế 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:từ chân 1 đến chân 9 (P1.0 _ P1.7) Port 1 là port IO dùng cho giao tiếp với
thiết bị bên ngoài nếu cần
Port 2:từ chân 21 đến chân 28 (P2.0 _P2.7) Port 2 là một port có tác dụng kép
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:từ chân 10 đến chân 17 (P3.0 _ P3.7) Port 3 là port có tác dụng kép 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 6Bit Tên Chức năng chuyển đổi
Ngõ vào 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 TIMER/ COUNTER thứ 0
Ngõ vào của TIMER/ COUNTER thứ1
Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
Tín hiệu đọc bộ nhớ dữ liệu ngoài
Bảng 2.1 Bảng chức năng P3
PSEN (Program store enable):
PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình
mở rộng và thường được nối đến chân OE của Eprom cho phép đọc các byte
mã lệnh
PSEN ở mức thấp trong thời gian 89S52 lấy lệnh Các mã lệnh của chươngtrình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong89S52 để giải mã lệnh Khi 89S52 thi hành chương trình trong ROM nội, PSEN ởmức cao
ALE (Address Latch Enable):
Trang 7Khi 89S52 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và
dữ liệu do đó phải tách các đường dữ liệu và địa chỉ Tín hiệu ra ALE ở chân thứ
30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kếtnối chúng với IC chốt
Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò
là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động
EA (External Access):Tín hiệu vào EA (chân 31) thường được mắc lên mức 1
hoặc mức 0 Nếu ở mức 1, 89S52 thi hành chương trình từ ROM nội Nếu ở mức 0,89S52 thi hành chương trình từ bộ nhớ mở rộng Chân EA được lấy làm chân cấpnguồn 21V khi lập trình cho Eprom trong 89S52
RST (Reset):Khi ngõ vào tín hiệu này đưa
lên mức cao ít nhất 2 chu kỳ máy, các thanh
ghi bên trong được nạp những giá trị thích hợp
để khởi động hệ thống Khi cấp điện mạch
nối thêm thạch anh và các tụ Tần số thạch
anh tùy thuộc vào mục đích của người sử
dụng, giá trị tụ thường được chọn là 33p
Hình 2.4 Sơ đồ kết nối chân X1,X2
2.1.3 Tổ chức bên trong AT89S52
Bộ nhớ trong 89S52 bao gồm ROM
và RAM RAM trong 89S52 bao gồm nhiều thành phần: phần lưu trữ đa dụng,phần lưu trữđịa chỉ hóa từng bit, các bank thanh ghi và các thanh ghi chức năngđặc biệt
AT89S52 có bộ nhớ được tổ chức theo cấu trúc Harvard: có những vùng bộnhớ riêng biệt cho chương trình và dữ liệu Chương trình và dữ liệu có thể chứabên trong 89S52 nhưng 89S52 vẫn có thể kết nối với 64K byte bộ nhớ chươngtrình và 64K byte dữ liệu bên ngoài
Trang 8Địa chỉ
Bản đồ bộ nhớ Data bên trong Chip 89S52 được tổ chức như sau:
RAM bên trong AT89S52 được phân chia như sau:
Các bank thanh ghi có địa chỉ từ 00H đến 1FH
RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH
b) RAM có thể định địa chỉ bit
Vùng địa chỉ từ 20h -2Fh gồm 16 byte có thể thực hiện như vùng RAM đadụng (truy xuât mỗi lần 8 bit) hay thực hiện truy xuất mỗi lần 1 bit bằng các lệnh
xử lý bit
c) Các bank thanh ghi
Vùng địa chỉ 00h – 1Fh được chia thành 4 bank thanh ghi: bank 0 từ 00h –07h, bank 1 từ 08h – 0Fh, bank 2 từ 10h – 17h và bank 3 từ 18h – 1Fh Các bankthanh ghi này được đại diện bằng các thanh ghi từ R0 đến R7 Sau khi khởi độngthì hệ thống bank 0 được chọn sử dụng
Trang 9Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghiđược truy xuất bởi các thanh ghi R0 đến R7 Viêc thay đổi bank thanh ghi đượcthực hiện thông qua thanh ghi từ trạng thái chương trình (PSW).
d) Các thanh ghi có chức năng đặc biệt
Các thanh ghi trong 89S52 được định dạng như một phần của RAM trên chip
vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếm chương trình vàthanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp) Cũng như R0đến R7, 89S52 có 21 thanh ghi có chức năng đặc biệt (SFR: Special FunctionRegister) ở vùng trên của RAM nội từ địa chỉ 80H đến 0FFH
Sau đây là một vài thanh ghi đặc biệt thường được sử dụng:
Thanh ghi trạng thái chương trình (PSW: Program Status Word)
BIT SYMBOL ADDRESS DESCRIPTION
00=Bank 0; address 00H07H01=Bank 1; address 08H0FH10=Bank 2; address 10H17H11=Bank 3; address 18H1FH
Chức năng từng bit trạng thái chương trình
- Cờ Carry CY (Carry Flag):Cờ nhớ thường nó được dùng cho các lệnh toán
học: C =1 nếu phép toán cộng có sự tràn hoặc phép trừ có mượn và ngượclại C = 0 nếu phép toán cộng không tràn và phép trừ không có mượn
Trang 10- Cờ Carry phụ AC (Auxiliary Carry Flag): Khi cộng những giá trị BCD
(Binary Code Decimal), cờ nhớ phụ AC được set nếu kết quả 4 bit thấp nằmtrong phạm vi điều khiển 0AH - 0FH Ngược lại AC = 0
- Cờ 0 (Flag 0):
Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của người dùng
- Những bit chọn bank thanh ghi truy xuất:
RS1 và RS0 quyết định dãy thanh ghi tích cực Chúng được xóa sau khi reset
hệ thống và được thay đổi bởi phần mềm khi cần thiết
Tùy theo RS1, RS0 = 00, 01, 10, 11 sẽ được chọn Bank tích cực tương ứng
là Bank 0, Bank1, Bank2 và Bank3
Thanh ghi TIMER
Vi Điều Khiển 89S52 có 3 timer 16 bit, mỗi timer có bốn cách làm việc Người ta sử dụng các timer để:
Trang 11o Định khoảng thời gian.
o Đếm sự kiện.
o Tạo tốc độ baud cho port nối tiếp trong 89S52.
Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở những khoảng đều đặn và đặt cờ tràn timer Cờ được dùng để đồng bộ hóa chương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc gửi sự kiện ra các ngõ ra Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện (ví dụ
đo độ rộng xung).
Thanh ghi ngắt (INTERRUPT)
Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời thời chương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình khác.
Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng
vi điều khiển Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện vàgiải quyết sự kiện đó trong khi một chương trình khác đang thực thi
- Tổ chức ngắt của 89S52:
Có 5 nguồn ngắt ở 89S52: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port
nối tiếp Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống và đượccho phép từng cái một bằng phần mềm Mức độ ưu tiên của các ngắt được lưutrong thanh ghi IP (Interrupt Priority) hay nói cách khác thanh ghi IP cho phépchọn mức ưu tiên cho các ngắt (giá trị thanh ghi IP khi reset là 00h)
IP.5 ET2 BDH Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại timer 2IP.4 ES BCH Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại cổng nối tiếp
IP.3 ET1 BBH Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại timer 1
Trang 12IP.2 EX1 BAH Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại ngắt ngoài 1IP.1 ET0 B9H Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại timer 0IP.0 EX0 B8H Chọn mức ưu tiên cao (=1) hay thấp (=0)
Nếu chương trình của một ngắt có mức ưu tiên thấp đang chạy mà có mộtngắt xảy ra với mức ưu tiên cao hơn thì chương trình này tạm dừng để chạy mộtchương trình khác có mức ưu tiên cao hơn
- Cho phép và cấm ngắt:
Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức năng đặt biệt có định địa chỉ bit IE (Interrupt Enable: cho phép ngắt) ở địa chỉ A8H
IE.5 ET2 ADH Cho phép ngắt từ Timer 2 (8052)
IE.4 ES ACH Cho phép ngắt port nối tiếp
Trang 13IE.0 EX0 A8H Cho phép ngắt ngoài 0
Trang 14Bluetooth module SLAVE cho phép vi điều khiển kết nối với các thiết bị ngoại vi: smartphone, laptop, usb bluetooth thông qua giao tiếp Serial gửi và nhận tín hiệu 2 chiều.
Module bluetooth được tích hợp trên board cho phép bạn sử dụng nguồn từ 3.5V đến 6V cung cấp cho board mà không cần lo lắng về chênh lệch điện áp 3V - 5V gây hỏng board
Bluetooth module gồm 6 chân theo thứ tự: KEY, VCC, GND, TX, RX, STATE.Đây là module bluetooth SLAVE nghĩa là bạn không thể chủ động kết nối bằng vi điều khiển, mà cần sử dụng smartphone, laptop, bluetooth usb để dò tín hiệu và kết nối (pair) từ smartphone, laptop, bluetooth usb Sau khi pair thành công, bạn
có thể gửi và nhận tín hiệu từ vi điều khiển đến các thiết bị này
Hướng dẫn nối dây
Trang 15RX TX
Lưu ý: không được gắn lộn dây Vcc và Gnd vì sẽ gây hỏng module bluetooth ngay lập tức.
Tần số làm việc: 2.4GHz
Kích thước module: 44mm x 16mm x 7mm Có sẵn 1 dây nối dài 4 bus 18cm
Sau khi pair và nối dây cho module bluetooth, bạn sẽ nhận dữ liệu như 1 cổng Serial thông thường
Bước 3: Chuyển Key lên 3.3V
Dùng phần mềm Terminal hoặc Hercules để cài đặt ( Các bạn có thể xem hướng dẫn tạihttp://mcu.banlinhkien.vn ( Mục module)
1.1 Test
Gõ lệnh: AT
Trang 16Màn hình trả về: OK
2.2.Thay đổi tốc độ
Gõ: AT+BAUD1
Màn hình trả về: OK1200 ( Module đã được cài tốc độ 1200, muốn giao tiếp với module phải thay đổi tốc độ thành 1200)
Tương tự: AT+BAUDx ( x là các ký tự tương ứng dưới đây)
1 -1200
2 -2400
3 -4800
4 -9600
5 -19200
6 -38400
7 -57600
8 -115200
9 -230400
A -460800
B -921600
C -1382400
Không nên sử dụng tốc độ > 115200 ( Module hoạt động không ổn định)
3.3 Thay đổi tên ( Chỉ áp dụng cho Slaver)
Gõ : AT+NAMEname
Màn hình trả về: OKname
( Module đã có tên là “name” , chú ý chỉ cài được <20 ký tự)
VD: Muốn tên Module là banlinhkien
Gõ: AT+NAMEbanlinhkien
Màn hình trả về OKbanlinhkien là đã cài đặt thành công
4.4 Thay đổi pass.
Gõ AT+PINxxxx
Màn hình trả về: OKsetpin
xxxx: là mật khẩu đặt là 4 ký tự
VD: Muốn đặt pass là 8888
Gõ: AT+PIN8888
2.3 Module Relay 5V
2.3.1 Giới thiệu
Rơ-le là một loại linh kiện điện tử thụ động rất hay gặp trong các ứng dụng thực tế Khi bạn gặp các vấn đề liên quan đến công suất và cần sự ổn định cao, ngoài ra có
Trang 17thể dễ dàng bảo trì, thì rơ-le chính là cái bạn cần tìm Vì vậy, hôm nay, chúng ta sẽ cùng nhau tìm hiểu về relay và các ứng dụng của nó trong cuộc sống!
2.3.2 Relay (rơ-le) là gì ?
Từ rơ-le là từ vay mượn từ tiếng nước ngoài (cụ thể là tiếng Pháp) nên trong từ đó không bao hàm ý nghĩa gì nhiều Vì vậy, ta sẽ không phân tích rơ-le là gì thông qua tên gọi của nó Vì vậy, sẽ sử dụng những linh kiện điện tử khác mà chắc chắn
đã biết rồi để diễn giải!
Rơ-le là một công tắc (khóa K) Nhưng khác với công tắc ở một chỗ cơ bản, rơ-le
được kích hoạt bằng điện thay vì dùng tay người Chính vì lẽ đó, rơ-le được dùng
làm công tắc điện tử! Vì rơ-le là một công tắc nên nó có 2 trạng thái: đóng và mở.
"Khi nào nó đóng? Khi nào nó mở? và làm sao thay đổi được trạng thái của nó?, " đó chính là những câu hỏi mà chúng ta cần tìm kiếm câu trả lời.
2.3.3 Các loại rơ-le và cách xác định trạng thái của nó
Trên thị trường chúng ta có 2 loại module rơ-le: module rơ-le đóng ở mức
thấp (nối cực âm vào chân tín hiệu rơ-le sẽ đóng),module rơ-le đóng ở mức cao (nối cực dương vào chân tín hiệu rơ-le sẽ đóng) Nếu so sánh giữa 2 module
rơ-le có cùng thông số kỹ thuật thì hầu hết mọi kinh kiện của nó đều giống nhau,
chỉ khác nhau ở chỗ cái tranzitocủa mỗi module Chính vì cái transistor này nên
mới sinh ra 2 loại module rơ-le này (có 2 loại transistor là NPN - kích ở mức cao,
và PNP - kích ở mức thấp)
Làm sao để nhận biết được module rơ-le nào thuộc loại nào? Có 3 cách :
- Hỏi người bán và sau khi mua về chúng ta đặt ngăn nắp, loại nào ra loại đấy