1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

27 1,6K 17

Đ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

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 907,2 KB

Nội dung

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

Trang 1

Mạch Đèn Giao Thông Có Giao Tiếp Với Máy

Tính Sử Dụng PIC16F887

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

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

II Sơ Đồ Khối : 4

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

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

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

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

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

5) Khối Giao Tiếp : 11

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

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

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

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

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

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

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

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

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

Trang 2

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

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

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

1) Kết Quả : 28

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

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

Trang 3

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

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 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”.

Trong cuộc sống hằng ngày, 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 Nó quá phổ biến đến mức trở nên quen thuộc với ngườitham 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ốicủa khuôn khổ pháp luật quy định xanh chạy, đỏ dừng, vàng là chuẩn bị chuyển sang đỏ

Như đã quan sát các trạm đèn giao thông tại các 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 bằng tay hay chọn chế độ cho đường ưu tiên hơn, có trạmkhông cần hộp điều khiển, 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 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ầnnhấ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ềukhiển tiện lợi và nhanh chóng hơn

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ộtphần nhỏ của ứng dụng.Cũng từ đây em nghĩ nếu có thể nghiên cứu nhiều hơn thì em sẽ pháttriển đề tài theo hướng điều khiển qua internet Vì internet ngày nay thật sự là một công cụ hữuích cho nhân loại 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, vậnhành và giám sát một cách nhanh chóng

II Sơ Đồ Khối :

Từ yêu cầu đặt ra cho đề tài, 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ị Đó chính là các đèn tín hiệu xanh, đỏ, vàng và các led hiển thị thời gian còn lại củamỗi bên Kế đến phải nhắc tới là bộ phận xử lý, đâ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 Tiếp theo là phần điều khiển dùng để cài đặt thiết lập hay lựachọn chế độ 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ếpgiữa máy tính với vi điều khiển Và một khối cực kỳ quan trọng mà trong bất kỳ mạch điện nàocũng không thể thiếu đó chính là khối nguồn, nhưng do sử dụng nguồn riêng nên em xin khôngtrình bày về phần nguồn của mạch

Từ đó, ta có thể mô tả mô hình mạch cho đề tài bằng sơ đồ khối như sau:

Trang 4

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

 Đèn giao thông: các led đèn tín hiệu giao thông xanh, đỏ, và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

 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

 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ế độ khi có yêu cầu, giao tiếp truyền nhận dữ 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 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

Trang 5

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

Đây là các led đơn xanh, đỏ, vàng dùng làm các đèn tín hiệu để điều khiển các phương tiệnlưu thông trên đường theo đúng luật giao thông quy định Theo đó, khi tín hiệu đèn xanh bênphần đường nào sáng thì các phương tiện bên đó được phép lưu thông Ngược lại với đèn đỏ thìphải dừng lại 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 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ôngqua vi điều khiển

D1 V1 X1

330 330 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ầnphả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

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ạngthái của các tín hiệu xanh, đỏ, 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

Trang 6

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ạncũng như led đơn :

+ Dòng qua mỗi led : 10mA

Trang 7

Để 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ểmchỉ 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 Để 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 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 khicấp mức “0” cho A1015.

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 giaothô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útnhấn dùng để chuyển trạng thái giữa các bên 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, điện trở kéo lên nguồn dùng hạn dòng vào pic và cho mức “1” khikhông tác động

Trang 8

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 độngcũ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 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 Ở đây, em chọnPIC16F887 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êncứu của sinh viên Việc chọn PIC mà không chọn các họ khác như ATMEGA, 89X, ARM,… 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àivới PIC

 Một số thông số cơ bản về PIC16F887:

- Vi điều khiển 8-bit của Microchip, thuộc dòng Low-power

- Kiến trúc Harvard (vs Von Neumann), tập lệnh RISC (Reduced Instructions SetComputer) (vs Complexed Instructions Set Computer) với 35 lệnh

- Thạch anh gắn ngoài tối đa 20MHz

- Tầm điện áp hoạt động 2.0V- 5.5V

- Dòng điện vào/ ra tối đa: 25 mA

- 5 port, 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ộ), ADC (14 kênhADC 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ữ trên 40 năm

 Sơ đồ chân của PIC16F887:

Trang 9

 Sơ đồ nối dây cơ bản để PIC16F887 hoạt động:

 Để thực hiện xuất / nhập trên 1 chân (Pin):

33 34 35 36 37 38 39 40 15

16 17 18 23 24 25 26

19 20 21 22 27 28 29 30 13

14

32

11 31

12

1

8 9 10

TX

4M hz XTA L

R X

MAIN MCU PIC16F887

P G C

C _32 31

104 C _X1 22 p

P G D

Trang 10

- Cài đặt đúng giá trị cho thanh ghi TRISx (hoặc bit TRISx-n), với x/n là A,B,C,D,E.

- Đặt kiểu tín hiệu của pin là Analog hay Digital qua 2 thanh ghi ANSEL và ANSELH

- 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

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óicá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ệuMAX232 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

 Giới thiệu về cổng COM : có 2 dạng là DP25, có 25 chân thường dùng trong công nghiệp và DP9, có 9 chân và thường dùng nhất 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

- Hình dáng và sơ đồ chân của cổng COM:

- Tên và chức năng các chân:

Trang 11

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 TTLnê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 dùng trong giao diện nốitiếp với máy tính 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

Vi mạch MAX 232 có hai bộ đệm và hai bộ nhận Đường dẫn điều khiển lối vào CTS,điều khiển việc xuất ra dữ liệu ở cổng nối tiếp khi cần thiết, được nối với chân 9/12 của vi mạchMAX 232 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ềukhiển quá trình 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ầunối, để 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, RxD và GND (mass)

- Sơ đồ kết nối chân và kết nối cơ bản của MAX232:

Trang 12

- Sơ đồ kết nối giữa cổng COM và MAX232 tới vi điều khiển:

Trang 13

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

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

7 8 9

F VCC A B DOT

C VCC D E

7 8 9

F VCC A B DOT

C VCC D E

7 8 9

F VCC A B DOT

C VCC D E

7 8 9

F VCC A B DOT

C VCC D E

Trang 14

II 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ứcnă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ônglàm việc thế 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ồnmạ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áng5s đó 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 haykẹ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 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ể là khi chuyển sangchế độ đ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 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 Còn ở chế độ 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 1giao 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áytính như VB,C#,…Ở đây em chọn ngôn ngữ lập trình C# vì nó có nhiều hàm hỗ trợ và trực quanhơn

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ềukhiển biết sẽ chọn chế độ điều khiển qua RS232 Sau đó ta check vào checkboxAUTO/MANUAL để chọn chế độ tự động hay điều khiển tay như điều khiển trên board Khicheck vào AUTO/MANUAL thì sẽ chọn chế độ điều khiển bằng tay và khi đó ta click vào 2button 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 Khi không cần điều chỉnh bằng máy tính nữa thì ta nhấnbutton DISCONNECT để mạch trở lại hoạt động dưới sự điều khiển trực tiếp trên mạch

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ềunê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

Trang 15

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

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

Trang 16

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

Trang 17

Index_rcv =0

Index_rcv ++

RETURNINgắt RDA

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

Trang 18

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

#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

j = 0; // khoi tao cho bien dem timer 1

k = 0; // khoi tao cho bien dem cua tung cot

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w