Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 32

ĐẠI HỌC QUỐC GIA TP.

HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ
---------------o0o---------------

BÀI TẬP LỚN THIẾT KẾ HỆ THỐNG NHÚNG

ĐỀ TÀI: TRAFFIC LIGHT


GVHD: BÙI QUỐC BẢO

NHÓM: 6

HỌ VÀ TÊN:

ĐẶNG THÁI DƯƠNG 2011031

LÊ ĐỨC LỘC 2011571

NGUYỄN TRUNG KIÊN 2011467

TP. HỒ CHÍ MINH, THÁNG 12 NĂM 2022


Lời cảm ơn GVHD: Bùi Quốc Bảo

LỜI CẢM ƠN

Lời đầu tiên, nhóm chúng em xin chân thành cảm ơn bộ môn Điện tử - viễn
thông , trường Đại học Bách Khoa đã tạo điều kiện thuận lợi cho em thực hiện bài tập
lớn.
Đặc biệt chúng em xin chân thành cảm ơn thầy Bùi Quốc Bảo đã rất tận tình
hướng dẫn, chỉ bảo chúng em trong suốt thời gian thực hiện bài tập lớn vừa qua.
Chúng em cũng xin chân thành cảm ơn tất cả các Thầy, các Cô trong Trường đã
tận tình giảng dạy, trang bị cho chúng em những kiến thức cần thiết, quý báu để giúp
em thực hiện được đồ án.
Mặc dù chúng em đã có cố gắng, nhưng với trình độ còn hạn chế, trong quá trình
thực hiện đề tài không tránh khỏi những thiếu sót. Chúng em hi vọng sẽ nhận được
những ý kiến nhận xét, góp ý của Thầy về những vấn đề triển khai trong bài tập lớn.
Chúng em xin trân trọng cảm ơn!

Tp. Hồ Chí Minh, ngày 16 tháng 12 năm 2022 .

i
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

TÓM TẮT BÀI TẬP LƠN

Bài tập lớn này trình bày về traffic light hay còn gọi là hệ thống đèn giao
thông. Đèn giao thông (còn được gọi tên khác là hệ thống đèn tín hiệu giao
thông, đèn điều khiển giao thông, hay đèn xanh đèn đỏ) là một thiết bị được
dùng để điều khiển giao thông ở những giao lộ có lượng phương tiện lưu thông
lớn (thường là ngã ba, ngã tư đông xe qua lại). Đây là một thiết bị quan trọng
không những an toàn cho các phương tiện mà còn giúp giảm ùn tắc giao thông
vào giờ cao điểm. Nó được lắp ở tâm giao lộ hoặc trên vỉa hè. Đèn tín hiệu giao
thông có thể hoạt động tự động hay cảnh sát giao thông điều khiển.

ii
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

MỤC LỤC

1. GIỚI THIỆU..................................................................................................................................1

1.1 Tổng quan...............................................................................................................................1

1.2 Nhiệm vụ đề tài......................................................................................................................1

1.3 Phân chia công việc trong nhóm.............................................................................................1

2. LÝ THUYẾT..................................................................................................................................1

3. THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG.................................................................................2

4. THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM (NẾU CÓ).................................................................2

5. KẾT QUẢ THỰC HIỆN................................................................................................................2

6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN......................................................................................4

6.1 Kết luận..................................................................................................................................4

6.2 Hướng phát triển.....................................................................................................................4

7. TÀI LIỆU THAM KHẢO..............................................................................................................4

iii
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

DANH SÁCH HÌNH MINH HỌA


Hình 1 Mạch mô phỏng trên Proteus......................................................................................................11

Hình 2 Khối Nguồn................................................................................................................................12

Hình 3 Khối MCU..................................................................................................................................12

Hình 4 Khối hiển thị LED......................................................................................................................13

Hình 5 Khối nút nhấn.............................................................................................................................13

Hình 6 Mô Hình mạch 2D......................................................................................................................14

Hình 7 Mô Hình mạch 3D......................................................................................................................14

Hình 8 Hoàn thành sản phẩm thực tế......................................................................................................23

Hình 9 Sản phẩm mô phỏng...................................................................................................................24

iv
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

DANH SÁCH BẢNG PHÂN CHIA CÔNG VIỆC

Bảng 1 Phân chia công việc theo ngày.....................................................................................................2

Bảng 2 Phân chia công việc từng thành viên............................................................................................3

v
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

1. GIỚI THIỆU

1.1 Tổng quan

- Lý do chọn đề tài:

Với mỗi một dân tộc, để kinh tế phát triển thì sự phát triển về khoa học, kỹ thuật là
sư cần thiết và đặc biệt quan trọng. Với sự phát triển mạnh mẽ của kinh tế như hiên
nay, giao thông đang là một bài toán khó đòi hỏi nhiều ngành, nhiều cấp phải quan tâm,
và tìm ra hướng giải quyết. Để làm giảm bớt khó khăn đó cũng như làm cho việc lưu
thông trên các tuyền đường được thông thoáng và giảm thiểu tai nạn, thì việc đặt các
cột đèn giao thông tại các ngã và thời gian quyết định đi cho phép đi và cấm đi của các
tuyến là đặc biệt quan trọng.
Đối với một ngã tư, tại mỗi thời điểm trong ngày thì sự lưu thông ở mỗi ngã tư là rất
quan trọng. Vì thế, một chương trình điều khiển đèn giao thông ngã tư được lưu thông
một cách tốt nhất là cần thiết và hết sức quan trọng.
Với những nhận định như trên, em đã quyết định chọn đề tài “Thiết kế hệ thống đèn
giao thông ngã tư” làm đề tài bài tập lớn.

- Mục tiêu:

Ngày nay cùng với sự phát triển kinh tế, việc đô thị hoá cũng đang gia tăng nhanh
chóng dẫn đến lượng phương tiện lưu thống trong các đô thị cũng tăng theo. Do đó vấn
đề đảm bảo giao thông trong các đô thị, đặc biệt tại các nút giao thông diễn ra thông
suốt là rất quan trọng.
Để việc đi lại tại các nút giao thông được thông suốt và thuận lợi thì chúng ta có thể
nhờ đến sự giúp đỡ của lực lượng Cảnh sát giao thông và các lực lượng khác. Tuy
nhiên, với các đô thị lớn có số nút giao thông nhiều thì khó có đủ lực lượng để đảm
nhiệm công việc này. Mặt khác việc nhờ đến sự giúp đỡ của Cảnh sát giao thông và các
lực lượng khác cũng khó khăn và tốn kém.

1.2 Nhiệm vụ đề tài

- Nội dung 1: Tìm hiểu nguyên lý, lý thuyết về cách hoạt động của hệ thống đèn
giao thông ở ngã tư, cách hiển thị và các chế độ làm việc.
- Nội dung 2: Tìm hiểu về cảm biến, vi xử lý, bo mạch phát triển, tìm hiểu lý
thuyết về các chân GPIO, các giao tiếp trong vi điều khiển UART, I2C, SPI, …, các
ngắt, … của vi điều khiển và các linh kiện cần thiết cho dự án ví dụ mạch ổn áp, mạch
nguồn. Tìm hiểu cách kết nối các led vào các chân phù hợp của vi điều khiển.

1
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

- Nội dung 3: Thiết kế bộ điều khiển hệ thống đèn giao thông, sử dụng giải
thuật sử dụng giải thuật phù hợp để mạch hoạt động đúng với chức năng đề ra.
- Cách tiếp cận:
Sử dụng tài liệu môn Kỹ thuật Cảm biến, Kỹ thuật số và Thiết kế Hệ thống nhúng
tham khảo cho đề tài.
Tham khảo thêm từ những Group học tập trên mạng xã hội, trang web học tập,
những video hướng dẫn trên Youtube.
Khảo sát một số mạch điện từ mạng internet, khảo sát các bãi giữ xe thông minh
hiện hành để chọn lựa phương án thiết kế sau này.
Từ những ý tưởng và kiến thức của mình, kết hợp sự hướng dẫn của giáo viên, em
đã lắp ráp thử nghiệm nhiều dạng mạch khác nhau để từ đó chọn lọc những mạch điện
tối ưu.

1.3 Phân chia công việc trong nhóm


Kế hoạch làm việc :

Bảng 1 Phân chia công việc theo ngày

KẾ HOẠCH MONTH 1 MONTH 2 MONTH 3

-Thiết kế sơ bộ hệ thống →

-Thiết kế phần cứng

-Thiết kế giao diện →

-Triển khai phần cứng →

-Phát triển phần mềm →

-Xây dựng thuật toán →

2
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

-Phát triển trình điều khiển, →


giao diện người dùng

-Triển khai chương trình phần →


mềm

-Tích hợp và kiểm tra


-Chạy thử nghiệm →

-Xác minh hệ thống


Bảng 2 Phân chia công việc từng thành viên

Người thực
STT Công việc Chi tiết công việc Thời hạn
hiện
Tìm hiểu các chân và
chức năng của từng chân
Tìm hiểu lý thuyết GPIO của vi điều khiển,
01/10/2022 –
1 về các chân của vi các chức năng có thể có Lê Đức Lộc
20/10/2022
điều khiển. của GPIO (một chân có
thể có chức năng INT
hay TIMER)
Tìm hiểu nguyên
lý, lý thuyết về Tìm hiểu cách hoạt động
Nguyễn Trung 01/10/2022 –
2 mạch ổn áp, mạch của mạch ổn áp, cách
Kiên 20/10/2022
nguồn, các khối led kết nối các khối hiển thị
hiển thị
3 Tìm hiểu cách sử Tìm hiểu cách để thiết Nguyễn Trung 01/10/2022 –
dụng các phần kế mạch dựa trên sơ đồ Kiên, Đặng 20/10/2022
mềm thiết kế nguyên lí, cách mô Thái Dương
mạch, các phần phỏng mạch trên phần

3
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

mềm mô phỏng mềm


Thiết kế bộ điều Tìm hiểu các giải thuật
khiển phù hợp với để hiển thị thời gian, từ Đặng Thái 01/10/2022 –
4
cách sử dụng các đó tìm ra giải thuật phù Dương 20/10/2022
giải thuật hợp cho dự án.
Chi tiết các giá trị của
từng linh kiện dựa trên
Tìm kiếm linh kiện datasheet, các điện áp Đặng Thái 20/10/2022 –
5
phù hợp với dự án hoạt động, các giới hạn Dương 01/11/2022
để chọn linh kiện hợp lý
tránh cháy và hư hỏng.
Đưa các linh kiện mới
Mô phỏng trên kiếm được lên Proteus Đặng Thái 20/10/2022 –
6
proteus để mô phỏng sự hoạt Dương 01/11/2022
động của mạch.
Đặng Thái
Thiết kế mạch và Vẽ và xuất ra PCB để Dương 01/11/2022 –
7
vẽ Schematic hàn mạch. Nguyễn Trung 15/11/2022
Kiên
Đo và chọn kích thước
04/11/2022 –
8 Thiết kế khung phù hợp để thiết kế mô Cả nhóm
10/11/2022
hình đèn giao thông
Sau khi chọn thuật toán, Cả nhóm
viết thuật toán dưới dạng
ngôn ngữ C và cấu hình
Code và Test từng các chân trong 15/11/2022 –
9
thuật toán PIC16F877A để tạo 30/11/2022
thành một Bộ giải thuật
hoàn chỉnh.

Giải quyết các lỗi mà hệ 01/12/2022 –


10 Debug lỗi
thống có thể gặp 05/12/2022
11 Hoàn thành và Test Hoàn thành bộ giải 13/12/2022

4
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

thuật, nạp và đem test


thực tế
thực tế

2. LÝ THUYẾT

a. Vi điều khiển PIC16F877A

Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình
(Program memory) và bộ nhớ dữ liệu (Data Memory).
 Bộ nhớ chương trình

5
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash, dung lượng bộ
nhớ 8K word (1 word = 14 bit) và được phân thành nhiều trang (từ page 0 đến page 3). Như
vậy bộ nhớ chương trình có khả năng chứa được 8*1024 = 8192 lệnh (vì một lệnh sau khi mã
hóa sẽ có dung lượng 1 word (14 bit).
Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình, bộ đếm chương trình có
dung lượng 13 bit (PC<12:0>). Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến
địa chỉ 0000h (Reset vector). Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ
0004h (Interrupt vector).
 Bộ nhớ dữ liệu
Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia làm nhiều bamk. Đối với
PIC16F877A, bộ nhớ dữ liệu được chia ra làm 4 bank. Mỗi bank có dung lượng 128 byte,
bao gồm các thanh ghi có chức năng đặc biệt SFR (Special Function Register) nằm ở các
vùng địa chỉ thấp và các thanh ghi mục đich chung GPR (General Purpose Register) nằm ở
vùng địa chỉ còn lại trong bank. Các thanh ghi SFR thường xuyên được sử dụng (ví dụ như
thanh ghi STATUS) sẽ được đặt ở tất cả các bank của bộ nhớ dữ liệu giúp thuận tiện trong
quá trình xuất và làm giảm bớt lệnh của chương trình.
Các thông số cơ bản
Đâ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ồm cá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 tính Analog: 8 kênh chuyển đổi ADC 10 bit.
- Hai bộ so sánh.
- 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)
- 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

6
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

b. Cảm biến mưa (Rain Sensor)

Cảm biến mưa (Rain Sensor)


Giới thiệu
Cảm biến nước mưa (Rain Water Sensor ) được sử dụng để phát hiện mưa, nước hoặc
các dung dịch dẫn điện tiếp xúc với bề mặt cảm biến sẽ phát ra tín hiệu để làm các ứng
dụng tự động: phát hiện mưa, báo mực nước tự động,...
Thông số kỹ thuật
 Điện áp sử dụng: 5VDC
 Kích thước tấm cảm biến mưa: 54 x 40mm
 Kích thước board PCB: 30 x 16mm
 Tín hiệu đầu ra: Digital TTL (0VDC / 5VDC) và đầu ra Analog A0 trả giá trị
điện áp tuyến tính theo lượng nước tiếp xúc với cảm biến.
 Lỗ cố định bu lông dễ dàng để cài đặt
 Có đèn báo hiệu nguồn và đầu ra
 Độ nhạy có thể được điều chỉnh thông qua chiết áp
 LED sáng lên khi không có mưa đầu ra cao, có mưa, đầu ra thấp LED tắt.

Chế độ kết nối


 VCC: Nguồn
 GND: Đất
 D0: Đầu ra tín hiệu TTL chuyển đổi
 A0: Đầu ra tín hiệu Analog

c. Mạch đèn giao thông 5V


Giới thiệu
Mạch led đèn giao thông là một trong những module led được sử dụng làm các
mô hình điện tử, với 3 bóng đèn led để mô phỏng cột đèn giao thông chính xác. Kích
thước của mạch led giao thông nhỏ gọn, dễ dàng sử dụng.

7
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

Hình 2.6: Mạch đèn giao thông 5V.


Thông số kỹ thuật
 Kích thước: 56 * 21 * 11mm
 Màu sắc: đỏ, vàng, xanh
 LED: 3 led đục - đường kính bóng led 8mm
 Điện áp: 5V
 Trọng lượng: 25 gram
 4 Chân nối:

 GND
 Red
 Yellow
 Green

d. Mạch ổn áp sử dụng IC 7805

Tụ C1 và C2 để lọc điện áp đầu vào cấp cho chân Vi của IC 7805, tụ C1 có các dụng
cung cấp điện áp tạm thời cho chân Vi khi nguồn đột ngột bị sụt áp, tụ C2 là tụ gốm nên trở

8
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

kháng lớn, C2 có tác dụng ngăn nguồn đầu vào tăng áp đột ngột làm dạng sóng điện áp đầu
vào có hình răng cưa.

Tụ C3 và C4 để lọc điện áp cấp cho tải tiêu thụ lấy từ chân Vo của IC 7805, tụ C3 có
các dụng cung cấp điện áp tạm thời cho tải khi điện áp tải đột ngột bị sụt áp, tụ C4 trở kháng
lớn, C4 có tác dụng lọc nhiễu điện áp đầu ra (nhiễu là các điện áp không mong muốn làm cho
dạng sóng điện áp ngõ ra có hình răng cưa).

e. LED 7 đoạn

- Sử dụng 4 led đôi để đếm thời gian được lấy từ ngõ ra Port D của PIC16F877A.
- Cấp tín hiệu để chạy led đi từ Port B của Pic sau khi đi qua 2 transistor thay đổi dòng
áp để phù hợp với đèn.

3. THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG

 Yêu cầu thiết kế


o Giá thành sản phẩm <700.000 VNĐ
o Thời gian delay nhỏ hơn hoặc bằng 1s
o Công suất tiêu thụ nhỏ hơn 1W
o Trọng lượng nhỏ hơn 700g
o Đảm bảo thực hiện đầy đủ các chức năng: Normal, rush hour, night, rain
 Phân tích thiết kế
- Mạch dùng IC số: với mạch dùng IC số có những ưu điểm sau:
+ Giá thành rẻ
+ Mạch đơn giản dễ thực hiện
+ Tổn hao công suất bé, mạch có thể dùng pin hoặc acquy
Tuy nhiên khi 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 chương trình nào đó thì buộc phải thay đổi phần

9
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

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 đặc biệt là cho ra đời các
họ vi xử lí, vi điều khiển 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.

- Với vi mạch dùng kĩ thuật vi xử lý:


Với phương pháp này có những ưu điểm sau:
+ Ta có thể thay đổi 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
khó tiếp cận, dễ nhầm.
+ Số linh kiện sử dụng trong mạch cũng ít hơn.
+ Mạch đơn giản hơn 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. Do vậy 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 sử dụng bộ vi điều khiển.
- Điều khiển bằng vi điều khiển:
Ngoài ưu điểm của phương pháp trên, phương pháp này còn có những ưu
điểm sau:
+ 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 hơn.
+ 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 sang nối tiếp để giao tiếp với máy tính.

 Vẽ sơ đồ khối tổng quát

10
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

 B ộ x ử l ý t r u n g t â

thống.
 Led 7 thanh hiển thị thời gian sáng của đèn.
 Nút nhấn: Ở đây có 4 nút nhấn (Normal, Rush Hour, Night, Reset)
 Nút nhấn Normal: Đèn Đỏ (35s), Đèn Xanh (30s), Đèn Vàng (5s).
 Nút nhấn Rush Hour: Đèn Đỏ (60s), Đèn Xanh (55s), Đèn Vàng (5s).
 Nút nhấn Night: Chỉ hoạt động đèn Vàng đến khi chuyển chế độ.
 Nút nhấn Reset: Mỗi khi chuyển chế độ dùng nút Reset để chuyển.
 Cảm biến mưa: Có 2 mức tín hiệu 0 và 1 (Mức 0: Tắt chế độ mưa, Mức 1: Cho phép chế
độ mưa được hoạt động)

 Vẽ sơ đồ mạch chi tiết


-Mạch mô phỏng

Hình 1 Mạch mô phỏng trên Proteus


11
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

- Schematic:

Hình 3 Khối vi điều khiển

12
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

Hình 4 Khối nút nhấn

Hình 5 Khối hiển thị LED


-Mạch PCB:

13
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

Hình 7 Mô Hình mạch 3D

14
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

4. THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM

a. Lưu đồ thuật toán

b. Hoạt động
Nút nhấn Normal: Đèn Đỏ (35s), Đèn Xanh (30s), Đèn Vàng (5s).
Nút nhấn Rush Hour: Đèn Đỏ (60s), Đèn Xanh (55s), Đèn Vàng (5s).
Nút nhấn Night: Chỉ hoạt động đèn Vàng đến khi chuyển chế độ.
Nút nhấn Reset: Mỗi khi chuyển chế độ dùng nút Reset để chuyển.

15
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

Cảm biến mưa: Có 2 mức tín hiệu 0 và 1 (Mức 0: Tắt chế độ mưa, Mức 1: Cho phép
chế độ mưa được hoạt động). Khi cảm biến mưa được ở mức thì hệ thống sẽ lập tức
chuyển sang chế độ mưa.

c. Các mode hoạt động


Mode điều khiển:

Mode tự động:

16
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

d. Đoạn code

#include <main.h>
#use fast_io(d)
#use fast_io(b)
#use fast_io(c)
#use fast_io(a)
#byte portd=0x08
#bit rb4=0x06.4
#bit ra0=0x05.0
#bit ra1=0x05.1
#bit ra2=0x05.2
#bit ra3=0x05.3
#bit rb0=0x06.0 // led1
#bit rb1=0x06.1 // led2
#bit rb2=0x06.2 // led3
#bit rb3=0x06.3 // led4
#bit rb7=0x06.7
#bit rc0=0x07.0 // x1
#bit rc1=0x07.1 // v1
#bit rc2=0x07.2 // d1
#bit rc3=0x07.3 // x2
#bit rc4=0x07.4 // v2
#bit rc5=0x07.5 // d2
#define bat 1
#define tat 0
//--------------------------------
int m[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int num1,donvi1,chuc1;
int num2,donvi2,chuc2;
//---------------------delay-------------
void delay(int ms)
{
int a,b;
for(a=0;a<ms;a++)
for(b=0;b<50;b++)
{
}

17
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

}
//-------------hien thi---------------------
void ht1(void)
{
int c;
for(c=0;c<50;c++)
{
chuc1=num1/10;
donvi1=num1%10;
output_d(m[chuc1]);
rb2=bat;
delay(50);
rb2=tat;
output_d(m[donvi1]);
rb3=bat;
delay(50);
rb3=tat;
chuc2=num2/10;
donvi2=num2%10;
output_d(m[chuc2]);
rb0=bat;
delay(50);
rb0=tat;
output_d(m[donvi2]);
rb1=bat;
delay(50);
rb1=tat;
}
}

void mua()
{
rc0=tat;
rc2=tat;
rc3=tat;
rc5=tat;
delay_ms(500);
rc4=bat;
rc1=bat;
delay_ms(1000);
rc4=tat;
rc1=tat;
delay_ms(500);
}
void duongu(){
if(ra3==bat)
{
delay_ms(100);
mua();
while(ra3==bat)

18
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

{
mua:
delay_ms(500);
rc4=bat;
rc1=bat;
delay_ms(1000);
rc4=tat;
rc1=tat;
delay_ms(500);
goto mua;
}
}
}
void main(void)
{
set_tris_d(0x00);
set_tris_b(0xff);
set_tris_c(0x00);
set_tris_a(0xff);
output_d(0xFF);
rc0=tat;
rc5=tat;
rc1=tat;
rc2=tat;
rc3=tat;
rc4=tat;
while(true)
{

// Normal
if(!ra0)
{
delay_ms(100);
while(!ra0)
{
binhthuong:
num1=35;
num2=30;
do
{
set_tris_b(0x00);
rc0=bat;
rc5=bat;
rc1=tat;
rc2=tat;
rc3=tat;
rc4=tat;
ht1();
num1--;
num2--;

19
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

duongu();
}

while(num2!=0);
num2=num1=5;
do
{
set_tris_b(0x00);
rc1=bat;
rc5=bat;
rc0=tat;
rc2=tat;
rc3=tat;
rc4=tat;
ht1();
num1--;
num2--;
duongu();
}
while(num2!=0);
num1=30;
num2=35;
do
{
set_tris_b(0x00);
rc2=bat;
rc3=bat;
rc0=tat;
rc1=tat;
rc4=tat;
rc5=tat;
ht1();
num1--;
num2--;
duongu();
}
while(num1!=0);
num1=num2=5;
do
{
set_tris_b(0x00);
rc2=bat;
rc4=bat;
rc0=tat;
rc1=tat;
rc3=tat;
rc5=tat;
ht1();
num1--;
num2--;

20
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

duongu();
}
while(num1!=0);
goto binhthuong;
}
}
// Rush hour
if(!ra1)
{
delay_ms(100);
while(!ra1)
{
caodiem:
num1=60;
num2=55;
do
{
set_tris_b(0x00);
rc0=bat;
rc5=bat;
rc1=tat;
rc2=tat;
rc3=tat;
rc4=tat;
ht1();
num1--;
num2--;
duongu();
}
while(num2!=0);
num2=num1=5;
do
{
set_tris_b(0x00);
rc1=bat;
rc5=bat;
rc0=tat;
rc2=tat;
rc3=tat;
rc4=tat;
ht1();
num1--;
num2--;
duongu();
}
while(num2!=0);
num1=55;
num2=60;
do
{

21
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

set_tris_b(0x00);
rc2=bat;
rc3=bat;
rc0=tat;
rc1=tat;
rc4=tat;
rc5=tat;
ht1();
num1--;
num2--;
duongu();
}
while(num1!=0);
num1=num2=5;
do
{
set_tris_b(0x00);
rc2=bat;
rc4=bat;
rc0=tat;
rc1=tat;
rc3=tat;
rc5=tat;
ht1();
num1--;
num2--;
duongu();
}
while(num1!=0);
goto caodiem;
}
}

// che do Night
if(!ra2)
{
delay_ms(100);
while(!ra2)
{
dem:
delay_ms(500);
rc4=bat;
rc1=bat;
delay_ms(1000);
rc4=tat;
rc1=tat;
delay_ms(500);
goto dem;
}
}

22
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

}
}

5. KẾT QUẢ THỰC HIỆN

Nhóm em chủ yếu sử dụng phần mềm proteus để thực hiện mô phỏng và phần mềm
altium để design và thiết kế mạch in.

Trên proteus hệ thống chạy tốt, test code mạch chạy hoàn toàn đúng.

Tuy nhiên, do lỗi ở phần thiết kế nên mạch chúng em khi gia công ra không hoạt động
được .

23
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

Hình 8 Hoàn thành sản phẩm thực tế

24
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

Hình 9 Sản phẩm mô phỏng

 Đánh giá về kết quả làm việc nhóm

Các vấn đề cần hoàn thành Đánh giá Phân chia % số điểm
Tìm hiểu lí thuyết Hoàn thành tốt và đúng Chia đều cho từng thành
thời hạn viên trong nhóm
Thiết kế và mô phỏng Hoàn thành đúng thời hạn
Đóng góp ý kiến Đóng góp ý kiến nhiệt
tình, đưa ra được nhiều ý
kiến để cùng thảo luận
Mục tiêu chung của đề tài: Mục tiêu đầu đã hoàn
hiểu được cách hình thành thành nhưng mục tiêu thứ
một hệ thống nhúng sử hai là thực hiện mạch in thì
dụng vi điều khiển và hiện vẫn chưa hoàn thành được
thực hóa mạch in

6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

6.1 Kết luận

Sau khi thực hiện đề tài này, nhóm chúng em học được rất nhiều kinh nghiệm bổ ích
trong việc thiết kế một hệ thống nhúng. Học được cách sử dụng các phần mềm viết chương

25
Bài tập lớn môn học GVHD: Bùi Quốc Bảo

trình cho vi điều khiển như PIC-C Compiler, phần mềm mô phỏng như Proteus, phần mềm
thiết kế mạch in Aitium. Bên cạnh đó, chúng em cũng phần nào hiểu rõ hơn về vi điều khiển
PIC 16F877A và cách tính toán, sử dụng hợp lí các linh kiện cho một hệ thống nhúng. Tuy
nhiên, trong quá trình thiết kế có sai sót nên chúng em vẫn chưa hoàn thành được mạch trên
thực tế và nhóm chúng em vẫn chưa khắc phục được.

6.2 Hướng phát triển

Đề tài này của chúng em có thể sử dụng ổn trong thực tế. Sau này có thể thêm một số
chi tiết đèn để báo hiệu cho người đi bộ

7. TÀI LIỆU THAM KHẢO

[1] Hạnh Nhất, “lập trình cho PIC sử dụng PIC C Compiler trang 50”,
https://www.academia.edu/6861661/L%E1%BA%ADp_Tr%C3%ACnh_Cho_PIC_D
%C3%B9ng_PIC_C_Compiler_Trang_50
[2] Microchip Technology, “ PIC16F877A datasheet (PDF),
https://www.alldatasheet.com/datasheet-pdf/pdf/82338/MICROCHIP/PIC16F877A.html
[3] Điện tử tương lai, “Giới thiệu về PIC16F877A”, https://dientutuonglai.com/gioi-thieu-
pic-16f877a.html
[4] Zakaria Mohammed, “Basic timing trafic control using PIC16F877A”,
https://blog.mazitekgh.com/2016/10/basic-timing-trafic-control-using.html

26

You might also like