TỔNG QUAN ĐỀ TÀI1.1 Giới thiệu chung Điều khiển từ xa là hệ thống điều khiển các thiết bị từ khoảng cách xa.. Ví dụ như điềukhiển bằng sóng vô tuyến, Bluetooth, Wifi, tia hồng ngoại,… Cấ
Trang 1MẠCH ĐIỀU KHIỂN THIẾT BỊ BẰNG
REMOTE
Trang 2MỤC LỤC
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 5
1.1 Giới thiệu chung 5
1.2 Nguyên lý hoạt động 6
CHƯƠNG 2 TÌM HIỂU CÁC LINH KIỆN 6
2.1 Các linh kiện sử dụng 6
2.1.1 Điện trở 6
2.1.2 Tụ điện 7
2.1.3 EPP 24C04 7
2.1.4 Thạch anh 8
2.1.5 Mắt thu IR 8
2.1.6 Nút nhấn 8
2.1.7 Vi điều khiển 8051 9
2.1.8 Remote 9
2.2 Vi điều khiển 805 9
2.2.1 Giới thiệu chung 9
2.2.2 Sơ đồ chân và chức năng từng chân của vi điều khiển 8051 11
2.2.2.1 Sơ đồ chân 11
2.2.2.2 Chức năng từng chân vi điều khiển 8051 11
2.2.3 EEPROM 24C04 13
2.2.3.1 Sơ đồ chân 13
2.2.3.2 Nguyên lý 13
2.2.4 Mắt thu IR 14
Trang 32.2.4.1 Sơ đồ chân 14
2.2.4.2 Chức năng 14
CHƯƠNG 3 THIẾT KẾ MẠCH 15
3.1 Sơ đồ khối 15
3.2 Sơ đồ nguyên lý mạch chính 17
3.2.1 Mạch nguyên lý 17
3.2.2 Sơ đồ layout 19
3.2.3 Sơ đồ layout 3D 20
3.2.4 Mạch in 22
3.2.5 Mạch thực tế 22
3.3 Module 4 kênh 23
3.3.1 Sơ đồ nguyên lý 23
3.3.2 Mạch in 24
CHƯƠNG 4 THỰC THI TRÊN PHẦN MỀM 25
4.1 Lưu đồ giải thuật 25
4.2 Code chương trình 26
CHƯƠNG 5 TỔNG KẾT 44
5.1 Quá trình thực hiện 44
5.1.1 Quá trình thiết kế 44
5.1.2 Quá trình thi công mạch 44
5.1.3 Quá trình viết chương trình 44
5.2 Ưu điểm, nhược điểm 44
5.2.1 Ưu điểm 44
Trang 45.2.2 Nhược điểm 44
5.3 Hướng phát triển đề tài 45
TÀI LIỆU THAM KHẢO 45
DANH MỤC HÌNH Ả Hình 1-1: Cấu trúc của hệ thống điều khiển từ xa 5
Hình 2-1: Các loại điện trở 6
Hình 2-2: Các loại tụ điện 7
Hình 2-3: EEPROM 24C04 7
Hình 2-4: Thạch anh 8
Hình 2-5: Mắt thu IR 8
Hình 2-6: Nút nhấn 8
Hình 2-7: Vi điều khiển 8051 9
Hình 2-8: Remote hồng ngoại 9
Hình 2-9: 8051 Internal Block Diagram 10
Hình 2-10: Sơ đồ chân vi điều khiển 8051 11
Hình 2-11: Sơ đồ chân EEPROM 24C04 13
Hình 2-12: Nguyên lý hoạt động 24c04 13
Hình 2-13: Sơ đồ chân mắt thu IR 14
Hình 3-1: Sơ đồ khối 15
Hình 3-2: Sơ đồ nguyên lý 18
Hình 3-3: Sơ đồ layout 19
Hình 3-4: Layout 3D mặt trước 20
Hình 3-5: Layout mặt sau 21
Hình 3-6: Mạch in 22
Hình 3-7: Mạch thực tế 23
Hình 3-8: Sơ đồ nguyên lý module 4 kênh 23
Hình 3-9: Mạch in module 4 kênh 24
Hình 4-1: Lưu đồ giải thuật 25
Trang 5BẢNG BIỂU
Y
Bảng 1: Bảng chức năng Port3 13
Trang 6CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI
1.1 Giới thiệu chung
Điều khiển từ xa là hệ thống điều khiển các thiết bị từ khoảng cách xa Ví dụ như điềukhiển bằng sóng vô tuyến, Bluetooth, Wifi, tia hồng ngoại,…
Cấu trúc chung của hệ thống
Hình 1-1: Cấu trúc của hệ thống điều khiển từ xa
Thiết bị phát: biến đỏi các lệnh điều khiển thành các tin hiệu tương tự để truyền đi
Đường truyền: đưa tin hiệu từ phát sang thu
Thiết bị thu: nhận tin hiệu từ đường truyền và qua quá trình chuyển đổi sẽ truyềnđến cơ cấu chấp hành
Cơ cấu chấp hành: nhận lệnh từ khối xử lý tin hiệu và thực hiện công việc điềukhiển
Ngày nay, điều khiển từ xa bằng tia hồng ngoại có vai trò thống trị trong hầu như tất cảcác thiết bị dân dụng trong gia đình như: tivi, quạt, máy điều hòa, các thiết bị chiếu sáng,
…Đây là loại điều khiển từ xa có vai trò “ thống trị” hầu hết các thiết bị gia đình Mộtchiếc điều khiển IR sẽ gồm các bộ phận cơ bản nằm trong một hộp nối cáp kỹ thuật
số như sau: Các nút bấm ; một bảng mạch tích hợp; các núm tiếp điểm; đi-ốt phátquang (đèn LED) Thật tiện lợi khi chúng ta chỉ việc ngồi tại chỗ để điều khiển tát cả cácthiết bị theo ý muốn của mình
Trang 71.2 Nguyên lý hoạt động
Nguyên lý cơ bản của loại điều khiển từ xa này là sử dụng ánh sáng hồng ngoạicủa quang phổ điện từ mà mắt thường không thấy được để chuyển tín hiệu đến thiết bịcần điều khiển Nó đóng vai trò như một bộ phát tín hiệu, sẽ phát ra các xung ánh sánghồng ngoại mang một mã số nhị phân cụ thể Khi ta ấn một nút phía bên ngoài thì sẽ vậnhành một chuỗi các hoạt động khiến các thiết bị cần điều khiển sẽ thực hiện lệnh của nútbấm đó
Trang 8CHƯƠNG 2 TÌM HIỂU CÁC LINH KIỆN
Trang 92.1.3 EPP 24C04
Hình 2-4: EEPROM 24C04
2.1.4 Thạch anh
Hình 2-5: Thạch anh
Trang 11- Dung lượng RAM 128 byte
- Dung lượng ROM 4 kbyte
- 4 port xuất nhập (I/O port) 8 bit
- 1 bộ định thời 16 bit
- Mạch giao tiếp truyền dữ liệu nối tiếp
- Có thể mở rộng không gian nhớ chương trình ngoài 64 Kbyte
- Ó thể mở rộng không gian nhớ dữ liệu ngoài 64 kbyte
- Bộ xử lý bit ( thao tác riêng trên từng bit)
- 210 bit có thể truy xuất từng bit
Trang 12Hình 2-10: 8051 Internal Block Diagram
Trang 132.2.2 Sơ đồ chân và chức năng từng chân của vi điều khiển 8051
2.2.2.1 Sơ đồ chân
Hình 2-11: Sơ đồ chân vi điều khiển 8051
2.2.2.2 Chức năng từng chân vi điều khiển 8051
- Chân Vcc(40): chân cấp nguồn
- Chân GND(20): chân nối đất
- Port0 (P0): gồm 8 chân từ chân 32 đến 39, có 2 chức năng làxuất nhập Các chân này nhận tin hiệu bân ngoài để xử lýhoặc dùng để xuất tin hiệu ra ngoài
Trang 14- Port1 (P1): gồm 8 chân từ chân 1 đến 8, chỉ có chức năngxuất nhập.
- Port2 (P2): gồm 8 chân từ chân 21 đến 28, có 2 chức năng làxuất nhập và bus địa chỉ cao
- Port3 (P3): gồm 8 chân từ chân 10 đến 17, có chức năng xuấtnhập và với mỗi chân có 1 chức năng riêng được thể hiện quabảng sau:
Bit Tên Chức nă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ớ ngoài
Bảng 1: Bảng chức năng Port3
- Chân RESET (RST): chân số 9 dùng thiết lập trạng thái đầucho vi điều khiển
- Chân XTAL1 và XTAL2: 2 chân này ở vị trí chân số 18 và
19, được dùng để nhận nguồn xung clock
2.2.3 EEPROM 24C04
2.2.3.1 Sơ đồ chân
Hình 2-12: Sơ đồ chân EEPROM 24C04
Trang 16- Khối nguồn: cung cấp nguồn cho các khối cồn lại hoạt động
- Khối nhận tín hiệu: chuỗi ánh sáng hồng ngoại nhận từ remote chuyểnthành tín hiệu điện trở như ban đầu rồi khuếch đại lên gửi đến khối giải mã
- Khối tạo dao động: tạo ra tần số xung nhịp cho khối điều khiển làm việc
- Khối xử lý: sau khi đã nhận được chuỗi tín hiệu điện từ khối nhận gửi đến, khối này sẽ giải mã ra bằng cách so sánh với những chuỗi tín hiệu đã được quy định sẵn trong khối, và đưa ra lệnh để điều khiển khối chấp hành
- Khối chấp hành: chỉ có nhiệm vụ là nhận lệnh từ khối giải mã rồi thực thi lệnh đó (đóng hoặc ngắt một thiết bị điện nào đó)
Khối
xử lý
Trang 183.2 Sơ đồ nguyên lý mạch chính
3.2.1 Mạch nguyên lý
Trang 19Hình 3-16: Sơ đồ nguyên lý
Trang 203.2.2 Sơ đồ layout
Trang 22Hình 3-17: Sơ đồ layout
Trang 233.2.3 Sơ đồ layout 3D
Hình 3-18: Layout 3D mặt trước
Trang 25Hình 3-19: Layout mặt sau
Trang 263.2.4 Mạch in
Hình 3-20: Mạch in
3.2.5 Mạch thực tế
Hình 3-21: Mạch thực tế
Trang 28CHƯƠNG 4 THỰC THI TRÊN PHẦN MỀM
4.1 Lưu đồ giải thuật
Hình 4-24: Lưu đồ giải thuật
Trang 29unsigned int IR_dodai,trangthaiIR;
unsigned long giatri,g;
unsigned char g1,g2,g3,g4;
unsigned char hoclenh;
unsigned char ghi=1,doc=0;
//////////////////////// Cac Ham thiet lap LCD/////////////////////////////////// //void delay_us(unsigned int t) // Ham tre micro giay
Trang 30de goi i2c start bat dau qua trinh giao tiep, chan SDA phai duoc dua xuong muc 0, trong khi SLC dang o muc 1 sau 1 thoi gian ngan
chan SCL cung duoc dua xuong muc 0 ngay tai thoi diem chan SCL duoc dau xuong muc 0 qua trình truyen du lieu bat dau
*/
void I2C_Start(void)
{
SDA = 1;
SCL = 1; // dua SCL va SDA len muc 1
SDA = 0; // keo SDA xuong 0
delay_ms(1); // delay 1 khoang thoi gian ngan
SCL = 0; // keo SCL xuong 0 ( qua trinh Start ket thuc)
SDA = 1; // dua SDA len muc 1 ( cau lenh nay khong can cung dc)
SDA=0; // cho SDA xuong 0 de chuan bi dua len 1
SCL=1; // dua SCL len muc 1
SDA=1; // SDA duoc dua len muc 1 Qua trinh Stop hoan tat
Trang 31Nhiem vu : VDK truyen du lieu vao slaver ( o day la DS1307)
Tham bien truyen vao : dat
Tra ve : 0 hoac 1 ( khong nhat thiet phai tra ve, muc dich la lay bit ack de kiem tra qua trinh truyen du lieu da ok chua)
bang cach goi ham va nhap vao 1 byte du lieu can truyen ta se truyen duoc duoc du lieu do vao slaver
*/
bit I2C_Write(unsigned char dat) // khai bao ham truyen du lieu va bien dat {
unsigned char i; // khai bao bien i
bit outbit; // khai bao bit
for (i = 1; i <= 8; i++) //vong lap for lap 8 lan tuong duong 8 bit ( 1 byte)
SCL = 0; // tao 1 xung clock tren chan SCL
de dich gia tri 1 hoac 0 tren chan SDA vao slaver
}
SDA = 1;
SCL = 1; // dua SDA va SCL len muc 1 chuan bi doc bit ack
outbit = SDA; // lay bit ack tu chan SDA
SCL = 0; // cho SCL ve 0
return(outbit); // lay gia tri ve
}
/* giai thich dong 87 -> 94
De co the truyen 1 byte ( vi du 0xBA) vao slaver ta tien hanh tach 1 byte do ra thành 8 bit do do can co vong lap for 8 lan ( moi lan truyen 1 bit)
Dau tien i=1
truyen bit thu nhat : ta co 0xBA = 1 0 1 1 1 0 1 0 Bit dau tien la bit
so 1 ( ben tay trai, truyen tu trai sang phai)
Trang 32TA có : 0xBA & 0x80 = 10111010 & 10000000 =
10000000
Do ket qua nhan dc la 10000000 khac 0 ma outbit chi nhan 2 gia tri 1 hoac 0 , Cho nen outbit = 1
Nhu vay, ta da truyen dc bit dau tien la 1 vao I2C
Sau do dich 0xBA sang 1 : 0xBA <<1 = 01110100
Vong lap thu 2, i = 2 :
tiep tuc nhu vay nhung lan nay 01110100 & 0x80 se = 0 outbit se = 0
Cu nhu vay 8 lan byte 0xBA se duoc truyen sang slaver /* -end I2C write -*/
dat = dat << 1; // dich byte data sang trái 1 lan
dat = dat | inbit; // muc dich la gán giá tri cua bit inbit vao byte dat
SCL = 0; // cho SLC xuong muc 0 san sang cho lan doc bit tiep thep
}
{
Trang 33if (ack) SDA = 0; // cac cau lenh nay dung de doc bit ack ( co the k can quan tam)
/* -end I2C read -*/
// -cac ham phuc vu giao tiep
// Ham doc du lieu thoi gian trong ds
unsigned char EEP_docdulieu(unsigned char diachi)
{
unsigned char dat;
I2C_Start(); // bat dau doc
I2C_Write(0xa0); // dau tien gui lenh ghi du lieu(ghi dia EEP)
I2C_Write(diachi); // Dia chi ma ta muon doc ( vi du, muon doc giay thi ta ghi dia chi 0x00)
I2C_Start(); // bat dau doc du lieu
I2C_Write(0xa1); // gui ma lenh doc du lieu tu dia chi(add)
dat = I2C_Read(0); // doc xong thi luu gia tri da doc dc vao dat
I2C_STOP(); // ket thuc qua trinh doc du lieu
I2C_Start(); // bat dau ghi
I2C_Write(0xa0); //0xao la dia chi EEP C24
I2C_Write(add); // gia tri can ghi
I2C_Write(Data); // ghi du lieu vao
I2C_STOP(); // ket thuc qua trinh truyen du lieu
Trang 34TMOD=0x01; //Timer 0 Mode 1
EX0=1; // ngat theo suon am
IT0 = 1; // cho phep ngat ngoai
ET0 = 1; // cho ngat timer
EA = 1; //cho phep ngat
Tai sao phai tach du lieu ???
Li do nhu sau: De co the luu duoc gia tri remote ma ta da giai ma duoc Ta phai luu gia tri do vao EEPROM TUy nhien,
1 thanh ghi cua EEPROM C24 chi co do dai toi da la 1byte Trong khi gia tri ta giai ma duoc len den 4byte.
Do do phai tach gia tri do ra lam 4 gia tri nho Moi gia tri kick thuoc bang 1byte va duoc luu vao 4 bien g1 g2 g3 g4
Trang 35Tai sao phai ghep du lieu ???
Li do nhu sau: Do truoc do ta da tach ra roi thi gio duong nhien phai ghep lai hihi
else if(ghi==7)
{
EEP_ghidulieu(0x71,g1); EEP_ghidulieu(0x72,g2); EEP_ghidulieu(0x73,g3); EEP_ghidulieu(0x74,g4);ghi=8;tb7=1;tb8=0;
}
else if(ghi==6)
{
EEP_ghidulieu(0x61,g1); EEP_ghidulieu(0x62,g2); EEP_ghidulieu(0x63,g3); EEP_ghidulieu(0x64,g4);ghi=7;tb6=1;tb7=0;
}
else if(ghi==5)
{
EEP_ghidulieu(0x51,g1); EEP_ghidulieu(0x52,g2); EEP_ghidulieu(0x53,g3); EEP_ghidulieu(0x54,g4);ghi=6;tb5=1;tb6=0;
}
else if(ghi==4)
{
EEP_ghidulieu(0x41,g1); EEP_ghidulieu(0x42,g2); EEP_ghidulieu(0x43,g3); EEP_ghidulieu(0x44,g4);ghi=5;tb4=1;tb5=0;
Trang 36}
else if(ghi==3)
{
EEP_ghidulieu(0x31,g1); EEP_ghidulieu(0x32,g2); EEP_ghidulieu(0x33,g3); EEP_ghidulieu(0x34,g4);ghi=4;tb3=1;tb4=0;
}
else if(ghi==2)
{
EEP_ghidulieu(0x21,g1); EEP_ghidulieu(0x22,g2); EEP_ghidulieu(0x23,g3); EEP_ghidulieu(0x24,g4); ghi=3;tb2=1;tb3=0; }
{g1=EEP_docdulieu(0x21);g2=EEP_docdulieu(0x22);g3=EEP_docdulieu(0x2 3);g4=EEP_docdulieu(0x24);}
{g1=EEP_docdulieu(0x31);g2=EEP_docdulieu(0x32);g3=EEP_docdulieu(0x3 3);g4=EEP_docdulieu(0x34);}
{g1=EEP_docdulieu(0x41);g2=EEP_docdulieu(0x42);g3=EEP_docdulieu(0x4 3);g4=EEP_docdulieu(0x44);}
{g1=EEP_docdulieu(0x51);g2=EEP_docdulieu(0x52);g3=EEP_docdulieu(0x5 3);g4=EEP_docdulieu(0x54);}
Trang 37else if(tb==6) {g1=EEP_docdulieu(0x61);g2=EEP_docdulieu(0x62);g3=EEP_docdulieu(0x6 3);g4=EEP_docdulieu(0x64);}
{g1=EEP_docdulieu(0x71);g2=EEP_docdulieu(0x72);g3=EEP_docdulieu(0x7 3);g4=EEP_docdulieu(0x74);}
{g1=EEP_docdulieu(0x81);g2=EEP_docdulieu(0x82);g3=EEP_docdulieu(0x8 3);g4=EEP_docdulieu(0x84);}
TH0 = 0x00; //Reset Timer 0 Value = 0
TL0 = 0x00; //Reset Timer 0 Value = 0
Trang 38while(i<32)
{
if(IR_pin == 1) //Neu co muc cao
{
TH0 = 0x00; //Reset Timer 0 Value = 0
TL0 = 0x00; //Reset Timer 0 Value = 0
}
}
giatri=0x00000000;
}
Trang 40IR_dodai=IR_dodai*255+(TL0-0x47); // ghep gia tri cua 2 thanh TH TL
if(hoclenh==1)
{ tach_dulieu();ghi_dulieu();
} else
{
Trang 41for(doc=1;doc<9;doc++) {
trangthaiIR=0;
} }
}
Trang 425.1.2 Quá trình thi công mạch
Linh kiện đơn giản dể mua Do đã có kinh nghiệm khi đã qua thựchành Đồ án 1 nên viêc thi công mạch cũng khá suông sẻ và ít gặpkhó khăn
5.1.3 Quá trình viết chương trình
Gặp chút ít khó khăn khi chưa hiểu rõ IC nhớ EEPROM 24C04, nên việc viết code rất mất nhiều thời gian
5.2 Ưu điểm, nhược điểm
5.2.1 Ưu điểm
Mạch hoạt động ổn địnhCác thao tác trên mạch đơn giản
Trang 435.3 Hướng phát triển đề tài
Có thể tích hợp thêm mạch hẹn giờ để tắt thiết bị sau khi bật với thời gian mìnhmong muốn
TÀI LIỆU THAM KHẢO
[1] Sách ứng dụng vi xử lý và vi điều khiển Tác giả: Lê Ngọc Bích & Phạm Quang Duy
[2] ngoai-nguyen-dinh-loi-1646187.html
http://tailieu.vn/doc/thiet-ke-he-thong-dieu-khien-tu-xa-bang-song-hong-[3] http://www.ytuongnhanh.vn/cat2/vi-dieu-khien-80c51-23/
[5] http://codientu.org/