Mục lụcĐầy đủ mạch mô phỏng macnhj in và thuyết minh bằng word
Lời nói đầu. 4
Chương 1 . Phân tích hệ thống.5
1.1 Tổng quan về hệ thống đèn giao thông.5
1.1.1. Mạch dùng IC số.5
1.1.2. Vi mạch dùng kỹ thuật vi xử lí.6
1.1.3.Điều khiển bằng vi điều khiển.6
1.1.4. Điều khiển bằng PLC6
1.2 Xác định bài toán:8
1.2.1 Xác định bài toán.8
1.2.2 Yêu cầu của bài toán thiết kế hệ thống điều khiển đèn giao thông.8
1.2.3 Giải pháp công nghệ.10
1.2.4 Giải pháp thiết kế.11
1.2.5 Yêu cầu và giới hạn của hệ thống điều khiền đèn giao thông dùng vi điều khiển.11
Chương 2.THIẾT KẾ HỆ THỐNG12
2.1 Sơ đồ khối tổng quan của hệ thống. 12
2.2 Giản đồ thời gian.13
2.3 Sơ đồ nguyên lý.14
2.3.1 Giải thích các khối.14
2.3.1.1. Bàn phím14
2.3.1.2. Khối hiển thị15
2.3.1.3 Khối điều khiển trung tâm16
2.3.1.3.1 Khối reset16
2.3.1.3.2 Khối tạo xung giao động. 17
2.3.1.3.3 Khối vi điều khiển. 17
2.3.1.4 Khối nguồn. 18
2.3.2 Nguyên lý hoạt động.18
2.4 Sơ đồ thuật toán điều khiển hệ thống đèn giao thông.19
2.4.1. Chương trình chính.19
2.4.2.Chương trình ngắt21
2.4.3. Chương trình led7. 22
2.4.4 Chương trình hiển thị23
2.4.5 Chương trình set (hiển thị thời gian cài đặt cho hệ thống)23
2.5 Lựa chọn linh kiện.24
2.5.1 Bộ điều khiển 8 bit Pic 16F877A.24
2.5.1.1.Tổng quan về pic. 24
2.5.1.2 Giới thiệu về PIC 16F877A25
2.5.1.2.1.Sơ đồ chân. 25
2.5.1.2.2. Các thông số của PIC 16F877A25
2.5.1.2.3. Cổng xuất nhập (I/O port)26
2.5.1.2.4. Timer.29
2.5.2 LED 7 đoạn. 33
2.5.3 Diot phát quang (LED)34
2.5.5 Điện trở.35
2.5.6 Tụ điện. 35
2.5.7 Thạch anh. 35
2.5.8 Nút bấm (Button):35
2.5.9 IC ổn áp 7805. 35
Chương 3. Xây dựng hệ thống.36
3.1 Chương trình điều khiển. 36
3.2. Sơ đồ mạch in (layout)38
3.2.1. Mạch điều khiển trung tâm39
3.2.2. Mạch bàn phím39
Chương 4 Mạch chạy mô phỏng. 40
Kết luận. 41
Tài liệu tham khảo. 42
42 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 9830 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Đồ án Đèn giao thông sử dụng pic, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Nhận xét của giáo viên hướng dẫn
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
Thái Nguyên, ngày....tháng 5 năm 2011.
Giáo viên hướng dẫn
(Ký ghi rõ họ tên)
Nhận xét của giáo viên chấm
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
Thái Nguyên, ngày....tháng 5 năm 2011 Giáo viên hướng dẫn
(Ký ghi rõ họ tên)
Mục lục
Lời nói đầu
Ngày nay cùng với sự phát triển đi lên của xã hội, các phương tiện tham gia giao thông cũng gia tăng không ngừngvà hệ thống giao thông ngày càng phức tạp .Vì vậy để đảm bảo giao thông được an toàn và thông suốt thì việc sử dụng các hệ thống tín hiệu để điều khiển và phân luồng tại các nút giao thông là rất cần thiết.
Nhận thấy đây là vấn đề rất sát thực, với những kiến thức đã được trang bị trong quá trình học tập và nghiên cứu tại trường Đại học Kỹ Thuật Công Nghiệp chúng em đã lựa chọn đề tài:”Thiết kế và mô phỏng hệ thống điều khiển đèn giao thông cho ngã tư ”.
Trong quá trình thực hiện đồ án chúng em đã nhận được sự chỉ bảo, hướng dẫn tận tình của các thầy cô trong khoa đặc biệt đó là sự chỉ bảo của thầy ThS.Nguyễn Văn Huy. Chúng em xin trân thành cảm ơn sự chỉ bảo của các thầy cô!
Trong khi thực hiện đồ án do kiến thức còn hạn chế cũng như chúng em chưa có nhiều điều kiện để đi khảo sát thực tế, với một khoảng thời gian ngắn thực hiện, do vậy mà đồ án của chúng em còn nhiều thiếu sót mong các thầy cô đóng góp và bổ xung ý kiến đề đồ án của chúng em đươc hoàn thiện hơn!
Chúng em xin chân thành cảm ơn!
Ngày 25 tháng 5 năm 2011.
Nhóm sinh viên thưc hiện:
Trần Danh Long.
Phạm Quang Luận.
Nguyễn Tuấn Ninh.
Chương 1 . Phân tích hệ thống.
1.1 Tổng quan về hệ thống đèn giao thông.
Ngày nay cùng với sự phát triển của khoa học kỹ thuật, xã hội ngày càng văn minh và hiện đại, sự phát triển ở đô thị ngày một đi lên. Nhu cầu về giao thông ngày càng trở nên cấp thiết, nhất là trong các khu vực thành thị. Do nhu cầu của đời sống con người, đặc biệt là nhu cầu đi lại, các loại phương tiện giao thông đã tăng một cách chóng mặt. Riêng tại Việt Nam số lượng xe máy trong những năm qua tăng một cách đột biến, mật độ xe lưu thông trên đường ngày một nhiều, trong khi đó hệ thống đường xá tại Việt Nam còn quá nhiều hạn chế nên thường gây ra các hiện tượng như kẹt xe, ách tắc giao thông, đặc biệt là tai nạn giao thông ngày càng phổ biến trở thành mối hiểm họa cho nhiều người.
Vì lý do đó các luật giao thông lần lượt ra đời và được đưa vào sử dụng một cách lặng lẽ rồi dần trở nên phổ biến như hiện nay. Trong đó hệ thống đèn giao thông là công cụ điều khiển giao thông công cộng thực tế và hiệu quả có vai trò rất lớn trong việc đảm bảo an toàn và giảm thiểu tai nạn giao thông.
1.1.1. Mạch dùng IC số.
Với mạch dùng IC số có các ưu điểm sau:
- Tổn hao công suất bé, mạch có thể dùng pin hoặc acquy.
- Giá thành rẻ .
- Mạch đơn giản dễ thực hiện. Song với việc sử dụng kỹ thuật số rất khó khăn trong việc thay đổi chương trình. Muốn thay đổi một yêu cầu nào đó của chương trình thì buộc lòng phải thay đổi phần cứng. Do đó mỗi lần phải lắp lại mạch dẫn đến tốn kém về kinh tế mà nhiều khi yêu cầu đó không thực hiện được nhờ phương pháp này.
Với sự phát triển mạnh mẽ của ngành kỹ thuật số đặc biệt là cho ra đời các họ vi xử lý, vi điều khiển hay PLC đã giải quyết được những bế tắc và kinh tế hơn mà phương pháp dùng IC số kết nối lại không thực hiện được.
1.1.2. Vi mạch dùng kỹ thuật vi xử lí.
Ngoài những ưu điểm như đã liệt kê trong phương pháp dùng IC số thì phương pháp dùng kỹ thuật vi xử lý con có những ưu điểm sau:
Ta có thể thay đổi chương trình một cách linh hoạt bằng việc thay đổi phần mềm trong khi đó phần cứng không thay đổi mà mạch dùng IC số không thể thực hiện được mà nếu có thể thực hiện được thì cũng cứng nhắc mà người công nhân cũng khó tiếp cận, dễ nhầm.
Số linh kiện để sử dụng trong mạch ít hơn
Mạch đơn giản hơn so với mạch dùng IC số. Song do phần cứng của vi xử lý chỉ sử dụng CPU đơn chíp mà không có các bộ nhớ Ram, Rom, các bộ timer, hệ thống ngắt. Nên việc viết chương trình gặp nhiều khó khăn. Do vậy hiện nay để khắc phục những nhược điểm trên hiện nay người ta thường dùng bộ vi điều khiển.
1.1.3.Điều khiển bằng vi điều khiển.
Ngoài những ưu điểm có của hai phương pháp trên, phương pháp này còn có những ưu điểm sau:
Trong mạch có thể sử dụng ngay bộ nhớ trong đối với chương trình có quy mô nhỏ, rất tiện lợi mà vi xử lý không thực hiện được.
Nó có thể giao tiếp nối tiếp trực tiếp với máy tính mà vi xử lý cũng giao tiếp được nhưng là giao tiếp song song nên cần có linh kiện chuyển đổi dữ liệu từ song song sang nối tiếp để giao tiếp với máy tính.
Do trong vi điều khiển có sử dụng các bộ timer, các hệ thống ngắt, câu lệnh đơn giản nên việc lập trình đơn giản, dễ thực hiện.
Phù hợp với kiến thức của sinh viên.
1.1.4. Điều khiển bằng PLC
Với phương pháp điều khiển bằng PLC có những ưu điểm sau:
Làm việc chắc chắn, liên tục và có tuổi thọ cao.
Chức năng điều khiển thay đổi dễ dàng bằng thiết bị lập trình (máy tính, màn hình) mà không cần thay đổi phần cứng nếu không có yêu cầu thêm bớt các thiết bị xuất nhập.
Có thể làm việc trong nhiều điều kiện khác nhau.
Hướng dẫn người sử dụng đơn giản.
Thời gian hoàn thành một chu trình điều khiển rất nhanh (vài ms). Tuy phương pháp này có nhiều ưu điểm hơn vi xử lý nhưng việc áp dụng trong các hệ thống nhỏ là không thích hợp bởi giá thành rất cao.
Ví dụ hệ thống đèn giao thông hiện nay ở Thái Nguyên.
(đèn đỏ tại ngã tư đường Minh Cầu giao nhau với đường Hoàng Văn Thụ).
Hình 1.1. Khảo sát sơ bộ tại ngã tư đường Minh Cầu.
Hệ thống đèn giao thông tại ngã tư này gồm :
Có 4 cột đèn.
Thời gian sáng của các đèn Tđỏ = 28 giây,Tvàng = 3 giây, Txanh = 25 giây.
Hiển thị thời gian đếm ngược bằng led ma trận.
Gồm 3 đèn tín hiệu Xanh, Đỏ ,Vàng .
Chỉ hoạt động ở một chế độ.
Không có chế độ phân làn xe ở các thời điểm.
Với các phương pháp đã nêu ở trên ở đây chúng em lựa chọn giải pháp điều khiển bằng vi điều khiển bởi đây là phương pháp phù hợp và tối ưu nhất với đề tài.
1.2 Xác định bài toán.
1.2.1 Xác định bài toán.
Thiết kế hệ thống điều khiển đèn giao thông tại ngã tư dùng vi điều khiển gồm:
4 cột đèn, có đèn tín hiệu phân luồng rẽ trái trước.
Hiển thị thời gian đếm lùi trên led 7 thanh ở vị trí lưng trừng cột và trên đỉnh của cột đèn.
1.2.2 Yêu cầu của bài toán thiết kế hệ thống điều khiển đèn giao thông.
Trước tình hình phương tiện tham gia giao thông ngày càng gia tăng không ngừng và hệ thống giao thông nước ta ngày càng phức tạp. Dẫn đến tình trạng ùn tắc và tai nạn giao thông ngày càng gia tăng. Vì vậy để đảm bảo giao thông được an toàn và thông suốt thì việc sử dụng các hệ thống tín hiệu để điều khiển và phân luồng tại các nút giao thông là rất cần thiết. Với tầm quan trọng như vậy hệ thống điều khiển tín hiệu giao thông cần đảm bảo các yêu cầu sau:
Đảm bảo hoạt động một cách chính xác,liên tục trong thời gian dài.
Độ tin cậy cao.
Đảm bảo làm việc ổn định, lâu dài.
Dễ quan sát cho người đi đường.
Chi phí nhỏ, tiết kiệm năng lượng.
Giả sử có một ngã tư như hình vẽ:
Hình 1.3. Sơ đồ mô phỏng hoạt động của 1 hệ thống đèn giao thông
Có chu kỳ đèn tín hiệu T= TĐỏ + TXanh + TVàng
Trong đó :
TĐỏ : Là thời gian đèn đỏ sáng.
TXanh : Là thời gian đèn xanh sáng.
TVàng : Là thời gian đèn vàng sáng.
TĐỏ = TXanh + TVàng.
Xét tại thời điểm xét bài toán thì:
TH 1: Đèn 1 xanh sáng, đèn 2 đỏ sáng.
Khi đó hệ thống sẽ cho phép các hướng sau đi:
* B1 A1 D2 A2
D1 B2
C2 C2
Nếu như không có phân làn, ưu tiên hướng đi thì dễ gây ra tai nạn, ùn tắc tại các điểm giao cắt (E, F) như trên hình vẽ.
è Từ thực tế đó ta thiết kế hệ thống có thêm chỉ dẫn phân làn ưu tiên cho các hướng như sau: B1 đến C2 và D2 đến A1.
Hình 1.2. Mô phỏng hệ thống định thiết kế
TH 2: đèn 1 vàng sáng và đèn 2 đỏ sáng thì để cảnh báo chuyển sang TH 3.
TH 3: đèn 1 đỏ sáng và đèn 2 xanh sáng thì ta thiết kế tương tự như TH trên.
1.2.3 Giải pháp công nghệ.
Mạch điều khiển dùng vi điều khiển.
Hiện thị thời gian dùng led 7 đoạn.
Đèn báo hướng ưu tiên dùng đèn led đơn.
Các đèn báo dùng led đơn.
Bàn phím để reset và đặt thời gian cho hệ thống (thời gian 1 chu kỳ đèn).
1.2.4 Giải pháp thiết kế.
- Thiết kế mạch mô phỏng trên phần mềm Proteus 7.
- Công cụ lập trình: phần mềm PIC C Compiler (CCS).
- Thiết kế mạch in bằng phần mềm Orcad 10.5.
1.2.5 Yêu cầu và giới hạn của hệ thống điều khiền đèn giao thông dùng vi điều khiển.
Yêu cầu:
Hoạt động chính xác.
Mạch điện đơn giản.
Giá thành thấp tính ứng dụng trong thực tế cao.
Có khả năng mở rộng.
Giới hạn:
Có sự sai lệch trong thời gian so với thời gian thực.
Khó liên kết với các hệ thống giám sát chung của hệ thống giao thông.
Chương 2. THIẾT KẾ HỆ THỐNG
2.1 Sơ đồ khối tổng quan của hệ thống
Khối Nguồn.
Khối hiện thị.
Khối điều khiển trung tâm.
Bàn phím
Hình 2.1: Sơ đồ khối tổng quan của hệ thống
Trong đó:
Khối nguồn:
Nguồn 1 chiều điện áp 5V cấp cho vi điều khiển, led hiển thị.
Khối điều khiển trung tâm:
Vi điều khiển trung tâm.
Phần mềm điều khiển.
Khối hiển thị:
Led 7 đoạn dùng nguồn 1 chiều hiện thị thời gian đếm ngược của các đèn.
Đèn phân làn, chỉ dẫn, đèn xanh, đèn vàng, đèn đỏ: led đơn sử dụng nguồn 1 chiều.
Bàn phím: bàn phím đặt thời gian sáng của các đèn, reset và bắt đầu cho hệ thống hoạt động.
2.2 Giản đồ thời gian.
Hình 2.2: Giản đồ thời gian của các đèn
Chú thích:
+ Trên giản đồ thời gian có 3 đèn màu(Xanh, Vàng, Đỏ) khi trạng thái ở mức 1 tức là đèn đó sáng, mức 0 đèn đó tắt. Chu kỳ sáng tắt các đèn được lặp đi lặp lại như trên giản đồ.
Thứ tự sáng Xanh => Vàng => Đỏ.
Có ưu tiên khi đèn Xanh sáng( Ưu tiên 1 và ưu tiên 2 như đã trình bày ở trên; Tg Xanh sáng = Tg xanh rẽ trái+ Tg xanh đi thẳng và rẽ phải).
2.3 Sơ đồ nguyên lý.
Hình 2.3: Sơ đồ nguyên lý mô phỏng hệ thống
2.3.1 Giải thích các khối.
2.3.1.1. Bàn phím
Hình 2.4 Sơ đồ nguyên lý khối bàn phím
Khối nút có tác dụng để đặt thời gian (chu kỳ của đèn xanh) cho hệ thống hoạt động và bắt đầu chạy hệ thống.
Khối nút bấm được chống rung bằng phần mềm và phần cứng
Chống rung bằng phần mềm: tạo khoảng thời gian trễ giữa các lân bấm phím
Chống rung bằng phần cứng nối thêm tụ 10µF mắc song song với phím bấm
Trong hệ thống này khối nút bấm sẽ được thiết kế riêng trên 1 bo mạch cùng với nút bấm của khối reset
Nguyên lý hoạt động .
Khi cấp nguôn nếu như không có phím nào được bấm hệ thông sẽ ở trạng thái chờ. Nếu các phím bấm nối với cổng RE0 và RE1 của PIC được bấm (ứng với mức logic 0) thì chương trình sẽ chạy theo thời gian thiết lập khi bấm phím start (nối với cổng RE2). Nếu các phím SET TIME không được bấm thì khi bấm phím Start chương trình sẽ chạy theo thời gian mặc định đã đặt với chu kỳ đèn là: Rẽ trái 10s,đi thẳng 17s ,vàng 3s và đỏ là 30s ở cả hai nhánh.
2.3.1.2. Khối hiển thị
Hình 2.5. Sơ đồ nguyên lý khối hiển thị
Đèn xanh sáng ứng với cổng RB0 (của nhánh 1) và RB4 (của nhánh 2) được xuất mức logic 1 mở tranzitor Q1 và Q5 khuếch đại dòng điện và đưa vào đèn tín hiệu (đèn led).
Đèn xanh đi thẳng sáng ứng với cổng RB1 (của nhánh 1) và RB5 (của nhánh 2) được xuất mức logic 1 mở tranzitor Q2 và Q6 khuếch đại dòng điện và đưa vào đèn tín hiệu (đèn led).
Đèn vàng sáng ứng với cổng RB2 (của nhánh 1) và RB6 (của nhánh 2) được xuất mức logic 1 mở tranzitor Q3 và Q7 khuếch đại dòng điện và đưa vào đèn tín hiệu (đèn led).
Đèn đỏ sáng ứng với cổng RB3 (của nhánh 1) và RB7 (của nhánh 2) được xuất mức logic 1 mở tranzitor Q4 và Q8 khuếch đại dòng điện và đưa vào đèn tín hiệu (đèn led).
Các đèn tín hiệu được nối chung âm.
Led 7 thanh là loại được nối chung anot. Mỗi cột đèn sẽ có 2 led 7 thanh hiện thị thời gian đếm ngược. Chân anot chung của các led được điều khiển thông qua cổng RC0 và RC1 (mức logic 1) các thanh a,b,c ,d ,e ,f,g của led được điều khiển bằng cổng RD (mức logic 0) của PIC (thanh a-RD0, thanh b-RD1, thanh c-RD2, thanh d-RD3, thanh e-RD4, thanh f-RD5, thanh g-RD6).
Khi có tín hiệu điều khiển mức logic 1 ở chân RC0 thì led hàng chục sẽ được mở và thanh nào được nối với mức 0 sẽ sáng (tín hiệu điều khiển logic 0 ở cổng RD). Khi có tín hiệu điều khiển mức logic 1 ở chân RC1 thì led hàng đơn vị sẽ được mở và thanh nào được nối với mức 0 sẽ sáng (tín hiệu điều khiển logic 0 ở cổng RD).
2.3.1.3 Khối điều khiển trung tâm
Điều khiển các khối khác thông qua phầm mềm điều khiển: xuất mức logic 0 hay 1 ra các cổng RB, RC, RD và nhận tín hiệu logic từ cổng RE
Khối điều khiển trung tâm gồm các khối nhỏ: Khối vi điều khiển, khối tạo xung giao động, khối reset.
2.3.1.3.1 Khối reset.
Hình 2.6. Sơ đồ khối reset
Khối RESET có tác dụng đưa vi điều khiển về trạng thái ban đầu. Khi nút Reset được ấn điện áp +5V từ nguồn được nối vào chân Reset của vi điều khiển được chạy thẳng xuống đất lúc này điện áp tại chân vi điều khiển thay đổi đột ngột về 0, vi điều khiển nhận biết được sự thay đổi này và khởi động lại trạng thái ban đầu cho hệ thống.
2.3.1.3.2 Khối tạo xung giao động.
Hình 2.7 Sơ đồ nguyên lý khối tạo xung dao động
Đây là bộ dao động thạch anh có tác dụng tạo xung nhịp với tần số 20MHz cho vi điều khiển hoạt động. Hai đầu này được nối vào 2 chân XTAL1 và XTAL2 của vi điều khiển.
2.3.1.3.3 Khối vi điều khiển.
Hình 2.8. Sơ đồ chân PIC16F877A
Các đèn tín hiệu được điều khiển thông qua cổng RB, Led 7 thanh được điều khiển bằng cổng RD và RC của PIC 16F877A.
Khối nút bấm được nối vào các chân 9,10, 11(RE0,RE1,RE2)
Khối dao động nối vào chân 13 14(OSC1 ,OSC2).
Khối nguồn nối vào chân 11,12 và 31, 32. Vcc vào chân 11 và 32.GND vào chân 12 và 31.
Khối Reset nối vào chân 1 (MCLR).
2.3.1.4 Khối nguồn.
Hình 2.9. Sơ đồ nguyên lý khối nguồn
Đây là mạch dùng để tạo ra nguồn điện áp chuẩn +5V. Sử dụng IC7805.Đầu vào là điện áp xoay chiều sau khi được biến đổi qua máy biến thế, đưa vào bộ Diod cầu để cho ra dòng điện một chiều( lúc này điện áp nằm trong khoảng từ 7->10V). Sau khi đi qua IC ổn áp 7805 sẽ tạo ra nguồn điện áp chuẩn +5V cung cấp cho mạch.IC ổn áp 7805: đầu vào > 7V đầu ra 5V, 500 mA. Mạch ổn áp: cần cho vi điều khiển vì nếu nguồn cho vi điều khiển không ổn định thì sẽ treo vi điều khiển, không chạy đúng hoặc reset liên tục thậm chí là chết vi điều khiển.
2.3.2 Nguyên lý hoạt động.
Khi ấn nút Start hệ thống sẽ hoạt động theo thơi gian mặc đinh hoặc thời gian đặt.
Thời điểm đầu tiên đèn xanh rẽ trái ở nhánh 1 và đèn đỏ ở nhánh 2 sẽ sáng.
Thời điểm thứ 2 đèn xanh đi thẳng và đèn đỏ ở nhánh 2 sáng.
Thời điểm thứ 3 đèn vàng ở nhánh 1 và đèn đỏ ở nhánh 2 sáng.
Thời điểm thứ 4 đèn đỏ ở nhánh 1 và đèn xanh rẽ trái ở nhánh 2 sáng.
Thời điểm thứ 5 đèn đỏ ở nhánh 1 và đèn xanh đi thẳng ở nhánh 2 sáng.
Thời điểm thứ 6 đèn đỏ ở nhánh 1 và đèn vàng ở nhánh 2 sáng.
Đồng thời trên các led sẽ hiện thị thời gian đếm ngược dần xuống 00 theo thời gian trễ là 1s. Sau đó hệ thống sẽ lặp lại trạng thái hoạt động từ thời điểm đầu tiên.
Nếu ấn nút Reset hệ thống sẽ trở về trạng thái chờ ban đầu.
2.4 Sơ đồ thuật toán điều khiển hệ thống đèn giao thông.
2.4.1. Chương trình chính.
Begin
Chạy theo thời gian mặc định
Chương trình chính
Thiết lập thời gian
Kiểm tra nút ấn
kt=0
Kt=1
Hiển thị
Hinh 2.10. Sơ đồ thuật toán chương trình chính
Bắt đầu chương trình chính sẽ kiểm tra phím bấm :
Nếu kt=0 không thay đổi thời gian hoạt động và chương trình sẽ chạy theo thời gian mặc định đặt sẵn
Đèn xanh rẽ trái sáng 10s,
Đèn xanh đi thẳng sáng 17s.
Đèn vàng sáng 3s.
Đèn đỏ sáng 30s).
Nếu biến kt=1 có nghĩa là đã thay đổi thời gian hoạt động của đèn.
Đèn xanh rẽ trái sáng (Tđặt/3)(s).
Đèn xanh đi thẳng sáng Tđặt-(Tđặt/3+3)(s).
Đèn vàng sáng 3s.
Đèn đỏ sáng Tđặt(s).
Chạy vào chương trình ngắt sau 1s thì thời gian sẽ giảm xuống 1 và xuất tín hiệu điều khiển ra các đèn. Chương trình hiển thị sẽ hiển thị thời gian đếm ngược ra các LED 7 đoạn.
2.4.2.Chương trình ngắt
begin
END
Tăng biến count lên 1 (++count)
count=0
Count=75
F
T
Giảm time xuống 1 đơn vị (time--)
count=0
time=t3
time=-1
F
T
time=t3
Hình 2.11 .Sơ đồ thuật toán điều khiển chương trình ngắt
2.4.3. Chương trình led7
Begin
L1=((Time – t1)/1)%10.
L2=((Time – t1)/10)%10.
Time >=t1
F
T
Xuất mã Led ra cổng D.
L1=(time/ 1) % 10.
L2=(time/ 10) % 10.
End.
Hình 2.12 .Sơ đồ thuật toán điều khiển chương trình led7
2.4.4 Chương trình hiển thị
Begin
Xuất tín hiệu điều khiển đèn ra cổng RB:output_b(den[d])
Gọi hàm led7()
Kiểm tra time
Đăt lại biến d
Hình 2.13 .Sơ đồ thuật toán điều khiển chương trình hiển thị
2.4.5 Chương trình set (hiển thị thời gian cài đặt cho hệ thống)
Begin
L1=(time/ 1) % 10.
L2=(time/ 10) % 10.
Tăng biến i lên 1 đơn vị từ
i=10
Xuất mã led ra cổng RD
F
T
END
Hình 2.14 .Sơ đồ thuật toán điều khiển chương trình set
2.5 Lựa chọn linh kiện.
2.5.1 Bộ điều khiển 8 bit Pic 16F877A.
2.5.1.1.Tổng quan về pic.
a. PIC LÀ GÌ ?
PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch là“máy tính thông minh khả trình”do hãng Genenral Instrument đặt tên cho vi điều khiển đầu tiên của họ: PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên cứu phát triển thêm và từ đó hình thành nên dòng vi điều khiển PIC ngày nay.
b. Tại sao lại dùng PIC mà không phải là các loại vi điều khiển khác.
Hiện nay trên thị trường có rất nhiều họ vi điều khiển như 8051, Motorola 68HC, AVR, ARM,...Ngoài họ 8051 được hướng dẫn một cách căn bản ở môi trường đại học, bản thân người viết đã chọn họ vi điều khiển PIC để mở rộng vốn kiến thức và phát triển các ứng dụng trên công cụ này vì các nguyên nhân sau: Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt Nam. Giá thành không quá đắt. Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập. Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều khiển mang tính truyền thống: họ vi điều khiển 8051. Số lượng người sử dụng họ vi điều khiển PIC. Hiện nay tại Việt Nam cũng như trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi. Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn,…Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạp chương trình từ đơn giản đến phức tạp,…Các tính năng đa dạng của vi điều khiển PIC, và các tính năng này không ngừng được phát triển.
2.5.1.2 Giới thiệu về PIC 16F877A.
2.5.1.2.1.Sơ đồ chân.
Hình 2.15. Ảnh thực tế PIC16F877A
Hình 2.16. Sơ đồ chân của PIC16F877A
2.5.1.2.2. Các thông số của PIC 16F877A.
Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit.
Mỗi lệnh đều được thực thi trong một chu kì xung clock.
Tốc độ hoạt động tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns.
Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte.
Số PORT I/O là 5 với 33 pin I/O.
Các đặc tính ngoại vi bao gồmcác khối chức năng sau:
Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.
Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.
Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.
Hai bộ Capture/so sánh/điều chế độ rộng xung.
Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.
Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.
Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR, CS ở bên ngoài.
Các đặc tính Analog: 8 kênh chuyển đổi ADC 10 bit.
Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:
Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.
Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.
Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.
Khả năng tự nạp chương trình với sự điều khiển của phần mềm. Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial Programming) thông qua 2 chân.
Watchdog Timer với bộ dao động trong.
Chức năng bảo mật mã chương trình.
Chế độ Sleep.
Có thể hoạt động với nhiều dạng Oscillator khác nhau.
2.5.1.2.3. Cổng xuất nhập (I/O port).
Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương tác với thế giới bên ngoài. Sự tương tác này rất đa dạng và thông qua quá trình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng.
Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theo cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượng chân trong mỗi cổng có thể khác nhau.
Bên cạnh đó, do vi điều khiển được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông thường, một số chân xuất nhập còn có thêm các chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi nêu trên đối với thế giới bên ngoài. Chức năng của từng chân xuất nhập trong mỗi cổng hoàn toàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên quan đến chân xuất nhập đó.
Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD và PORTE.
Cấu trúc và chức năng của từng cổng xuất nhập sẽ được đề cập cụ thể trong phần sau.
* PORTA :
PORTA(RPA) bao gồm 6 I/O pin. Đây là các chân “hai chiều” (bidirectional pin), nghĩa là có thể xuất và nhập được.
Chức năng I/O này được điều khiển bởi thanh ghi TRISA (địa chỉ 85h). Muốn xác lập chức năng của một chân trong PORTA là input, ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong PORTA là output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA.
Thao tác này hoàn toàn tương tự đối với các PORT và các thanh ghi điều khiển tương ứng TRIS (đối với PORTA là TRISA, đối với
PORTB là TRISB, đối với PORTC là TRISC, đối với PORTD là TRISD vàđối với PORTE là TRISE).
Các thanh ghi SFR liên quan đến PORTA bao gồm: PORTA (địa chỉ 05h) : chứa giá trị các pin trong PORTA. TRISA (địa chỉ 85h): điều khiển xuất nhập. CMCON (địa chỉ 9Ch): thanh ghi điều khiển bộ so sánh. CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp. ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC.
* PORTB
PORTB (RPB) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là TRISB. Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau.
PORTB còn liên quan đến ngắt ngoại vi và bộ Timer0. PORTB còn được tích hợp chức năng điện trở kéo lên được điều khiển bởi chương trình. Các thanh ghi SFR liên quan đến PORTB bao gồm: PORTB (địa chỉ 06h,106h) : chứa giá trị các pin trong PORTB TRISB (địa chỉ 86h,186h) : điều khiển xuất nhập OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ Timer0.
*PORTC
PORTC (RPC) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là TRISC. Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ Timer1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART.
Các thanh ghi điều khiển liên quan đến PORTC: PORTC (địa chỉ 07h): chứa giá trị các pin trong PORTC TRISC (địa chỉ 87h): điều khiển xuất nhập.
* PORTD
PORTD (RPD) gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng là TRISD. PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port).
Các thanh ghi liên quan đến PORTD bao gồm: Thanh ghi PORTD: chứa giá trị các pin trong PORTD.
Thanh ghi TRISD : điều khiển xuất nhập.
Thanh ghi TRISE : điều khiển xuất nhập PORTE và chuẩn giao tiếp PSP.
* PORTE
PORTE (RPE) gồm 3 chân I/O. Thanh ghi điều khiển xuất nhập tương ứng là TRISE. Các chân của PORTE có ngõ vào analog. Bên cạnh đó PORTE còn là các chân điều khiển của chuẩn giao tiếp PSP.
Các thanh ghi liên quan đến PORTE bao gồm: PORTE : chứa giá trị các chân trong PORTE. TRISE: điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp PSP.
ADCON1 : thanh ghi điều khiển khối ADC.
2.5.1.2.4. Timer.
* TIMER 0.
Đây là một trong ba bộ đếm hoặc bộ định thời của vi điều khiển PIC16F877A.
Timer0 là bộ đếm 8 bit được kết nối với bộ chia tần số (prescaler) 8 bit. Cấu trúc của Timer0 cho phép ta lựa chọn xung clock tác động và cạnh tích cực của xung clock.
Ngắt Timer0 sẽ xuất hiện khi Timer0 bị tràn. Bit TMR0IE (INTCON) là bit điều khiển của Timer0. TMR0IE=1 cho phép ngắt Timer0 tác động, TMR0IF= 0 không cho phép ngắt Timer0 tác động.
Sơ đồ khối của Timer0 như sau.
Hình 2.17. Sơ đồ khối của timer0.
Muốn Timer0 hoạt động ở chế độ Timer ta clear bit TOSC (OPTION_REG), khi đó giá trị thanh ghi TMR0 sẽ tăng theo từng chu kì xung đồng hồ (tần số vào Timer0 bằng ¼ tần số oscillator). Khi giá trị thanh ghi TMR0 từ FFh trở về 00h, ngắt Timer0 sẽ xuất hiện.
Thanh ghi TMR0 cho phép ghi và xóa được giúp ta ấn định thời điểm ngắt Timer0 xuất hiện một cách linh động.
Muốn Timer0 hoạt động ở chế độ counter ta set bit TOSC (OPTION_REG). Khi đó xung tác động lên bộ đếm được lấy từ chân RA4/TOCK1. Bit TOSE (OPTION_REG) cho phép lựa chọn cạnh tác động vào bột đếm. Cạnh tác động sẽ là cạnh lên nếu TOSE=0 và cạnh tác động sẽ là cạnh xuống nếu TOSE=1.
Khi thanh ghi TMR0 bị tràn, bit TMR0IF (INTCON) sẽ được set. Đây chính là cờ ngắt của Timer0. Cờ ngắt này phải được xóa bằng chương trình trước khi bộ đếm bắt đầu thực hiện lại quá trình đếm. Ngắt Timer0 không thể “đánh thức” vi điều khiển từ chế độ sleep. Bộ chia tần số (prescaler) được chia sẻ giữa Timer0 và WDT (Watchdog Timer). Điều đó có nghĩa là nếu prescaler được sử dụng cho Timer0 thì WDT sẽ không có được hỗ trợ của prescaler và ngược lại. Prescaler được điều khiển bởi thanh ghi OPTION_REG. Bit PSA (OPTION_REG) xác định đối tượng tác động của prescaler. Các bit PS2:PS0 (OPTION_REG) xác định tỉ số chia tần số của prescaler. Xem lại thanh ghi OPTION_REG để xác định lại một cách chi tiết về các bit điều khiển trên. Các lệnh tác động lên giá trị thanh ghi TMR0 sẽ xóa chế độ hoạt động của prescaler.
Khi đối tượng tác động là Timer0, tác động lên giá trị thanh ghi TMR0 sẽ xóa prescaler nhưng không làm thay đổi đối tượng tác động của prescaler.
Khi đối tượng tác động là WDT, lệnh CLRWDT sẽ xóa prescaler, đồng thời prescaler sẽ ngưng tác vụ hỗ trợ cho WDT. Các thanh ghi điều khiển liên quan đến Timer0 bao gồm: TMR0 (địa chỉ 01h, 101h): chứa giá trị đếm của Timer0.
INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE và PEIE). OPTION_REG (địa chỉ 81h, 181h): điều khiển prescaler.
*TIMER 1.
Timer1 là bộ định thời 16 bit, giá trị của Timer1 sẽ được lưu trong hai thanh ghi (TMR1H:TMR1L). Cờ ngắt của Timer1 là bit TMR1IF (PIR1). Bit điều khiển của Timer1 sẽ là TMR1IE (PIE).
Tương tự như Timer0, Timer1 cũng có hai chế độ hoạt động: chế độ định thời (timer) với xung kích là xung clock của oscillator (tần số của timer bằng ¼ tần số của oscillator) và chế độ đếm (counter) với xung kích là xung phản ánh các sự kiện cần đếm lấy từ bên ngoài thông qua chân RC0/T1OSO/T1CKI (cạnh tác động là cạnh lên).
Việc lựa chọn xung tác động (tương ứng với việc lựa chọn chế độ hoạt động là timer hay counter) được điều khiển bởi bit TMR1CS (T1CON).
Sơ đồ khối của Timer1:
Hình 2.18. Sơ đồ khối của Timer1.
Ngoài ra Timer1 còn có chức năng reset input bên trong được điều khiển bởi một trong hai khối CCP (Capture/Compare/PWM). Khi bit T1OSCEN T1CON) được set, Timer1 sẽ lấy xung clock từ hai chân C1/T1OSI/CCP2 và RC0/T1OSO/T1CKI làm xung đếm. Timer1 sẽ bắt đầu đếm sau cạnh xuống đầu tiên của xung ngõ vào. Khi đó
PORTC sẽ bỏ qua sự tác động của hai bit TRISC và PORTC được gán giá trị 0. Khi clear bit T1OSCEN Timer1 sẽ lấy xung đếm từ oscillator hoặc từ chân RC0/T1OSO/T1CKI. Timer1 có hai chế độ đếm là đồng bộ (Synchronous) và bất đồng bộ (Asynchronous). Chế độ đếm được quyết định bởi bit điều khiển (T1CON). Khi =1 xung đếm lấy từ bên ngoài sẽ không được đồng bộ hóa với xung clock bên trong, Timer1 sẽ tiếp tục quá trình đếm khi vi điều khiển đang ở chế độ sleep và ngắt do Timer1 tạo ra khi bị tràn có khả năng “đánh thức” vi điều khiển. Ở chế độ đếm bất đồng bộ, Timer1 không thể được sử dụng để làm nguồn xung clock cho khối CCP (Capture/Compare/Pulse width modulation). Khi = 0 xung đếm vào Timer1 sẽ được đồng bộ hóa với xung clock bên trong. Ở chế độ này Timer1 sẽ không hoạt động khi vi điều khiển đang ở chế độ sleep. Các thanh ghi liên quan đến Timer1 bao gồm: INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE và PEIE). PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer1 (TMR1IF). PIE1( địa chỉ 8Ch): cho phép ngắt Timer1(TMR1IE). TMR1L (địa chỉ 0Eh): chứa giá trị 8 bit thấp của bộ đếm Timer1. TMR1H (địa chỉ 0Eh): chứa giá trị 8 bit cao của bộ đếm Timer1. T1CON (địa chỉ 10h): xác lập các thông số cho Timer1.
*TIMER2.
Timer2 là bộ định thời 8 bit và được hỗ trợ bởi hai bộ chia tần số prescaler va postscaler. Thanh ghi chứa giá trị đếm của Timer2 là TMR2. Bit cho phép ngắt Timer2 tác động là TMR2ON (T2CON). Cờ ngắt của Timer2 là bit TMR2IF (PIR1). Xung ngõ vào (tần số bằng ¼ tần số oscillator) được đưa qua bộ chia tần số prescaler 4 bit (với các tỉ số chia tần số là 1:1, 1:4 hoặc 1:16 và được điều khiển bởi các bit T2CKPS1:T2CKPS0 (T2CON)).
Sơ đồ khối timer2
Hình 2.19. Sơ đồ khối timer2
Timer2 còn được hỗ trợ bởi thanh ghi PR2. Giá trị đếm trong thanh ghi TMR2 sẽ tăng từ 00h đến giá trị chứa trong thanh ghi PR2, sau đó được reset về 00h. Kh I reset thanh ghi PR2 được nhận giá trị mặc định FFh. Ngõ ra của Timer2 được đưa qua bộ chia tần số postscaler với các mức chia từ 1:1 đến 1:16. Postscaler được điều khiển bởi 4 bit T2OUTPS3:T2OUTPS0. Ngõ ra của postscaler đóng vai trò quyết định trong việc điều khiển cờ ngắt. Ngoài ra ngõ ra của Timer2 còn được kết nối với khối SSP, do đó Timer2 còn đóng vai trò tạo ra xung clock đồng bộ cho khối giao tiếp SSP. Các thanh ghi liên quan đến Timer2 bao gồm: INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép toàn bộ các ngắt (GIE và PEIE). PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer2 (TMR2IF). PIE1 (địa chị 8Ch): chứa bit điều khiển Timer2 (TMR2IE). TMR2 (địa chỉ 11h): chứa giá trị đếm của Timer2. T2CON (địa chỉ 12h): xác lập các thông số cho Timer2. PR2 (địa chỉ 92h): thanh ghi hỗ trợ cho Timer2.
Timer0 và Timer2 là bộ đếm 8 bit (giá trị đếm tối đa là FFh), trong khi Timer1 là bộ đếm 16 bit (giá trị đếm tối đa là FFFFh). Timer0, Timer1 và Timer2 đều có hai chế độ hoạt động là timer và counter. Xung clock có tần số bằng ¼ tần số của oscillator. Xung tác động lên Timer0 được hỗ trợ bởi prescaler và có thể được thiết lập ở nhiều chế độ khác nhau (tần số tác động, cạnh tác động) trong khi các thông số của xung tác động lên Timer1 là cố định. Timer2 được hỗ trợ bởi hai bộ chia tần số prescaler và postcaler độc lập, tuy nhiên cạnh tác động vẫn được cố định là cạnh lên. Timer1 có quan hệ với khối CCP, trong khi Timer2 được kết nối với khối SSP.
2.5.2 LED 7 đoạn
Dạng led:
Hình 2.20. Dạng led 7 thanh
LED Anode chung:
Hình 2.21. Sơ đồ cấu tạo của led 7 thanh
Đối với dạng Led Anode chung ,chân com phải có mức 1 và muốn sáng Led thì tương ứng các chân a-f,dp sẽ ở mức logic 0.
Bảng mã cho Led Anode chung :
Hình 2.22.Bảng mã led 7 đoạn Anode chung
2.5.3 Diot phát quang (LED).
Hình 2.23. Led phát quang
Hoạt động của led giống như điot bán dẫn phân cực thuận cho led mới có thể sáng được.
2.5.4 Tranzitor C1815 (tranzitor nghịch).
Hình 2.24. Tranzistor C1815 và sơ đồ chân
2.5.5 Điện trở.
Sử dụng điện trở có các giá trị như sau: 220Ω,10K ,1K.
2.5.6 Tụ điện.
Tụ hóa:
33pF cho mạch dao động.
104 cho mạch nguồn.
Tụ 1 chiều: 10µF cho mạch ổn áp nguồn và phím bấm (reset và đặt thời gian).
2.5.7 Thạch anh .
20Mhz tạo giao động cho vi điều khiển.
2.5.8 Nút bấm (Button):
Sử dụng loại có 1 cặp tiếp điểm thường mở.
2.5.9 IC ổn áp 7805.
Hình 2.25. Sơ đồ chân của IC 7805
Điện áp vào từ 7-12V DC được nối vào chân 1(INPUT).
Điện áp ra 5V DC được lấy từ chân 3 (OUTPUT).
Chân 2 là chân chung nối âm.
Chương 3. Xây dựng hệ thống.
3.1 Chương trình điều khiển.
/*-----------------CHUONG TRINH DIEU KHIEN DEN GIAO THONG-------------
NHOM THUC HIEN : 1.PHAM QUANG LUAN
2.TRAN DANH LONG
3.NGUYEN TUAN NINH
LOP : K43DDK----HP:43S
GVHD : NGUYEN VAN HUY
NGAY THUC HIEN: 5/2011
*/
#include
#fuses NOWDT,PUT,XT,NOPROTECT
#use delay(clock=20000000) //su dung thach anh tan so 20MHz
int8 count,time,l1,l2,i,t2,t3,t1,d;
//Ma led 7 thanh
unsigned char LED[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char den[6]={0x81,0x82,0x84,0x18,0x28,0x48};
//Chuong trinh ngat TIMER0 theo chu ki 1s giam thoi gan xuong 1 don vi
#int_timer0
void timer0()
{
set_timer0(0); //thoi gian dinh thi T = 256/5*(256 - 0)*10^-6 = 0.0131072s
++count;
if(count == 76) // 76*0.0131072s = 0.9961472s = 1s
{
count=0;
time--;if(time==-1) time=t3;
}
}
//Chuong trinh hien thi thoi gian dem nguoc tren led 7 thanh
void led7()
{ if(time>t1)
{
l1=((time-t1-1)/ 1) % 10; // Lay so hang don vi
l2=((time-t1-1)/ 10) % 10; // Lay so hang chuc
}
else{
l1=(time/ 1) % 10; // Lay so hang don vi
l2=(time/ 10) % 10; // Lay so hang chuc
}
output_d(LED[l2]);
output_high(pin_c0);delay_us(0.001); // bat led 1 hien thi hang don vi
output_low(pin_c0);
output_d(LED[l1]);
output_high(pin_c1);delay_us(0.001); // bat led 2 hien thi hang chuc
output_low(pin_c1);
}
void hienthi()
{ while(1){
output_b(den[d]);
led7();
if(time=t3-t2) d=0; //re trai nhanh 1 do nhanh 2
if(timet1+4) d=1; // di thang nhanh 1 do nhanh 2
if(timet1) d=2; // vang nhanh 1 do nhanh 2
if(time=t1-t2) d=3; //re trai nhanh 2 do nhanh 1
if(time3) d=4; // di thang nhanh 2 do nhanh 1
if(time<=3) d=5; // vang nhanh 2 do nhanh 1
}
}
// hien thi thoi gian thiet lap
void set(int8 tg)
{ l1=(tg/ 1) % 10; // Lay so hang don vi
l2=(tg/ 10) % 10; // Lay so hang chuc
for(i=0;i<10;i++){
output_d(LED[l2]);
output_high(pin_c0);delay_ms(50);
output_low(pin_c0);
output_d(LED[l1]);
output_high(pin_c1);delay_ms(50);
output_low(pin_c1);
}
}
void main()
{ int8 t=0,j=0,kt=0;
set_tris_c(0x00);
set_tris_b(0x00);
set_tris_e(0xff);
output_b(0x00);
output_c(0x00);
while(1) //thiet lap thoi gian cho he thong
{
I f(input(pin_e0)==0){t++;set(10*t+j);kt=1;}
//nhap so giay hang chuc
if(input(pin_e1)==0){j++;set(10*t+j);kt=1;}
// nhap so giay hang don vi
if(input(pin_e2)==0) break;
//chay chuong trinh
}
if(kt==1) {
t1=10*t+j; t2=t1/3; t3=2*t1+1;} //chu ki den la 2*t1
else {
t1=30; t2=10; t3=61;}
time=t3;
// cho phep ngat timer0
enable_interrupts(int_timer0);
// cai dat timer voi bo chi tan la 256
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
// cho phep ngat toan cuc
enable_interrupts(global);
hienthi();
}
3.2. Sơ đồ mạch in (layout)
Dùng phân mềm orcad 10.5 vẽ mạch và thiết kế mạch in ta được các sơ đồ mạch in sau
3.2.1. Mạch điều khiển trung tâm.
Hình 3.7 . Sơ đồ mạch in mạch điều khiển
3.2.2. Mạch bàn phím.
Hình 3.8. Sơ đồ mạch in khối bàn phím
Chương 4 Mạch chạy mô phỏng.
Tất cả các phần của chương này đã được ghi trong đĩa nộp kèm với thuyết minh đồ án.
Kết luận
Sau một thời gian nỗ lực không ngừng trong học tập cũng như được sự nhiệt tình chỉ bảo của thầy Th.S.Nguyễn Văn Huy cũng như các thầy giáo bộ môn, nhóm chúng em đã hoàn thành được đề tài: “Thiết kế và mô phỏng hệ thống điều khiển đèn giao thông cho ngã tư ”. Trong quá trình thực hiện đề tài em đã đúc kết được rất nhiều kinh nghiệm quý báu cho bản thân để phục vụ cho chúng em trong quá trình học tập sau này.
Đề tài của chúng em có nhưng ưu nhược điểm như sau:
Ưu điểm
Ta có thể áp dụng mạch này vào thực tế một cách dễ dàng và thay đổi được thời gian hoạt đông của các đèn để phù hợp hơn với tình hình giao thông của tưng nơi
Các chức năng điều khiển bằng tay hoạt động được.
Việc thiết kế mạch đơn giản và tốn ít chi phí.
Khuyết điểm
Mạch thiết kế chưa tối ưu.
Chưa chính xác so với thời gian thực
Với những kết quả đạt được như trên, hệ thống rất hữu ích cho các bạn sinh viên trong việc thực hành trên mô hình thực tế đã triển khai bằng ngôn ngữ C, cũng như qua đó nắm bắt được hê thống cảnh báo và điều khiển giao thông.
Hướng phát triển
Mỗi chốt giao thông được lắp thêm cảm biến tốc độ, cảm biến cơ để tính được mật độ giao thông và tốc độ của các phương tiện giao thông, camera để quan sát tình trạng giao thông rồi qua đó sẽ có sự điều khiển giao thông thích hợp.
Tất cả các chốt giao thông được kết nối về một trạm trung tâm thông qua mạng Internet, WiFi hoặc Wimax. Xây dựng hệ thống cơ sở dữ liệu và điều khiển trung tâm từ máy tính để có thể kết nối các điểm giao thông với nhau để cập nhật dữ liệu đưa ra các quyết định xử lý từ trung tâm.
Áp dụng thời gian thực vào hệ thống để có thể phát triển hệ thống đưa ra các giờ; Cao điểm, thấp điểm, bình thường và các chiến lược cho hệ thống.
Trong ngày có nhiều khoảng thời gian (Các bộ điều khiển hiện nay thường chọn 10 khoảng), mỗi khoảng có chiến lược riêng. Ví dụ: Ban đêm, nhấp nháy đèn vàng 2 s: Buổi sáng sớm có 1 chiến lược, lúc cao điểm có một chiến lược.
Trong một tuần, có 7 ngày có thể có 7 tập hợp các chiến lược khác nhau. Ví dụ: Đầu tuần, người đi vào thành phố nhiều, cuối tuần ... Một năm có 52 tuần, có thể khác nhau theo thống kê. Ví dụ: Mùa hè xe chạy nhiều hơn mùa đông.
Xây dựng hệ thống thành một sản phẩm hoàn thiện có thể áp dụng được cho tất cả các chốt giao thông.
Cuối cùng em xin một lần nữa gửi lời cảm ơn chân thành đến thầy Th.S.Nguyễn Văn Huy cũng như các thầy giáo bộ môn đã giúp đỡ chúng em rất nhiều trong quá trình thực hiện đề tài, chúng em xin chân thành cảm ơn!
Tài liệu tham khảo:
Giáo trình Hệ thống nhúng- Bộ môn kỹ thuật máy tính- Trường Đại học kỹ thuật công nghiệp- ĐHTN.
Hướng dẫn sử dụng Orcad cơ bản – Phạm Thái Hòa – Đại học Bách Khoa Hà Nội, 2008
Giáo trình Kỹ thuật điện tử tương tự - Bộ môn kỹ thuật điện tử - Trường Đại học Kỹ thuật công nghiệp - ĐHTN