P. 1
do nhiet do

do nhiet do

|Views: 290|Likes:
Được xuất bản bởitanphu_ee

More info:

Published by: tanphu_ee on Apr 21, 2012
Bản quyền:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

08/01/2014

pdf

text

original

Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Sử Dụng PIC16F887

Mục Lục

Chƣơng 1 : Thiết Kế - Khảo Sát Sơ Đồ Khối....................................................................... 3 I. Giới Thiệu Về Đề Tài : ............................................................................................. 3 II. Sơ Đồ Khối : .......................................................................................................... 3 Khối Đèn Giao Thông : ..................................................................................... 5 Khối Hiển Thị : .................................................................................................. 5 Khối Điều Khiển : .............................................................................................. 7 Khối Vi Điều Khiển : ......................................................................................... 8 Khối Giao Tiếp : .............................................................................................. 10

III. Thiết Kế Các Khối : .............................................................................................. 5 1) 2) 3) 4) 5)

Chƣơng 2 : Thi Công Mạch ................................................................................................ 13 I. Sơ Đồ Nguyên Lý Của Mạch :............................................................................... 13 II. Nguyên Lý Hoạt Động Của Mạch : ................................................................... 14 Lưu Đồ Cho Chương Trình Chính: ............................................................... 15 Lưu Đồ Cho Chương Trình Ngắt TIMER1: ................................................. 16 Lưu Đồ Cho Chương Ngắt Truyền Dữ Liệu Nối Tiếp: ................................ 17 Chương Trình Phần Mềm Cho Vi Điều Khiển PIC Viết Bắng CCS : ........... 18 III. Lưu Đồ Giải Thuật Cho Chương Trình Xử Lý : ............................................. 15 1. 2. 3. IV.

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# : 23

VI. 1) 2) VII. 1) 2)

Thi Công Mạch:................................................................................................... 25 Sơ Đồ Mạch In : ............................................................................................... 25 Các Giá Trị Linh Kiện Sử Dụng Trong Mạch : ........................................... 26 Kết quả thực hiện : .......................................................................................... 27 Kết Quả : .......................................................................................................... 27 Hướng Phát Triển Của Đề Tài : ..................................................................... 27

Lời Nói Đầu
Từ khi ngành khoa học điện và điện tử ra đời đã mang lại rất nhiều thành công cho nhân loại, góp phần thúc đẩy và phát triển rất nhiều ngành khác khi ứng dụng các thành tựu của khoa học điện và điện tử đã tạo nên. Trong đời sống hằng ngày cũng nhƣ trong công nghiệp, y tế, giáo dục, vận tải,… các ứng dụng của điện tử mà đặc biệt là các hệ thống tự động hoá đã mang lại rất nhiều tiện ích và giúp cho con ngƣời trong nhiều công việc từ đơn giản nhƣ việc đóng mở cửa tự động cho đến các hệ thống phức tạp nhƣ trong các dây chuyền sản xuất trong công nghiệp. Với đam mê và hiếu kỳ về các hệ thống điều khiển tự động cũng nhƣ sự lý thú của các ứng dụng các mạch điện và điện tử, em đã chọn theo học ngành điện và điện tử cũng nhƣ rất thích tìm hiểu về các môn học có liên quan đến lập trình và điều khiển. Trong dịp này vừa là làm đồ án môn học 2 cũng vừa là cơ hội để em tìm hiểu thêm về các loại IC điều khiển nhƣ họ 89, PIC, AVR, ARM,... Trƣớc đây với đồ án môn học 1 em đã đƣợc tiếp cận với IC 89S51 cho nên lần này em sẽ tìm hiểu về dòng PIC mà cụ thể là PIC16F887. Và ngày nay việc giao tiếp giữa máy tính và thiết bị ngoại ngày quan trọng và phổ biến hơn. Thế cho nên em đã chọn đề tài có giao tiếp giữa vi điều khiển và máy tính để tìm hiểu, học hỏi, bổ sung kiến thức cũng nhƣ ứng dụng vào thực tế. Đây mới là lần đầu làm về đề tài giao tiếp giữa vi điều khiển với máy tính cũng nhƣ lần đầu sử dụng PIC16F887 làm mạch thực tế nên chắc chắn sẽ có nhiều hạn chế và sai sót mong quý thầy cô và các bạn góp ý kiến để em đƣợc bổ sung nhiều kiến thức hơn cho học tập và nghiên cứu. Chân thành cảm ơn

2

Kế đến phải nhắc tới là bộ phận xử lý. Chính vì đây là mạch có giao tiếp với máy tính nên không thể thiếu khối giao tiếp giữa máy tính với vi điều khiển. vàng và các led hiển thị thời gian còn lại của mỗi bên.Khảo Sát Sơ Đồ Khối I. nhƣng do sử dụng nguồn riêng nên em xin không trình bày về phần nguồn của mạch. ta có thể mô tả mô hình mạch cho đề tài bằng sơ đồ khối nhƣ sau: 3 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . cũng có trạm khi đến 23h mỗi ngày thì đèn chuyển sang trạng thái 2 đèn vàng ở 2 bên cùng chớp tắt vì giờ đó tình trạng giao thông không còn đông đúc nữa. Sơ Đồ Khối : Từ yêu cầu đặt ra cho đề tài. Giới Thiệu Về Đề Tài : Trƣớc đây em đã đƣợc làm một số mạch ứng dụng với vi điều khiển 89S51 cũng nhƣ đã đƣợc thực tập về các module ứng dụng của IC này. Nó quá phổ biến đến mức trở nên quen thuộc với ngƣời tham gia giao thông và cũng chính là công cụ giúp giao thông đƣợc thông suốt với trật tự và lề lối của khuôn khổ pháp luật quy định xanh chạy. đỏ dừng. em thấy có trạm có hộp điều khiển để chọn chế độ tự động hay điều khiển bằng tay hay chọn chế độ cho đƣờng ƣu tiên hơn. Nhƣ đã quan sát các trạm đèn giao thông tại các giao lộ. vàng là chuẩn bị chuyển sang đỏ. II. Mặc dù em đã tìm hiểu qua hình thức cũng nhƣ cách vận hành của các trạm đèn giao thông và có mong muốn làm cho mạch của mình gần với thực tế nhất nhƣng 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 của em chỉ ở mức độ mô phỏng một phần nhỏ của ứng dụng. Tiếp theo là phần điều khiển dùng để cài đặt thiết lập hay lựa chọn chế độ. Nay với mục đích tìm hiểu về một ứng dụng có tính chất thực tế sử dụng vi điều khiển PIC16F887 để hiểu thêm về dòng IC này nên em quyết định chọn đề tài để làm đồ án lần này là “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”. vận hành và giám sát một cách nhanh chóng. đỏ. mọi chúng ta khi tham gia giao thông trên các tuyến đƣờng thì đều đã thấy qua các trụ đèn giao thông. có trạm không cần hộp điều khiển.Cũng từ đây em nghĩ nếu có thể nghiên cứu nhiều hơn thì em sẽ phát triển đề tài theo hƣớng điều khiển qua internet. Đó chính là các đèn tín hiệu xanh. Từ đó. Vì internet ngày nay thật sự là một công cụ hữu ích cho nhân loại. Chính vì vậy với mạch đèn giao thông em thiết kế và thực hiện lần này sẽ cố gắng mô phỏng một cách gần nhất với thực tế và cũng có thêm phần giao tiếp giữa mạch và máy tính để việc cài đặt và điều khiển tiện lợi và nhanh chóng hơn. ta thấy một trạm đèn giao thông trƣớc tiên cần nhất chính là phần hiển thị. Khi mạch đƣợc điều khiển từ internet thì sẽ rất tiện lợi cho việc điều khiển. Trong cuộc sống hằng ngày. Và một khối cực kỳ quan trọng mà trong bất kỳ mạch điện nào cũng không thể thiếu đó chính là khối nguồn.ĐỒ Á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 1 : Thiết Kế . đây là bộ não của hệ thống vì nếu không có nó hệ thống sẽ không thể làm việc đƣợc.

Giao tiếp: sử dụng cổng COM và qua IC chuyển đổi mức điện áp MAX232 để truyền thông tin giữa vi điều khiển và máy tính.    4 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . Điều khiển: là các phím nhấn dùng để cài đặt tinh chỉnh thời gian hay chuyển chế độ ƣu tiên cho mỗi bên và công tắc để chuyển chế độ điều khiển tự động hay điều khiển bằng tay. giải mã hiển thị thời gian.ĐỒ Á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ức năng của các khối:    Hiển thị: sử dụng led 7 đoạn hiển thị thời gian cho đèn giao thông. vàng. Đèn giao thông: các led đèn tín hiệu giao thông xanh. đỏ. Máy tính: lập trình giao diện điều khiển và truyền dữ liệu điều khiển đến vi điều khiển để thực hiện các chức năng theo yêu cầu. giao tiếp truyền nhận dữ liệu điều khiển từ máy tính. xử lý tín hiệu điều khiển để chuyển chế độ khi có yêu cầu. Vi điều khiển: sử dụng PIC16F887 để lập trình điều khiển cho mạch đèn giao thông.

vàng dùng làm các đèn tín hiệu để điều khiển các phƣơng tiện lƣu thông trên đƣờng theo đúng luật giao thông quy định. Còn tín hiệu đèn vàng báo hiệu cho ngƣời đi đƣờng biết rằng sắp chuyển sang đèn đỏ để chuẩn bị dừng lại. Ngƣợc lại với đèn đỏ thì phải dừng lại. D1 330 V1 330 X1 330 Điện áp mà mỗi Led chịu đƣợc là 2V mà nguồn cung cấp của chúng ta là nguồn 5V nên cần phải có điện trở hạn dòng và đƣợc tính chọn nhƣ sau: + Dòng qua mỗi led : 10mA + Nguồn cung cấp: 5 V + Áp rơi trên mỗi led: 2V ⇾R ⇾chọn R=330 (giá trị điện trở có bán trên thị trƣờng) 2) Khối Hiển Thị : Khối hiển thị chính là các led 7 đoạn dùng để hiện thị giá trị thời gian còn lại của các trạng thái của các tín hiệu xanh. Theo đó. 5 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . đỏ. Thiết Kế Các Khối : 1) Khối Đèn Giao Thông : Đây là các led đơn xanh. khi tín hiệu đèn xanh bên phần đƣờng nào sáng thì các phƣơng tiện bên đó đƣợc phép lƣu thông. vàng đã đƣợc xử lý qua bộ vi điều khiển để cho ra các mã tƣơng ứng của led 7 đoạn. đỏ.ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính III. các trạng thái sáng tắt của các đèn tín hiệu này sẽ đƣợc điều khiển thông qua vi điều khiển.

ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Bảng mã cho led 7 đoạn loại Anode chung : Led 7 đoạn thật ra là 8 led đơn ghép lại nên việc tính chọn led hạn dòng cho led 7 đoạn cũng nhƣ led đơn : + Dòng qua mỗi led : 10mA + Nguồn cung cấp: 5 V + Áp rơi trên mỗi led: 2V ⇾R ⇾chọn R=330 (giá trị điện trở có bán trên thị trƣờng) 6 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ .

10k RC0 RC1 10k 7 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . điện trở kéo lên nguồn dùng hạn dòng vào pic và cho mức “1” khi không tác động. Ta chọn tín hiệu điều khiển mức “0” nên công tắc và nút nhấn nối với mass. Để sử dụng phƣơng pháp quét ta phải dùng transistor và điều khiển bởi phần mềm. 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 bằng tay khi có yêu cầu ví dụ nhƣ trong giờ cao điểm giữa đƣờng ƣu tiên và đƣờng ít ƣu tiên hơn thì các con đƣờng chính có lƣợng xe lƣu thông nhiều hơn thì cần phải có thời gian nhiều hơn hoặc do ngƣời cảnh sát giao thông điều khiển sao cho các phƣơng tiện lƣu thông tốt nhất để tránh ùn tắc giao thông. Với nút nhấn dùng để chuyển trạng thái giữa các bên. Vì ta dùng led 7 đoạn loại anode chung nên chọn transistor loại pnp A1015 để quét. Led sẽ đƣợc phép sáng khi cấp mức “0” cho A1015.ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính Để việc hiển thị đƣợc hiệu quả hơn ta sử dụng phƣơng pháp quét. nghĩa là tại một thời điểm chỉ cho phép 1 led sáng nhƣng do tính chất lƣu ảnh của mắt nên ta thấy các led đều sáng.

ADC (14 kênh ADC 10-bit).  Một số thông số cơ bản về PIC16F887: Vi điều khiển 8-bit của Microchip. SPI. Hiện nay có rất nhiều họ vi điều khiển khác nhau và mỗi họ là có rất nhiều dòng khác nhau. Dòng điện vào/ ra tối đa: 25 mA. thuộc dòng Low-power. 368 byte SRAM. Việc chọn PIC mà không chọn các họ khác nhƣ ATMEGA. Có thể ghi/xoá EEPROM khoảng 1. Bộ nhớ lƣu trữ trên 40 năm. 5 port. Von Neumann). em chọn PIC16F887 vì nó hầu nhƣ giống với PIC16F877A mà giá rẻ hơn nên rất phù hợp cho việc nghiên cứu của sinh viên. ARM.  Sơ đồ chân của PIC16F887: - - 8 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . Compare. Ở đây.000 lần.0V.000. … Bộ nhớ chƣơng trình 8192 word FLASH. Tầm điện áp hoạt động 2. PWM. tập lệnh RISC (Reduced Instructions Set Computer) (vs. Kiến trúc Harvard (vs. 35 chân xuất nhập (I/O pins) Có đầy đủ các chức năng cần thiết của Vi điều khiển 8-bit: Timer (3 bộ). Thạch anh gắn ngoài tối đa 20MHz.… vì em đã đƣợc học cơ bản qua nó mà chƣa đƣợc làm mạch thực tế nên lần này quyết định làm đề tài với PIC.5V. EUSART. I2C. 89X. Complexed Instructions Set Computer) với 35 lệnh. 256 byte EEPROM.5.ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính 4) Khối Vi Điều Khiển : Ta sử dụng vi điều khiển PIC16F887 dùng để lập trình và điều khiển hệ thống hoạt động cũng nhƣ nhận dữ liệu điều khiển truyền từ máy tính xuống để xử lý và điều khiển.

ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính VCC R_RS 10K SW_RS MCLR J_PA SW RESET 1 2 3 4 5 6 MAIN MCU PIC16F887 PVN1 1 2 3 4 5 6 7 15 16 17 18 23 24 25 26 13 22p 4Mhz XTAL 14 12 31 MCLR*/VPP RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS*/C2OUT RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT OSC1/CLKIN RE0/RD*/AN5 RE1/WR*/AN6 RE2/CS*/AN7 OSC2/CLKOUT VSS VSS PIC16F887 VDD VDD 11 32 RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 33 34 35 36 37 38 39 40 19 20 21 22 27 28 29 30 8 9 10 VCC 1 J_PB 2 3 4 5 6 PGC 7 PGD 8 0 PORT B VCC C_1112 104 PORT A SS* 0 VCC C_3231 104 C_X1 J_PC 1 2 3 4 5 6 7 8 SCK SDI SDO SCL SDA TX RX 1 J_PD 2 3 4 5 6 7 8 J_PE 1 2 3 PORT D PORT C PORT E 0 C_X2 22p 0 0  Sơ đồ nối dây cơ bản để PIC16F887 hoạt động: 9 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ .

D. Trong ứng dụng này ta chỉ sử dụng 2 chân TXD và RXD để truyền nhận dữ liệu và chân 5 nối mass chung. Đặt kiểu tín hiệu của pin là Analog hay Digital qua 2 thanh ghi ANSEL và ANSELH.Hình dáng và sơ đồ chân của cổng COM: - Tên và chức năng các chân: 10 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . Xuất tín hiệu bằng cách ghi giá trị “0” hoặc “1” vào port tƣơng ứng (bit: Rx-n hay port: PORTx) Đọc giá trị của chân bằng cách đọc mức logic trên port tƣơng ứng.  Giới thiệu về cổng COM : có 2 dạng là DP25.B.ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính  Để thực hiện xuất / nhập trên 1 chân (Pin): Cài đặt đúng giá trị cho thanh ghi TRISx (hoặc bit TRISx-n). có 25 chân thƣờng dùng trong công nghiệp và DP9.C. với x/n là A. có 9 chân và thƣờng dùng nhất.E. - 5) Khối Giao Tiếp : Khối giao tiếp có chức năng giao tiếp giữa máy tính với vi điều khiển PIC16F887 hay nói cách khác nó có nhiệm vụ truyền nhận dữ liệu điều khiển giữa vi điều khiển với máy tính. . Ở đây ta dùng chuẩn giao tiếp nối tiếp RS232 qua cổng COM và sử dụng IC chuyển đổi mức tín hiệu MAX232 vì nó đơn giản và dễ cho ngƣời mới làm quen với việc lập trình giao tiếp máy tính.

Vi mạch MAX 232 có hai bộ đệm và hai bộ nhận. Thƣờng thì các đƣờng dẫn bắt tay đƣợc nối với cổng nối tiếp qua các cầu nối. Còn chân RST (chân 10/11 của vi mạch MAX ) nối với đƣờng dẫn bắt tay để điều khiển quá trình nhận. đƣợc nối với chân 9/12 của vi mạch MAX 232. -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. RxD và GND (mass).ĐỒ ÁN MÔN 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. Sơ đồ kết nối chân và kết nối cơ bản của MAX232: 11 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . điều khiển việc xuất ra dữ liệu ở cổng nối tiếp khi cần thiết. để khi không dùng đến nữa có thể hở mạch các cầu này. Cách truyền dữ liệu đơn giản nhất là chỉ dùng ba đƣờng dẫn TxD.  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 dùng trong giao diện nối tiếp với máy tính. Đƣờng dẫn điều khiển lối vào CTS. Chúng có nhiệm vụ chuyển đổi mức TTL ở lối vào thành mức +12V hoặc – 12V ở phía truyền và các mức +3…+15V hoặc -3…-15V thành mức TTL ở phía nhận.

ĐỒ Á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 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ .

D1 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính XANH 1 D2 VANG 1 D3 DO 1 D4 XANH 2 D5 SW1 1 VANG 2 D6 1 5VDC R1 R LED_CH2 Q1 A1015 C1 10uF RESET G G F E D C B A 330 5VDC Vdd Vss RD7/PSP7 RD6/PSP6 RD5/PSP5 RD4/PSP4 RD3/PSP3 RD2/PSP2 RD1/PSP1 RD0/PSP0 OSC2/CLKO OSC1/CLKI 13 14 1 5VDC LED_DV2 5VDC Q2 A1015 LED_CH1 5VDC Q3 A1015 5VDC LED_DV1 Q4 A1015 Q1 Q2 Q3 Q4 U1 DO 2 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 G G G G A B A B A B A VCC VCC VCC 5VDC 9 R15 R16 Vdd Vss RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT PIC16F877A 11 12 15 16 17 18 23 24 25 26 RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 8 9 10 D7 32 DOT VCC D8 LED7_DON_1 DOT VCC D9 LED7_DON_1 DOT VCC VCC B F F F F 5 0 RA0/AN0 RB7/PGD RA1/AN1 RB6/PGC RA2/AN2/Vref RB5 RA3/AN3/Vref + RB4 RA4/T0CKI/C1OUT RB3/PGM RA5/AN4/SS/C2OUT RB2 RB1 RB0/INT R2 R3 R5 R7 R9 R11 330 5VDC MCLR/Vpp 2 3 4 5 6 7 0 40 39 38 37 36 35 34 33 40 R4 39 R6 R8 R10 R12 R13 R14 F A B G F A B G F A B G F A B D10 LED7_DON_1 31 D E LED7_DON_1 Chương 2 : Thi Công Mạch I. Sơ Đồ Nguyên Lý Của Mạch : SW MAG-SPDT 0 SW3 INV 30 29 28 27 22 21 20 19 0 10 10 10 10 9 8 7 6 9 8 7 6 9 8 7 6 9 8 7 R17 LED_CH1 LED_DV1 LED_CH2 LED_DV2 4K7 C2 33p J2 Y1 12MHz CON5 E D Q1 C E D Q2 C E D Q3 C E D C Q4 0 5VDC 1 2 J1 6 DOT VCC SW2 C D C D C D C E E E 13 C3 33p P1 1 6 2 7 3 8 4 9 5 5VDC 5VDC C4 10uF C6 10uF COM 13 8 14 7 16 2 6 U2 R1IN R2IN T1OUT T2OUT VCC V+ GND ĐỒ ÁN MÔN HỌC 2 T2IN T1IN R1OUT R2OUT C1+ C1C2+ VC2- 10 11 12 9 1 3 4 5 C5 10uF 0 1 9 4039 0 C7 10uF 15 0 C8 MAX232 10uF 0 0 1 2 3 4 5 0 CON2 0 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ .

Khi ta điều khiển trên máy tính thì ta sẽ click vào button CONNECT để báo cho vi điều khiển biết sẽ chọn chế độ điều khiển qua RS232. Tiếp đó ta dùng 1 phím nhấn để thay đồi trạng thái đèn xanh và đỏ mỗi bên.C#. 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 . đèn xanh sáng 20. Khi không cần điều chỉnh bằng máy tính nữa thì ta nhấn button DISCONNECT để mạch trở lại hoạt động dƣới sự điều khiển trực tiếp trên mạch. Ở đâ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. 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. Ta có thể chọn ngôn ngữ lập trình trên máy tính nhƣ VB.…Ở đây em chọn ngôn ngữ lập trình C# vì nó có nhiều hàm hỗ trợ và trực quan hơn. Đối với việc điều khiển thông qua máy tính. Khi ở chế độ tự động thì các led 7 đoạn hiển thị thời gian đếm ngƣợc sau mỗi giây cho mỗi bên. Nguyên Lý 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ó. Còn ở chế độ bằng tay chỉ có led xanh va đỏ mỗi bên sáng. cụ thể là khi chuyển sang chế độ điều khiển bằng tay thì xanh 1 đỏ 2 sáng thì khi ta nhấn phím thì xanh 2 đỏ 1 sáng và cứ tiếp tục nhƣ thế để cho phép bên phần đƣờng nào đƣợc phép lƣu thông. Trong ngày khi vào buổi tối khoảng từ 21g đến 6g thì lƣợng xe lƣu thông không còn nhiều nên ta sẽ cho đèn vàng mỗi bên chớp tắt với tần số 1hz để báo chế độ ban đêm. đèn vàng sáng 5s đó là chế độ hoạt động bình thƣờng và khi cần thiết thí dụ trƣờng hợp trong giờ cao điểm hay kẹt xe giữa các giao lộ thì ta có thể chuyển sang chế độ điều khiển bằng tay dùng công tắc. 14 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . Khi check vào AUTO/MANUAL thì sẽ chọn chế độ điều khiển bằng tay và khi đó ta click vào 2 button RUN_A hay RUN_B để cho phép bên đƣợc chọn lƣu thông hay đèn xanh bên đó sáng và ngƣợc lại đèn đỏ phía còn lại sáng. Chắc chúng ta ai cũng đã hiểu rõ đèn giao thông làm việc thế nào.ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính II. 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. 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. Sau đó ta check vào checkbox AUTO/MANUAL để chọn chế độ tự động hay điều khiển tay nhƣ điều khiển trên board. Đ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.

Lưu Đồ Cho Chương Trình Chính: 15 SVTH : PHAN TẤN PHÚ 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 III. Lưu Đồ Giải Thuật Cho Chương Trình Xử Lý : 1.

Lưu Đồ Cho Chương Trình Ngắt TIMER1: 16 SVTH : PHAN TẤN PHÚ 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 2.

Lưu Đồ Cho Chương Ngắt Truyền Dữ Liệu Nối Tiếp: Ngắt RDA Nhận dữ 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 ++PC Index_xmit từ Index_rcv ++ RETURNI 17 SVTH : PHAN TẤN PHÚ 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.

b.second. PORTB = 0XFF. unsigned char rcv_data. noprotect. 0xf8. // KHOI TAO GIA TRI CHO TIMER 18 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . xmit = pin_c6. unsigned char btu. parity = n. nolvp #use delay(clock=11059000) #use fast_io(all) #use rs232(baud =9600. j = 0.index_xmit = 0.btt2=1.a la ngo ra va c0.a. 0x99.dvi1. Chương Trình Phần Mềm Cho Vi Điều Khiển PIC Viết Bắng CCS : #include<16F887.mode_cp.d. 0xb0. //********* chuong trinh con ************* //************* khoi tao ********* void initiation() { // khoi tao cho port b.c1 vao set_tris_a (0x00).minute. hs. 0xf9. set_tris_b (0x00). unsigned char connect = 'H'.date[3].dvi2. unsigned char index_rcv=5. 0x90}. INT16 t_do. // khoi tao cho bien dem cua tung cot t_DO = 24.RUN= 0. set_tris_d (0x00).chuc2.hour. // khoi tao cho bien dem timer 1 k = 0._btu. // DAT SO DEM CHO TIMER 1 T1CON = 0X35. SET_TIMER1(3035).btt1=0.chuc1.t_xanh. trisc0 = 1. rcv = pin_c7) #define mode input(pin_c0) #define toggle input(pin_c1) //********* khai bao bien ***************** INT8 j. // gan gia tri ban dau cho den do va xanh t_xanh = 19. PORTD = 0XFF. 0xa4. //xoa hien thi PORTA = 0X00. const UNSIGNED char dig[]= {0xc0. trisc1 = 1.k. noput.h> #include<KhaiBaoTGhi_16F877A. unsigned char TIMER_AB[4]. 0x80. 0x92.h> #fuses nowdt.ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính IV. 0x82.

minute = date[1]. // cho phep ngat truyen thong } //********* ngat truyen thong ************ #INT_RDA void uart_datas() { rcv_data = getc(). else { putc(TIMER_AB[index_xmit]).ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính enable_interrupts (GLOBAL).1. IF (j == 10) // khi j = 10 thi thoi gian dung 1s { k = k + 1. index_rcv ++. IF (a < 5) //thoi gian hien thi cho led vang { 19 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . } if(index_rcv == 255)index_rcv = 5. index_xmit ++. t_xanh = t_xanh . b = t_xanh. // cho phep ngat toan bo enable_interrupts (INT_RDA). else { date[index_rcv] = rcv_data. t_DO = t_do . second = date[2]. if(index_xmit == 3)index_xmit = 0. // bien k dung xac dinh thoi gian cho cot 1 IF ( (k < 26)&& (k > 0)) { a = t_DO. } //********** ngat timer 1 **************** #INT_TIMER1 VOID timer1_interrupt() //bat dau chuong trinh ngat { j++. hour = date[0]. } if (rcv_data == 250)index_rcv = 0.1.

} 20 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . t_DO = t_do . a = t_xanh. TIMER_AB[2]=b. // den vang 2 va DO 1 sang b = a. // den xanh 2 va DO 1 sang } IF ((k < 26)&& (k > 24)) // khi du 25s thi chuyen sang cot 2 { t_DO = 24. t_xanh = 19.ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính porta = 0x14. } ELSE porta = 0x0C. // den DO 2 va xanh 1 sang } TIMER_AB[0]=50. dvi2 = b % 10. TIMER_AB[1]=a. chuc2 = b / 10. // KHOI TAO LAI GIA TRI DEM BAN DAU t_DO = 24. } IF (k > 25) // bat dau hien thi cho cot 2 { b = t_DO. dvi1 = a % 10. // den DO 2 va vang 1 sang a = b. IF (b < 5) //khi den xanh du 20s thi den vang bat dau sang { porta = 0x22. } ELSE porta = 0x21. t_xanh = t_xanh .1.1. IF (k > 49) // khi cot 2 xong 25s thi chuyen ve cot 1 { k = 0. t_xanh = 19. chuc1 = a / 10.

break. break. btt2). // dung de nhin thay duoc led sang 21 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . btt1). OUTPUT_BIT(PIN_A3. break. case '5': RUN = 0.ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính SET_TIMER1 (3035). btt1). OUTPUT_BIT(PIN_A2. case '2': connect = 'H'. default: break. case '4': mode_cp = 'A'. case '6': RUN = 1. // chi led o vi tri chuc 1 sang delay_ms (1). // CAI LAI THOI GIAN CHO TIMER 1 } //*********** xu ly data nhan duoc ******************** void select_data() { switch (rcv_data) { case '1': connect = 'S'. break. // CAI LAI THOI GIAN CHO TIMER 1 j = 0. break. } } //*********** hien thi led don che do dieu khien tay**** void manual_led() { OUTPUT_BIT(PIN_A0. break. OUTPUT_BIT(PIN_A5. btt2). // dua gia tri chuc 1 ra portb portd = 0xf7. case '3': mode_cp = 'M'. } SET_TIMER1 (3035). } //*********** hien thi thoi gian ********************* void display_7seg() { portb = dig[chuc1].

btu = toggle.} btt1 = !btt1. if(hour > 5 && hour < 22) { if(connect == 'H') { if(mode == 0) { disable_interrupts(INT_TIMER1). } if (mode == 1) { 22 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . // chi led o vi tri dvi 2 sang delay_ms (1). if (btu == 0) //kiem tra nhan phim { _btu = btu. while(btu == _btu) {btu = toggle. while(true) { select_data().ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính portd = 0xff. // dung de nhin thay duoc led sang portd = 0xff. // dung de nhin thay duoc led sang portd = 0xff. // chi led o vi tri chuc 2 sang delay_ms (1).//xoa ngat timer1 porta = 0x00. // chong lem portb = dig[dvi2]. // chi led o vi tri dvi 1 sang delay_ms (1). // chong lem } //***************** chuong trinh chinh **************** VOID main () // bat dau chuong trinh chinh { initiation(). // dua gia tri chuc 2 ra portb portd = 0xfd. // dua gia tri dvi 2 ra portb portd = 0xfe. } manual_led(). // dua gia tri dvi 1 ra portb portd = 0xfb. // dung de nhin thay duoc led sang portd = 0xff. btt2 = !btt2. // chong lem portb = dig[chuc2]. // chong lem portb = dig[dvi1].

// cho phep ngat display_7seg(). output_high(pin_a1).ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính enable_interrupts(INT_TIMER1). output_low(pin_a4). if(RUN == 1)porta = 0x21. } } } else { porta = 0x00. 23 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . // cho phep ngat timer1 display_7seg(). } } } V. } if (mode_cp == 'A') { enable_interrupts(INT_TIMER1).// xoa ngat timer1 porta = 0x00. delay_ms(500). 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(). delay_ms(500). disable_interrupts(INT_TIMER1). output_low(pin_a1). output_high(pin_a4). } } if(connect == 'S') { if(mode_cp == 'M') { disable_interrupts(INT_TIMER1). else porta = 0x0c.

1). } private void RUN_B_Click(object sender.Hour. buf[0] = 250.Write(new char[] { '4' }. 0.Write(new char[] { '6' }. EventArgs e) { DateTime dt = DateTime. 1). } private void DISCONNECT_Click(object sender.Close(). FormClosingEventArgs e) { COM_2. } private void MODE_CheckedChanged_1(object sender. EventArgs e) { COM_2. 0. } private void CONNECT_Click(object sender. 1). buf[2] = (Byte)dt.index = 3.Write(new char[] { '5' }. 0.Second. int[]buffer = new int[10]. EventArgs e) { COM_2. EventArgs e) { if (MODE.Write(new char[] { '1' }. } private void timer1_Tick(object sender. } private void Form1_Load(object sender.Open(). 0. 0. 1). EventArgs e) { COM_2. EventArgs e) { COM_2. 1). private void Form1_FormClosing(object sender. Byte[] buf = new Byte[10].Minute. 0.Now.Write(new char[] { '3' }. buf[1] = (Byte)dt. EventArgs e) { COM_2. } else { COM_2. buf[3] = (Byte)dt. } } private void RUN_A_Click(object sender. 1).Checked == true) { COM_2.Write(new char[] { '2' }. 24 SVTH : PHAN TẤN PHÚ 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 } int temp = 0.

ReadByte(). COM_2. } private void COM_2_DataReceived(object sender. Thi Công Mạch: 1) Sơ Đồ Mạch In : 25 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . this. } else { buffer[index] = temp. textBox3.Write(buf. if (temp == 50) { index = 0. 0. System.textBox1. index++. 4).Ports. if (index == 10) index = 3.Text = DateTime.ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính this.SerialDataReceivedEventArgs e) { temp = COM_2.ToString(). } } } } VI.Text = buffer[0].Text = buffer[1].textBox2.ToString("HH:mm:ss").IO.Now.ToString().

ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2) Các Giá Trị Linh Kiện Sử Dụng Trong Mạch : 6 C1. R R9.R20 4K7 1 SW1 RESET 1 SW2 SW MAG-SPDT 1 SW3 INV 1 U1 PIC16F877A 26 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ .D10 LED7_DON_1 1 J1 CON2 1 J2 CON5 1 P1 COM 4 Q1.C6.R7.R2.R5.Q3.C2 33p 1 D1 XANH 1 1 D2 VANG 1 1 D3 DO 1 1 D4 XANH 2 1 D5 VANG 2 1 D6 DO 2 4 D7.R19.R16.D9.D8.Q4 A1015 12 R1.R8.C4.R18.R14 330 6 R15.R10.R12.R3.R17.Q2.R4.R13 2 R11.C7.R6.C8 10uF 2 C3.C5.

Tiếp đến ta tiến hành vẽ mạch trên phần mềm Orcad và chuyển sang Playout Plus để vẽ mạch in cho mạch. 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 thầy cô truyền đạt trong nhiều môn học đã qua cũng nhƣ học hỏi thêm đƣợc nhiều kinh nghiệm thực tế về thiết kế và thi công một 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. Biên dịch chƣơng trình và nạp vào chạy mô phỏng thấy mạch hoạt động theo yêu cầu thiết kế đặt ra. Sau khi thi công xong mạch ta nạp chƣơng trình diều khiển cho PIC16F887 và test mạch.… Tài Liệu Tham Khảo :  Giáo trình vi xử lý 2 – Nguyễn Đình Phú-ĐH SƢ PHẠM KỸ THUẬT TPHCM  Báo cáo vi xử lý 2 lớp 061012.net  Diễn đàn điện tử Việt Nam : www.HCM: www. 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 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. 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. Từ đây.spkt.picvietnam.net  Diễn đàn sinh viên khoa Điện.com. 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 bằng ngôn ngữ C# nên còn rất nhiều hạn chế và thiếu sót.Nguyễn Duy Tƣởng  Trang tìm kiếm : www.net 27 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ .Điện Tử trƣờng Đại Học Bách Khoa Tp.ĐỒ ÁN MÔN HỌC 2 21 22 1 1 U2 Y1 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính MAX232 12MHz VII. 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. Sau khi thực hiện đề tài em nghĩ mình sẽ tìm hiểu thêm về các dòng vi điều khiển khác cũng nhƣ trau dồi thêm về khả năng lập trình bằng ngôn ngữ C cũng nhƣ C# để có thể nghiên cứu sâu hơn cho đề tài đồ án tốt nghiệp sắp tới chẳng hạn nhƣ điều khiển thiết bị qua GPS hay mạng internet.google.vn  Diễn đàn sinh viên trƣờng Đại Học Sƣ Phạm Kỹ Thuật Tp.deeforum.HCM : www. Kết quả thực hiện : 1) Kết Quả : Sau khi thiết kế sơ đồ nguyên lý ta tiến hành vẽ mạch mô phỏng trên proteus và viết chƣơng trình cho PIC16F887 bằng phần mềm CCS.dientuvietnam.net  Diễn đàn điện tử Việt Nam : www.

alldatasheet.com 28 SVTH : PHAN TẤN PHÚ GVHD : Cô TRƢƠNG THỊ BÍCH NGÀ . mikroe.ĐỒ ÁN MÔN HỌC 2 Đề tài: Mạch Đèn Giao Thông Có Giao Tiếp Với Máy Tính  Webside : www.com  Trang tra cứu linh kiện : www.

You're Reading a Free Preview

Tải về
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->