Mạch đèn giao thông có giao tiếp với máy tính sử dụng PIC16F887

27 1.6K 17
Mạch đèn giao thông có giao tiếp với máy tính sử dụng PIC16F887

Đ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

Mạch đèn giao thông có giao tiếp với máy tính sử dụng PIC16F887

Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Sử Dụng PIC16F887 Mục Lục Lời Nói Đầu Từ ngành khoa học điện điện tử đời mang lại nhiều thành công cho nhân loại, góp phần thúc đẩy phát triển nhiều ngành khác ứng dụng thành tựu khoa học điện điện tử tạo nên Trong đời sống ngày công nghiệp, y tế, giáo dục, vận tải,… ứng dụng điện tử mà đặc biệt hệ thống tự động hoá mang lại nhiều tiện ích giúp cho người nhiều công việc từ đơn giản việc đóng mở cửa tự động hệ thống phức tạp dây chuyền sản xuất công nghiệp Với đam mê hiếu kỳ hệ thống điều khiển tự động lý thú ứng dụng mạch điện điện tử, em chọn theo học ngành điện điện tử thích tìm hiểu môn học có liên quan đến lập trình điều khiển Trong dịp vừa làm đồ án môn học vừa hội để em tìm hiểu thêm loại IC điều khiển họ 89, PIC, AVR, ARM, Trước với đồ án môn học em tiếp cận với IC 89S51 lần em tìm hiểu dòng PIC mà cụ thể PIC16F887 Và ngày việc giao tiếp máy tính thiết bị ngoại ngày quan trọng phổ biến Thế em chọn đề tài có giao tiếp vi điều khiển máy tính để tìm hiểu, học hỏi, bổ sung kiến thức ứng dụng vào thực tế Đây lần đầu làm đề tài giao tiếp vi điều khiển với máy tính lần đầu sử dụng PIC16F887 làm mạch thực tế nên chắn có nhiều hạn chế sai sót mong quý thầy cô bạn góp ý kiến để em bổ sung nhiều kiến thức cho học tập nghiên cứu Chân thành cảm ơn ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Chương : Thiết Kế - Khảo Sát Sơ Đồ Khối I Giới Thiệu Về Đề Tài : Trước em làm số mạch ứng dụng với vi điều khiển 89S51 thực tập module ứng dụng IC Nay với mục đích tìm hiểu ứng dụng có tính chất thực tế sử dụng vi điều khiển PIC16F887 để hiểu thêm dòng IC nên em định chọn đề tài để làm đồ án lần “mạch đèn giao thông sử dụng vi điều khiển PIC16F887 có giao tiếp với máy tính” Trong sống ngày, tham gia giao thông tuyến đường thấy qua trụ đèn giao thông Nó phổ biến đến mức trở nên quen thuộc với người tham gia giao thông công cụ giúp giao thông thông suốt với trật tự lề lối khuôn khổ pháp luật quy định xanh chạy, đỏ dừng, vàng chuẩn bị chuyển sang đỏ Như quan sát trạm đèn giao thông giao lộ, em thấy có trạm có hộp điều khiển để chọn chế độ tự động hay điều khiển tay hay chọn chế độ cho đường ưu tiên hơn, có trạm không cần hộp điều khiển, có trạm đến 23h ngày đèn chuyển sang trạng thái đèn vàng bên chớp tắt tình trạng giao thông không đông đúc Chính với mạch đèn giao thông em thiết kế thực lần cố gắng mô cách gần với thực tế có thêm phần giao tiếp mạch máy tính để việc cài đặt điều khiển tiện lợi nhanh chóng Mặc dù em tìm hiểu qua hình thức cách vận hành trạm đèn giao thông có mong muốn làm cho mạch gần với thực tế với mạch đèn giao thông có giao tiếp với máy tính sử dụng vi điều khiển PIC16F887 em mức độ mô phần nhỏ ứng dụng.Cũng từ em nghĩ nghiên cứu nhiều em phát triển đề tài theo hướng điều khiển qua internet Vì internet ngày thật công cụ hữu ích cho nhân loại Khi mạch điều khiển từ internet tiện lợi cho việc điều khiển, vận hành giám sát cách nhanh chóng II Sơ Đồ Khối : Từ yêu cầu đặt cho đề tài, ta thấy trạm đèn giao thông trước tiên cần phần hiển thị Đó đèn tín hiệu xanh, đỏ, vàng led hiển thị thời gian lại bên Kế đến phải nhắc tới phận xử lý, não hệ thống hệ thống làm việc Tiếp theo phần điều khiển dùng để cài đặt thiết lập hay lựa chọn chế độ Chính mạch có giao tiếp với máy tính nên thiếu khối giao tiếp máy tính với vi điều khiển Và khối quan trọng mà mạch điện thiếu khối nguồn, sử dụng nguồn riêng nên em xin không trình bày phần nguồn mạch Từ đó, ta mô tả mô hình mạch cho đề tài sơ đồ khối sau: GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Chức khối: • Hiển thị: sử dụng led đoạn hiển thị thời gian cho đèn giao thông • Đèn giao thông: led đèn tín hiệu giao thông xanh, đỏ, vàng • Điều khiển: phím nhấn dùng để cài đặt tinh chỉnh thời gian hay chuyển chế độ ưu tiên cho bên công tắc để chuyển chế độ điều khiển tự động hay điều khiển tay • Giao tiếp: sử dụng cổng COM qua IC chuyển đổi mức điện áp MAX232 để truyền thông tin vi điều khiển máy tính • Vi điều khiển: sử dụng PIC16F887 để lập trình điều khiển cho mạch đèn giao thông, giải mã hiển thị thời gian, xử lý tín hiệu điều khiển để chuyển chế độ có yêu cầu, giao tiếp truyền nhận liệu điều khiển từ máy tính • Máy tính: lập trình giao diện điều khiển truyền liệu điều khiển đến vi điều khiển để thực chức theo yêu cầu GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính III Thiết Kế Các Khối : 1) Khối Đèn Giao Thông : Đây led đơn xanh, đỏ, vàng dùng làm đèn tín hiệu để điều khiển phương tiện lưu thông đường theo luật giao thông quy định Theo đó, tín hiệu đèn xanh bên phần đường sáng phương tiện bên phép lưu thông Ngược lại với đèn đỏ phải dừng lại Còn tín hiệu đèn vàng báo hiệu cho người đường biết chuyển sang đèn đỏ để chuẩn bị dừng lại trạng thái sáng tắt đèn tín hiệu điều khiển thông qua vi điều khiển D1 330 V1 330 X1 330 Điện áp mà Led chịu 2V mà nguồn cung cấp nguồn 5V nên cần phải có điện trở hạn dòng tính chọn sau: + Dòng qua led : 10mA + Nguồn cung cấp: V + Áp rơi led: 2V ⇾ R⇾chọn R=330 � (giá trị điện trở có bán thị trường) 2) Khối Hiển Thị : Khối hiển thị led đoạn dùng để thị giá trị thời gian lại trạng thái tín hiệu xanh, đỏ, vàng xử lý qua vi điều khiển mã tương ứng led đoạn GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Bảng mã cho led đoạn loại Anode chung : Led đoạn thật led đơn ghép lại nên việc tính chọn led hạn dòng cho led đoạn led đơn : + Dòng qua led : 10mA + Nguồn cung cấp: V + Áp rơi led: 2V ⇾ R⇾chọn R=330 � (giá trị điện trở có bán thị trường) Để việc hiển thị hiệu ta sử dụng phương pháp quét, nghĩa thời điểm cho phép led sáng tính chất lưu ảnh mắt nên ta thấy led sáng Để sử dụng phương pháp quét ta phải dùng transistor điều khiển phần mềm Vì ta dùng led GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính đoạn loại anode chung nên chọn transistor loại pnp A1015 để quét Led phép sáng cấp mức “0” cho A1015 3) Khối Điều Khiển : Ta sử dụng công tắc để chọn chế độ tự động hay điều khiền tay có yêu cầu ví dụ cao điểm đường ưu tiên đường ưu tiên đường có lượng xe lưu thông nhiều cần phải có thời gian nhiều người cảnh sát giao thông điều khiển cho phương tiện lưu thông tốt để tránh ùn tắc giao thông Với nút nhấn dùng để chuyển trạng thái bên Ta chọn tín hiệu điều khiển mức “0” nên công tắc nút nhấn nối với mass, điện trở kéo lên nguồn dùng hạn dòng vào pic cho mức “1” không tác động 10k RC0 10k RC1 4) Khối Vi Điều Khiển : GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Ta sử dụng vi điều khiển PIC16F887 dùng để lập trình điều khiển hệ thống hoạt động nhận liệu điều khiển truyền từ máy tính xuống để xử lý điều khiển Hiện có nhiều họ vi điều khiển khác họ có nhiều dòng khác Ở đây, em chọn PIC16F887 giống với PIC16F877A mà giá rẻ nên phù hợp cho việc nghiên cứu sinh viên Việc chọn PIC mà không chọn họ khác ATMEGA, 89X, ARM,… em học qua mà chưa làm mạch thực tế nên lần định làm đề tài với PIC  Một số thông số PIC16F887: - Vi điều khiển 8-bit Microchip, thuộc dòng Low-power - Kiến trúc Harvard (vs Von Neumann), tập lệnh RISC (Reduced Instructions Set Computer) (vs Complexed Instructions Set Computer) với 35 lệnh - Thạch anh gắn tối đa 20MHz - Tầm điện áp hoạt động 2.0V- 5.5V - Dòng điện vào/ tối đa: 25 mA - port, 35 chân xuất nhập (I/O pins) - Có đầy đủ chức cần thiết Vi điều khiển 8-bit: Timer (3 bộ), ADC (14 kênh ADC 10-bit), EUSART, SPI, I2C, PWM, Compare, … - Bộ nhớ chương trình 8192 word FLASH, 368 byte SRAM, 256 byte EEPROM - Có thể ghi/xoá EEPROM khoảng 1.000.000 lần - Bộ nhớ lưu trữ 40 năm  Sơ đồ chân PIC16F887: GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính  Sơ đồ nối dây để PIC16F887 hoạt động: VC C MAIN MCU PIC16F887 R _R S 10K SW _R S PVN 1 SS* J_PA PO R T A SW R ESET VC C PO R T C J_PC VC C SC L SD A TX R X C _X1 13 22p 4M hz XTA L C _X2 14 22p 12 31 A A A A A A /A N /A N /A N /V R E F -/C V R E F /A N /V R E F + /T C K I/C O U T /A N /S S * /C O U T R R R R R R R R C C C C C C C C /T O S O /T C K I /T O S I/C C P 2 /C C P /S C K /S C L /S D I/S D A /S D O /T X/C K /R X /D T R R R R R R R R D D D D D D D D /P /P /P /P /P /P /P /P S S S S S S S S P P P P P P P P 7 J_PB 19 20 21 22 27 28 29 30 J_PD 10 33 34 35 36 37 38 39 40 PG C PG D J_PE O S C /C L K IN R E /R D * /A N R E /W R * /A N R E /C S * /A N O S C /C L K O U T VSS VSS VD D VD D P IC F 8  Để thực xuất / nhập chân (Pin): GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ 11 32 VC C PO R T E C _3231 104 SC K SD I SD O 1 1 2 2 R R R R R R R B /IN T R B1 R B2 R B /P G M R B4 R B5 R B /P G C R B /P G D PO R T D C _1112 104 M C L R * /V P P PO R T B M C LR ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính - Cài đặt giá trị cho ghi TRISx (hoặc bit TRISx-n), với x/n A,B,C,D,E - Đặt kiểu tín hiệu pin Analog hay Digital qua ghi ANSEL ANSELH - Xuất tín hiệu cách ghi giá trị “0” “1” vào port tương ứng (bit: Rx-n hay port: PORTx) - Đọc giá trị chân cách đọc mức logic port tương ứng 5) Khối Giao Tiếp : Khối giao tiếp có chức giao tiếp máy tính với vi điều khiển PIC16F887 hay nói cách khác có nhiệm vụ truyền nhận liệu điều khiển vi điều khiển với máy tính Ở ta dùng chuẩn giao tiếp nối tiếp RS232 qua cổng COM sử dụng IC chuyển đổi mức tín hiệu MAX232 đơn giản dễ cho người làm quen với việc lập trình giao tiếp máy tính  Giới thiệu cổng COM : có dạng DP25, có 25 chân thường dùng công nghiệp DP9, có chân thường dùng Trong ứng dụng ta sử dụng chân TXD RXD để truyền nhận liệu chân nối mass chung - Hình dáng sơ đồ chân cổng COM: - Tên chức chân: 10 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Chương : Thi Công Mạch Sơ Đồ Nguyên Lý Của Mạch : I D1 XA N H D2 5VD C 13 V D C5 V D C 16 C4 10uF C6 10uF U2 R IN R IN T1O U T T2O U T C 1+ V+ C 1C 2+ C M A X232 10uF 0 T IN T IN R 1O U T R 2O U T VCC V- C 2- Y1 12M H z 10 11 12 5 B B A A VCC D8 F F G G B B A A VCC G B A VCC F G VCC B A F F D9 LED 7_D O N _1 D 10 LE D 7_D O N _1 LED 7_D O N _1 DOT C VCC D E DOT C VCC D E DOT C VCC D E 30 29 28 27 22 21 20 19 D D D D _C _D _C _D C C Q2 C Q3 E D D E D E Q1 D E H1 V1 H2 V2 LE LE LE LE 10 R 17 10 P7 P6 P5 P4 P3 P2 P1 P0 D7 /P S /P S /P S /P S /P S /P S /P S /P S G Q4 31 C Q4 4K7 P IC F 7 A GND 13 14 D D D D D D D D Q4 A 1015 5VD C J2 C2 33p CON5 C3 33p J1 CON2 C5 10uF 4039 C7 10uF 15 P1 R R R R R R R R B /T O S O /T C K I /T O S I/C C P 2 /C C P /S C K /S C L /S D I/S D A /S D O /T X /C K /R X /D T A LED 7_D O N _1 C C C C C C C C 5VD C 32 LE D _D V1 Q3 Q3 F R R R R R R R R G DOT Vss B C Vss G M C L R /V p p Vdd A 5VD C A1015 Q2 10 SW IN V 0 F S W M A G -S P D T 15 16 17 18 23 24 25 26 Vdd 330 G F E D C B A VCC 12 10 12 13 14 E 11 39 38 37 36 35 34 33 R R R R R R R 40 39 9 10 40 10 R 16 SW COM G R 15 A /A N R B /P G D A /A N R B /P G C A /A N /V re f RB5 A /A N /V re f + RB4 A /T C K I/C O U T R B /P G M A /A N /S S /C O U T RB2 RB1 R E /R D /A N R B /IN T R E /W R /A N R E /C S /A N O S C /C L K O 5VD C R R R R R R 14 O S C /C L K I R2 R3 R5 R7 R9 R 11 330 5VD C LED _C H Q2 A1015 Q1 RESET U1 DO SW C1 10uF D VANG D6 LED _D V2 Q1 A1015 XA N H D5 5V D C F LED _C H D4 5VD C 5VD C R1 R DO VANG D3 II Nguyên Lý Hoạt Động Của Mạch : Mọi người lưu thông đường biết đến đèn giao thông chức cách thức hoạt động Ở đây, em thực mô hình nhỏ nhầm mô lại phần hoạt động đèn giao thông Chắc hiểu rõ đèn giao thông 13 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính làm việc nào, em xin trình bày mô hình mạch đèn giao thông sử dụng PIC16F887 có giao tiếp mà em thực đề tài Mạch có nguồn điều khiển điều khiển board mạch điều khiển máy tính Sử dụng công tắc nút nhấn để điều khiển trực tiếp board mạch sau: cấp nguồn mạch mặc định chạy chế độ tự động với đèn đỏ sáng 25s, đèn xanh sáng 20, đèn vàng sáng 5s chế độ hoạt động bình thường cần thiết thí dụ trường hợp cao điểm hay kẹt xe giao lộ ta chuyển sang chế độ điều khiển tay dùng công tắc Tiếp ta dùng phím nhấn để thay đồi trạng thái đèn xanh đỏ bên, cụ thể chuyển sang chế độ điều khiển tay xanh đỏ sáng ta nhấn phím xanh đỏ sáng tiếp tục phép bên phần đường phép lưu thông Khi chế độ tự động led đoạn hiển thị thời gian đếm ngược sau giây cho bên Còn chế độ tay có led xanh va đỏ bên sáng Đối với việc điều khiển thông qua máy tính, ta dùng cổng COM kết nối mạch điện máy tính truyền nhận liệu điều khiển cho hệ thống Điều khiển máy tính ta phải tạo giao diện máy tính lập trình để xử lý tín hiệu Ta chọn ngôn ngữ lập trình máy tính VB,C#,…Ở em chọn ngôn ngữ lập trình C# có nhiều hàm hỗ trợ trực quan Khi ta điều khiển máy tính ta click vào button CONNECT để báo cho vi điều khiển biết chọn chế độ điều khiển qua RS232 Sau ta check vào checkbox AUTO/MANUAL để chọn chế độ tự động hay điều khiển tay điều khiển board Khi check vào AUTO/MANUAL chọn chế độ điều khiển tay ta click vào button RUN_A hay RUN_B phép bên chọn lưu thông hay đèn xanh bên sáng ngược lại đèn đỏ phía lại sáng Khi không cần điều chỉnh máy tính ta nhấn button DISCONNECT để mạch trở lại hoạt động điều khiển trực tiếp mạch Trong ngày vào buổi tối khoảng từ 21g đến 6g lượng xe lưu thông không nhiều nên ta cho đèn vàng bên chớp tắt với tần số 1hz để báo chế độ ban đêm III Lưu Đồ Giải Thuật Cho Chương Trình Xử Lý : 14 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Lưu Đồ Cho Chương Trình Chính: Lưu Đồ Cho Chương Trình Ngắt TIMER1: 15 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Lưu Đồ Cho Chương Ngắt Truyền Dữ Liệu Nối Tiếp: 16 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Ngắt RDA Nhận liệu Index_xmit =3? Index_xmit=0 Truyền thời gian a,b Index_xmit ++ Rcv_data =250? Index_rcv =0 Nhận thời gian ++ từ PC Index_xmit Index_rcv ++ RETURNI IV Chương Trình Phần Mềm Cho Vi Điều Khiển PIC Viết Bắng CCS : #include 17 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính #include #fuses nowdt, noput, hs, noprotect, nolvp #use delay(clock=11059000) #use fast_io(all) #use rs232(baud =9600, parity = n, xmit = pin_c6, rcv = pin_c7) #define mode input(pin_c0) #define toggle input(pin_c1) //********* khai bao bien ***************** INT8 j,k,chuc1,chuc2,dvi1,dvi2; INT16 t_do,a,t_xanh,b; unsigned char btu,_btu,btt1=0,btt2=1; unsigned char rcv_data; unsigned char connect = 'H',mode_cp,RUN= 0; unsigned char index_rcv=5,date[3],hour,minute,second; unsigned char TIMER_AB[4],index_xmit = 0; const UNSIGNED char dig[]= {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; //********* chuong trinh ************* //************* khoi tao ********* void initiation() { // khoi tao cho port b.d.a la ngo va c0,c1 vao set_tris_a (0x00); set_tris_b (0x00); trisc0 = 1; trisc1 = 1; set_tris_d (0x00); //xoa hien thi PORTA = 0X00; PORTB = 0XFF; PORTD = 0XFF; j = 0; // khoi tao cho bien dem timer k = 0; // khoi tao cho bien dem cua tung cot t_DO = 24; // gan gia tri ban dau cho den va xanh t_xanh = 19; SET_TIMER1(3035); // DAT SO DEM CHO TIMER T1CON = 0X35; // KHOI TAO GIA TRI CHO TIMER enable_interrupts (GLOBAL); // cho phep ngat toan bo enable_interrupts (INT_RDA); // cho phep ngat truyen thong } 18 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính //********* ngat truyen thong ************ #INT_RDA void uart_datas() { rcv_data = getc(); if(index_xmit == 3)index_xmit = 0; else { putc(TIMER_AB[index_xmit]); index_xmit ++; } if (rcv_data == 250)index_rcv = 0; else { date[index_rcv] = rcv_data; index_rcv ++; } if(index_rcv == 255)index_rcv = 5; hour = date[0]; minute = date[1]; second = date[2]; } //********** ngat timer **************** #INT_TIMER1 VOID timer1_interrupt() //bat dau chuong trinh ngat { j++; IF (j == 10) // j = 10 thi thoi gian dung 1s { k = k + 1; // bien k dung xac dinh thoi gian cho cot IF ( (k < 26)&& (k > 0)) { a = t_DO; t_DO = t_do - 1; b = t_xanh; t_xanh = t_xanh - 1; IF (a < 5) //thoi gian hien thi cho led vang { porta = 0x14; // den vang va DO sang b = a; } 19 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính ELSE porta = 0x0C; // den xanh va DO sang } IF ((k < 26)&& (k > 24)) // du 25s thi chuyen sang cot { t_DO = 24; t_xanh = 19; } IF (k > 25) // bat dau hien thi cho cot { b = t_DO; t_DO = t_do - 1; a = t_xanh; t_xanh = t_xanh - 1; IF (b < 5) //khi den xanh du 20s thi den vang bat dau sang { porta = 0x22; // den DO va vang sang a = b; } ELSE porta = 0x21; // den DO va xanh sang } TIMER_AB[0]=50; TIMER_AB[1]=a; TIMER_AB[2]=b; chuc1 = a / 10; dvi1 = a % 10; chuc2 = b / 10; dvi2 = b % 10; IF (k > 49) // cot xong 25s thi chuyen ve cot { k = 0; // KHOI TAO LAI GIA TRI DEM BAN DAU t_DO = 24; t_xanh = 19; } SET_TIMER1 (3035); // CAI LAI THOI GIAN CHO TIMER j = 0; 20 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính } SET_TIMER1 (3035); // CAI LAI THOI GIAN CHO TIMER } //*********** xu ly data nhan duoc ******************** void select_data() { switch (rcv_data) { case '1': connect = 'S'; break; case '2': connect = 'H'; break; case '3': mode_cp = 'M'; break; case '4': mode_cp = 'A'; break; case '5': RUN = 0; break; case '6': RUN = 1; break; default: break; } } //*********** hien thi led don che dieu khien tay**** void manual_led() { OUTPUT_BIT(PIN_A0, btt1); OUTPUT_BIT(PIN_A5, btt1); OUTPUT_BIT(PIN_A2, btt2); OUTPUT_BIT(PIN_A3, btt2); } //*********** hien thi thoi gian ********************* void display_7seg() { portb = dig[chuc1]; // dua gia tri chuc portb portd = 0xf7; // chi led o vi tri chuc sang delay_ms (1); // dung de nhin thay duoc led sang portd = 0xff; // chong lem portb = dig[dvi1]; // dua gia tri dvi portb portd = 0xfb; // chi led o vi tri dvi sang 21 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính delay_ms (1); // dung de nhin thay duoc led sang portd = 0xff; // chong lem portb = dig[chuc2]; // dua gia tri chuc portb portd = 0xfd; // chi led o vi tri chuc sang delay_ms (1); // dung de nhin thay duoc led sang portd = 0xff; // chong lem portb = dig[dvi2]; // dua gia tri dvi portb portd = 0xfe; // chi led o vi tri dvi sang delay_ms (1); // dung de nhin thay duoc led sang portd = 0xff; // chong lem } //***************** chuong trinh chinh **************** VOID main () // bat dau chuong trinh chinh { initiation(); while(true) { select_data(); if(hour > && hour < 22) { if(connect == 'H') { if(mode == 0) { disable_interrupts(INT_TIMER1);//xoa ngat timer1 porta = 0x00; btu = toggle; if (btu == 0) //kiem tra nhan phim { _btu = btu; while(btu == _btu) {btu = toggle;} btt1 = !btt1; btt2 = !btt2; } manual_led(); } if (mode == 1) { enable_interrupts(INT_TIMER1); // cho phep ngat timer1 display_7seg(); } 22 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính } if(connect == 'S') { if(mode_cp == 'M') { disable_interrupts(INT_TIMER1);// xoa ngat timer1 porta = 0x00; if(RUN == 1)porta = 0x21; else porta = 0x0c; } if (mode_cp == 'A') { enable_interrupts(INT_TIMER1); // cho phep ngat display_7seg(); } } } else { porta = 0x00; disable_interrupts(INT_TIMER1); output_high(pin_a1); output_high(pin_a4); delay_ms(500); output_low(pin_a1); output_low(pin_a4); delay_ms(500); } } } V Chương Trình Phần Mền Lập Trình Giao Diện Trên Máy Tính Viết Bằng C# : namespace giao_dien { public partial class Form1 : Form { public Form1() { InitializeComponent(); } int temp = 0,index = 3; int[]buffer = new int[10]; 23 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Byte[] buf = new Byte[10]; private void Form1_FormClosing(object sender, FormClosingEventArgs e) { COM_2.Close(); } private void Form1_Load(object sender, EventArgs e) { COM_2.Open(); } private void CONNECT_Click(object sender, EventArgs e) { COM_2.Write(new char[] { '1' }, 0, 1); } private void DISCONNECT_Click(object sender, EventArgs e) { COM_2.Write(new char[] { '2' }, 0, 1); } private void MODE_CheckedChanged_1(object sender, EventArgs e) { if (MODE.Checked == true) { COM_2.Write(new char[] { '3' }, 0, 1); } else { COM_2.Write(new char[] { '4' }, 0, 1); } } private void RUN_A_Click(object sender, EventArgs e) { COM_2.Write(new char[] { '5' }, 0, 1); } private void RUN_B_Click(object sender, EventArgs e) { COM_2.Write(new char[] { '6' }, 0, 1); } private void timer1_Tick(object sender, EventArgs e) { DateTime dt = DateTime.Now; buf[0] = 250; buf[1] = (Byte)dt.Hour; buf[2] = (Byte)dt.Minute; buf[3] = (Byte)dt.Second; this.textBox2.Text = buffer[0].ToString(); this.textBox1.Text = buffer[1].ToString(); textBox3.Text = DateTime.Now.ToString("HH:mm:ss"); 24 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính COM_2.Write(buf, 0, 4); } private void COM_2_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { temp = COM_2.ReadByte(); if (temp == 50) { index = 0; } else { buffer[index] = temp; index++; if (index == 10) index = 3; } } } } VI Thi Công Mạch: 1) Sơ Đồ Mạch In : 25 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC 2 10 11 12 13 14 15 16 17 18 19 20 21 22 VII Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính 2) Các Giá Trị Linh Kiện Sử Dụng Trong Mạch : C1,C4,C5,C6,C7,C8 10uF C3,C2 33p D1 XANH 1 D2 VANG 1 D3 DO 1 D4 XANH D5 VANG D6 DO D7,D8,D9,D10 LED7_DON_1 J1 CON2 J2 CON5 P1 COM Q1,Q2,Q3,Q4 A1015 12 R1,R2,R3,R4,R5,R6,R7,R8, R R9,R10,R12,R13 R11,R14 330 R15,R16,R17,R18,R19,R20 4K7 SW1 RESET SW2 SW MAG-SPDT SW3 INV U1 PIC16F877A U2 MAX232 Y1 12MHz Kết thực : 1) Kết Quả : Sau thiết kế sơ đồ nguyên lý ta tiến hành vẽ mạch mô proteus viết chương trình cho PIC16F887 phần mềm CCS Biên dịch chương trình nạp vào chạy mô thấy mạch hoạt động theo yêu cầu thiết kế đặt Tiếp đến ta tiến hành vẽ mạch phần mềm Orcad chuyển sang Playout Plus để vẽ mạch in cho mạch Sau thi công xong mạch ta nạp chương trình diều khiển cho PIC16F887 test mạch Vì làm quen với mô hình mạch thực tế PIC16F887 nên dù làm xong mạch chưa hoạt động tốt Sau tiến hành đo sửa lỗi phần cứng chương trình phần mềm mạch làm việc với mục tiêu yêu cầu đặt Qua việc thực đồ án môn học với đề tài “ mạch đèn giao thông sử dụng PIC16F887 có giao tiếp với máy tính ” em cố nhiều kiến thức thầy cô truyền đạt nhiều môn học qua học hỏi thêm nhiều kinh nghiệm thực tế thiết kế thi công mô hình ứng dụng để vận dụng kiến thức học để giải vấn đề gặp phải khó khăn 26 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Từ đây, em nhận thấy nên tìm hiểu thêm nhiều ứng dụng thực tế để học hỏi bổ sung thêm nhiều kiến thức kinh nghiệm cách thực mạch ứng dụng vừa nhỏ để vừa cố kiến thức vừa có thêm nhiều kinh nghiệm làm mạch thực tế đồng thời định hướng cho việc thực mạch đồ án tiếp nghiệp tới 2) Hướng Phát Triển Của Đề Tài : Đề tài “ mạch đèn giao thông sử dụng PIC16F887 có giao tiếp với máy tính ” em làm mức độ mô hình nhỏ để tìm hiểu PIC16F887 lập trình ngôn ngữ C lập trình giao tiếp máy tính vi điều khiển ngôn ngữ C# nên nhiều hạn chế thiếu sót Sau thực đề tài em nghĩ tìm hiểu thêm dòng vi điều khiển khác trau dồi thêm khả lập trình ngôn ngữ C C# để nghiên cứu sâu cho đề tài đồ án tốt nghiệp tới chẳng hạn điều khiển thiết bị qua GPS hay mạng internet,… Tài Liệu Tham Khảo :  Giáo trình vi xử lý – Nguyễn Đình Phú-ĐH SƯ PHẠM KỸ THUẬT TPHCM  Báo cáo vi xử lý lớp 061012- Nguyễn Duy Tưởng  Trang tìm kiếm : www.google.com.vn  Diễn đàn sinh viên trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM: www.spkt.net  Diễn đàn sinh viên khoa Điện- Điện Tử trường Đại Học Bách Khoa Tp.HCM : www.deeforum.net  Diễn đàn điện tử Việt Nam : www.dientuvietnam.net  Diễn đàn điện tử Việt Nam : www.picvietnam.net  Webside : www mikroe.com  Trang tra cứu linh kiện : www.alldatasheet.com 27 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ [...]... MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính 1 Lưu Đồ Cho Chương Trình Chính: 2 Lưu Đồ Cho Chương Trình Ngắt TIMER1: 15 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính 3 Lưu Đồ Cho Chương Ngắt Truyền Dữ Liệu Nối Tiếp: 16 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Ngắt RDA Nhận... nào, em xin được trình bày về mô hình mạch đèn giao thông sử dụng PIC16F887 có giao tiếp mà em thực hiện đề tài Mạch có 2 nguồn điều khiển là điều khiển trên board mạch và điều khiển trên máy tính Sử dụng công tắc và nút nhấn để điều khiển trực tiếp trên board mạch như sau: khi mới cấp nguồn mạch sẽ mặc định chạy ở chế độ tự động với đèn đỏ sáng 25s, đèn xanh sáng 20, đèn vàng sáng 5s đó là chế độ hoạt... cũng cố kiến thức vừa có thêm nhiều kinh nghiệm làm mạch thực tế đồng thời cũng định hướng được cho việc thực hiện mạch đồ án tiếp nghiệp sắp tới 2) Hướng Phát Triển Của Đề Tài : Đề tài “ mạch đèn giao thông sử dụng PIC16F887 có giao tiếp với máy tính ” em chỉ mới làm ở mức độ mô hình nhỏ để tìm hiểu về PIC16F887 cũng như lập trình bằng ngôn ngữ C và lập trình giao tiếp giữa máy tính và vi điều khiển... Hoạt Động Của Mạch : Mọi người chúng ta khi lưu thông trên đường hầu như đều biết đến đèn giao thông và chức năng cũng như cách thức hoạt động của nó Ở đây, em chỉ thực hiện một mô hình nhỏ nhầm mô phỏng lại 1 phần hoạt động của đèn giao thông Chắc chúng ta ai cũng đã hiểu rõ đèn giao thông 13 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính làm việc... HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Vì tín hiệu cổng COM thường ở mức +12V, -12V nên không tương thích với điện áp TTL nên để giao tiếp vi điều khiển với máy tính qua cổng COM ta phải qua một vi mạch biến đổi điện áp cho phù hợp với mức TTL, ta chọn vi mạch MAX232 để thực hiện việc tương thích điện áp  Giới thiệu IC max 232: Vi mạch MAX 232 của hãng MAXIM là một vi mạch chuyên... test mạch Vì mới làm quen với mô hình mạch thực tế của PIC16F887 nên dù đã làm xong mạch vẫn chưa hoạt động tốt Sau khi tiến hành đo và sửa lỗi phần cứng cũng nhưng chương trình phần mềm thì mạch đã làm việc đúng với mục tiêu yêu cầu đặt ra Qua việc thực hiện đồ án môn học 2 với đề tài “ mạch đèn giao thông sử dụng PIC16F887 có giao tiếp với máy tính ” em đã cũng cố được nhiều kiến thức đã được các... độ bằng tay chỉ có led xanh va đỏ mỗi bên sáng Đối với việc điều khiển thông qua máy tính, thì ta dùng cổng COM kết nối giữa mạch điện và máy tính truyền nhận dữ liệu điều khiển cho hệ thống Điều khiển bằng máy tính ta phải tạo 1 giao diện trên máy tính và lập trình để xử lý tín hiệu Ta có thể chọn ngôn ngữ lập trình trên máy tính như VB,C#,…Ở đây em chọn ngôn ngữ lập trình C# vì nó có nhiều hàm hỗ... mô hình ứng dụng để vận dụng các kiến thức đã học để giải quyết các vấn đề khi gặp phải khó khăn 26 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Từ đây, em cũng nhận thấy mình nên tìm hiểu thêm nhiều ứng dụng thực tế để học hỏi và bổ sung thêm nhiều kiến thức cũng như kinh nghiệm bằng cách thực hiện các mạch ứng dụng vừa và nhỏ để có thể vừa cũng... MAX232: 11 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC 2 - Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Sơ đồ kết nối giữa cổng COM và MAX232 tới vi điều khiển: 12 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Chương 2 : Thi Công Mạch Sơ Đồ Nguyên Lý Của Mạch : I D1 XA N H 1 D2 5VD C 13 5 V D C5 V D C 16 C4 10uF 2 C6 10uF 6 U2 R 1 IN R 2 IN T1O... output_low(pin_a4); delay_ms(500); } } } V Chương Trình Phần Mền Lập Trình Giao Diện Trên Máy Tính Viết Bằng C# : namespace giao_ dien { public partial class Form1 : Form { public Form1() { InitializeComponent(); } int temp = 0,index = 3; int[]buffer = new int[10]; 23 GVHD : Cô TRƯƠNG THỊ BÍCH NGÀ ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Byte[] buf = new Byte[10]; private void Form1_FormClosing(object ... MÔN HỌC Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính làm việc nào, em xin trình bày mô hình mạch đèn giao thông sử dụng PIC16F887 có giao tiếp mà em thực đề tài Mạch có nguồn điều khiển... tiến hành đo sửa lỗi phần cứng chương trình phần mềm mạch làm việc với mục tiêu yêu cầu đặt Qua việc thực đồ án môn học với đề tài “ mạch đèn giao thông sử dụng PIC16F887 có giao tiếp với máy tính... thông có mong muốn làm cho mạch gần với thực tế với mạch đèn giao thông có giao tiếp với máy tính sử dụng vi điều khiển PIC16F887 em mức độ mô phần nhỏ ứng dụng. Cũng từ em nghĩ nghiên cứu nhiều

Ngày đăng: 25/03/2016, 17:04

Từ khóa liên quan

Mục lục

  • Lời Nói Đầu

  • Chương 1 : Thiết Kế - Khảo Sát Sơ Đồ Khối

    • I. Giới Thiệu Về Đề Tài :

    • II. Sơ Đồ Khối :

    • III. Thiết Kế Các Khối :

      • 1) Khối Đèn Giao Thông :

      • 2) Khối Hiển Thị :

      • 3) Khối Điều Khiển :

      • 4) Khối Vi Điều Khiển :

      • 5) Khối Giao Tiếp :

      • Chương 2 : Thi Công Mạch

        • I. Sơ Đồ Nguyên Lý Của Mạch :

        • II. Nguyên Lý Hoạt Động Của Mạch :

        • III. Lưu Đồ Giải Thuật Cho Chương Trình Xử Lý :

          • 1. Lưu Đồ Cho Chương Trình Chính:

          • 2. Lưu Đồ Cho Chương Trình Ngắt TIMER1:

          • 3. Lưu Đồ Cho Chương Ngắt Truyền Dữ Liệu Nối Tiếp:

          • IV. Chương Trình Phần Mềm Cho Vi Điều Khiển PIC Viết Bắng CCS :

          • V. Chương Trình Phần Mền Lập Trình Giao Diện Trên Máy Tính Viết Bằng C# :

          • VI. Thi Công Mạch:

            • 1) Sơ Đồ Mạch In :

            • 2) Các Giá Trị Linh Kiện Sử Dụng Trong Mạch :

            • VII. Kết quả thực hiện :

              • 1) Kết Quả :

              • 2) Hướng Phát Triển Của Đề Tài :

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

Tài liệu liên quan