Tên đồ án Đồ án môn học Kỹ thuật vi điều khiển GVHD Ths Trần Quang Khải TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CƠ KHÍ ĐỒ ÁN MÔN HỌC KỸ THUẬT VI ĐIỀU KHIỂN ĐÈN GIAO THÔNG TẠI NGÃ 5 Nhóm học phần 18 05 Sinh viên thực hiện Nguyễn Thanh Lộc – 17CDT1 (101170191) Huỳnh Văn Chiến – 17CDT1 (101170169) CAM ĐOAN VỀ LIÊM CHÍNH HỌC THUẬT Tôi xin cam đoan ngoại trừ những phần được ghi rõ là tham khảo trong bài báo cáo này, tất cả những thông tin và số liệu đều được hoàn thành bởi chính tôi và công việc này chưa được.
Trang 1ĐỒ ÁN MÔN HỌC KỸ THUẬT VI ĐIỀU KHIỂN
ĐÈN GIAO THÔNG TẠI NGÃ 5
Sinh viên thực hiện : Nguyễn Thanh Lộc – 17CDT1 (101170191)
Huỳnh Văn Chiến – 17CDT1 (101170169)
Trang 2CAM ĐOAN VỀ LIÊM CHÍNH HỌC THUẬT
Tôi xin cam đoan ngoại trừ những phần được ghi rõ là tham khảo trong bài báocáo này, tất cả những thông tin và số liệu đều được hoàn thành bởi chính tôi và công việcnày chưa được trình bày ở bất cứ tài liệu nào khác
Sinh viên thực hiệnNguyễn Thanh LộcHuỳnh Văn Chiến
Các hành vi vi phạm liêm chính học thuật nếu bị phát hiện, sẽ được xử lí theo
“Quy định về liêm chính học thuật của Trường Đại học Bách khoa, Đại học Đà Nẵng”(Quyết định số 1274/QĐ-ĐHBK) ban hành ngày 08/05/2019
Trang 31.1 Đặt vấn đề:
Như chúng ta đã biết đèn giao thông là một hệ thống quan trọng không những đảmbảo sự an toàn giữa các phương tiện tham gia giao thông mà còn giảm ùn tắc giao thôngvào các giờ cao điểm đặc biệt tại các ngã 4 và ngã 5 Trong phần này chúng tôi muốn đềcập đến giải pháp phân luồng giao thông tại ngã 5 bằng đèn giao thông Đặc biệt giảiquyết ùng tắt giao thông vào các giờ cao điểm
1.2 Giới thiệu chung về đề tài và phân tích
1.2.1 Các tính năng chính của đèn giao thông tại ngã 5
Trước tiên, mỗi chiều đều có 3 làn dành cho xe cơ giới Được quy định làn bênphải dành cho xe rẽ phải, làn ở giữa dành cho xe chạy thẳng và làn bên trái dành cho xe
rẽ trái Đồng thời, tại mỗi tuyến đường đều có vạch phân cách dành cho người đi bộ quađường
Tại mỗi tuyến đường đều có 3 đèn tín hiệu điều khiển rẽ phải, đi thẳng, rẽ trái, 1 tín hiệuđiều khiển người đi bộ và 1 tín hiệu đèn vàng được sử dụng trong chế độ ban đêm
Gồm có 3 chế độ: Bình thường, Ưu tiên và Ban đêm được điều khiển bằng tay
1.2.2 Phương pháp điều khiển đèn giao thông
Điều khiển đèn giao thông bằng vi điều khiển với các ưu điểm:
Giá thành rẻ
Mạch đơn giản dễ thực hiện
Công suất làm việc bé
Việc lập trình đơn giản
Trang 4 Có thể giao tiếp với máy tính
1.3 Khả năng ứng dụng/mở rộng của đề tài
Có khả năng sử dụng trong thực tế tùy thuộc vào những yêu cầu cụ thể như:
Mỗi tuyến đường có 3 làn (trái, thẳng, phải) hay không Hay nói cách khác mỗituyến đường phải lớn
Việc ùngtắt giao thông chỉ xảy ra từ 1 đến 3 tuyến đường
Khi chuyển đổi qua chế độ khác cần phải có người điều khiển hệ thống chưa tự động chuyển đổi được theo thời gian thực vì vậy có thể sử dụng thêm IC thời gian thực để việc thay đổi qua từng chế độ diễn ra một cách tự động
Trang 52.1 Vi điều khiển sử dụng
Sử dụng vi điều khiển Pic 16F877A
Các Port được sử dụng ở đây là A, B, C, D
Sử dụng ngắt Timer 1 để đếm thời gian lùi trên mỗi tuyến đường
Sử dụng ngắt RDA nhận và gửi dữ liệu thông qua RS232
Kết nối với máy tính thông qua RS232 kết nối với hai chân RC6/TX/CK và RC7/RX/DT
2.1.1 Giới thiệu về vi điều khiển
PIC16F877A 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 chophép là 20MHz 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ố PORTI/O là 5 với 35 pin I/O
Các đặc tính ngoại vi:
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àoxung 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
Trang 6Các đặc tính Analog:
8 kênh chuyển đổi ADC 10 bit
Hai bộ so sánh
Bên cạnh đó có một vài đặc tính khác của vi điều khiển như:
Bộ nhớ Flash có 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
Bộ nhớ dữ liệu 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 Programing)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
Trang 7Hình 2.1: Sơ đồ chân của PIC16F877A [1]
2.1.2 Các tài nguyên của vi điều khiển được sử dụng trong đồ án
Sử dụng các Port A, B, D để thực hiện các việc bật tắt các tín hiệu đèn
Đếm thời gian sử dụng ngắt Timer 1
Truyền nhận dữ liệu qua Ngắt RDA
Sử dụng Port C với hai chân RC6/TX/CK và RC7/RX/DT để giao tiếp USART thông quaRS232
Trang 82.2 Các linh kiện hiển thị
Sử dụng 2 Led 7 đoạn trên mỗi tuyến đường để hiển thị thời gian đếm xuống chomỗi tín hiệu đèn giao thông tương ứng Ở đây ta sử dụng phương pháp quét led với mỗilần sẽ hiển thị trên 2 led 7 đoạn của mỗi tuyến đường thông qua 2 IC 74HC595 được điềukhiển bằng 3 chân D5, D6 và D7 tương ứng với các chân SH_CP, DS và ST_CP trên IC74HC595 Đồng thời sử dụng các Transistor để bật tắt các led 7 đoạn trên mỗi tuyếnđường sao cho phù hợp với phương pháp quét
Hình 2.2: Sơ đồ nối chân IC74HC595 điều khiển 2 led 7 đoạn
Trang 9Hình 2.3: Sơ đồ nối chân bật tắt 2 led 7 đoạn trên mỗi ngã đường
Hình 2.4: Sơ đồ kết nối chân hiển thị 2 led 7 đoạn
2.2.1 Tìm hiểu về IC 74HC595:
Trang 10Điện áp nguồn cấp cực đại 7V.
Dòng vào 20mA
Dòng ra 35mA
Hình 2.3: Sơ đồ chân IC 74HC595 [2]
Nguyên lý hoạt động của IC74HC595 (Các chân được đề cập trong Proteus) [2]:
Pin 14 (DS): Đầu vào dữ liệu nối tiếp Chuỗi dữ liệu nối tiếp từ vi điều khiển tớichân này được truyền vào bên trong thanh ghi dịch sau mỗi xung Clock
Pin 11 (SH_CP): Xung Clock thanh ghi dịch Khi xuất hiện sườn dương ở chânnày, dữ liệu đầu vào DS (Pin14) sẽ được dịch từng bit vào thanh ghi 8 bit
Pin 10 (Reset): Đầu vào active mức thấp, không đồng bộ Khi chân này ở mứcthấp (0), thanh ghi được reset, bộ chốt 8 bit không được hoạt động
Pin 12 (ST_CP): Xung Clock cho đầu ra bộ Latch Khi xuất hiện sườn dương ởchân này, dữ liệu trong thanh ghi dịch được đẩy ra bộ Latch
Pin 13 (OE): Cho phép giá trị lưu trữ trong bộ Latch được xuất ra bên ngoài khichân này ở mức thấp (0)
Trang 11đầu ra sẽ có 3 trạng thái: mức thấp (0), mức cao (1) hoặc mức trở khảng cao (Z).Pin 9 (Q7’): Đầu ra không đảo, là chuỗi dữ liệu đầu ra nối tiếp, nó là đầu ra củathanh ghi dịch, mỗi khi gặp sườn dương Shift Clock ở Pin 11, giá trị thanh ghi bịdịch đi và bit có trọng số cao nhất dược đẩy sang đầu ra Q7’.
2.2.2 Tìm hiểu về led 7 đoạn [3]
Led 7 đoạn là một linh kiện điển tử phổ biến, được dùng như một công cụ hiển thịđơn giản nhất Trong Led 7 đoạn bao gồm ít nhất 7 Led đơn nối lại với nhau Hình 2.4
mô tả sơ đồ bố trí chân của 1 Led 7 đoạn Các Led đơn được gọi tên lần lượt là các chữcái A, B, C, D, E, F, G và dấu chấm DP Ở đây chúng ta sử dụng loại Anode chung Vớicác chân anode (chân dương) của tất cả led đơn được mắc chung với nhau Bằng việc kếthợp sáng/tắt các Led đơn thì người dùng có được các ký tự mong muốn Để cho một Ledđơn sáng, trước tiên chân anode chung phải được nối với nguồn VCC, sau đó châncanode của Led đơn tương ứng đó được nối đất (Hình 2.5) Mã hiển thị Led 7 đoạn loạianode chung được trình bày ở bảng 2.1
Hình 2.4: Sơ đồ bố trí chân của Led 7 đoạn loại anode Chung [2]
Trang 12Hình 2.5: Led 7 đoạn loại Anode chung [3]
Bảng 2.1: Mã hiển thị led 7 đoạn loại Anode chung [3]
Ở phần 3.7.2 [3], để tránh làm hư hỏng Led thì chúng ta nói thêm 1 điện trở hạ dòng điện qua Led với giá trị
2.3 Các linh kiện điện
Sử dụng nguồn ổn áp 5V (LM7805) để cấp nguồn cho vi điều khiển Các chân 11,
32 (VDD) nối 5V, Còn các chân 12, 31 (VSS) nối GND
Trang 13Hình 2.6: Sơ đồ mạch nguồn 5V cung cấp cho vi điều khiển
Mạch tạo xung dao động sử dụng thạch anh 4MHz ở hai chân OSC1 (chân 13) và OSC2 (chân 14) mắc với hai tụ song song có trị số 33pF giúp tăng tính ổn định cho bộ dao động
Hình 2.7: Sơ đồ mạch tạo xung dao động 4MHz.
Mạch Reset tại chân MCLR
Trang 14Hình 2.8: Sơ đồ mạch Reset tại chân MCRL.
Trang 153.1 Phân tích cách thức hoạt động của hệ thống
3.1.1 Nguyên lý vận hành của hệ thống
* Đối với chế độ bình thường
Lượt thứ nhất: Ưu tiên cho làn 1
Làn 1: Đèn rẽ trái và đi thẳng được bật xanh, đèn rẽ phải (qua làn 2) chuyển đỏ
Làn 2: Tất cả các đèn dành cho phương tiện đều chuyển đỏ, đèn cho phép người đi
bộ chuyển xanh
Làn 3, 4, 5: Chỉ đèn rẽ phải được chuyển xanh các đèn còn lại chuyển đỏ
Trang 16Hình 3.1: Lượt ưu tiên cho làn 1 [4]
Lượt thứ 2: Ưu tiên cho làn 2
Làn 2: Đèn rẽ trái và đi thẳng được bật xanh, đèn rẽ phải (qua làn 2) chuyển đỏ
Làn 3: Tất cả các đèn dành cho phương tiện đều chuyển đỏ, đèn cho phép người đi
bộ chuyển xanh
Làn 4, 5, 1: Chỉ đèn rẽ phải được chuyển xanh các đèn còn lại chuyển đỏ
Hình 3.2: Lượt ưu tiên cho làn 2 [4]
Lượt thứ 3: Ưu tiên cho làn 3
Làn 3: Đèn rẽ trái và đi thẳng được bật xanh, đèn rẽ phải (qua làn 2) chuyển đỏ
Làn 4: Tất cả các đèn dành cho phương tiện đều chuyển đỏ, đèn cho phép người đi
bộ chuyển xanh
Làn 5, 1, 2: Chỉ đèn rẽ phải được chuyển xanh các đèn còn lại chuyển đỏ
Trang 17Hình 3.3: Lượt ưu tiên cho làn 3 [4]
Lượt thứ 4: Ưu tiên cho làn 4
Làn 4: Đèn rẽ trái và đi thẳng được bật xanh, đèn rẽ phải (qua làn 2) chuyển đỏ
Làn 5: Tất cả các đèn dành cho phương tiện đều chuyển đỏ, đèn cho phép người đi
bộ chuyển xanh
Làn 1, 2, 3: Chỉ đèn rẽ phải được chuyển xanh các đèn còn lại chuyển đỏ
Trang 18Hình 3.4: Lượt ưu tiên cho làn 4 [4]
Lượt thứ 5: Ưu tiên cho làn 5
Làn 5: Đèn rẽ trái và đi thẳng được bật xanh, đèn rẽ phải (qua làn 2) chuyển đỏ
Làn 1: Tất cả các đèn dành cho phương tiện đều chuyển đỏ, đèn cho phép người đi
bộ chuyển xanh
Làn 2, 3, 4: Chỉ đèn rẽ phải được chuyển xanh các đèn còn lại chuyển đỏ
Trang 19Hình 3.5: Lượt ưu tiên cho làn 5 [4]
Các lượt tiếp theo lặp lại các lượt ưu tiên trên
* Đối với chế độ ưu tiên
Mỗi khi làn nào được lựa chọn là làn ưu tiên thì khi đến làn ưu tiên đó nó sẽ có thời giandài hơn so với những làn khác
VD: Giả sử ta đang ở chế độ ưu tiên và làn 1 Được ưu tiên (Cho phép đi thẳng và rẻ trái)với thời gian duy trì là 20s Khi đèn tín hiệu đang ở lượt thứ 1: ưu tiên cho làn 1 (Như chế
độ bình thường) thì nó sẽ duy trì trong 20s còn các lượt khác (2, 3, 4, 5) vẫn chạy như chế
độ bình thường
* Đối với chế độ ban đêm
Tất cả các làn sẽ được cho phép di chuyển tự do Các đèn tín hiệu và led7doan cũng tắt.Đèn tín hiệu màu vàng sáng nhấp nháy
Trang 203.1.2 Phân tích hệ thống đèn giao thông ngã 5
Qua phân tích, đèn tín hiệu có các điểm chung sau:
Đèn cho phép chạy thẳng và rẽ trái diễn ra cùng lúc trên cùng 1 làn đường
Làn đường nào được ưu tiên thì đèn tín hiệu cho phép chạy thẳng và rẽ trái đượcbật
Khi làn n đang ở chế độ ưu tiên thì làn n+1 ( nằm bên phải làn n) sẽ không chophép phương tiện nào di chuyển
Khi làn n đang ở chế độ ưu tiên thì đèn cho phép đi bộ của làn n+1 ( làn bên phảicủa làn n) sẻ được bật
Khi chuyển làn ưu tiên nó sẽ chuyển từ làn n sang làn n+1 ( nằm bên phải làn n)
Gọi T_T (n) là thời gian hiển thị tín hiệu đèn dành cho làn ưu tiên thứ n ( đi Thẳng rẽTrái)
Gọi C (n) là thời gian cho phép người đi bộ qua đường trên làn n, thì thời gian cho phépngười đi bộ qua đường di chuyển trên làn n + 1 cũng là T_T (n)
Gọi P (n) là thời gian làn đường n có thể rẽ Phải
Có thể suy thành công thức chung như sau:
C(n+1) = T_T(n)
P(n+2) = T_T(n)
P(n+3) = T_T(n) + T_T(n+1)
P(n+4) = T_T(n) + T_T(n+1) + T_T(n+2)
Trang 213.2 Sơ đồ nguyên lý của toàn mạch
3.2.1 Sơ đồ chân điều khiển đèn tín hiệu
Đặt các chân B0 -> B4 là các chân bật tắc đèn tín hiệu rẽ Phải trên các làn đường từ 1 – 5
Hình 3.6: Các chân điều khiển tín hiệu rẽ phải
Đặt các chân D0 -> D4 là các chân bật tắc đèn tín hiệu đi Thẳng và rẽ Trái trên các làn đường từ 1 – 5 và làn đi bộ trên các làn đường từ 2 – 1 (2, 3, 4, 5, 1) tương ứng
Hình 3.7: Các chân điều khiển tín hiệu rẽ trái và đi thẳng
Từ đó ta có bảng của các bit tương ứng đối với các làn ưu tiên
Bảng 3.1: Mã hiển thị đèn tín hiệu
PortLàn ưu tiên
B(Đèn tín hiệu rẻ phải)
D(Đèn tín hiệu đi thẳng, rẻ
Trang 22Ma_Phai[] = {0x1C, 0x19, 0x13, 0x07, 0x0E}
Ma_Thang_Trai[] = {0x01, 0x02, 0x04, 0x08, 0x10}
3.2.2 Sơ đồ chân điều khiển led 7 đoạn
Trên mỗi làn đường có 2 led 7 đoạn (Tổng cộng 10 led 7 đoạn) dùng để hiện thị thời gian đếm lui trên mỗi tuyến đường Ở đây ta sử dung 2 IC 74HC595 để hiện thị giá trị Chục
và Đơn vị tương ứng trên mỗi tuyến đường và dùng phương pháp quét để tiết kiệm chân điều khiển Sơ đồ nói chân như sau:
Hình 3.8: Sơ đồ nối chân IC74HC595 điều khiển 2 led 7 đoạn
Chân D5 kết nối với chân SH_CP (Chân 11) ở cả hai IC
Chân D6 kết nối với chân DS (Chân 14) IC74HC595 (Chục)
Chân D7 kết nối với chân ST_CP (Chân 12) ở cả hai IC
Chân Q’7 (Chân 9) của IC74HC595 (Chục) kết nối với chân DS ở IC74HC595 (Đơn vị).Các chân 15, 1, 2, 3, 4, 5, 6, 7 điều khiển led 7 đoạn tương ứng như trên hình
Chân 10 nối nguồn, chân 13 nối GND
Trang 23Hình 3.9: Sơ đồ nối chân bật tắt 2 led 7 đoạn trên mỗi ngã đường
Trang 24Hình 3.10: Sơ đồ kết nối chân hiển thị 2 led 7 đoạn
Các chân B5, B6, B7, A0, A1 sử dụng phương pháp quét bật tắt các led 7 đoạn trên cáclàn đường thông qua BJT (C1815)
3.3 Các sơ đồ nguyên lý phụ
Mạch tạo xung dao động sử dụng thạch anh 4MHz ở hai chân OSC1 (chân 13) và OSC2 (chân 14) mắc với hai tụ song song có trị số 33pF giúp tăng tính ổn định cho bộ dao động
Trang 25Hình 3.11: Sơ đồ mạch tạo xung dao động 4MHz.
Mạch Reset tại chân MCLR, trong quá trình hoạt động chân MCRL cần được kéolên mức cao Vdd thông qua điện trở có trị số (Hình 14-5 [1]) ta chon trị số bằng Một tụđiện nhỏ kết nối từ chân MCRL xuống GND để giữ cho vi điều khiển ở chế độ Resetđược lâu hơn khi bật nút nhấn (Mắc song song với tụ) tránh hiện tượng nhiễu Ngoài ra,cần điện trở nhằm cản trở dòng điện từ tụ đi vào chân MCRL ta chon trị số bằng
Hình 3.12: Sơ đồ mạch Reset tại chân MCRL.
Trang 26Mạch nạp cho vi điều khiển:
Chân 1 nối với chân MCLRChân 2 nối nguồn (5V)Chân 3 nối GNDChân 4 nối với đầu vào dữ liệu (PGD)Chân 5 nối với đầu vào Clock (PGC)
Hình 3.13: Sơ đồ mạch nạp cho vi điều khiển.
Mạch giao tiếp với máy tính thông qua cổng nối tiếp RS232
Trang 27Hình 3.14: Sơ đồ mạch giao tiếp nối tiếp qua cổng RS232.
Trang 28CHƯƠNG 4: LƯU ĐỒ THUẬT TOÁN VÀ CHƯƠNG TRÌNH
4.1 Lưu đồ thuật toán
Hình 4.1: Lưu đồ thuật toán của chương trình chính
Các biến ở trên sẽ được giải thích trong phần Code CCS Phần này sẽ giải thích ngắn gọn về Ngắt Timer1, Ngắt RDA và hàm tách giá trị đếm thành Chục và Đơn vị
Trang 29Thời gian trên led 7 đoạn trên mỗi làn sẽ giảm 1 đơn vị sau 1s, ta chọn bộ chia trước là 8, giá trị nạp trước cho thanh ghi TMR1 = 3036 Như vậy, chương trình con phục
vụ ngắt sẽ được gọi sau mỗi Do đó, phần mềm cần lặp lại quá trình này 2 lần để được 1 giây
Trang 30Chương trình Ngắt Timer1 sẽ được gọi lại sau 0,5s đã được tính ở phần trước Và
cứ sau 1s thì biến dem_tg sẽ tăng lên 1 nhằm kiểm tra xem giá trị của nó có bằng với thờigian T_T (Thời gian cho phép đi Thẳng và rẽ Trái) Nếu dem_tg = T_T thì thực hiện việc đổi lượt ưu tiên được đề cập ở phần 3.1.1 Sau mỗi lượt ưu tiền thì thời gian hiển thị trên mỗi làn sẽ được thiết lập lại theo quy tắc đã được giải thích ở phần 3.1.2 Đồng thời các đèn tín hiệu hiển thị trên mỗi làn được cũng sẽ được hiển thị tương ứng được đề cập trong phần 3.2.1
Trang 31thể hiện bạn đã xác nhận 1 trong 3 chế độ được chọn Khi đã nhấn xác nhận (data = 6) chúng ta sẽ xem xét ở cả 3 chế độ để thực hiện các câu lệnh cho phù hợp tương ứng với yêu cầu đã đề ra Với data bằng các ký tự ‘B’, ‘U’, ‘D’ tương ứng là các chế độ ‘Bình thường’, ‘Ưu tiên’, ‘Ban đêm’ thì chúng sẽ được lưu lại thông qua biến che_do_tam vì chưa nhấn xác nhận Nếu dữ liệu nhận được không phải là 1 trong các giá trị trên thì nó chính là thời gian ưu tiên mà làn được chọn làm ưu tiên (Trong chế độ Ưu tiên) Sau mỗi lần nhận được dữ liệu từ máy tính, chúng ta sẽ tính lại b (Giá trị được chuyển đổi từ các trạng thái làn ưu tiên được chọn trong chế độ Ưu tiên sau đó b được gửi lên lại máy tính
để hiển thị các làn được chọn Ví dụ khi ở chế độ ưu tiên, làn 2 và làn 4 được chọn là làn được ưu tiên thì các bít tương ứng với làn 5 đến làn 1 sẽ là 0 1 0 1 0 Như vậy:
Hình 4.4: Lưu đồ thuật toán hàm tách giá trị đếm và chương trình sử dụng
74HC595
Trang 32Hàm tách giá trị đếm
Để hiển thị thời gian đếm lùi trên led 7 đoạn chúng ta cần tách 2 giá trị Chục và Đơn vị của thời gian đềm ra Ở đây chúng ta sử dụng 5 mãng tương ứng với 5 làn đường với mỗi mãng chứa 2 phần tử Phần tử thứ nhất là Đơn vị, phần tử thứ 2 là Chục Hai phần tử này chúng sẽ tương ứng với chương trình sử dụng IC74HC595 để quét led 7 đoạn
Chương trình sử dụng IC74HC595
Đầu tiên chúng ta định nghĩa các chân DS, SH_CP và ST_CP để dễ dàng hơn cho việc lập trình, cùng với hai xung dịch bit và chốt bit Sơ đồ chân và nguyên lý được đề cập ở phần 3.2.2 Ta sẽ cho dịch 8 bit của phần tử thứ 2 trong hàm tách giá trị đếm đã được đề cập phía trên, sau đó chốt 8 bit này rồi chuyển sang dịch 8 bit của phần tử thứ nhất ta sẽ hiển thị được giá trị đếm tương ứng trên mỗi làn
Hình 4.5: Lưu đồ thuật toán của 2 hàm thiết lập thời gian sau mỗi lượt chuyển
tiếp và thời gian đi Thẳng và rẽ Trái trên mỗi làn
Trang 33Như đã biết sau mỗi lượt chuyển tiếp làn đường được nêu ở phần 3.1.1 Thì thời gian hiển trên mỗi làn sẽ được thiết lập lại theo như quy tắc đã được đề cập trong phần 3.1.2.
Hàm thiết lập thời gian đi Thẳng và rẽ Trái trên mỗi làn
Hàm này nhằm kiểm tra và thay đổi thời gian mà mỗi làn cho phép được đi Thẳng
và rẽ Phải
4.2 Giao diện giao tiếp giữa máy tính với vi điều khiển trên MATLAB GUI
Hình 4.6: Giao diện giao tiếp giữa máy tính và PIC
Trang 34Ở khung Port Setting gồm có lựa chọn cổng COM và thông số Baudrate, và 2 nút
“Chay” và “Tat” để bật và tắt quá trình giao tiếp với máy tính
Ở khung chế đó gồm có menu lựa chọn 1 trong 3 chế độ: Bình thường, Ưu tiên, Ban đêm Sau khi lựa chọn được chế độ mong muốn thì nhấn nút “Chon” Tuy nhiên, nút
“Chon” này chưa làm thay đổi quá trình hoạt động của đèn giao thông
Ở khung làn được ưu tiên, chúng sẽ được mở lên sau khi được chọn ở chế độ “Ưu tiên” Kết hợp cùng với ô “khung thời gian ưu tiên” là giá trị thời gian mà làn được chọn
ở “khung làn được ưu tiên” đã chọn Cuối cùng nhấn nút xác nhận, khi đó quá trình hoạt động của hệ thống giao thông sẽ được thay đổi như đã được thiết lập
Trang 36{
// Kiem tra bit thu 8 la 1 hay 0
check = data[i] & 0b10000000;
check = (check != 0 ? 1:0);
DS(check);
Xung_dich;
// Kiem tra bit thu 7 la 1 hay 0
check = data[i] & 0b01000000;
check = (check != 0 ? 1:0);
DS(check);
Xung_dich;
// Kiem tra bit thu 6 la 1 hay 0
check = data[i] & 0b00100000;
check = (check != 0 ? 1:0);
DS(check);
Xung_dich;
// Kiem tra bit thu 5 la 1 hay 0
check = data[i] & 0b00010000;
check = (check != 0 ? 1:0);
DS(check);
Xung_dich;
Trang 37check = data[i] & 0b00001000;
check = (check != 0 ? 1:0);
DS(check);
Xung_dich;
// Kiem tra bit thu 3 la 1 hay 0
check = data[i] & 0b00000100;
check = (check != 0 ? 1:0);
DS(check);
Xung_dich;
// Kiem tra bit thu 2 la 1 hay 0
check = data[i] & 0b00000010;
check = (check != 0 ? 1:0);
DS(check);
Xung_dich;
// Kiem tra bit thu 1 la 1 hay 0
check = data[i] & 0b00000001;
check = (check != 0 ? 1:0);
DS(check);
Xung_dich;
Xung_chot;
Trang 38#use rs232(baud=9600, parity = N, xmit = PIN_C6, rcv = PIN_C7, bits = 8)
// Mac dinh thoi gian cho lan duong uu tien T_T(n) o che do binh thuong la 10
#define T_T 10
// Dat ten cho cac chan dieu khien bat tat 2 led 7 doan tren moi lan duong
#define lan1 PIN_B5
#define lan2 PIN_B6
#define lan3 PIN_B7
#define lan4 PIN_A0
#define lan5 PIN_A1
// Dat ten cho chan sang tat den vang o che do ban dem
#define Ban_Dem PIN_A2
// Giai ma cac tinh hieu den
// Ma hien thi cho phep re phai cua moi lan duong voi moi che do uu tien tu lan