Hệ thống cần đảm bảo chức năng điều khiển các tín hiệu đèn, các bộ đếm ngược và cân chỉnh được thang thời gian cho các tín hiệu theo thời gian trong ngày.. Điều khiển các tín hiệu đèn: -
Trang 1
MỤC LỤC
Phần Mở Đầu
Trong thời đại ngày nay, khi công nghệ thông tin truyền thông phát triển, song song với việc phát triển các công nghệ phần mềm, việc phát triển các hệ thống nền tảng là phần cứng giữ một vai trò hết sức quan trọng Trong đó, hệ vi xử
lý là một khái niệm quan trọng cốt lõi mà bất kỳ kỹ sư điện tử nào cũng cần phải
hiểu và nắm được Học phần kỹ thuật vi xử lý nhằm cung cấp cho sinh viên những
kiến thức cơ bản nhất xung quanh hệ vi xử lý Trong học phần này, ngoài các bài giảng trên lớp của giảng viên xung quanh bộ vi xử lý 8086 để giúp sinh viên hình thành khái niệm về vi xử lý, sinh viên còn được trực tiếp thiết kế một hệ thống cơ bản để hiểu sâu hơn và có dịp thực hành những kiến thức học được trên giảng đường
Đề tài mà nhóm chúng em triển khai là hệ thống mạch điều khiển đèn giao thông ở ngã tư với các nội dung chi tiết sẽ được trình bày ở phần sau của bản báo cáo này Bản báo được chia làm 5 chương, cụ thể là:
+Chương I : Phân tích chức năng hệ thống mạch đèn giao thông
+Chương II : Sơ đồ khối hệ thống
+Chương III: Sơ đồ nguyên lý của hệ thống
+Chương IV: Một sô thuật toán sử dụng trong mã nguồn của đề tài
+Chương V : Tổng kết đánh giá đề tài
Trang 2
thầy giáo Vũ Song Tùng đã giúp đỡ chúng em rất nhiều trong việc hoàn thành đề tài này Tuy nhiên, trong quá trình hoàn thành đề tài do còn là sinh viên và không tránh khỏi những thiếu sót về mặt kinh nghiệm, nhóm rất mong nhận được những ý kiến đóng góp từ các bạn sinh viên khác và phê bình từ thầy giáo để hệ thống hoàn thiện hơn Em xin chân thành cảm ơn !
Chương I :Phân tích chức năng hệ thống mạch đèn giao thông
1.1)Mô tả tổng quan
Đề tài nhằm thiết kế và triển khai một hệ thống điều khiển cho đèn giao thông tại một ngã tư thông thường trong đó không tách biệt tín hiệu đèn điều khiển rẽ trái, rẽ phải, đi thẳng Hệ thống cần đảm bảo chức năng điều khiển các tín hiệu đèn, các bộ đếm ngược và cân chỉnh được thang thời gian cho các tín hiệu theo thời gian trong ngày Các tín hiệu điều khiển được thể hiện bằng các LED màu tương ứng vàng,
đỏ, xanh và bộ đếm thể hiện bằng các LED 7 thanh
1.2)Các chức năng của hệ thống
1. Điều khiển các tín hiệu đèn:
- Điều khiển tín hiệu đèn cho các phương tiện giao thông: trên các hướng đi có
bộ ba đèn điều khiển vàng, đỏ xanh Các đèn hiệu sẽ được điều khiển theo logic
và phải đảm bảo thời gian đèn đỏ của hướng này phải lớn hơn hoặc bằng tổng thời gian đèn xanh và đèn vàng của hướng kia Thứ tự đèn cho mỗi hướng là: vàng -> đỏ -> xanh -> vàng…
- Điều khiển tín hiệu đèn cho người đi bộ: trên các hướng đi có bộ đèn hiệu cho người đi bộ bao gồm hai tín hiệu xanh và đỏ Tín hiệu đèn xanh cho người đi bộ
sẽ bắt đầu sau khi đèn đỏ cho phương tiện của hướng đó sáng được 05s và kết thúc trước khi tín hiệu đèn xanh cho phương tiện giao thông của hướng đó sáng 05s
2. Hiển thị thời gian đếm ngược của các tín hiệu đèn:
- Hệ thống có khả năng hiển thị thời gian đếm ngược của tín hiệu đèn bằng Led 7 thanh với khả năng hiển thị số lớn nhất là 99
3. Điều chỉnh thang thời gian điều khiển các tín hiệu đèn theo thời gian trong ngày:
2
Trang 3- Thời gian thực trong ngày sẽ được lưu trong hệ thống ngay cả khi hệ thống bị mất điện Thời gian thực lưu theo dạng 24 giờ bắt đầu từ 00:00 đến 23:59 Hệ thống dựa vào giờ được lưu này để điều chỉnh thang thời gian điều khiển tín hiệu cho phù hợp vào các thời điểm cao điểm, trung bình và ban đêm trong ngày Ở khoảng thời gian ban đêm đến 5 giờ , hệ thống sẽ nhấp nháy đèn vàng
với chu kỳ 1s Giờ cao điểm trong ngày là khoảng thời gian từ 7 giờ đến 9 giờ
và từ 17 giờ đến 19 giờ
4. Điều chỉnh các thông số của hệ thống:
- Giao diện điều chỉnh các thông số: Người dùng nhập thông số thông qua 4 nút bấm: menu, up, down, set Thông số đang điều chỉnh sẽ được hiển thị lên màn hình LCD dạng text đồng thời đèn LCD cũng bật sáng đèn màn hình
- Để bắt đầu điều chỉnh các thông số, người dùng nhấn nút menu, sau đó nhấn các nút up và down để điều chỉnh thông số hiện tại, khi đã điều chỉnh xong thông số này, người dùng nhấn nút set để lưu thông số Để điều chỉnh thông số tiếp theo người dùng tiếp tục nhấn nút menu Thứ tự điều chỉnh các thông số lần lượt như sau: Giờ -> phút -> thời gian đèn vàng -> thời gian đèn đỏ lúc cao điểm -> thời gian đèn xanh lúc cao điểm -> thời gian đèn đỏ lúc trung bình -> thời gian đèn xanh lúc trung bình -> thời gian đèn đỏ giao nhau lúc cao điểm -> thời gian đèn đỏ giao nhau lúc trung bình -> thời điểm bắt đầu nhấp nháy đèn vàng Khi đã điều chỉnh xong các thông số, người dùng nhấp menu thêm một lần nữa để thoát chế độ điều chỉnh Khi thoát chế độ này, LCD xóa toàn bộ nội dung hiển thị và tắt đèn màn hình
- Các thông sô điều chỉnh theo kiểu quay vòng: mỗi thông số có khoảng nhất định từ nhỏ nhất đến cao nhất, khi chỉnh đến giá trị cao nhất mà người dùng nhấn nút up một lần nữa thì thông số quay về giá trị nhỏ nhất, tương tự khi chỉnh đến giá trị nhỏ nhất mà người dùng nhấn nút down một lần nữa thì thông
số quay về giá trị cao nhất
- Khoảng điều chỉnh giờ: 00h -> 23h
- Khoảng điều chỉnh phút: 00h -> 59h
- Khoảng điều chỉnh thời gian đèn vàng: 03s -> 10s
- Khoảng điều chỉnh thời gian đèn đỏ: 20s -> 90s
- Khoảng điều chỉnh thời gian đèn xanh: 10s -> 70s
- Khoảng điều chỉnh thời gian đèn đỏ giao nhau: 00s -> 10s
- Khoảng điều chỉnh thời điểm bắt đầu nhấp nháy đèn vàng: 21h -> 23h
1.3)Phần cứng sử dụng trong đề tài
- Vi điều khiển PIC 16F877A với thạch anh tần số 20MHz
Trang 4- IC DS1307 làm đồng hồ thời gian thực cho hệ thống
- Adapter 12V DC để cấp nguồn vào cho mạch
- Led đôi bảy đoạn để đếm lùi thời gian
- Led đơn để hiển thị các tín hiệu xanh đỏ vàng cho các phương tiện và người
đi bộ
- IC 74247 để giải mã led bảy đoạn
- IC 7805 để ổn áp dòng ra 5v dùng cho toàn mạch
- Pin 3V nuôi đồng hồ thời gian thực DS1307
- Transistor A1015 làm khóa đóng ngắt led 7 segments
- Các điện trở và tụ khác
4
Trang 5Chương II: Sơ đồ khối hệ thống
Dựa theo yêu cầu chức năng và hướng lựa chọn phương án phần cứng để giải quyết như đã nói ở trên, nhóm chúng em đã đưa ra sơ đồ hệ thống gồm các khối sau:
2.1) Khối hiển thị thời gian
Khối này sẽ bao gồm IC giải mã 74ls247 để chuyển từ kí tự số thập phân sang dạng hiển thị số đó trên led 7 đoạn tương ứng Dùng 4 Transistor PNP để quét led
2.2) Khối hiển thị tín hiệu đèn giao thông
Khối này sẽ bao gồm 10 đèn led đơn Gồm bộ 3 led {xanh, đỏ, vàng} điều khiển
phương tiện hướng 1, bộ 3 led {xanh, đỏ, vàng} điều khiển phương tiện hướng 2, 2
bộ đôi led {xanh, đỏ} điều khiển người đi bộ ở hướng 1 và 2
Trang 62.3) Khối điều khiển
Gồm 4 nút bấm menu, up, down, set và lcd 1602
6
Trang 72.4) Khối thời gian thực DS1307
2.5) Khối điều khiển hệ thống PIC16F877A
Trang 8Chương III: Sơ đồ nguyên lý
Để triển khai hệ thống, nhóm chúng em đã tìm hiểu, tham khảo nhiều nguồn tài liệu khác nhau và đưa ra sơ đồ nguyên lý như sau:
3.1)Khối điều khiển hệ thống
8
Trang 93.2)Sơ đồ khối thời gian thực
3.3)Khối hiển thị thời gian đèn
Trang 103.4)Khối nút bấm điều khiển và hiển thị đèn
10
Trang 113.5)Khối hiển thị điều khiển lcd
3.6)Khối mạch nạp
Trang 12Chương IV: Một số thuật toán sử dụng trong mã nguồn của đề tài
Begin Khởi tạo
Khởi tạo giá trị chân cho VĐK Khởi tạo LCD, DS1307 Đọc dữ liệu trong EEPROM
Điều khiển đèn giao thông
Điều khiển tín hiệu đèn xanh đỏ vàng ở các hướng
Hiển thị thời gian đếm lùi
Đếm lùi thời gian ở các hướng
12
Trang 13Quét bàn phím
Kiểm tra phím bấm và xử lý các tín hiệu điều khiển
4.1)Sơ đồ thuật toán
Trang 144.2)Thuật toán quét led 7 đoạn
Bài toán đặt ra là hiển thị hai số a,b có hai chữ số lên 4 led 7 đoạn Dùng
B0,B1,B2,B3 của Pic để dùng làm chân điều khiển 7seg sáng hay tắt Dùng B7, B6, B5, B4 đưa vào chân D,C,B,A của giải mã 74ls247
Quét led 7 đoạn
Hiển thị a,b lên led 7 đoạn
Int8 Enable[4] = {0x0E, 0x0D, 0x0B, 0x07};
Int8 So[10] = {0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90};
A[0] = a/10;
A[1] = a%10;
A[2] = b/10;
A[3] = b%10;
For(int i=0;i<4;i++) {
PortB = Enable[i] + So[ A[i] ];
Delay_ms(3); }
14
Trang 15Điều khiển bàn phím
Kiểm tra phím bấm và xử lý các tín hiệu điều khiển
Menu = 0?
Mode = 0 Mode ++
Mode > 9?
Mode = 1
Up = 0?
Giatri++
Down = 0?
Giatri
Set = 0?
Trang 16If (mode == 1)||(mode == 2)
{ ghi Giatri vào DS1307}
Else {ghi Giatri vào EEPROM}
Menu = 0?
4.3)Thuật toán điều khiển bàn phím
S
Đ
Đ
Đ
S
Đ
S
Đ
S
Đ
S
16
Trang 17Đ
Mode = 3 //Nhấp nháy
Trang_thai = 7
Mode = CheckTime()
Kiểm tra thời điểm hiện tại của hệ thống thông qua DS1307.
Mode là giá trị trả về quyết định kiểu hiển thị của hệ thống.
ThoiGian = ThoiGian_binhthuong
Trang_thai = 1
For( ;Trang_thai<=6;Trang_thai++)
{Hien_thi(Trang_thai);}
// Trang_thai[1; 2; 3; 4; 5; 6] = X1_D2; V1_D2; D1_D2_1; D1_X2; D1_V2;
D1_D2_2
Mode = 1?
Chế độ bình thường
Mode = 2?
// Chế độ cao điểm
ThoiGian = ThoiGian_caodiem
Trang_thai = 6
For( ;Trang_thai<=8;Trang_thai++)
{Hien_thi(Trang_thai);}
// Trang_thai = 7 trạng thái đèn vàng bật
// Trang_thai = 8 trạng thái đèn vàng tắt
4.4)Thuật toán điều khiển đèn tín hiệu xanh đỏ vàng
Trang 18Đ
S
Đ
S
Chương V: Tổng kết đánh giá đề tài
5.1) Đánh giá
Sau thời gian tìm hiểu dưới sự hướng dẫn nhiệt tình của thầy giáo, nhóm đã hoàn thành dự án mạch điều khiển đèn giao thông với các yêu cầu kỹ thuật đề ra Tuy
18
Trang 19nhiên, do mới làm quen với vi điều khiển và lần đầu làm mạch nên nhóm không thể tránh khỏi những thiếu sót về mặt kinh nghiệm Cụ thể, nhóm đánh giá một số nhược điểm và ưu điểm của hệ thống hiện hành như sau:
+ Ưu điểm:
- Nguồn ổn định 5V cho toàn bộ hệ thống
- Mạch chạy ổn định, LCD hiển thị tốt menu hệ thống và giờ hệ thống
- Các phím bấm hoạt động ổn định với các giải pháp chống rung cả về phần cứng và phần mềm
- Led đơn sáng rõ và đúng với trạng thái điều khiển đèn giao thông ở ngã tư
- Đồng hồ thời gian thực hoạt động ổn định với vi điều khiển PIC16F877A, cập nhật ổn định thời gian thực để điều khiển ở các chế độ khác nhau
+ Nhược điểm:
- 1 Led 7 đoạn sáng mờ
Qua quá trình hoàn thành mạch, nhóm cũng đã cố gắng tìm ra nguyên nhân của thiếu sót trên để mạch chạy cho hoàn thiện Cụ thể, led 7 đoạn sáng mờ do tiếp xúc ở JUMPER chưa tốt, có thể chình lại bằng tay
5.2) Tổng kế t
Mạch chạy khá tốt so với yêu cầu của đề tài Sau đây là tổng kết các phần việc mà thành viên trong nhóm đã làm
- Phân tích và thiết kế hệ thống: Hồ Quang Sơn và Ngô Việt Anh
- Triển khai mã nguồn: Hồ Quang Sơn
- Thực hiện mạch : Hồ Quang Sơn và Ngô Việt Anh
- Kiểm tra mạch và khắc phục sự cố: Hồ Quang Sơn và Ngô Việt Anh
- Báo cáo đề tài: Hồ Quang Sơn và Ngô Việt Anh
Trang 20
TÀI LIỆU THAM KHẢO
- Datasheet PIC16F877A
- Datasheet DS1307
- Datasheet LCD1602
- Datasheet các loại IC: 7805, 74LS247, led 7_seg, …
- Tài liệu CCS tiếng Việt
- Ebook PIC tutorial
- Trang web Dientuvietnam.net
- Trang web Picvietnam.com
20