XÂY DỰNG GIẢI PHÁP điều KHIỂN THÔNG MINH CHO PHÒNG hội NGHỊ DÙNG PIC (có code và layout) XÂY DỰNG GIẢI PHÁP điều KHIỂN THÔNG MINH CHO PHÒNG hội NGHỊ DÙNG PIC (có code và layout) XÂY DỰNG GIẢI PHÁP điều KHIỂN THÔNG MINH CHO PHÒNG hội NGHỊ DÙNG PIC (có code và layout) XÂY DỰNG GIẢI PHÁP điều KHIỂN THÔNG MINH CHO PHÒNG hội NGHỊ DÙNG PIC (có code và layout) XÂY DỰNG GIẢI PHÁP điều KHIỂN THÔNG MINH CHO PHÒNG hội NGHỊ DÙNG PIC (có code và layout) XÂY DỰNG GIẢI PHÁP điều KHIỂN THÔNG MINH CHO PHÒNG hội NGHỊ DÙNG PIC (có code và layout)
Trang 1XÂY DỰNG GIẢI PHÁP ĐIỀU KHIỂN THÔNG MINH CHO PHÒNG
HỘI NGHỊ DÙNG PIC
Trang 2DANH MỤC CÁC BẢNG BIỂU VII
DANH MỤC CÁC TỪ VIẾT TẮT VIII
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 1
Trang 4Hình 2.2: Sơ đồ khối nguồn 4
Hình 2.3: Cảm biến PIR 5
Hình 2.4: Mạch thu phát hồng ngoại 6
Hình 2.5: LM358 6
Trang 5VDK Vi điều khiển
MCU Micro Control Unit
CPU Central Processing Unit
BJT Bipolar junction transistor
Trang 6CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI
1.1Đặt vấn đề:
Lời nói đầu:
Ngày nay cùng với sự phát triển của các ngành khoa học công nghệ, điện tử màtrong đó là kỹ thuật số đóng vai trò quan trọng trong mọi lĩnh vực quản lí, côngnghiệp tự động hóa, cung cấp thông tin… do đó chúng ta phải nắm bắt và vận dụng
nó một cách có hiệu quả nhằm góp phần vào sự phát triển nền khoa học kỹ thuật thếgiới nói chung và trong sự phát triển kỹ thuật điện tử nói riêng để làm cho đời sốngcon người ngày càng hiện đại Các thiết bị tự động hóa đã ngày càng xuất hiệnnhiều trong sản xuất và trong cuộc sống sinh hoạt hằng ngày Qua đó có thể thấyquá trình tự động hóa là hết sức phổ biến có tầm ảnh hưởng lớn to lớn trong tiếtkiệm nhân lực và năng lượng
Lý do chọn đề tài:
Hiện nay hầu hết việc giám sát và điều khiển chiếu sang trong các phòng công cộngđược điều khiển bằng tay thông qua đóng mở các công tắc, aptomat, cầu dao Điềunày khá thuận lợi và đơn giản vì ta có thể bật tắt đèn theo nhu cầu sử dụng Tuynhiên do là phòng công cộng nên việc bật tắt đèn hàu như phải bố trí người trực Vìthế họ không thể biết chính xác hết khi nào thì có người tới và khi nào mọi người đã
ra hết khỏi phòng hoặc họ biết nhưng vì phải quản lý nhiều phòng nên họ cứ để điệnđến hết ca trực điều này gây lãng phí điện rất lớn Xuất phát từ thực tiễn trên nên
em chọn đề tài cho đồ án hai của mình là “Xây dựng giải pháp điều khiển thôngminh cho phòn hội nghị”
Mục tiêu của đề tài:
Đề tài nhằm mục đích nghiên cứu và chế tạo thành mạch đếm người ra vào một cửa
sử dụng họ vi điều khiển 89S52, kết quả hiển thị trên LED 7 đoạn 2 số, bật đèn khi
Trang 7có người trong phòng và tắt đèn khi mọi người về hết tại từng khu vực khác nhau,thông báo số người và trạng thái đèn từng khu vực trong phòng hội nghị.
1.2Vấn đề cần giải quyết:
+ Hiểu rõ đặc điểm, tính năng và cấu trúc của phòng hội nghị: Giúp việc bật tắt đền
ở nơi lắp đặt một cách chính xác, tự động hoặc bán tự động
+ Tìm hiểu các tài liệu liên quan đến đề tài nghiên cứu, đưa ra các giải pháp tối ưu
cho việc thiết kế chế tạo sản phẩm thực tế
+ Thiết kế và chế tạo mạch gồm các khối: Khối xử lí trung tâm dùng họ vi điều
khiển 89S52, khối cảm biến, khối hiển thị, và module sim phục vụ cho viêc thôngbáo qua sms
+ Tiến hành viết chương trình phần mềm phối hợp hoạt động các khối dưới sự điều khiển của khối mạch chính chứ IC AT89S52.
Trang 8CHƯƠNG 2 NỘI DUNG CỦA ĐỀ TÀI
2.1Thiết kế hệ thống:
2.1.1 Sơ đồ khối tổng quát:
Hình 2.1: Sơ đồ khối chức năng
Khối nguồn: cung cấp nguồn cho hệ thống
Khối cảm biến: Sử dụng sensor hồng ngoại dùng để thu nhận tín hiệu người
ra vào phòng, và cảm biến chuyển động PIR để nhận biết người đang ở khuvực nào để bật đèn tương ứng tại vị trí đó
Khối xử lý: Dùng vi điều khiển AT89S52 để lấy tín hiệu từ cảm biến, tínhtoán và đưa ra khối hiển thị và khối chấp hành
Khối hiển thị: Lấy tín hiệu ra từ chân VĐK để hiển thị số người trong phònglên Led7seg
Khối chấp hành: Nhận tín hiệu từ khối xử lý để thực hiện đóng ngắt tiếpđiểm mạch động lực
Trang 92.1.2 Giải pháp thiết kế:
Để phát hiện người ra vào ta dùng 2 bộ led thu phát hồng ngoại mắc gầnnhau đặt ở cửa ra vào Ba cảm biến chuyển động PIR đặt ở ba khu vực khácnhau trong phòng hội nghị
Xử lý điều khiển dùng vi điều khiển 89S52: Lập trình để 89S52 nhận tín hiệuvào từ hai bộ led thu phát hồng ngoại và cảm biến PIR, tính toán để đưa ralệnh bật tắt đèn
Để hiển thị ta dùng Led7seg: Lấy tín hiệu ra từ VĐK
Điều khiển đóng mở đèn nhờ transistor cấp dòng cho rơle
Module sim: Lấy tín hiệu tại thời điểm có tin nhắn yêu cầu kiểm tra
Module khối nguồn:
Hình 2.2: Sơ đồ khối nguồn
Dòng điện xoay chiều 220V, 50Hz đi qua biến áp sẽ được hạ áp xuống thành dòngxoay chiều 9V, 50Hz Dòng điện này qua cầu diode sẽ chuyển thành dòng mộtchiều, tuy nhiên dòng điện này có độ nhấp nhô cao, nhờ qua tụ C nên dòng điệnđược làm phẳng, IC7805 giúp ổn áp đầu ra đúng 5V
Trang 10 Module cảm biến PIR:
Trang 111 2 3
Trang 12 Mạch thu phát hồng ngoại:
Hình 2.4: Mạch thu phát hồng ngoại
Nguyên lý hoạt động : Khi LED thu không nhận được tín hiệu từ LED phát, điệntrở của LED thu rất lớn V2 > V3, dẫn lối ra điện áp bằng 0, khi LED thu nhận đượctín hiệu từ LED phát, điện trở của LED thu giảm mạnh xuống (sự giảm đó phụthuộc vào cường độ LED phát), khi đó V2 < V3, dẫn đến lỗi ra điện áp bằng 5V
Trang 13DTR : Chân UART DTR, thường không xài.
SPKP, SPKN: ngõ ra âm thanh, nối với loa để phát âm thanh
MICP, MICN: ngõ vao âm thanh, phải gắn thêm Micro để thu âm thanh.Reset: Chân khởi động lại Sim800L (thường không xài)
RING : báo có cuộc gọi đến
Trang 14GND: Chân Mass, cấp 0V.
2.3Các linh kiện sử dụng trong mạch:
2.3.1 Vi điều khiển 89S52:
a) Sơ đồ chân AT89S52:
b) Sơ lược về sự ra đời:
Năm 1976, hãng Intel giới thiệu bộ vi điều khiển 8748-mở đầu cho họ
vi điều khiển MCU-48 8747 là một vi mạch chứa hơn 17.000 transistorbao gồm CPU, 1kbyte bộ nhớ ROM, 64KB RAM, một bộ đếm/địnhthời 8 bit và 27 chân vào/ra
Vi điều khiển (MCU-viết tắt của cụm từ ‘Micro Control Unit’) có thể đượccoi như một máy tính thu nhỏ trên một chíp, nó còn có thể hoạt động vớimột vài linh kiện phụ trợở bên ngoài, sau 8748, các bộ vi điều khiển mới
Trang 15tiếp tục được các hãng sản xuất như Intel, Atmel, Simens giới thiệu cho cácứng dụng nhúng.
c) Các thông số chính của AT89S52:
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
Giao tiếp nối tiếp
128 Byte RAM nội
4 Port xuất /nhập I/O 8 bit
64 KB vùng nhớ mã ngoài
4 µs cho hoạt động nhân hoặc chia
*Chức năng các chân:
Nhóm chân nguồn:
+ VCC: chân 40, điện áp cung cấp 5VDC
+ GND: chân 20 ( hay nối Mass )
+ Nhóm chân dao động: gồm chân 18 và chân 19 (Chân XTAL1 và XTAL2),cho phép ghép nối thạch anh vào mạch dao động bên trong vi điều khiển,được sử dụng để nhận nguồn xung clock từ bên ngoài để hoạt động, thườngđược ghép nối với thạch anh và các tụ để tạo nguồn xung clock ổn định.+ XTAL 1: Ngõ vào đến mạch khuếch đại dao động đảo và ngõ vào đếnmạch tạo xung clock bên trong
Trang 16+ XTAL 2: Ngõ ra từ mạch khuếch đại dao động đảo.
+ Chân chọn bộ nhớ chương trình: chân 31 (EA/VPP): dùng để xác địnhchương trình thực hiện được lấy từ ROM nội hay ROM ngoại
+ Chân 31 nối mass: sử dụng bộ nhớ chương trình bên ngoài vi điều khiển+ Chân 31 nối VCC: sử dụng bộ nhớ chương trình (4Kb) bên trong vi điều+ RST(Chân RESET): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiếtlậ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ácgiá trị ban đầu nếu ngõ này ở mức 1 tối thiểu 2 chu kì máy
+ Chân cho phép bộ nhớ chương trình PSEN:
+ PSEN ( program store enable) tín hiệu được xuất ra ở chân 29 dùng để truyxuất bộ nhớ chương trình ngoài Chân này thường được nối với chân OE(output enable) của ROM ngoài
+ Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát ratín hiệu kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kì máyKhi thực thi một chương trình ở ROM nội, chân này được duy trì ở mứclogic không tích cực (logic 1).(Không cần kết nối chân này khi không sửdụng đến)
+ Chân ALE :(chân cho phép chốt địa chỉ-chân 30)
Khi Vi điều khiển truy xuất bộ nhớ từ bên ngoài, port 0 vừa có chức năng làbus địa chỉ, vừa 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 đahợ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.+ Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động đưa vào Viđiều khiển, như vậy có thể dùng tín hiệu ở ngõ ra ALE làm xung clock cungcấp cho các phần khác của hệ thống
+ Nhóm chân điều khiển vào/ra:
Port 0: gồm 8 chân (từ chân 32 đến 39) có hai chức năng:
Trang 17-Chức năng xuất/nhập :các chân này được dùng để nhận tín hiệu từ bên ngoàivà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ều 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 (hoặcPort 0) còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kếtnối với bộ nhớ ngoài), đồng thời Port 0 còn được dùng để định địa chỉ của bộnhớ ngoài
Port 3 (P3):
gồm 8 chân (từ chân 10 đến 17):
-Chức năng xuất/nhập
Với mỗi chân có một chức năng riêng:
P3.0 RxD : Ngõ vào nhận 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 cứng thứ 0
P3.3 INT1: Ngõ vào ngắt cứng thứ 1
P3.4 T0 : Ngõ vào của Timer/Counter thứ 0
P3.5 T1 : Ngõ vào của Timer/Counter thứ 1
P3.6 WR : Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài
P3.7 RD : Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài
P1.0 T2 : Ngõ vào của Timer/Counter thứ 2
Trang 18P1.1 T2X : Ngõ Nạp lại/thu nhận của Timer/Counter thứ 2
8051 có 4 chân tín hiệu điều khiển:
+ PSEN (Program Store Enable) chân 29 của vđk thường được nối đếnchân OE(Output Enable) của một EPROM để cho phép đọc mã lệnh
+ ALE (Address Latch Enable) chân 30 sử dụng với Port 0 như mộtmạch tách kênh đa hợp Nghĩa là trong 1 chu kỳ truy cập bộ nhớ, nửa đầuchu kỳ Port 0 sẽ là các BUS dữ liệu, nửa chu kỳ sau Port 0 được dùng luôn
để nhập, xuất dữ liệu
+ EA (External Access) chân 31 cho phép vđk thực thi chương trình từEPROM khi chân này được nối đất (GND) ngược lại vđk sẽ thực thi chươngtrình trong ROM nội
+ RST (Reset) chân 9, vi điều khiển sẽ reset khi chân này được đưa lênmức cao trong ít nhất 2 chu kỳ máy Các thanh ghi bên trong vđk sẽ đượcđưa về giá trị ban đầu
d) Đặc tính điện:
Điện áp hoạt động: 4V - 5.5V
Dòng điện nuôi vđk: 25mA
Dòng đầu ra của các Port cỡ 15mA
2.3.2 Led 7 đoạn:
Trang 19Đối với loại Anode chung :
+ Chân 3 và 8 là 2 chân Vcc(nối ngắn mạch lại với nhau , sau đó nối chungvới chân anode của 8 led đơn ), vậy muốn led nào đó sáng thì chỉ việc nốichân catot xuống mass
+ Điện áp giữa Vcc và mass phải lớn hơn 1.3 V mới cung cấp đủ led sáng,tuy nhiên không được cao quá 3V
2.3.3 Điện trở, tụ điện, diode, led, transistor, LM2596T:
2.3.3.1 Điện trở: ( hình 2.3)
2.3.3.2 Tụ điện:
Trang 20Tụ phân cực có cấu tạo gồm 2 cực:+ và - Nhất thiết khi thiết kế, mạchđiện phải đảm bảo yếu tố này Nếu trái cực rất dễ bị hỏng.
Người ta dùng tụ phân cực để lọc nguồn, nó thường có trị số cao, có hiệuứng tốt ở tần số thấp
Tụ thường: 2 cực có vai trò như nhau, có thể tráo đổi
2.3.3.3 Diode:
Trang 212.3.3.4 Led:
2.3.3.5 Transistor:
2.3.3.6 IC ổn áp nguồn LM2596T:
Trang 22Nguyên tắc dựa theo nguồn xung Điện áp đầu ra được điều chỉnh liêntục để đảm bảo cho điện áp đầu ra luôn giữa ở một giá trị cố định Trong
sơ đồ cấu tạo thì LM2576 gồm khối : So sánh, tạo dao động, công suất,quá dòng
+ Chân 1 (Vin) : Chân nguồn đầu vào
+ Chân 2 (Vout) : Chân điện áp đầu ra Tùy thuộc dòng LM2576 màchân này có điện áp ra ổn định khác nhau
+ Chân 3 (GND) : Chân nguồn chung
+ Chân 4 (Feedback) : Chân đưa tín hiệu phản hồi từ đầu ra về đầu vào.Đưa vào bộ so sánh để điều chỉnh ổn định điện áp
+ Chân 5 (On/Off) : Chân đóng mở Thường để GND
Trang 23CHƯƠNG 3 KẾT QUẢ MÔ PHỎNG
3.1Sơ đồ nguyên lý:
G F
P
E C A
A
D F P0.0
P1.0 P1.3 P1.6
P0.1 P0.4 P0.7 P2.1 P2.4 P2.7 RXD TXD P3.4 P3.7
G F
P
E C A A
C
E G F
CA2 DP LED1
R51 220 R53 220 R55 220 R57 220
P0.0 P0.2 P0.4 P0.6 XTAL2
18 XTAL1 19
ALE 30
EA 31
PSEN 29
RST 9
P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32
P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WRP3.5/T11615
VCC 40
GND 20 P2.7/A15 28
P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U4
CA2 DP LED2
3
Q4 A1015 R9 4K7 P2.6
-J7
JACK-DC
R20 2K7
R21 1K
+12V
C1
100uF/25V
R7 10k
SIM800L
VCC
2 NET 1 RST 3 RXD 4 TXD 5 GND 6 SPKP
8 SPKN 7 MICN 9 MICP 10 RING
12 DTR11 U2
SIM800L
TXD RXD
1 PIR1 3
Q7 R11 1k
1 PIR2 3
Q8 R12 1k
1 PIR3 3
Q9 R13 1k
Trang 243.2Mạch in:
Trang 25CHƯƠNG 4 NHẬN XÉT
4.1Ưu điểm:
- Mạch nhỏ gọn, phù hợp với việc học tập nghiên cứu về vi điều khiển và ứng dụng của nó vào đời sống hằng ngày
- Linh kiện phổ biến, dễ dàng có thể thực hiện việc mô phỏng
- Tiết kiệm nguồn điện bằng cách sử dụng nguồn máy tính, nguồn chuẩn 5v cho mạch hoạt động
- Thiết kế bằng phần mềm ORCAD thông dụng trong ngành điện tử
- Mạch vẫn còn bị nhiễu tín hiệu, tốc độ xử lý chậm…
Trang 27TÀI LIỆU THAM KHẢO
Trang 28bit t_tb1=1,t_tb2=1,t_tb3=1,t_tb4=1;gh=0;
unsigned int t=0,tr=0;
Trang 29unsigned char dt1[]="01632618146";
unsigned char idata tsms[25],tsms1[]="SAI PASS,KHONG DUOC TRUY CAP
HE THONG";
//KHAI BAO CAC BIEN
unsigned int SoNguoi;
int flag_dem_nguoi = 0;
unsigned char ma[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};unsigned int donvi,chuc;
// Ham tao tre de quet led
void delay_ms(unsigned int ms)
//viet lai ham delay
void delay(unsigned int time)
Trang 30TMOD = 0x20; /* timer 1 che do 2: 8-Bit tu dong nap lai */TH1 = 0xfd ; /* toc do 9600 baud */
Trang 31a=0;guichuoi("AT+CMGS="); guikytu(34);guichuoi(dt1);guikytu(34);guikytu(13);delay(300);guichuoi(tinnhan);guikytu(26);guikytu(13);delay(200);guikytu(13);
//guichuoi("AT+CMGS="); guikytu(34);guichuoi(dt2);guikytu(34);guikytu(13);delay(300);guichuoi(tinnhan);guikytu(26);;guikytu(13);delay(200);a=1;
b = c = d = ngat = bien1 = bien2 = 0 ;memset(trave,'\0',sizeof(trave));memset(sms,'\0',sizeof(sms)); a = EA = 1; //bit cho phep ngathoac cam toan bo cac nguon ngat
b=1;/*LCDlenh(0x01);LCDlenh(0x80);LCDxuatchuoi("NHAN LENH");*/} //batdau cho phep nhan chuoi
if((tam==10||gh==1) && bien1 > 0) { c=bien1;gh=0;ngat=1; a = 2;b =0;bien1
=0;/*LCDlenh(0x01);LCDlenh(0x80);LCDxuatchuoi("LENH:");LCDlenh(0xC0);LCDxuatchuoi(trave);*/ } //het lenh thi chuyen qua noi dung
Trang 32if(tam!=10 && tam!=13&& b == 1 ) { trave[bien1] = tam; bien1++;if(bien1==16) gh=1;/*LCDlenh(0x01);LCDlenh(0x80);LCDxuatchuoi("-
>TRAVE");*/ } //luu hoi dap vao trave
if((tam==10||gh==1) && bien2 > 0) {d=bien2;gh=0; ngat=2; a = 0; b =0;bien2=0;/*LCDlenh(0x01);LCDlenh(0x80);LCDxuatchuoi("SMS:");LCDlenh(0xC0);LCDxuatchuoi(sms);*/ } //KHI KET THUC MOT CHUOI
if(tam!=10 &&tam!=13 && b == 1 ) { sms[bien2] = tam; bien2++;if(bien2==20) gh=1;/*LCDlenh(0x01);LCDlenh(0x80);LCDxuatchuoi("-
Trang 35noitiep(); //Khoi tao cac thong so cho truyen thong noi tiep
EA = 1; //Cho phep ngat toan cuc
Trang 36gui_sms("KHOI TAO XONG");
b = c = d = ngat = bien1 = bien2 = 0 ;memset(trave,'\0',sizeof(trave));memset(sms,'\0',sizeof(sms)); a = EA = 1; //bit cho phep ngathoac cam toan bo cac nguon ngat
while(1) //se chay trong doan nay khi khoi tao xong
Trang 37a = b = c = d = ngat = bien1 = bien2 = 0 ;memset(trave,'\0',sizeof(trave));memset(sms,'\0',sizeof(sms)); //bit cho phep ngat hoac cam toan
bo cac nguon ngat
a =0;
guichuoi("AT+CMGR=1");delay(300); guikytu(13);a=1;a=1;delay(700);if(kt_sms(pw)==1)
{
if(kt_sms("PASS")==1){
for(p=0;p<4;p++)pw[p] = sms[p+8];
}if(kt_sms("BATHET")==1){
TB1=TB2=TB3=1;delay(100);gui_sms("DA BAT HET TB");}
if(kt_sms("TATHET")==1){
TB1=TB2=TB3=0;delay(100);gui_sms("DA TAT HET TB");}
if(kt_sms("BAT1")==1){
TB1=1;delay(100);gui_sms("DA BAT TB1");
}if(kt_sms("TAT1")==1){
TB1=0;delay(100);gui_sms("DA TAT TB1");