Bảng 1.6 Bảng chức năng các chân module HC05 Chân Thứ tự Chân Thứ tự chân Chức năng GND 13,21,22 Nối đất. 3.3 VCC 12
Nguồn cung cấp 3.3V (+) tích hợp với đầu ra bộ điều chỉnh tuyến tính trên chip trong
phạm vi 3,15-3,3V.
AIO0 9 Dịng đầu vào / đầu ra có thể lập trình.
AI01 10 Dịng đầu vào / đầu ra có thể lập trình.
PIO0 23 Dịng đầu vào / đầu ra có thể lập trình, đầu
ra điều khiển cho LNA (nếu phù hợp).
PIO1 24
Dịng đầu vào / đầu ra có thể lập trình, đầu ra điều khiển cho PA (nếu phù hợp). PIO2 25 Dòng đầu vào / đầu ra có thể lập trình. PIO3 26 Dịng đầu vào / đầu ra có thể lập trình. PIO4 27 Dịng đầu vào / đầu ra có thể lập trình. PIO5 28 Dịng đầu vào / đầu ra có thể lập trình. PIO6 29 Dịng đầu vào / đầu ra có thể lập trình. PIO7 30 Dịng đầu vào / đầu ra có thể lập trình. PIO8 31 Dịng đầu vào / đầu ra có thể lập trình. PIO9 32 Dịng đầu vào / đầu ra có thể lập trình. PIO10 33 Dịng đầu vào / đầu ra có thể lập trình. PIO11 34 Dịng đầu vào / đầu ra có thể lập trình.
RESETB 11
Đặt lại nếu ở mức thấp. Gỡ lỗi đầu vào vì vậy phải ở mức thấp cho > 5MS để thiết lập
lại.
UART_RTS 4 UART yêu cầu để gửi, tích cực mức thấp. UART_CTS 3 UART xóa sạch để gửi, tích cực mức thấp.
UART_RX 2 UART dữ liệu đầu vào. UART_TX 1 UART dữ liệu đầu ra.
SPI_MOSI 17 Đầu vào dữ liệu giao diện ngoại vi nối tiếp. SPI_CSB 16
Chọn chip cho giao diện ngoại vi nối tiếp, tích cực mức thấp.
SPI_CLK 19 Đồng hồ giao diện ngoại vi nối tiếp. SPI_MISO 18 Đầu ra dữ liệu giao diện ngoại vi nối tiếp
USB_- 15
USB_+ 20
NC 14
PCM_CLK 5 Đồng hồ dữ liệu PCM đồng bộ. PCM_OUT 6 Đầu ra dữ liệu PCM đồng bộ.
PCM_IN 7 Đầu vào dữ liệu PCM đồng bộ. PCM_SYNC 8 Dữ liệu PCM đồng bộ nhấp nháy.
1.4.2. Tập lệnh AT mặc định
Cách đặt chế độ thành máy chủ (chính): 1. Kết nối PIO11 với mức cao.
2. Bật nguồn, mô-đun vào trạng thái lệnh.
3. Sử dụng tốc độ truyền 38400, đã gửi “AT + ROLE = 1 \ r \ n” tới mô-đun, với “OK \ r \ n” nghĩa là thiết lập những thành công.
4. Kết nối PIO11 với mức thấp, cấp nguồn cho mô-đun, mô-đun hoạt động như một máy chủ.
Lệnh kiểm tra: AT
Đặt lại: AT+RESET
Nhận phiên bản phần cứng: AT+VERSION?
Khôi phục mặc định: AT+ORGL
Lấy tên thiết bị Bluetooth: AT+RNAME?<Param1>
Đặt/kiểm tra chế độ module: AT+ROLE=<Param>/ AT+ ROLE?
Đặt/kiểm tra loại thiết bị: AT+CLASS=<Param>/ AT+CLASS?
Đặt/kiểm tra mã PIN: AT+PSWD=<Param>/ AT+PSWD?
Đặt/kiểm tra chế độ kết nối: AT+CMODE=<Param>/ AT+CMODE?
Đặt/ kiểm tra chế độ cố định: AT+BIND=<Param>/ AT+BIND?
Đặt đầu ra PIO: AT+PIO=<Param1>,<Param2>
Đặt/kiểm tra chế độ bảo mật: AT+SENM=<Param1>,<Param2>
Xóa các thiết bị đã xác thực: AT+RMAAD
Tìm kiếm thiết bị được xác thực: AT+FSAD=<Param>
Nhận số lượng thiết bị được xác thực: AT+ADCN?
Thiết bị xác thực được sử dụng gần đây nhất: AT+MRAD?
Nhận trạng thái làm việc của module: AT+STATE?
Khởi tạo hồ sơ SPP lib: AT+INIT
Yêu cầu thiết bị Bluetooth: AT+INQ
Hủy yêu cầu thiết bị Bluetooth: AT+INQC
Phù hợp với thiết bị: AT+PAIR=<Param1>,<Param2>
Kết nối thiết bị: AT+LINK=<Param>
Ngắt kết nối: AT+DISC
Chế độ tiết kiệm năng lượng: AT+ENSNIFF=<Param>
Thực hiện chế độ tiết kiệm năng lượng: AT+EXSNIFF=<Param>
1.5. Giới thiệu vi điều khiển AT89C52
Vi điều khiển 89C52 là một vi điều khiển dùng CMOS có cơng suất thấp, hiệu suất cao với 8Kbyte bộ nhớ Flash. Thẻ bộ nhớ flash bên trong chip cho phép các chương trình được tái lập trình trong hệ thống, hoặc bằng một lập trình bộ nhớ quy ước không đổi. Bằng việc kết hợp linh hoạt CPU 8-bit với bộ nhớ lập trình Flash, vi điều khiển 89C52 là một vi điều khiển mạnh mẽ cung cấp khả năng linh hoạt cao và là giải pháp hiệu quả về kinh tế cho rất nhiều ứng dụng điều khiển nhúng.
Vi điều khiển 89C52 cung cấp một số đặc tính cơ bản sau : 8Kbyte bộ nhớ Flash, 256 Byte RAM, 32 đường I/O, 2 con trỏ dữ liệu, 3 bộ định thời timer/counter 16-bit, 1 kiến trúc 6 vector ngắt với 2 mức, 1 port nối tiếp song công, 1 bộ dao động và một mạch xung clock. Thêm vào đó, vi điều khiển 89C52 được thiết kế với logic tĩnh để có thể hoạt động đến tần số 0Hz và được hỗ trơ 2 chế độ tiết kiệm năng lượng có thể lựa chọn được bằng phần mềm. Chế độ không tải (Idle mode) dừng CPU trong khi cho phép RAM, Timer/Counter, port nối tiếp và hệ thống ngắt tiếp tục hoạt động. Chế độ tắt nguồn (Power-down mode) lưu dữ liệu trong RAM nhưng đóng băng bộ dao động, dừng hoạt động các chức năng khác của chip cho đến khi có ngắt xảy ra hoặc phần cứng được reset.
1.5.1. Sơ đồ chân vi điều khiển AT89C52
Port 0 : Từ chân 32 đến chân 39 (P0.0 - P0.7), 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 I/O.
Hình 1.21 Sơ đồ chân vi điều khiển AT89C52 (Nguồn Internet) khiển AT89C52 (Nguồn Internet)
Đối với các hệ thống lớn có bộ nhớ mở rộng nó vừa là bus địa chỉ byte thấp vừa là bus dữ liệu để truy cập bộ nhớ ngoài.
Port 1 : Từ chân 1 đến chân 9 (P1.0 - P1.7)
Port 3 là port có tác dụng kép. Các chân port này có nhiều chức năng, vừa là cổng I/O vừa có cơng dụng chuyển đổi có liên hệ đến các đặc tính đặc biệt của AT89C52 như ở bảng sau:
Bảng 1.7 Bảng chức năng các chân Port 1
Port Pin Tên Chức năng chuyển đổi
P1.0 T2 Ngõ vào Timer/Counter 2
P1.1 T2 EX
Ngõ và bộ kích chế độ thu nhận (capture)/nạp lại (reload) và điều khiển trực tiếp của Timer 2
P1.5 MOSI Sử dụng cho hệ thống lập trình từ bên ngồi.
P1.6 MISO Sử dụng cho hệ thống lập trình từ bên ngồi.
P1.7 SCK Sử dụng cho hệ thống lập trình từ bên ngồi.
Port 2: Từ chân 21 đến chân 28 (P2.0 - P2.7)
Port 2 là port có tác dụng kép dùng như các đường I/O hoặc là byte cao (A8- A15) 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 port này có nhiều chức năng, vừa là cổng I/O vừa có cơng dụng chuyển đổi có liên hệ đến các đặt tính đặc biệt của AT89C52 như ở bảng sau:
Bảng 1.8 Bảng chức năng các chân Port 3
Port Pin Tên Chức năng chuyển đổi
P3.0 RxD Ngõ vào dữ liệu nối tiếp.
P3.1 TxD Ngõ xuất dữ liệu nối tiếp.
P3.2 INT0\ Ngõ vào ngắt ngoài thứ 0.
P3.4 T0 Ngõ vào của Timer/Couter 0.
P3.5 T1 Ngõ vào của Timer/ Counter 1.
P3.6 WR\ Tín hiệu ghi dữ liệu lên bộ nhớ ngồi.
P3.7 RD\ Tín hiệu đọc dữ liệu từ bộ nhớ ngoài.
PSEN (Program store enable): Chân 29
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.
ALE/PROG (Address Latch Enable): Chân 30
Khi AT89C52 truy xuất bộ nớ 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ả đa hợp các đường địa chỉ và dữ liệu khi kết nối với các IC chốt.
EA/VPP (External Access): Chân 31
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 thì AT89C52 thi hành chương trình từ Eprom nội trong khoản địa chỉ thấp 4Kbyte.Nếu ở mức 0 thì AT89C52 thi hành chương trình từ bộ nhớ mở rộng.Chân EA\được lấy làm chân cấp nguồn 21V khi lập trình Eprom trong AT89C52.
RST(Reset) : Chân 9
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 cho hệ thốnh thì mạch tự động reset.
XTAL1, XTAL2 : Chân 19, 18
Ngõ vào bộ dao động X1, X2, bộ giao động được tích hợp bên trong AT89C52. Khi sử dụng AT89C52, người ta chỉ cần nối thêm thạch anh và các tụ. Tần số thạch anh thường là 12Mhz.
VCC, GND : Chân 40, 20
1.5.2. Tổ chức bộ nhớ trong vi điều khiển AT89C52
RAM bên trong 89C52 được phân chia như sau :
Các bank thanh ghi có địa chỉ từ 00H đến 1FH.
RAM truy xuất từng bit có địa chỉ 20H đến 2FH.
RAM đa dụng từ 30H đến 7FH.
Các thanh ghi có chức năng đặc biệt từ 80H đến FFH bao gồm :
- Thanh ghi trạng thái chương trình (PSW: Program Status
Word).
Hình 1.22 Sơ đồ chân vi điều khiển AT89C52(Nguồn Internet)
- Thanh ghi B.
- Thanh ghi con trỏ ngăn xếp (SP1, SP2: Stack Pointer).
- Thanh ghi con trỏ dữ liệu (DPH, DPL).
- Các thanh ghi port xuất nhập (P0, P1, P2, P3).
- Các thanh ghi timer (TCON, TMOD, TMOD, T2CON,
T2MOD, TH0, TL0, TH1, TL1, TH2, TL2).
- Các thanh ghi port nối tiếp (SBUF, SCON).
- Các thanh ghi ngắt (IE, IP).
- Thanh ghi điều khiển công suất (PCON).
1.5.3. Hoạt động truyền dữ liệu vi điều khiển AT89C52
Giới thiệu
Truyền dữ liệu nối tiếp của MCS5 có thể ho ạt động ở nhiều kiểu riêng biệt trong phạm vi cho phét của tần số. Dữ liệu dạng song song được chuyển thành nối tiếp để truyền đi và nhận về dạng nối tiếp được chuyển thành song song.
Chân TxD (P3.1) là ngõ xuất dữ liệu đi và chân RxD (P3.0) là ngõ nhận dữ liệu về.
Đặc trưng của truyền dữ liệu nối tiếp là hoạt động song cơng có nghĩa là có thể thực hiện truyền và nhận dữ liệu cùng một lúc.
Hai thanh ghi chức năng đặc biệt phục vụ cho truyền dữ liệu là thanh ghi đệm SBUF và thanh ghi điều khiển SCON. Thanh ghi đệm SBUF nằm ở địa chỉ 99H có 2 chức năng : nếu vi điều khiển ghi dữ liệu lên thanh ghi SBUF thì dữ liệu đó sẽ được truyền đi, nếu hệ thống khác gửi dữ liệu đến thì sẽ được lưu vào thanh ghi đệm SBUF.
Thanh ghi điều khiển truyền dữ liệu SCON nằm ở địa chỉ 98H là thanh ghi cho phép truy suất bit bao gồm các bit trạng thái và các bit điều khiển. Các bit điều khiển dùng để thiết lập nhiều kiểu hoạt động truyền dữ liệu khác nhau, còn các bit trạng thái cho biết thời điểm kết thúc khi truyền xong một ký tự ho ặc nhận xong một ký tự. Các bit trạng thái có thể được kiểm tra trong chương trình hoặc có thể lập trình để sinh ra ngắt.
Tần số hoạt động của truyền dữ liệu nối tiếp còn gọi tốc độ BAUD (số lượng bit dữ liệu được truyền đi trong 1 giây) có thể hoạt động cố định (sử dụng giao động trên chip) hoặc có thể thay đổi. Khi cần tốc độ Baud thay đổi thì phải sử dụng Timer 1 hoặc Timer 2 để tạo tốc độ Baud.
Thanh ghi điều khiển truyền dữ liệu nối tiếp
Thanh ghi SCON sẽ thiết lập các kiểu hoạt động truyền dữ liệu khác nhau cho MCS51. Cấu trúc của thanh ghi SCON như sau:
Hình 1.23 Sơ đồ hệ thống truyền nhận dữ liệu (Nguồn Internet)
Bảng 1.9 Các bit trong thanh ghi điều khiển truyền dữ liệu.
Bit Ký hiệu Địa chỉ Mô tả hoạt động
7 SM0 9FH Bit chọn kiểu truyền nối tiếp : bit thứ 0.
6 SM1 9EH Bit chọn kiểu truyền nối tiếp : bit thứ 1.
5 SM2 9DH
Bit cho phép truyền kết nối nhiều vi xử lý ở mode 2 và 3, RI sẽ khơng tích cực nếu
bit thứ 9 đã thu là 0.
4 REN 9CH Bit cho phép nhận ký tự. REN=1 sẽ cho
phép nhận ký tự.
3 TB8 9BH
Dùng để lưu bit 9 để truyền đi khi hoạt động ở mode 2 và 3. TB8 bằng 0 hay 1 là
do người lập trình thiết lập.
2 RB8 9AH
Dùng để lưu bit 9 nhận về khi hoạt động ở mode 2 và 3
1 TI 99H
Cờ báo hiệu này lên mức 1 khi truyền xong 1 ký tự và xóa bởi người lập trình
để sẵn sàng truyền ký tự tiếp theo.
0 RI 98H
Cờ báo hiệu này lên mức 1 khi nhận xong 1 ký tự và xóa bởi người lập trình để sẵn
Các kiểu truyền dữ liệu nối tiếp
Truyền dữ liệu nối tiếp của MCS51 có 4 kiểu hoạt động tùy thuộc theo 4 trạng thái của 2 bit SM0 và SM1 được liệt kê ở bảng sau:
Bảng 1.10 Các kiểu truyền dữ liệu
SM0 SM1 Kiểu Mô tả Tốc độ baud
0 0 0 Thanh ghi
dịch Cố định (tần số dao động f/12)
0 1 1 UART 8
bit
Thay đổi (được đặt bởi Timer) 1 0 2 UART 9 bit Cố định (tần số dao động f/12 hoặc f/64) 1 1 3 UART 9 bit
Thay đổi (được đặt bởi Timer)
1.5.4. Tập lệnh vi điều khiển AT89C52
Tập lệnh của vi điều khiển 89C52 bao gồm các nhóm lệnh : - Nhóm lệnh số học : ADD, SUBB, DIV, MUL, INC, DEC, DA.
- Nhóm lệnh luận lý : ANL, ORL, XRL, CLR, CPL, RL, RLC, RR, RRC, SWAP
- Nhóm lệnh dịch chuyển dữ liệu : MOV, MOVC, MOVX, PUSH, POP, XCH, XCHD.
- Nhóm lệnh rẽ nhánh chương trình : ACALL, LCALL, RET, RETI, AJMP, LJMP, SJMP, JMP, JZ, JNZ, JC, JNC, JB, JNB, JBC, CJNE, DJNZ.
- Nhóm lệnh xử lý bit : ANL, ORL, SETB, CLR, CPL, MOV.
1.5.5. Nguồn cung cấp
Nguồn cung cấp cho tồn bộ mơ hình là 5V, trong đồ án này người thực hiện dùng nguồn cung cấp từ Adapter từ bên ngoài, trên mạch chỉ cần tạo jack cắm để kết nối.
1.5.6. Mạch dao động
Cấp nguồn xung clock cho vi điều khiển hoạt động, tần số tụ thạch anh thường dùng từ 12MHz ÷ 24MHz. Thường chọn tần số tụ thạch anh cung cấp là 12MHz, các tụ song song là 33pF.
Hình 1.25
Chƣơng 2
TỔNG QUAN GIẢI PHÁP 2.1. Khái niệm cơ bản
Nhà thông minh là một kiểu nhà được lắp đặt các thiết bị điện, điện tử có tác dụng tự động hóa hồn tồn hoặc bán tự động, thay thế con người trong việc thực hiện một số thao tác quản lý, điều khiển. Hệ thống điện tử này giao tiếp với chủ nhân thông qua bảng điện tử đặt trong nhà, phần mềm điện thoại di động, máy tính bảng hoặc bằng một trang web.
Trong căn nhà thơng minh, đồ dùng trong nhà từ phịng ngủ, phịng khách đến toilec đều gắn các bộ điều khiển điện tử có thể kết nối với internet và điện thoại di động, cho phép chủ nhân điều khiển từ xa hoặc lập trình cho các thiết bị hoạt động theo lịch, thêm vào đó các đồ gia dụng có thể hiểu được ngơn ngữ của nhau và có khả năng tương tác với nhau.
Các tiêu chuẩn của ngôi nhà thông minh: - Tự động hóa các hoạt động của ngơi nhà. - Đảm bảo an ninh, an tồn cho ngơi nhà.
- Cung cấp các dịch vụ giải trí chất lượng cao.
- Tăng hiệu suất các hệ thống, giảm điện năng tiêu thụ.
2.2. Giới thiệu một số công nghệ sử dụng trong ngôi nhà thông minh nhà thông minh
2.2.1. Bảng điều khiển trung tâm Wifi SH - CC6W
Thiết bị phịng thơng minh SH - CC6W là bảng điều khiển cảm ứng thông minh, hỗ trợ 6 kênh cơng suất có chức năng điều khiển từ xa, điều khiển thiết bị thông qua Wifi. Với thiết kế công nghệ cảm ứng điện dung, mặt kính chống xước, vỏ nhơm ngun khối màn hình hiển thị LCD, thiết bị làm căn nhà trở nên hiện đại, sang trọng. Bên cạnh đó, chức năng điều khiển tự động khi kết hợp cảm biến phát