Đồ án tốt nghiệp điều khiển thiết bị thông qua máy tính

101 304 0
Đồ án tốt nghiệp   điều khiển thiết bị thông qua máy tính

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ðồ Án Tốt Nghiệp Khóa 2006-2009 GVHD : Nguyễn Hữu Phước CHƯƠNG DẪN NHẬP 1.1 ðẶT VẤN ðỀ Ngày nay, phát triển khoa học ñặc biệt lĩnh vực ñiện tử tin học, ñã giúp ích cho người nhiều lao ñộng sản xuất, sống, nghiên cứu khoa học, vui chơi giải trí… Sự phát triển làm cho công việc người trở nên thoải mái, nhẹ nhàng, hiệu Bên cạnh ñó, ñược ứng dụng ñể phục vụ cho nhu cầu sinh hoạt giải trí người Một thiết bị nghe nhạc nhỏ xíu lưu hàng ngàn hát, ti vi truy cập mạng teletext hay internet…có thể ngồi ñâu ñể làm việc hay mua hàng… Xu hướng ñiều khiển nhiều thứ mà cần chỗ, giúp người ñỡ công ñi lại nhiều ñang trở thành mục tiêu nhiều công ty doanh nghiệp nơi ðiều khiển, quản lí thiết bị cho nhiều phòng từ lâu ñã ñược ứng dụng ñể phục vụ tòa nhà cao tầng, khách sạn…Tuy nhiên áp dụng cho nhà thấp hơn, hay cho hộ gia ñình tốn không phù hợp… Do ñó, ñể ñáp ứng xu hướng nhóm thực ñề tài ñã ñịnh chọn ý tưởng cho ñề tài : “Giao tiếp máy tính ñiều khiển thiết bị ñiện nhà” 1.2 TẦM QUAN TRỌNG CỦA ðỀ TÀI Việc kiểm tra, ñiều khiển trạng thái thiết bị phòng, ñặt biệt nhà nhiều tầng nhiều phòng gặp nhiều phiền toái phải ñến phòng ñể kiểm tra, ñiều khiển thiết bị ñiện phòng Nếu công việc ñược thực phòng nhà mà ñi ñến phòng giảm thời gian, công sức cho người sử dụng Xuất phát từ nhu cầu thực tế, nhóm thực ñề tài “Giao tiếp máy tính ñiều khiển thiết bị ñiện nhà” Board ñược ñiều khiển máy tính tay 1.3 GIỚI HẠN ðỀ TÀI Do hạn chế kiến thức, thời gian thực kinh nghiệm thực tế, nhóm thực ñề tài thực ñược việc sau : • Thiết kế thi công mô hình gồm board cho phòng • Board ñiều khiển thiết bị • Kết nối với máy tính cổng nối tiếp (cổng COM) SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang ðồ Án Tốt Nghiệp Khóa 2006-2009 GVHD : Nguyễn Hữu Phước • Thiết bị phòng ñược ñiều khiển tay • Có thể hẹn tắt cho thiết bị • Chỉ ñiều khiển thiết bị công suất nhỏ, ñơn giản… 1.4 MỤC ðÍCH NGHIÊN CỨU Trong trình thực ñề tài, người thực nắm ñược vấn ñề sau : • Thông qua việc thực ñề tài, giúp cho người thực ôn lại kiến thức ñã học, ñồng thời lĩnh hội ñược nhiều kiến thức từ tài liệu, giáo viên hướng dẫn, bạn bè Ngoài nâng cao tay nghề, biết cách lập trình Visual Basic 6.0 giao tiếp máy tính, lập trình cho vi ñiều khiển PIC 16F877A • Qua ñó, phát sinh vấn ñề cần giúp ñề tài ñược hoàn chỉnh • Có thể áp dụng thực tế SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang ðồ Án Tốt Nghiệp Khóa 2006-2009 GVHD : Nguyễn Hữu Phước CHƯƠNG CƠ SỞ LÝ LUẬN 2.1 MỤC ðÍCH YÊU CẦU CẦN ðẠT ðƯỢC Mục ñích : Thiết kế thi công hoàn chỉnh mạch có khả : • Giao tiếp, ñiều khiển, kiểm tra thiết bị phòng • Có khả giao tiếp với máy tínhThiết bị ñều ñiều khiển tay Yêu cầu : • Thiết kế thi công hoàn chỉnh phần cứng phần mềm • Mạch hoạt ñộng ổn ñịnh, xác • Giao diện phải thân thiện, dễ sử dụng 2.2 PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN Phương pháp: • Tìm kiếm tham khảo tài liệu • Thực nghiệm: thiết kế thi công bo mạch, viết chương trình, chạy thử chương trình con, chỉnh sửa, tổng hợp thành chương trình hoàn chỉnh Phương tiện: • Mạng internet • Máy tính • Tài liệu tham khảo 2.3 THỜI GIAN THỰC HIỆN Thực ñề tài thời gian tuần bao gồm: • Tuần 1: Tham khảo tài liệu liên quan, tài liệu tham khảo Tìm kiếm phương hướng giải yêu cầu ñề tài • Tuần 2: Vẽ sơ ñồ nguyên lí, thi công mạch in, viết chương trình cho vi ñiều khiển • Tuần 3: Tổng hợp, hoàn thiện chương trình thành chương trình hoàn chỉnh • Tuần 4: ðánh máy, hoàn tất ñề tài SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang 10 ðồ Án Tốt Nghiệp Khóa 2006-2009 GVHD : Nguyễn Hữu Phước CHƯƠNG LÝ THUYẾT CƠ SỞ 3.1 MỘT SỐ IC SỬ DỤNG TRONG ðỒ ÁN PIC16F877A : Vi ñiều khiển DS1307 : Thời gian thực HIN232 : ðệm ñường truyền chuẩn RS232 4094BC : Thanh ghi dịch 8bit PC817 : Cách ly quang 7805 : IC ổn áp ñiện 3.2 VI XỬ LÝ PIC16F877A 3.2.1 GIỚI THIỆU CHUNG Hiện thị trường có nhiều họ vi ñiều khiển 8051, Motorola 68HC, AVR, ARM, Ngoài họ 8051 ñược hướng dẫn cách môi trường ñại học, thân người viết ñã chọn họ vi ñiều khiển PIC ñể mở rộng vốn kiến thức phát triển ứng dụng công cụ nguyên nhân sau: - Họ vi ñiều khiển tìm mua dễ dàng thị trường Việt Nam - Giá thành không ñắt - Có ñầy ñủ tính vi ñiều khiển hoạt ñộng ñộc lập - Là bổ sung tốt kiến thức ứng dụng cho họ vi ñiều khiển mang tính truyền thống: họ vi ñiều khiển 8051 Số lượng người sử dụng họ vi ñiều khiển PIC Hiện Việt Nam giới, họ vi ñiều khiển ñược sử dụng rộng rãi ðiều tạo nhiều thuận lợi trình tìm hiểu phát triển ứng dụng như: số lượng tài liệu, số lượng ứng dụng mở ñã ñược phát triển thành công, dễ dàng trao ñổi, học tập, dễ dàng tìm ñược dẫn gặp khó khăn,… Sự hỗ trợ nhà sản xuất trình biên dịch, công cụ lập trình, nạp chương trình từ ñơn giản ñến phức tạp,… Các tính ña dạng vi ñiều khiển PIC, tính không ngừng ñược phát triển SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang 11 ðồ Án Tốt Nghiệp Khóa 2006-2009 GVHD : Nguyễn Hữu Phước 3.2.2 GIỚI THIỆU VỀ CẤU TRÚC PHẦN CỨNG PIC16F877A 3.2.2.1 SƠ ðỒ CHÂN VI ðIỀU KHIỂN PIC16F877A + IC loại thường + IC loại dán SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang 12 ðồ Án Tốt Nghiệp Khóa 2006-2009 GVHD : Nguyễn Hữu Phước 3.2.2.2 MỘT VÀI THÔNG SỐ VỀ VI ðIỀU KHIỂN PIC16F877A ðây vi ñiều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có ñộ dài 14 bit Mỗi lệnh ñều ñược thực thi chu kì xung clock Tốc ñộ hoạt ñộng tối ña cho phép 20 MHz với chu kì lệnh 200ns Bộ nhớ chương trình 8Kx14 bit, nhớ liệu 368x8 byte RAM nhớ liệu EEPROM với dung lượng 256x8 byte Số PORT I/O với 33 pin I/O Các ñặc tính ngoại vi bao gồm khối chức sau: Timer0: ñếm bit với chia tần số bit Timer1: ñếm 16 bit với chia tần số, thực chức ñếm dựa vào xung clock ngoại vi vi ñiều khiển hoạt ñộng chế ñộ sleep Timer2: ñếm bit với chia tần số, postcaler Hai Capture/so sánh/ñiều chế ñộ rông xung Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI I2C Chuẩn giao tiếp nối tiếp USART với bit ñịa Cổng giao tiếp song song PSP (Parallel Slave Port) với chân ñiều khiển RD, WR, CS bên Các ñặc tính Analog: kênh chuyển ñổi ADC 10 bit Hai so sánh Bên cạnh ñó vài ñặc tính khác vi ñiều khiển như: Bộ nhớ flash với khả ghi xóa ñược 100.000 lần Bộ nhớ EEPROM với khả ghi xóa ñược 1.000.000 lần Dữ liệu nhớ EEPROM lưu trữ 40 năm Khả tự nạp chương trình với ñiều khiển phần mềm Nạp ñược chương trình mạch ñiện ICSP (In Circuit Serial Programming) thông qua chân Watchdog Timer với dao ñộng Chức bảo mật mã chương trình Chế ñộ Sleep Có thể hoạt ñộng với nhiều dạng Oscillator khác SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang 13 ðồ Án Tốt Nghiệp Khóa 2006-2009 GVHD : Nguyễn Hữu Phước 3.2.3 SƠ ðỒ KHỐI VI ðIỀU KHIỂN PIC16F877A SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang 14 ðồ Án Tốt Nghiệp Khóa 2006-2009 GVHD : Nguyễn Hữu Phước 3.2.4 TỔ CHỨC BỘ NHỚ Cấu trúc nhớ vi ñiều khiển PIC16F877A bao gồm nhớ chương trình (Program memory) nhớ liệu (Data Memory) 3.2.4.1 BỘ NHỚ CHƯƠNG TRÌNH Bộ nhớ chương trình vi ñiều khiển PIC16F877A nhớ flash, dung lượng nhớ 8K word (1 word = 14 bit) ñược phân thành nhiều trang (từ page0 ñến page 3) Như nhớ chương trình có khả chứa ñược 8*1024 = 8192 lệnh (vì lệnh sau mã hóa có dung lượng word (14 bit) ðể mã hóa ñược ñịa 8K word nhớ chương trình, ñếm chương trình có dung lượng 13 bit (PC) Khi vi ñiều khiển ñược reset, ñếm chương trình ñến ñịa 0000h (Reset vector) Khi có ngắt xảy ra, ñếm chương trình ñến ñịa 0004h (Interrupt vector) Bộ nhớ chương trình không bao gồm: Bộ nhớ stack không ñược ñịa hóa ñếm chương trình Bộ nhớ stack ñược ñề cập cụ thể phần sau SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang 15 ðồ Án Tốt Nghiệp Khóa 2006-2009 GVHD : Nguyễn Hữu Phước 3.2.4.2 BỘ NHỚ DỮ LIỆU Bộ nhớ liệu PIC nhớ EEPROM ñược chia làm nhiều bank ðối với PIC16F877A nhớ liệu ñược chia làm bank Mỗi bank có dung lượng 128 byte, bao gồm ghi có chức ñặc biệt SFG (Special Function Register) nằm vùng ñịa thấp ghi mục ñích chung GPR (General Purpose Register) nằm vùng ñịa lại bank Các ghi SFR thường xuyên ñược sử dụng (ví dụ ghi STATUS) ñược ñặt tất cà bank nhớ liệu giúp thuận tiện trình truy xuất làm giảm bớt lệnh chương trình Sơ ñồ cụ thể nhớ liệu PIC16F877A sau: SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang 16 ðồ Án Tốt Nghiệp Khóa 2006-2009 GVHD : Nguyễn Hữu Phước 3.2.4.2.1 THANH GHI CHỨC NĂNG ðẶC BIỆT SFR ðây ghi ñược sử dụng CPU ñược dùng ñể thiết lập ñiều khiển khối chức ñược tích hợp bên vi ñiều khiển Có thể phân ghi SFR làm hai lọai: ghi SFR liên quan ñến chức bên (CPU) ghi SRF dùng ñể thiết lập ñiều khiển khối chức bên (ví dụ ADC, PWM, …) Phần ñề cập ñến ghi liên quan ñến chức bên Các ghi dùng ñể thiết lập ñiều khiển khối chức ñược nhắc ñến ta ñề cập ñến khối chức ñó.Thanh ghi STATUS (03h, 83h, 103h, 183h):thanh ghi chứa kết thực phép toán khối ALU, trạng thái reset bit chọn bank cần truy xuất nhớ liệu Thanh ghi OPTION_REG (81h, 181h): ghi cho phép ñọc ghi, cho phép ñiều khiển chức pull-up chân PORTB, xác lập tham số xung tác ñộng, cạnh tác ñộng ngắt ngoại vi ñếm Timer0 Thanh ghi INTCON (0Bh, 8Bh,10Bh, 18Bh):thanh ghi cho phép ñọc ghi, chứa bit ñiều khiển bit cờ hiệu timer0 bị tràn, ngắt ngoại vi RB0/INT ngắt interrput-on-change chân PORTB Thanh ghi PIE1 (8Ch): chứa bit ñiều khiển chi tiết ngắt khối chức ngoại vi Thanh ghi PIR1 (0Ch) chứa cờ ngắt khối chức ngoại vi, ngắt ñược cho phép bit ñiều khiển chứa ghi PIE1 Thanh ghi PIE2 (8Dh): chứa bit ñiều khiển ngắt khối chức CCP2, SSP bus, ngắt so sánh ngắt ghi vào nhớ EEPROM SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang 17 ðồ Án Tốt Nghiệp Khóa 2006-2009 GVHD : Nguyễn Hữu Phước //BYTE yr; //BYTE dow; int thietbi0,giomo0,phutmo0,giotat0,phuttat0; int k=0,n0,mode=0; const unsigned char bangso[]={0b10001000,0b11101110,0b01001001,0b01001100,0b00101110,0b00011 100,0b00011000,0b11001110,0b00001000,0b00001100}; void Data_in(int1 k) { output_bit(pin_e0,k); output_low(pin_e1); output_high(pin_e1); } void LatchData() { output_low(pin_e2); output_high(pin_e2); } #SEPARATE void xulybyte(int8 kq) { #bit byte0=kq.0 #bit byte1=kq.1 #bit byte2=kq.2 #bit byte3=kq.3 #bit byte4=kq.4 #bit byte5=kq.5 #bit byte6=kq.6 #bit byte7=kq.7 Data_in(byte7); Data_in(byte6); Data_in(byte5); Data_in(byte4); Data_in(byte3); Data_in(byte2); Data_in(byte1); Data_in(byte0); } int kiemtra() { if ((hrs>giomo0)&&(hrs=phutmo0)&&(mingiomo0)&&(hrs==giotat0)&&(min24" ElseIf ((Text3.Text < 0) Or (Text3.Text > 60)) Then MsgBox "Nhap lai phut mo: 0->60" ElseIf ((Text4.Text < 0) Or (Text4.Text > 24)) Then MsgBox "Nhap lai gio tat tu: 0->24" ElseIf ((Text5.Text < 0) Or (Text5.Text > 60)) Then SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang 105 ðồ Án Tốt Nghiệp Khóa 2006-2009 GVHD : Nguyễn Hữu Phước MsgBox "Nhap lai phut tat: 0->60" ElseIf ((Text6.Text < 1) Or (Text6.Text > 8)) Then MsgBox "Nhap lai thiet bi: 1->8" Else: MsgBox "Successfull" End If End Sub Private Sub Delay(ByVal giay As Integer) Dim Start As Double Start = Timer While (Timer < Start + giay) DoEvents Wend End Sub Private Sub Form_Load() cmdSend.Caption = "&Send" Text2.Text = "0" Text3.Text = "0" Text4.Text = "0" Text5.Text = "0" Text6.Text = "0" Text7.Text = "" Text8.Text = "" Text9.Text = "" Text10.Text = "" Text11.Text = "" Text12.Text = "" Text13.Text = "" Text14.Text = "" Text15.Text = "" Text1.Text = "" Text1.Visible = False Text1.Enabled = False Text15.Enabled = False cmdExit.Caption = "&Exit" With MSComm1 Settings = "9600,N,8,1" CommPort = RThreshold = SThreshold = InputMode = comInputModeText InputLen = Handshaking = comNone InBufferSize = 1024 OutBufferSize = 1024 SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang 106 ðồ Án Tốt Nghiệp Khóa 2006-2009 GVHD : Nguyễn Hữu Phước If PortOpen = False Then PortOpen = True End If End With End Sub Private Sub MSComm1_OnComm() Dim Buffer As Variant Dim chuoi As String If MSComm1.CommEvent = comEvReceive Then Text1.Text = MSComm1.Input chuoi = Text1.Text If (Len(chuoi) >= 3) Then Text15.Text = chuoi End If If (Text1.Text = "1") Then Text7.Text = "ON" End If If (Text1.Text = "2") Then Text8.Text = "ON" End If If (Text1.Text = "3") Then Text9.Text = "ON" End If If (Text1.Text = "4") Then Text10.Text = "ON" End If If (Text1.Text = "5") Then Text11.Text = "ON" End If If (Text1.Text = "6") Then Text12.Text = "ON" End If If (Text1.Text = "7") Then Text13.Text = "ON" End If If (Text1.Text = "8") Then Text14.Text = "ON" End If If (Text1.Text = "9") Then Text7.Text = "" Text8.Text = "" Text9.Text = "" Text10.Text = "" SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang 107 ðồ Án Tốt Nghiệp Khóa 2006-2009 GVHD : Nguyễn Hữu Phước Text11.Text = "" Text12.Text = "" Text13.Text = "" Text14.Text = "" End If End If End Sub SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang 108 ...ðồ Án Tốt Nghiệp Khóa 200 6-2 009 GVHD : Nguyễn Hữu Phước • Thiết bị phòng ñược ñiều khiển tay • Có thể hẹn tắt cho thiết bị • Chỉ ñiều khiển thiết bị công suất nhỏ, ñơn giản…... sau: - Họ vi ñiều khiển tìm mua dễ dàng thị trường Việt Nam - Giá thành không ñắt - Có ñầy ñủ tính vi ñiều khiển hoạt ñộng ñộc lập - Là bổ sung tốt kiến thức ứng dụng cho họ vi ñiều khiển mang tính. .. Huy Trang 13 ðồ Án Tốt Nghiệp Khóa 200 6-2 009 GVHD : Nguyễn Hữu Phước 3.2.3 SƠ ðỒ KHỐI VI ðIỀU KHIỂN PIC16F877A SVTH: Võ Hoàng An – Huỳnh Quốc Huy Trang 14 ðồ Án Tốt Nghiệp Khóa 200 6-2 009 GVHD :

Ngày đăng: 07/09/2017, 08:51

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan