THIẾT KẾ MẠCH VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN QUANG BÁO GIAO TIẾP MÁY TÍNH

96 9 0
  • Loading ...
1/96 trang

Thông tin tài liệu

Ngày đăng: 19/09/2019, 11:04

Thiết kế và chế tạo mạch cho 3 khối chính: điều khiển, giao tiếp, hiển thị. Lập trình xử lý trên vi điều khiển. Lập trình giao tiếp trên máy tính. Trong đó vi điều khiển được sử dụng là dòng vi điều khiển PIC16F887 của hãng Microchip, sử dụng giao tiếp với máy tính theo chuẩn RS232 và lập trình giao tiếp trên máy tính bằng Visual Basic.Nguyên lý hoạt động chính của mạch: Muốn hiển thị một tin thông báo ngắn, chúng ta gõ đoạn tin đó vào TextBox trên bảng điều khiển Visual Basic. Dữ liệu sẽ truyền từ cổng COM của máy tính, sau khi qua mạch giao tiếp tín hiệu sẽ đổi sang chuẩn tương thích với vi điều khiển 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ẾT KẾ MẠCH VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN QUANG BÁO GIAO TIẾP MÁY TÍ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ẾT KẾ MẠCH VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN QUANG BÁO GIAO TIẾP MÁY TÍ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 cùng 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ạch chương trình điều khiển quang báo giao tiếp má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ết kế 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ều khiển - Lập trình giao tiếp máy tính Trong vi điều khiển sử dụng dòng vi điều khiển PIC16F887 hãng Microchip, sử dụng giao tiếp với máy tính theo chuẩn RS232 lập trình giao tiếp máy tí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ều khiển Visual Basic Dữ liệu truyền từ cổng COM máy tính, sau qua mạch giao tiếp tín hiệu đổi sang chuẩn tương thích với vi điều khiển Vi điều khiển nhận liệu thông qua port nối tiếp, chương trình bên vi điều khiể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ều khiển giao tiếp - Khối hiển thị - Chương trình điều khiể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 quang báo có sẵn 2.2 Các phương pháp thiết kế mạch quang bá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 Giao tiếp máy tính với thiết bị ngoại vi 2.4 Giao diện máy tính 2.4.1 Cổng máy in (LPT) 2.4.2 Giao tiếp qua khe cắm máy tính (Slot Card) 12 2.4.3 Cổng nối tiếp RS232 12 2.4.4 Cổng USB 15 2.5 Giao tiếp máy tính với vi điều khiể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ều khiể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ều khiển PIC 16F887 33 2.9.1 Giới thiệu vi điều khiển PIC 16F887 33 2.9.2 Đặc điểm riêng vi điều khiể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ương trì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ết kế mạch quang báo 51 3.3 Phương pháp lập trình Visual Basic 52 3.4 Phương pháp giao tiếp máy tính với vi điều khiển 58 -v- 3.5 Phương pháp điều khiển ma trận Led 59 CHƯƠNG KẾT QUẢ VÀ THẢO LUẬN 60 4.1 Giải thuật điều khiển 60 4.1.1 Chương trình 60 4.1.2 Chương trình tìm mã Led 61 4.1.3 Chương trình quét Led 62 4.1.4 Chương trì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ều khiể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 quang báo 76 4.3 Giao diện điều khiển Visual Basic 78 4.4 Kết chương trình quang bá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ương trình quang bá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ương trình điều khiển Visual Basic Chương trì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 quang báo chạy chữ Hình 2.4: Bảng quang báo tỷ giá ngân hàng Hình 2.5: Bảng quang bá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ếp máy tí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ương trình Hình 4.2: Giải thuật chương trình tìm mã Led Hình 4.3: Giải thuật chương trình quét Led Hình 4.4: Giải thuật chương trình chuyển dịch ký tự Hình 4.5: Giải thuật chương trì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 giao tiếp Hình 4.8: Sơ đồ kết nối Max 232 với cổng COM1 máy tính Hình 4.9: Sơ đồ khối điều khiể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ều khiển giao tiếp sau ráp linh kiện Hình 4.13: Sơ đồ thiết kế 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 quang báo Hình 4.24: Mơ hình khối hộp quang báo giao tiếp máy tính Hình 4.25: Giao diện điều khiển Visual Basic Hình 4.26: Giao diện điều khiển VB lúc hiển thị text1 Hình 4.27: Giao diện điều khiển VB khối quang báo lúc chạy phải sang trái text1 Hình 4.28: Giao diện điều khiển VB lúc hiển thị text2 Hình 4.29: Giao diện điều khiển VB khối quang bá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 mỡi 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áy tính DC 5V- 250W đảm bảo 71 4.2.3 Khối hộp quang bá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 72 Hình 4.23: Mơ hình khối hộp quang báo Hình 4.24: Mơ hình khối hộp quang báo giao tiếp máy tính 4.3 Giao diện điều khiển Visual Basic Hình 4.25: Giao diện điều khiển Visual Basic 73 4.4 Kết chương trình quang bá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ều khiển VB lúc hiển thị text1 74 Hình 4.27: Giao diện điều khiển VB khối quang báo lúc chạy phải sang trái text1 4.5 Kết 2: Chương trình quang bá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ều khiển VB lúc hiển thị text2 75 Hình 4.29: Giao diện điều khiển VB khối quang báo lúc chạy phải sang trái text2 76 Chương KẾT LUẬN VÀ KIẾN NGHỊ 5.1 Kết luận - Thiết kế chương trình điều khiển quang báo giao tiếp máy tí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áy tính - Mạch chạy ổn định, giao diện Visual Basic dễ sử dụng, khối quang bá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ạch quang bá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 Quang báo điều khiể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 77 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ình mạch điện tử” Nhà xuất TP.HCM, 2000 [5] Ngô Diên Tập, “Vi điều khiể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 78 PHỤ LỤC Chương trình điều khiể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 For j = To MAXCOLUMM - 79 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 Me.Timer1.Enabled = True 80 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() Me.com.Output = "A" 81 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ương trì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
- Xem thêm -

Xem thêm: THIẾT KẾ MẠCH VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN QUANG BÁO GIAO TIẾP MÁY TÍNH, THIẾT KẾ MẠCH VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN QUANG BÁO GIAO TIẾP MÁY TÍNH

Gợi ý tài liệu liên quan cho bạn