Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 95 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
95
Dung lượng
2,01 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH KHĨA LUẬN TỐT NGHIỆP THIẾTKẾMẠCHVÀCHƯƠNGTRÌNHĐIỀUKHIỂNQUANGBÁOGIAOTIẾPMÁYTÍNH Họ tên sinh viên: TRẦN HỮU THƯƠNG Ngành: CƠ ĐIỆN TỬ Niên khóa: 2006-2010 Tháng 7/2010 THIẾTKẾMẠCHVÀCHƯƠNGTRÌNHĐIỀUKHIỂNQUANGBÁOGIAOTIẾPMÁYTÍNH Tác giả TRẦN HỮU THƯƠNG Khóa luận đệ trình để đáp ứng u cầu cấp Kỹ sư ngành Cơ điện tử Giáo viên hướng dẫn: Thạc sĩ: Nguyễn Lê Tường Kĩ sư: Nguyễn Văn Khải Tháng năm 2010 -i- CẢM TẠ Sau trình thực đề tài, với cố gắng thân, hoàn thành đề tài theo thời gian quy định Tuy nhiên thành công đề tài có đóng góp khơng nhỏ q thầy cơ, bạn bè gia đình Với tất kính trọng lòng biết ơn sâu sắc Em chân thành cảm ơn cô Nguyễn Lê Tường thầy Nguyễn Văn Khải, cô thầy hướng dẫn bảo tận tình suốt trình thực đề tài Thông qua dạy cô thầy, em tiếp thu kiến thức hướng cần thiết từ có kế hoạch việc làm cụ thể để hoàn thành đề tài với yêu cầu đặt Em chân thành cảm ơn tất thầy, cô môn Cơ điện tử tạo điều kiện cho em hoàn thành đề tài Cảm ơn tất bạn nhiệt tình đóng góp ý kiến giúp đỡ đề tài hoàn thiện Cuối em cảm ơn gia đình tích cực động viên, khuyến khích, tạo điều kiện trực tiếp hỗ trợ kinh phí, tinh thần để đề tài tốt nghiệp hoàn thành thời hạn -ii- TÓM TẮT Đề tài “Thiết kếmạchchươngtrìnhđiềukhiểnquangbáogiaotiếpmáy tính” tiến hành thực hồn tất thời gian từ 1/4 đến 15/7 Ba nhiệm vụ đề tài là: - Thiếtkế chế tạo mạch cho khối chính: điều khiển, giao tiếp, hiển thị - Lập trình xử lý vi điềukhiển - Lập trìnhgiaotiếpmáytính Trong vi điềukhiển sử dụng dòng vi điềukhiển PIC16F887 hãng Microchip, sử dụng giaotiếp với máytính theo chuẩn RS232 lập trìnhgiaotiếpmáytính Visual Basic Nguyên lý hoạt động mạch: Muốn hiển thị tin thơng báo ngắn, gõ đoạn tin vào TextBox bảng điềukhiển Visual Basic Dữ liệu truyền từ cổng COM máy tính, sau qua mạchgiaotiếp tín hiệu đổi sang chuẩn tương thích với vi điềukhiển Vi điềukhiển nhận liệu thông qua port nối tiếp, chươngtrình bên vi điềukhiển cho phép liệu lưu vùng RAM đa dụng Tín hiệu xử lý giải mã sang Led ma trận để xuất mạch hiển thị Trên bảng hiển thị gồm ma trận Led 16 hàng * 64 cột hiển thị tin thông báo, tin thông báo dịch chuyển từ phải qua trái từ trái qua phải cho người xem đọc hết nội dung tin thông báo Các kết thu được: - Khối điềukhiểngiaotiếp - Khối hiển thị - Chươngtrìnhđiềukhiển -iii- MỤC LỤC Trang Trang tựa i Cảm tạ ii Tóm tắt iii Mục lục iv Danh sách hình vii Danh sách bảng x CHƯƠNG MỞ ĐẦU 1.1 Tính cấp thiết đề tài 1.2 Ý nghĩa khoa học thực tiễn đề tài 1.3 Mục đích nghiên cứu 1.4 Phạm vi nghiên cứu CHƯƠNG TỔNG QUAN 2.1 Khảo sát số nạch quangbáo có sẵn 2.2 Các phương pháp thiếtkếmạchquangbáo 2.2.1 Phương pháp dùng IC rời 2.2.2 Phương pháp dùng EPROM 2.2.3 Phương pháp dùng vi xử lý 2.3 Giaotiếpmáytính với thiết bị ngoại vi 2.4 Giao diện máytính 2.4.1 Cổng máy in (LPT) 2.4.2 Giaotiếp qua khe cắm máytính (Slot Card) 12 2.4.3 Cổng nối tiếp RS232 12 2.4.4 Cổng USB 15 2.5 Giaotiếpmáytính với vi điềukhiển 17 2.5.1 Đại cương trao đổi liệu nối tiếp 17 2.5.2 Truyền nhận liệu qua cổng nối tiếp 18 2.6 Điềukhiển cổng 20 -iv- 2.7 Giới thiệu ngơn ngữ lập trình Visual Basic 22 2.7.1 Tổng quan Visual Basic 22 2.7.2 Giới thiệu thư viện liên kết động 23 2.8 Giới thiệu linh kiện sử dụng đề tài 25 2.8.1 Giới thiệu IC MAX232 25 2.8.2 Giới thiệu IC 74HC138 27 2.8.3 Giới thiệu IC 74HC595 30 2.8.4 Giới thiệu IC 74HC245 32 2.9 Khảo sát vi điềukhiển PIC 16F887 33 2.9.1 Giới thiệu vi điềukhiển PIC 16F887 33 2.9.2 Đặc điểm riêng vi điềukhiển PIC 16F887 35 2.9.3 Các Port xuất nhập 40 2.10 Hoạt động ngắt 42 2.10.1 Ngắt INT (ngắt ngoài) 42 2.10.2 Ngắt TMR0 43 2.10.3 Ngắt PortB thay đổi 43 2.11 Hoạt động định thời (TIMER) PIC 16F887 43 2.11.1 Timer 43 2.11.2 Timer 44 2.11.3 Timer 45 2.12 Chế độ điều chế độ rộng xung (PWM) 46 2.12.1 Chu kỳ PWM 46 2.12.2 Chu trình làm việc PWM 47 2.12.3 Thiết lập hoạt động cho PWM 48 2.13 Khối chuyển đổi tương tự sang số ADC 48 2.14 Chươngtrình biên dịch nạp PIC 50 CHƯƠNG NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 51 3.1 Nội dung nghiên cứu 51 3.2 Phương pháp thiếtkếmạchquangbáo 51 3.3 Phương pháp lập trình Visual Basic 52 3.4 Phương pháp giaotiếpmáytính với vi điềukhiển 58 -v- 3.5 Phương pháp điềukhiển ma trận Led 59 CHƯƠNG KẾT QUẢ VÀ THẢO LUẬN 60 4.1 Giải thuật điềukhiển 60 4.1.1 Chươngtrình 60 4.1.2 Chươngtrình tìm mã Led 61 4.1.3 Chươngtrình quét Led 62 4.1.4 Chươngtrình chuyển dịch ký tự 63 4.1.5 Nhận từ port nối tiếp (PC) ngắt 64 4.2 Sơ đồ khối điềukhiển 65 4.2.1 Sơ đồ khối tổng quát 65 4.2.2 Nhiệm vụ khối 65 4.2.3 Khối hộp quangbáo 76 4.3 Giao diện điềukhiển Visual Basic 78 4.4 Kết chươngtrìnhquangbáo hiển thị text1: “TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH” 78 4.5 Kết 2: Chươngtrìnhquangbáo hiển thị text: “LỄ BÁO CÁO TỐT NGHIỆP NGHÀNH CƠ ĐIỆN TỬ” 80 CHƯƠNG KẾT LUẬN VÀ KIẾN NGHỊ 82 5.1 Kết luận 82 5.2 Kiến nghị 82 TÀI LIỆU THAM KHẢO 83 PHỤ LỤC 84 Chươngtrìnhđiềukhiển Visual Basic Chươngtrình Sơ đồ khối PIC 16F887 -vi- DANH SÁCH CÁC HÌNH Hình 2.1: Các dạng modul Led ma trận Hình 2.2: Các dạng Led đơn Hình 2.3: Bảng quangbáo chạy chữ Hình 2.4: Bảng quangbáo tỷ giá ngân hàng Hình 2.5: Bảng quangbáo hình full color Hình 2.6 : Cổng máy in (DB-25 connector) Hình 2.7: Các đường dẫn tín hiệu cổng máy in Hình 2.8: Sắp xếp chân cổng nối tiếpmáytính PC Hình 2.9: Sơ đồ dây dẫn kết nối USB Hình 2.10: Sơ đồ chân IC MAX-232 Hình 2.11: Sơ đồ chân IC 74HC138 Hình 2.12: Sơ đồ mơ tả hoạt động bên IC 74HC138 Hình 2.13: Sơ đồ chân IC 74HC595 Hình 2.14: Sơ đồ chân IC 74HC245 Hình 2.15: Sơ đồ mơ tả hoạt động bên IC 74HC245 Hình 2.16: Sơ đồ chân PIC16F887 Hình 2.17: Sơ đồ khối PIC 16F887 Hình 2.18: Cấu trúc timer Hình 2.19: Cấu trúc TMR1 Hình 2.20: Cấu trúc timer Hình 2.21: Sơ đồ khối PWM -vii- Hình 2.22: Sơ đồ khối module A/D Hình 3.1: Chọn mơi trường làm việc Hình 3.2: Giao diện làm việc Visual Basic Hình 3.3: Add-Ins Manager dialog Hình 3.4: Add-In Hình 3.5: Toolbars Hình 3.6: Toolbox Hình 3.7: Form Hình 3.8: Code window Hình 4.1: Giải thuật chươngtrình Hình 4.2: Giải thuật chươngtrình tìm mã Led Hình 4.3: Giải thuật chươngtrình quét Led Hình 4.4: Giải thuật chươngtrình chuyển dịch ký tự Hình 4.5: Giải thuật chươngtrình nhận từ port nối tiếp (PC) ngắt Hình 4.6: Sơ đồ khối tổng quát Hình 4.7: Sơ đồ khối giaotiếp Hình 4.8: Sơ đồ kết nối Max 232 với cổng COM1 máytính Hình 4.9: Sơ đồ khối điềukhiển Hình 4.10: Sơ đồ mạch nguyên lý Hình 4.11: Sơ đồ mạch in Hình 4.12: Mạchđiềukhiểngiaotiếp sau ráp linh kiện Hình 4.13: Sơ đồ thiếtkế ma trận Led Hình 4.14: Sơ đồ khối hiển thị ma trận Led Hình 4.15: Sơ đồ nguyên lý mạch hiển thị -viii- Hình 4.16: Sơ đồ mạch in lớp Hình 4.17: Sơ đồ mạch in lớp Hình 4.18: Sơ đồ mạch in tồn board Led ma trận Hình 4.19: Board mạch ma trận Led hiển thị Hình 4.20: Hình 3D khối hộp Hình 4.21: Hình chiếu đứng hộp Hình 4.22: Hình chiếu hộp Hình 4.23: Mơ hình khối hộp quangbáo Hình 4.24: Mơ hình khối hộp quangbáogiaotiếpmáytính Hình 4.25: Giao diện điềukhiển Visual Basic Hình 4.26: Giao diện điềukhiển VB lúc hiển thị text1 Hình 4.27: Giao diện điềukhiển VB khối quangbáo lúc chạy phải sang trái text1 Hình 4.28: Giao diện điềukhiển VB lúc hiển thị text2 Hình 4.29: Giao diện điềukhiển VB khối quangbáo lúc chạy phải sang trái text2 -ix- Board mạch ma trận Led hiển thị (16*32) Hình 4.19: Board mạch ma trận Led hiển thị g Khối nguồn Để led sáng đẹp ổn định dòng qua led khoảng 40 mA => Dòng cần thiết cung cấp cho hàng là: Ihàng = 40 x 64 = 2560 mA = 2.56 A Đây dòng tiêu thụ bảng led thời điểm bảng Led hiển thị hàng Để đảm bảo nguồn cho bảng Led họat động tốt, ta nên chọn Inguồn = Ihàng + Ihàng * 40% = 2.56+1.024 (A)=3.6 A Để đảm bảo độ sáng suốt trình quét Led, cần tính tới cơng suất tiêu thụ tồn khối hiển thị Để đảm bảo Led đơn sáng bình thường: Uđm = V , Iđm = 40 mA Một lần quét thực quét 16 hàng với tổng số Led cần cấp nguồn là: n = 16×64 (số Led hàng) =1024 Led => Cơng suất đảm bảo cho lần quét là: P đm= U đm× I đm× n = × 40 × 10-3 × 1024 = 122.88 W Để giải vấn đề cơng suất ta sử dụng nguồn máytính DC 5V- 250W đảm bảo 70 4.2.3 Khối hộp quangbáo Cấu tạo: Khung gồm 12 nhôm, mặt trước kiếng suốt dùng hiển thị, mặt bên mặt sau nhựa dẻo Chức năng: Chứa khối bên hộp Tất khối (khối hiển thị, khối nguồn, khối điều khiển…) xếp hợp lý bên nên di chuyển hộp dễ dàng, thuận tiện cho người dùng Hình 4.20: Hình 3D khối hộp Hình 4.21: Hình chiếu đứng hộp Hình 4.22: Hình chiếu hộp 71 Hình 4.23: Mơ hình khối hộp quangbáo Hình 4.24: Mơ hình khối hộp quangbáogiaotiếpmáytính 4.3 Giao diện điềukhiển Visual Basic 72 Hình 4.25: Giao diện điềukhiển Visual Basic 4.4 Kết chươngtrìnhquangbáo hiển thị text1: “TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH” Hình 4.26: Giao diện điềukhiển VB lúc hiển thị text1 73 Hình 4.27: Giao diện điềukhiển VB khối quangbáo lúc chạy phải sang trái text1 4.5 Kết 2: Chươngtrìnhquangbáo hiển thị text: “LỄ BÁO CÁO TỐT NGHIỆP NGHÀNH CƠ ĐIỆN TỬ” Hình 4.28: Giao diện điềukhiển VB lúc hiển thị text2 74 Hình 4.29: Giao diện điềukhiển VB khối quangbáo lúc chạy phải sang trái text2 75 Chương KẾT LUẬN VÀ KIẾN NGHỊ 5.1 Kết luận - Thiếtkếchươngtrìnhđiềukhiểnquangbáogiaotiếpmáytính - Bảng Led ma trận hiển thị chữ rõ nét, không nhiễu - Có thể thay đổi nội dung thơng báo thay đổi giao diện máytính - Mạch chạy ổn định, giao diện Visual Basic dễ sử dụng, khối quangbáo nhẹ, dễ di chuyển 5.2 Kiến nghị - Thay ma trận Led có cơng suất cao để tăng tuổi thọ Led, tăng cường độ sáng - Mạchquangbáo gây ý đẹp sử dụng ma trận Led ba màu thay ma trận Led màu đề tài Kết nối thêm nhiều modul Led (16*32) để tăng số cột quang báo, nội dung hiển thị truyền tải nhanh đến với người xem Quangbáođiềukhiển qua kết nối internet - Đề tài ứng ụng việc hiển thị nhũng thông báo với nội dung phong phú Được sử dụng ngân hàng, bưu điện, khách sạn nhằm quảng bá thương hiệu trang trí Dùng cho cửa hàng, trung tâm thương mại với mục đích gây ý hay giới thiệu sản phẩm 76 TÀI LIỆU THAM KHẢO [1] Phạm Văn Ất, “Kỹ thuật lập trình C – Cơ sở nâng cao” Nhà xuất Giao thông vận tải, Hà Nội, 2006 [2] Châu Kim Lang, “Phương pháp nghiên cứu khoa học” Đại học sư phạm kĩ thuật, TPHCM, 1989 [3] Phạm Hữu Khang, “Kỹ xảo lập trình VB6 - Tự nâng cao kỹ qua ví dụ” Nhà xuất Lao động – Xã hội, 2006 [4] Nguyễn Phước Tấn, “Giáo trìnhmạch điện tử” Nhà xuất TP.HCM, 2000 [5] Ngô Diên Tập, “Vi điềukhiển với lập trình C” Nhà xuất Khoa học Kỹ thuật, Hà Nội, 2002 [6] Nguyễn Tiến, Ngô Quốc Việt, Phạm Nguyễn Tuấn Kỳ, “Kỹ thuật lập trình Visual Basic” Nhà xuất Giáo dục, Hà Nội, 1997 [7] Dương Minh Trí, “Sơ đồ chân linh kiện bán dẫn” Nhà xuất Khoa học kỹ thuật, Hà Nội, 1997 [8] Nguyễn Hữu Phương, “Mạch số” Trường Đại Học Tổng Hợp TP.HCM 1998 [9] S.J.Katzen, 2001 The Quintessential PIC Microcontroller Springer-Verlag [10] Julio Sanchez & Maria P.Canton, “Microcontroller Programming” CRC Press, 2006 [11] http://www.picvietnam.com 77 PHỤ LỤC Chươngtrìnhđiềukhiển Visual Basic Public mau As Integer Public socot As Integer Public cdung As Integer Public kieu As Integer Sub mauhienthi() If Me.opdo.Value = True Then mau = ElseIf Me.opxanh.Value = True Then mau = Else mau = End If End Sub Sub kieuchay() If Me.optrai.Value = True Then kieu = ElseIf Me.opphai.Value = True Then kieu = Else kieu = End If End Sub Private Sub c1_Click() Dim i 'hang Dim j 'cot For i = To 15 78 For j = To MAXCOLUMM - led.SetIndicatorColor i, j, vbGreen Next j Next i End Sub Private Sub c2_Click() Dim i Dim j For i = To 15 For j = To MAXCOLUMM - led.SetIndicatorColor i, j, vbYellow Next j Next i End Sub Private Sub c3_Click() Dim i Dim j For i = To 15 For j = To MAXCOLUMM - led.SetIndicatorColor i, j, vbRed Next j Next i End Sub Private Sub iSwitchRockerX1_OnChange() End Sub Private Sub CHAY_Click() Me.Timer1.Enabled = True socot = If cdung = Then Me.Timer1.Enabled = False Me.CHAY.Caption = "Chay tru" cdung = Else 79 Me.Timer1.Enabled = True Me.CHAY.Caption = "Dung" cdung = End If End Sub Private Sub clr_cmd_Click() ClearDisplay End Sub Private Sub com_OnComm() Me.Text1 = Me.com.Input End Sub Private Sub Command2_Click() Me.com.Output = "C" End Sub Private Sub Command1_Click() Call mauhienthi Call kieuchay Me.com.PortOpen = False 'Me.com.CommPort = Val(Me.Text2.text) Me.com.PortOpen = True 'com.Output = Chr(1) bufflen_lo = BuffLen And &HFF bufflen_hi = (BuffLen And &HFF00) / (2 ^ 8) com.Output = Chr(bufflen_hi) com.Output = Chr(bufflen_lo) ' send mau hien thi Me.com.Output = Chr(Val(mau)) 'send kieu hien thi Me.com.Output = Chr(Val(kieu)) 'du lieu SendDataText End Sub Private Sub Command4_Click() 80 Me.com.Output = "A" End Sub Private Sub Command5_Click() Me.com.Output = "B" End Sub Private Sub cuonhang_Change() Dim cuon As Integer cuonhang.Max = BuffLen / cuon = cuonhang.Value Display Val(cuon), txt End Sub Chươngtrình #include #device *=16 adc=10 #fuses HS, NOWDT, NOLVP #use delay(clock=20M) //#use rtos(timer=1,minor_cycle=20ms) #include //#use rs232(SYNC_MASTER,UART1,baud=4800) #define MT_CLK PIN_C6 #define MT_DATA PIN_C7 #define MT_STROBE PIN_C5 #define MT_CLOCK_RET PIN_C4 int1 last_clock_ret=1; void mt_fill(int1 color) { int8 i,j,k; if(color) k = 0xFF; else k = 0x00; for(i=0; i