Nắm được tầm quan trọng này em đã chon đề tài giao tiếp vi điềukhiển 8051 với máy tính PC để điều khiển đống mở cửa tự động.. Chương 1:GIỚI THIỆU ĐỀ TÀI Cửa tự động ngày càng được ứng d
Trang 1LỜI NÓI ĐẦU
Ngày nay máy tính được ứng dụng rất nhiều trong việc điều khiển cácthiết bị máy móc cơ khí và ngày càng có nhiều máy móc thông mình hơn nhờ có
bộ óc vi tính Nắm được tầm quan trọng này em đã chon đề tài giao tiếp vi điềukhiển 8051 với máy tính PC để điều khiển đống mở cửa tự động
Vận dụng những kiến thực được học trên trường, cùng với sự tìm tòinghiên cứu em đã hoàn thành tốt đồ án này Tuy nhiên, trong pham vi đồ án chỉmục tiêu chỉ là mô hình hóa nên tính thực tế chưa cao, còn nhiều điểm chưa đượctối ưu cần được cải thiện và nâng cấp thêm
Em kính mong nhận được sự đóng góp chỉ dẫn của các thây cô giáo và cácbạn để mong đồ án của em được hoàn thành Em xin chân thành cảm ơn!
Đà Nẵng, ngày 19 tháng 1 năm 2015 Sinh viên thực hiện
Phạm Đình Xuân
Trang 2Chương 1:
GIỚI THIỆU ĐỀ TÀI
Cửa tự động ngày càng được ứng dụng nhiều trong các tòa nhà hiện đại,cửa hàng, nhà thông minh…Với đồ àn vi điều khiển này em ứng dụng vi điềukhiển 8051 đã được học vào điểu khiển cửa tự động vào ra nhanh chậm của cáchcửa, kết hợp với sự kiểm soát từ máy tính
Trang 3Chương 2:
THIẾT KẾ MẠCH
1.1 Sơ đồ khối
Hình 1.1: Sơ đồ hệ thống
- Chức năng của từng khối.
a) Mạch nguồn: Cung cấp biến dòng điện xoay chiều thành một chiều cungcấp 12v cho động cơ và 5v cho vi điều khiển, cảm biến quang, LCD,Max232
b) Mạch vi điều khiển: Là mạch điều khiển trung tâm được lập trình điểukhiển động cơ, giao tiếp máy tính, nhận tín hiệu từ cảm biến và công tắchành trình, truyện dữ liệu hiển thị lên LCD
c) Mạch Max232: Là cầu chuyển đổi vì trong chuẩn UART (trên 8051),mức 1 tương ứng điện áp cao (5V, TTL) trong khi đối với RS232 thì mức
1 tương ứng với điện áp thấp (điện áp âm, có thể -12V) Cần chuyển đổitín hiệu giữa hai chuẩn này
d) Máy tính PC: Tạo giao diện giao tiếp với vi điều khiển nhận tín hiệu cóngười đợi ở cửa, thông báo ra loa để trực tiếp đóng mở cửa trên giao diệnmáy tính, hoặc có thể chọn chế độ tự động hay bằng tay cho cửa Ngônngữ để viết cho giao diện C#
Trang 4e) Cảm biến quang: Phát hiện khi có người ở trước cửa, khi có sẻ đưa về tínhiệu mức âm cho vi điều khiển biết.
f) Công tắc hành trình: Báo cửa đã được đóng, khi công tắc đóng sẻ đưa vềmức âm cho vi điều khiển biết
g) Mạch công suất: Mạch điều khiển động cơ 12v, nhận tín hiệu PWM vàđảo chiều từ vi điều khiển
h) Động cơ DC 12v có chức năng đóng mở cửa ra vào
i) LCD 16x2: Chức năng hiển thi dữ liệu từ vi điều khiển, hiển thị nhữngthông tin cho người đứng trước cửa biết
1.2 Tính toán và thiết kế mạch.
- Mạch nguyên lý:
Hình 2.1: Mạch chính
- Mạch LCD:
Trang 5Hình 2.2: Mạch LCDBiến trở 10k để điều chỉnh độ tương phản cho LCD.
Các Header để việc kết nối với mạch chính thông qua bus được dễ dàng
- Mạch Max232:
Hình 2.3: Mạch Max232Mạch kết nối giữa cổng COM máy tính PC với 2 chân RXD và TXD vi điều khiển
* Giải thích hoạt động và tính toán mạch:
Trang 6a) Nguyên lý chung của mạch :
Mạch có chức năng giao tiếp với máy tính ( giao tiếp nối tiếp qua cổng com và ic Max232 ) để điều khiển cách cửa trược tiếp của máy tính
Mạch nhận tính hiệu từ cảm biến ( lúc có người ) đưa vào vi điêu khiển hay lên máy tính
Mạch hiển thị thông tin cho người đi vào cổng biết lên LCD
Mạch điều khiển động cơ mở đóng cửa khi có yêu cầu
+ Điều kiện làm việc : cung cấp nguồn điên xoay chiều có giá trị thích hợp vào chân 2 và 3 nối tải vào 1 và nối mass 4
Trang 7+ Nguyên lý làm viêc : khi cấp điên áp xoay chiều vào chân 2,3 (giả sử 2 dương
3 âm ) dòng điện sẽ đi từ 2 qua diot phân cực thuận về 1 qua tải về 4 qua d đến 3 rồi về lại âm nguồn khi dòng điên đảo chiều thì dòng đi từ 3 ->1 ->4 ->2 như vậy dòng xoay chiêu được chỉnh lưu thành 1 chiều
+ Đo kiểm tra cầu điôt : kiểm tra từng chân trước khi lắp vào mạch
Dùng đông hồ số để kiểm tra : chỉnh về thang đo trở đặt que đỏ vào 2 que vào 1 thấy đồng nhảy giá trị 0.và đảo ngược lại thì nhảy giá trị rất lơn đo được ta thấy
4 con điot đều tốt sau đó lắp vào mạch :
Khi mắc vào mạch ta tiến hành găm nguồn và kiểm tra :
Đùng đồng hồ đo điên áp ngỏ vào : chỉnh thang đo về thang đo áp xoay chiều đặt 2 que vào 2 chân của điên áp ngỏ vào ta đọc được giá trị là 9,22 v
Sau đó chỉnh qua thang đo 1 chiều để đo điên áp ngỏ ra : đặt que đỏ vào 3 và que đen vào mass Ta đo được giá trị 10,96v
Nhận xét : theo tính toán thì khi đặt điên áp đầu vào là 9,22 thì qua cầu điot thì
sẽ sụp áp là 1.4V Tuy nhiên t mắc thêm tụ C4 để lọc đầu vào cho IC 7805 nên điên áp đo được kéo lên lần
Vậy điên áp theo tính toán là : (9,22 -1,4 ) = 11,059 V
Ta đo được là 10,96 nên sai số là : (11,059-10,96) / 11,059 *100 = 1%
Sai số là rât nhỏ phần mạch này hoạt động tốt :
2) Các tụ : C4 ,C36 ,C35 :
+Chức năng : tụ C4 lọc nguồn đầu vào cho 7805 Tụ này là tụ hóa có điên dung đủ lớn để lọc phẳng điên áp đầu ,và điên áp chịu đựng lớn hơn 12V
Chọn tụ loại 2200uF và điên áp chịu được là 50V
Tụ C36 : tụ hóa dùng để lọc nguồn đầu ra cho 7805
Tụ C35 : tụ gốm để lọc các sóng có tần số cao ,dễ gây nhiểu ở đầu ra
3 ) IC ổn áp LM7805 :
Trang 8Hình 2.6: LM7805+ Hình dang :
Hình 2.7: Hình dạng LM7805 + Điều kiện làm việc :
Cấp nguồn đầu vào cho chân 1 điện áp từ 8v – 40v chân 2 nối mass vào chân 3 đầu ra nối với tải
+ Nguyên lý làm việc : đây là Ic ổn áp được thiết kế để khi ta cho điên áp từ 40v thì cho ra đầu ra 5v ổn đinh
8-4) Trở và led :
Hình 2.8: Led báo nguồn
Trang 9Chức năng : báo hiệu khi có điện áp đặt ở đầu ra :
+ Điều kiện hoạt động : cấp nguồn vào Vcc và nối mass cho mạch
+ Nguyên lý làm viêc : Trở để phân áp đặt lên led báo Khi có nguồn 5v có dòng đổ qua và led sẽ sang
- Mạch công suất điều khiển động cơ:
Hình 2.9: Mạch công suất điều khiển động cớ DCChức năng của linh kiện trong mạch:
1) Điện trở R64, R63:
+Chức năng: Là điện trở kéo có chức năng khi tín hiện ở mức cao từ vi điều khiển ra có thể nhỏ hơn 5v sẻ gây ra nhiễu nên mắc thêm trở để keo lên mứccao
+Giá trị: 1k-10k là giá trị hay được sử dụng
2) Điện trở R58, R57:
+Chức năng: Là điện trở hạn dòng có chức năng hạn dòng cho led
+Điều kiện làm việc: Mắc nối tiếp với lịnh kiện cần hàn dòng
+ Giá trị tính toán:
R====320+Chọn điện trở khoảng 330ohm
3) Opto:
+ Chức năng: Cách ly quang mạch công suất 12v với mạch vi điều khiển 5v
+ Ký hiệu:
Trang 10Hình 2.10: Ký hiệu Opto+ Điều kiện làm việc:
Hình 2.11: Cách nối Opto hoạt động
7) Role:
+Chức năng đảo chiều động cơ nhờ các tiếp điểm
+Điều kiện làm việc:
Trang 11Hình 2.13: Cách nối role với tải động cơ+ Chế độ đóng cắt tiếp điểm khi có tín hiệu điện 12v vào chân 1,2 của cuộn dây.+ Tải cho role động cơ DC 12v2v
8) Mosfet IRF540:
+Là linh kiện để đóng tắt động cơ, điều xung PWM
- Làm việc ở chế độ dẫn bảo hòa
Có tải là động cơ DC 12v2v
Hình 2.14: Mosfet IRF540 kích mở động cơ
- Mạch vi điều khiển:
Trang 12Hình 2.15: Mạch vi điều khiển+ Mạch tạo dao động cho vi điều khiển:
Trang 13RXD ( P3.0) và TXD ( P3.1)
Trang 14+ Chân nối với cảm biến quang: Chân P3.4, khi có tín hiệu chân sẻ xuống mứcâm
+ Các header9 đưa ra để kết nối với LCD và công tắc hành trình
Trang 15Hình 3.1: Lưu đồ chương trình chính
- Giải thích chức năng chính của lưu đồ chương trình chính:
+ Thiết lập giao tiếp nối tiếp với Timer1, điều xung PWM với Timer0
+ Gọi hàm con tài đặt thiết lập LCD để đưa tín hiệu lên LCD
+ Điều xung PWM trên chân P3.7 với timer0
Trang 16+ Thực hiện xem chương trình đang trong chế độ hoạt động nào, tự động hay
bằng tay sẻ nhảy tới đó thực hiện
+ Nhận tín hiệu từ cảm biến gọi hàm con truyền A=0 lên máy tính và đợi lệnh
mở cửa từ máy tính, hay có cảm biến thì mở cửa ở chế độ tự động
+ Gọi hàm con truyện A=1 lên máy tính khi mở cửa và đóng cửa A=2 khi ở chế
độ tự động
- Thuật toán hàm con cho LCD:
Hình 3.2: hàm con SET_LCD
Hình 3.4: Hàm con KYTU_LCDHình 3.3: Hàm con LENH_LCD
Trang 17Hình 3.5: hàm con DELAY_LCD
Hình 3.7: hàm con XOA_LCD
- Giải thích chức năng hàm con của LCD:
Hình 3.6: hàm con CHUOI_LCD
Trang 18+ Hàm SET_LCD: hàm cài đặt LCD khi mới chạy chương trình để đưa lệnh
03H: Đưa con trỏ về đầu dòng
38H: LCD với 2 dòng và matran 5x7
0CH: Bật hiển thị, tắt con tro
06H: Dịch con tro sang phải
+ Hàm LENH_LCD: Truyền lệnh LCD
Ban đầu cho 2 chân RW=0 (đưa dữ liệu lên LCD) và RS=0 (Ghi lệnh lên LCD)
Đưa giá trị thanh ghi A ra port0 kết nối với LCD
Tạo xung trên chân E của LCD để LCD biết và gọi hàm con
DELAY_LCD đợi cho việc truyền hoàn thành
+ Hàm KYTU_LCD: Truyền ký tự lên LCD
Ban đầu cho 2 chân RW=0 (đưa dữ liệu lên LCD) và RS=1 (Ghi ký tự hiển thị lên LCD)
Đưa giá trị thanh ghi A ra port0 kết nối với LCD
Tạo xung trên chân E của LCD để LCD biết và gọi hàm con
DELAY_LCD đợi cho việc truyền hoàn thành
+ Hàm con DELAY_LCD: Tạo một khoảng thời gian trể lớn hơn 1.6ms để LCD nhận dữ liệu hay lệnh hoàn thành
+ Hàm con CHUOI_LCD: Chức năng hiển thị một chuổi ký tự lên LCD, sử dụngchế độ định địa chỉ gián tiếp
+ Hàm con XOA_LCD: hàm xóa cá ký tự đang hiển thị lên LCD bằng lệnh 01H
- Hàm con truyền thông nối tiếp:
Trang 19Hình 3.7: hàm con nhận dữ liệu từ máy tính
Hình 3.7: hàm con TRANS
Trang 20+Hàm con nhận dữ liệu từ máy tính: Khi có ký tự từ máy tính xuống lập tức cóngắt nối tiếp, chương trình sẻ nhảy vào hàm SERIAL và thực hiện theo các lệnhgiái tri được đưa từ máy tính xuông
A=’K’: Là chọn chế độ điểu khiển bằng máy tính
A=’X’: Là chọn chế độ điểu khiển tự động mở cửa khi có người
A=’Z’: Là chọn mở cửa
A=’W’: Là chọn đóng cửa
+ Hàm con TRANS: truyền data lên máy tính khi được gọi
3.2: Chương trình ASM
; -KHAI BAO CAC
; -CHUONG TRINH
MOV IE,#10010000B ;cho phep ngat noi tiep
MOV SCON,#50H ;thanh ghi dieu khien cong noi tiep
MOV TMOD,#21H ;time1 che do 2 cho noi tiep,timer0 che do mot cho pwm
Trang 21; -cac bien de chon che
; -vong lap vo tan
here -HERE:
; thiet lap timer0 de co chu ky pwm
20ms -MOV TL0,#0FEH ;can 18433 xung voi chu ky may 1.085us MOV TH0,#0B7H
Trang 22JNB TF0,AGAIN ;doi ket thuc chu ky 20ms
CJNE R5,#11H,TUDONG ;nhay tu dong neu khac 11h
CJNE R4,#33H,THOAT_N ;nhay den THOAT_N neu khac(tuc bang 44 dang mo cua khoi thong bao)
JB P3.2,HT_DA ;xem có nguoi không,ko có thì thoát
; -MOV R0,#1H ;BIEN SO SANH HIEN THI CHU XUAN
; -truyen len may tinh bao co
Trang 23JB P3.2,THOAT_N ;xem có nguoi không,ko có thì thoát
; -bao cho may tinh biet cua dang duoc
Trang 24CALL LENH_LCD
MOV DPTR,#XUAN
CALL CHUOI_LCD
; -bao len may tinh da dong
CJNE R0,#1H,THOAT_N ;nhay THOAT_N neu khac
; -r0 de viet chu pham dinh xuan len lcd 1
Trang 29Chương trình bằng ngôn ngữ C# cho máy tính:
Trang 30//danh sach cong com
string[] ComList = SerialPort.GetPortNames();
int[] ComNumberList = new int[ComList.Length];
for (int i = 0; i < ComList.Length; i++)
// get the collection of video input devices
videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); // list these devices in the combobox
foreach (FilterInfo device in videoDevices)
{
comboBoxDevices.Items.Add(device.Name);
}
videoSource = new VideoCaptureDevice();
comboBoxDevices.SelectedIndex = 0; // default selected item will be the first device
}
private void buttonStart_Click(object sender, EventArgs e)
{
if (videoSource.IsRunning)
Trang 32MessageBox.Show("Không thể mở cổng " + serialPort.PortName,
"Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
MessageBox.Show("Vui lòng chọn cổng COM",
"Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
// Tạo mới 1 playlist
IWMPPlaylist newPlaylist = wmpPlayer.newPlaylist("", "");
foreach (string fileName in ofd.FileNames)
{
// Tạo mới 1 Media
IWMPMedia song = wmpPlayer.newMedia(fileName);
// Thêm media vào Playlist
Trang 34serialPort.Write("W"); //khi ấn nút xin chào thì gửi xuống vdk chữ w
Trang 35TÀI LIỆU THAM KHẢO
[1] Nguyễn Tăng Cường, Phan Quốc Thắng- Cấu trúc và lập trình họ vi diều khiển 8051- Nhà xuất bản khoa học và kỷ thuật Hà Nội – 2004
[2] youtube: https://www.youtube.com/watch?v=O6mdBB8tr5w
https://www.youtube.com/watch?v=sh_2Yuu3dKshttps://www.youtube.com/watch?v=PBWumUgWrNE