Thiết kế và xây dựng hệ thống điều khiển giao thông

43
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG KHOA CÔNG NGHỆ ĐIỆN TỬ VÀ TRUYỀN THÔNG BÀI BÁO CÁO Môn: Thực hành điều khiển và vi xử lý ĐỀ TÀI: “Thiết kế và xây dựng hệ thống điều khiển giao thôngLớp : CNVTK9A Giảng viên hướng dẫn: Nguyễn Thế Dũng Nhóm sv thực hiện: Mai Thị Điểm Bùi Thị Vân Vũ Thị Bích

description

- Phân tích yêu cầu của thiết kế và các giải pháp đưa ra để thực hiện.- Xây dựng & Thiết kế hệ thống

Transcript of Thiết kế và xây dựng hệ thống điều khiển giao thông

Page 1: Thiết kế và xây dựng hệ thống điều khiển giao thông

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

KHOA CÔNG NGHỆ ĐIỆN TỬ VÀ TRUYỀN THÔNG

BÀI BÁO CÁOMôn: Thực hành điều khiển và vi xử lý

ĐỀ TÀI: “Thiết kế và xây dựng hệ thống điều khiển giao thông”

Lớp : CNVTK9A

Giảng viên hướng dẫn: Nguyễn Thế Dũng

Nhóm sv thực hiện: Mai Thị Điểm

Bùi Thị Vân

Vũ Thị Bích

Nguyễn Đình Hòa

Thái Nguyên, tháng 4 /2014

Page 2: Thiết kế và xây dựng hệ thống điều khiển giao thông

MỤC LỤCLỜI NÓI ĐẦU..............................................................................................................3

CHƯƠNG I: PHÂN TÍCH HỆ THỐNG...................................................................4

1.1. GIỚI THIỆU HỆ THỐNG MẠCH ĐIỀU KHIỂN ĐÈN GIAO THÔNG......4

1.1.1. Ý tưởng thiết kế hệ thống điều khiển đèn giao thông..................................4

1.1.2. Yêu cầu của mạch điều khiển giao thông....................................................4

1.2. CÁC GIẢI PHÁP VÀ XÁC ĐỊNH BÀI TOÁN.................................................4

CHƯƠNG II: THIẾT KẾ HỆ THỐNG.....................................................................5

2.1. SƠ ĐỒ KHỐI CỦA HỆ THỐNG......................................................................5

2.2. SƠ ĐỒ ĐẶC TẢ CỦA HỆ THỐNG..................................................................5

2.3. CÁC MODULE TRONG HỆ THỐNG............................................................6

2.3.1. Module điều khiển trung tâm......................................................................6

2.3.2 Module khối hiển thị.....................................................................................7

2.3.3 Module khối nguồn.......................................................................................7

2.4. LỰA CHỌN LINH KIỆN..................................................................................7

2.4.1 Vi điều khiển PIC 16F877A.........................................................................7

2.4.2 Bộ tạo dao động thạch anh............................................................................9

2.4.3 Khối giải mã.................................................................................................9

2.4.4 Các linh kiện trong bộ hiển thị.....................................................................9

2.5 SƠ ĐỒ NGUYÊN LÍ CỦA MẠCH.....................................................................9

2.6 NGUYÊN LÍ HOẠT ĐỘNG CỦA MẠCH.........................................................9

2.7 SƠ ĐỒ THUẬT TOÁN ĐIỀU KHIỂN............................................................10

2.7.1 Giản đồ thời gian thể hiện chế độ hoạt động của hệ thống.........................10

2.7.2 Sơ đồ thuật toán của hệ thống đèn giao thông............................................10

CHƯƠNG III: XÂY DỰNG CHƯƠNG TRÌNH HỆ THỐNG.............................11

3.1 MÃ NGUỒN ĐIỀU KHIỂN HỆ THỐNG ĐÈN GIAO THÔNG...................11

3.2 KẾT QUẢ MÔ PHỎNG....................................................................................11

ĐÁNH GIÁ VÀ KẾT LUẬN.....................................................................................12

NHẬN XÉT.................................................................................................................13

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

Page 3: Thiết kế và xây dựng hệ thống điều khiển giao thông

LỜI NÓI ĐẦU

Ngày nay, sự phát triển của ngành kỹ thuật số đã và đang có tầm ảnh hưởng lớn

đến ngành kinh tế toàn cầu. Nhờ có ưu điểm của xử lý số như độ tin cậy trong truyền dẫn,

tính đa thích nghi và kinh tế của nhiều phần mềm khác nhau, tính tiện lợi trong điều

khiển và khai thác mạng cho nên số hóa đang là xu hướng phát triển tất yếu của nhiều

lĩnh vực kỹ thuật và kinh tế khác nhau. Không chỉ trong lĩnh vực thông tin liên lạc và

trong tin học, ngày nay kỹ thuật số đã và đang thâm nhập mạnh mẽ vào Kỹ thuật điện tử,

phát thanh truyền hình, y tế…và ngay cả trong các đồ dùng sinh hoạt gia đình.

Ngay từ những ngày đầu của sự phát triển, kỹ thuật số nói riêng và ngành điện tử

nói chung đã tạo ra nhiều bước đột phá mới cho các ngành kinh tế và đảm bảo được yêu

cầu của người dùng cả về chất lượng và dịch vụ. Với sự phát triển mạnh mẽ đó, là những

sinh viên điện tử thì kiến thức về kỹ thuật số là không thể thiếu đối với mỗi sinh viên. Vì

thế việc học hỏi, nghiên cứu kiến thức về chuyên môn là việc làm rất cần thiết với sinh

viên đặc biệt là tăng cường nghiên cứu, tạo ra các sản phẩm thực tế ứng dụng trong đời

sống thường ngày.

Ngày nay, hệ thống giao thông nước ta rất phức tạp và rối ren.Vì vậy việc sử dụng

đèn giao thông tại các giao lộ là rất cần thiết. Để hiểu rõ hơn về nguyên lý hoạt động

chúng em tiến hành thực hiện đề tài : Thiết kế và xây dựng hệ thống điều khiển giao thông.

Nội dung của bài báo cáo gồm các nội dung chính sau:

Lời nói đầu

Chương 1: Phân tích yêu cầu của thiết kế và các giải pháp đưa ra để thực hiện

Chương 2: Thiết kế hệ thống

Chương 3: Xây dựng hệ thống

Kết luận và hướng phát triển hoàn thiện đề tài

Page 4: Thiết kế và xây dựng hệ thống điều khiển giao thông

CHƯƠNG I: PHÂN TÍCH HỆ THỐNG

1.1.GIỚI THIỆU HỆ THỐNG MẠCH ĐIỀU KHIỂN ĐÈN GIAO THÔNG.

1.1.1. Ý tưởng thiết kế hệ thống điều khiển đèn giao thông.

Hệ thống đèn giao thông hoạt động theo các chế độ trong ngày: giờ cao điểm, bình

thường và thấp điểm. Tuy nhiên, trong hệ thống thiết kế của chúng em chỉ thiết kế ở chế

độ bình thường và hiển thị thời gian trên LED 7 đoạn.

-Bình thường: Đèn xanh 30s, đèn đỏ 27s, đèn vàng 3s.

-Có 4 LED 7 đoạn đơn: 2 LED hiển thị đếm ngược cho 1 làn đường.

-Hệ thống LED đơn hiển thị cho các đèn xanh, đèn đỏ, đèn vàng.

-Hệ thống nút nhấn để reset mạch.

1.1.2. Yêu cầu của mạch điều khiển giao thông

- Mạch phải đơn giản, dễ thiết kế, dễ lắp đặt, dễ dàng sửa chữa.

- Mạch phải chạy ổn định, chính xác và dễ vận hành.

-Chi phí để thiết kế phải rẻ.

1.2.CÁC GIẢI PHÁP VÀ XÁC ĐỊNH BÀI TOÁN

a. Xác định bài toán

Mô hình đèn giao thông gồm có:

Khối vi xử lý: Mạch xử lý với vi điều khiển pic 16F877A làm nhiệm vụ xử

lí chính, bộ nguồn cung cấp điện áp 5VDC.

Khối hiển thị: Khối này gồm

-LED đơn: hiện thị tín hiệu đèn giao thông.

-LED 7 đoạn: Hiển thị thời gian sáng của đèn.

Khối nguồn: Cung cấp điện áp 5V DC

Khối giải mã:

b. Giới hạn của đề tài

Page 5: Thiết kế và xây dựng hệ thống điều khiển giao thông

Mạch thực hiện chỉ chạy được một chế độ, chưa mở rộng được các chế độ theo

yêu cầu của người sử dụng.

CHƯƠNG II: THIẾT KẾ HỆ THỐNG

2.1. SƠ ĐỒ KHỐI CỦA HỆ THỐNG

Hình: Sơ đồ khối hệ thống đèn giao thông

Khối hiển thị: Hiển thị chính xác thời gian trên LED 7 đoạn và tín hiệu đèn giao

thông trên led đơn.

Khối điều khiển trung tâm: Điều khiển mọi sự hoạt động theo giờ của hệ thống

đèn tín hiệu giao thông.

Khối nguồn:

2.2. SƠ ĐỒ ĐẶC TẢ CỦA HỆ THỐNG

KHỐI ĐIỀU

KHIỂN

KHỐI MÃ

HÓA

KHỐI HIỂN THỊ

KHỐI NGUỒN

Đèn xanh 1 sángĐèn đỏ 2 sáng

Các đèn vàng 1, đỏ 1, xanh2, vàng 2 đều tắt

Đèn vàng 1 sángĐèn đỏ 2 sáng

Các đèn vàng 2, đỏ 1, xanh1, vàng 2 đều tắt

Đèn đỏ1 sángĐèn vàng 2 sáng

Các đèn vàng 1, đỏ 2, xanh2, vàng 2 đều tắt

Đèn đỏ 1 sángĐèn xanh 2 sáng

Các đèn vàng 1, đỏ 1, đỏ 2, vàng 2 đều tắt

Page 6: Thiết kế và xây dựng hệ thống điều khiển giao thông

2.3. CÁC MODULE TRONG HỆ THỐNG

2.3.1. Module điều khiển trung tâm

Sử dụng vi điều khiển PIC 16F877A

Page 7: Thiết kế và xây dựng hệ thống điều khiển giao thông

2.3.2 Module khối hiển thị

Khối hiển thị có chức năng đưa ra thông tin hiển thị tương ứng với trạng thái hiện

thời của hệ thống. Khối này gồm 2 phần: đèn hiển thị tín hiệu giao thông và đồng hồ.

Đèn hiển thị tín hiệu đèn giao thông bao gồm: Đèn dành cho các phương tiện tham

gia giao thông: xanh, đỏ, vàng.

Đồng hồ dùng các LED 7 thanh để tạo thành các bộ hiển thị từ 00-99.Ở đây ta

dùng loại cathode chung (phù hợp với IC 74LS274).

Page 8: Thiết kế và xây dựng hệ thống điều khiển giao thông

2.3.3 Module khối dao động.

Trong khối này sử dụng thạch anh để tạo xung nhịp dao động ổn định dao động

của PIC 16F877A. Khối tạo dao động có nhiệm vụ đồng bộ hóa hoạt động của tất cả các

mạch bên trong vi điều khiển. Mỗi loại vi điều khiển cần có số chu kì khác nhau để thực

hiện lệnh. Đầu vào của bộ dao động thạch anh được nối với chân 13 của vi điều khiển,

đầu ra được nối với chân 14.

Page 9: Thiết kế và xây dựng hệ thống điều khiển giao thông

2.4. LỰA CHỌN LINH KIỆN

2.4.1 Vi điều khiển PIC 16F877A

a. Sơ đồ PIC 16F877A

Sơ đồ chân của vi điều khiển PIC 16F877A: 40 pins, 5 cổng vào ra số RA, RB,

RC, RD, RE.

Hình: Sơ đồ chân vi điều khiển PIC 16F877A

PIC16F877A có 40/44 chân với sự phân chia cấu trúc như sau :

+ Có 5 port xuất/nhập

+ Có 8 kênh chuyển đổi A/D 10-bit

+ Có 2 bộ PWM

+ Có 3 bộ định thời: Timer0, timer1 và timer2

+ Có giao tiếp truyền nối tiếp: chuẩn RS 232, I2C…

+ Có giao tiếp LCD

Page 10: Thiết kế và xây dựng hệ thống điều khiển giao thông

Chức năng các chân:

Chân Tên Ch c năngứ

1 /VPP - : Ho t đ ng Reset m c th pạ ộ ở ứ ấ- VPP : ngõ vào áp l p trìnhậ

2 RA0/AN0- RA0 : xu t/nh p sấ ậ ố- AN0 : ngõ vào t ng tươ ự

3 RA1/AN1- RA1 : xu t/nh p sấ ậ ố- AN1 : ngõ vào t ng tươ ự

4 RA2/AN2/VREF-/CVREF

- RA2 : xu t/nh p sấ ậ ố- AN2 : ngõ vào t ng tươ ự- VREF -: ngõ vào đi n áp chu n (th p) c a b A/Dệ ẩ ấ ủ ộ

5 RA3/AN3/VREF+

- RA3 : xu t/nh p sấ ậ ố- AN3 : ngõ vào t ng tươ ự- VREF+ : ngõ vào đi n áp chu n (cao) c a b A/Dệ ẩ ủ ộ

6 RA4/TOCKI/C1OUT- RA4 : xu t/nh p sấ ậ ố- TOCKI : ngõ vào xung clock bên ngoài cho timer0- C1 OUT : Ngõ ra b so sánh 1ộ

7 RA5/AN4/ /C2OUT- RA5 : xu t/nh p sấ ậ ố- AN4 : ngõ vào t ng t 4ươ ự- SS : ngõ vào ch n l a SPI phọ ự ụ- C2 OUT : ngõ ra b so sánh 2ộ

8 RE0/ /AN5- RE0 : xu t nh p sấ ậ ố- RD : đi u khi n vi c đ c port nhánh songề ể ệ ọ ở song- AN5 : ngõ vào t ng tươ ự

9 RE1/ /AN6- RE1 : xu t/nh p sấ ậ ố- WR : đi u khi n vi c ghi port nhánh songề ể ệ ở song- AN6 : ngõ vào t ng tươ ự

10 RE2/ /AN7- RE2 : xu t/nh p sấ ậ ố- CS : Chip l a ch n s đi u khi n port nhánhự ọ ự ề ể ở song song- AN7 : ngõ vào t ng tươ ự

11 VDDChân ngu n c a PIC.ồ ủ

12 VSSChân n i đ tố ấ

13 OSC1/CLKINgõ vào dao đ ng th ch anh ho c xung clock bênộ ạ ặ ngoài.

Page 11: Thiết kế và xây dựng hệ thống điều khiển giao thông

- OSC1 : ngõ vào dao đ ng th ch anh ho c xungộ ạ ặ clock bên ngoài. Ngõ vào Schmit trigger khi đ cượ c u t o ch đ RC ; m t cách khác c a CMOS.ấ ạ ở ế ộ ộ ủ- CLKI : ngõ vào ngu n xung bên ngoài. Luônồ đ c k t h p v i ch c năng OSC1.ượ ế ợ ớ ứ

14 OSC2/CLKONgõ vào dao đ ng th ch anh ho c xung clockộ ạ ặ- OSC2 : Ngõ ra dao đ ng th ch anh. K t n i đ nộ ạ ế ố ế th ch anh ho c b c ng h ng.ạ ặ ộ ộ ưở- CLKO : ch đ RC, ngõ ra c a OSC2, b ng t nở ế ộ ủ ằ ầ s c a OSC1 và ch ra t c đ c a chu kỳ l nh.ố ủ ỉ ố ộ ủ ệ

15 RC0/T1 OCO/T1CKI- RC0 : xu t/nh p sấ ậ ố- T1OCO : ngõ vào b dao đ ng Timer 1ộ ộ- T1CKI : ngõ vào xung clock bên ngoài Timer 1

16 RC1/T1OSI/CCP2- RC1 : xu t/nh p sấ ậ ố- T1OSI : ngõ vào b dao đ ng Timer 1ộ ộ- CCP2 : ngõ vào Capture 2, ngõ ra compare 2, ngõ ra PWM2

17 RC2/CCP1- RC2 : xu t/nh p sấ ậ ố- CCP1 : ngõ vào Capture 1, ngõ ra compare 1, ngõ ra PWM1

18 RC3/SCK/SCL- RC3 : xu t/nh p sấ ậ ố- SCK : ngõ vào xung clock n i ti p đ ng b /ngõố ế ồ ộ ra c a ch đ SPIủ ế ộ- SCL : ngõ vào xung clock n i ti p đ ng b / ngõố ế ồ ộ ra c a ch đ I2Củ ế ộ

19 RD0/PSP0- RD0 : xu t/nh p sấ ậ ố- PSP0 : d li u port nhánh song songữ ệ

20 RD1/PSP1- RD1 : xu t/nh p sấ ậ ố- PSP1 : d li u port nhánh song songữ ệ

21 RD2/PSP2- RD2 : xu t/nh p sấ ậ ố- PSP2 : d li u port nhánh song songữ ệ

22 RD3/PSP3- RD3: xu t/nh p sấ ậ ố- PSP3 : d li u port nhánh song songữ ệ

23 RC4/SDI/SDA- RC4 : xu t/nh p sấ ậ ố- SDI : d li u vào SPIữ ệ- SDA : xu t/nh p d li u vào I2Cấ ậ ữ ệ

24 RC5/SDO- RC5 : xu t/nh p sấ ậ ố- SDO : d li u ra SPIữ ệ

25 RC6/TX/CK- RC6 : xu t/nh p sấ ậ ố- TX : truy n b t đ ng b USARTề ấ ồ ộ- CK : xung đ ng b USARTồ ộ

Page 12: Thiết kế và xây dựng hệ thống điều khiển giao thông

26 RC7/RX/DT- RC7 : xu t/nh p sấ ậ ố- RX : nh n b t đ ng USARTậ ấ ồ- DT : d li u đ ng b USARTữ ệ ồ ộ

27 RD4/PSP- RD4: xu t/nh p sấ ậ ố- PSP4 : d li u port nhánh song songữ ệ

28 RD5/PSP5- RD5: xu t/nh p sấ ậ ố- PSP5 : d li u port nhánh song songữ ệ

29 RD6/PSP6- RD6: xu t/nh p sấ ậ ố- PSP6 : d li u port nhánh song songữ ệ

30 RD7/PSP7- RD7: xu t/nh p sấ ậ ố- PSP7 : d li u port nhánh song songữ ệ

31 VSSChân n i đ tố ấ

32 VDDChân ngu n c a PIC.ồ ủ

33 RB0/INT- RB0 : xu t/nh p sấ ậ ố- INT : ng t ngoàiắ

34 RB1 xu t/nh p sấ ậ ố

35 RB2 xu t/nh p sấ ậ ố

36 RB3- RB3 : xu t/nh p sấ ậ ố- Chân cho phép l p trình đi n áp th p ICPSậ ệ ấ

37 RB4- xu t/nh p sấ ậ ố- Ng t PortBắ

38 RB5- xu t/nh p sấ ậ ố- Ng t PortBắ

39 RB6/PGC- RB6 : xu t/nh p sấ ậ ố- PGC : m ch vi sai và xung clock l p trình ICSPạ ậ- Ng t PortBắ

40 RB7/PGD- RB7 : xu t/nh p sấ ậ ố- PGD : m ch vi sai và d li u l p trình ICSPạ ữ ệ ậ- Ng t PortBắ

b. Đặc điểm của PIC 16F877A

Page 13: Thiết kế và xây dựng hệ thống điều khiển giao thông

Công nghệ CMOS có đặc tính: công suất thấp, công nghệ bộ nhớ flash/EEPROM

có tốc độ sao. Điện áp hoạt động ừ 2V – 5V và tiêu tốn năng lượng thấp, phù hợp với chế

độ làm việc trong công nghiệp và trong thương mại.

Đặc điểm PIC16F877A

Tần số hoạt động DC – 20MHZ

Reset (Delay) POR, BOR ( PWRT, OST)

Bộ nhớ chương trình flash ( 14 – bitword) 8k

Bộ nhớ dữ liệu (Byte) 368

Bộ nhớ dữ liệu EEPROM (byte) 256

Các nguồn ngắt 15

Các Port xuất nhập Port A, B, C, D, E

Timer 3

Các module capture/ compare/PWM 2

Giao tiếp nối tiếp MSSP, USART

Giao tiếp song song PSP

Module A/D 10 bit 8 kênh ngõ vào

Bộ so sánh tương tự 2

Tập lệnh 35

Số chân 40 chân PDIP

44 chân PLCC

44 chân TQFP

44 chân QFN

Page 14: Thiết kế và xây dựng hệ thống điều khiển giao thông

c. Sơ đồ khối VĐK PIC 16F877A

Page 15: Thiết kế và xây dựng hệ thống điều khiển giao thông
Page 16: Thiết kế và xây dựng hệ thống điều khiển giao thông

d. Tổ chức bộ nhớ

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

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. Như vậy bộ nhớ

chương trình có khả năng chứa được 8*1024=8192 lệnh.

Để 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.

Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h. khi có

ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h.

Bộ nhớ chương trình không bao gồm bộ nhớ stack và không được địa chỉ hóa bởi bộ đếm

chương trình. Bộ nhớ stack sẽ được đề cập cụ thể trong phần sau.

Bộ nhớ dữ liệu

Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank. Đố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 SFG (Special Function Register) nằm ở các

vùng địa chỉ thấp và các thanh ghi mục đích 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 truy xuất và làm giảm bớt lệnh của chương trình.

Stack

Stack không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu mà là một vùng

nhớ đặc biệt không cho phép đọc hay ghi. Khi lệnh CALL được thực hiện hay khi một

ngắt xảy ra làm chương trình bị rẽ nhánh, giá trị của bộ đếm chương trình PC tự động

được vi điều khiển cất vào trong stack. Khi một trong các lênh RETURN, RETLW hay

RETFIE được thực thi, giá trị PC sẽ tự động được lấy ra từ trong stack, vi điều khiển sẽ

thực hiện liên tiếp chương trình theo đúng qui trình định trước.

Page 17: Thiết kế và xây dựng hệ thống điều khiển giao thông

Bộ nhớ Stack trong vi điều khiển PIC họ 16F87xA có khả năng chứ được 8 địa chỉ và

hoạt động theo cơ chế xoay vòng. Nghĩa là giá trị cất vào bộ nhớ stack lần thứ 9 sẽ ghi đè

lên giá trị vất vào stack lần đầu tiên và giá trị cất vào bộ nhớ stack lần thứ 10 sẽ ghi đè

lên giá trị cất vào stack lần thứ 2.

e. Cổng xuất nhập của PIC16F877A

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ác 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, 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 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 đjều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB,

PORTC, PORTD, PORTE.

PORTA

Port A bao gồm 6 I/O pin. Đây là các chân “hai chiều”, 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. Bên cạnh đó PORTA còn là ngõ ra bộ ADC, bộ so sánh, ngõ vào analog

ngõ vào xung clock của timer0 và ngõ vào của bộ giao tiếp MSSP.

PORTB

Page 18: Thiết kế và xây dựng hệ thống điều khiển giao thông

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 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 bao gồm:

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

Các thanh ghi liên quan đến PORTD gồm:

Thanh ghi PORTD: chứa các giá trị 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 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ó cá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.

Page 19: Thiết kế và xây dựng hệ thống điều khiển giao thông

f. 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ố 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 là bit điều khiển của Timer0. TMR0IE = 1 cho

phép ngắt Timer0 tác động, TMR0IE = 0 không cho phép ngắt Timer0 tác động. sơ đồ

khối của Timer0 như sau:

Hình: sơ đồ khối timer0

Muốn Timer0 hoạt động ở chế độ Timer ta clear bit TOSC, khi đó giá trị thanh ghi

TMR0 sẽ tăng theo từng chu kì xung đồng hồ. 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 ra set bit TOSC. Khi đó xung tác động

lên bộ đếm được được lấy từ chân RA4/TOCK1. Bit TOSE cho phép lựa chọn cạnh tác

Page 20: Thiết kế và xây dựng hệ thống điều khiển giao thông

động vào bộ đế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 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.

Các thanh ghi điều khiển liên quan đến Timer0 gồm:

TMR0: chứa giá trị đếm của timer0

INTCON: cho phép ngắt hoạt động

OPTION_REG: điều khiển prescaler

g. Timer 1

Timer1 là bộ định thời 16bit, giá trị của Timer1 sẽ được lưu trong hai thanh ghi.

Cờ ngắt của Timer1 là bít TMR1IF. Bit điều khiển của Timer1 sẽ là TMR1IF

Tương tự như timer0, timer1 cũng có hai chế độ hoạt động: chế độ định thời với xung

kích là xung clock của oscillator và chế độ đếm 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. việc lựa chọn xung

tác động được điều khiển bởi bit TMR1CS. Sau đây là sơ đồ khối của timer1

Hình: sơ đồ khối timer1

Ngoài ra timer1 còn có chức năng reset inptu bên trong được điều khiển bởi một trong 2

khối CCP.

Page 21: Thiết kế và xây dựng hệ thống điều khiển giao thông

Timer1 có 2 chế độ đếm là đồng bộ và bất đồng bộ. chế độ đếm được quyết định bởi bit

điều khiển T1SYNC.

i. Timer 2

Timer2 là bộ định thời 8 bit và được hỗ trợ bởi hai bộ chia tần số prescaler và 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. Cờ ngắt của timer2 là bit TMR2IF. Xung ngõ vào được đưa qua bộ chia tần số

prescaler 4 bit. Sơ đồ khối timer 2:

Hình:: 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. khi 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ứa chia từ 1:1 đến

1:16. Postscaler được điều khiển bởi 4 bít T2OUTPS3:T2OUTPS0. Ngõ ra của postscaler

đóng vai trò quyết đinh 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 xung clock đồng bộ cho khối giao tiếp SSP.

Page 22: Thiết kế và xây dựng hệ thống điều khiển giao thông

2.4.2 Thạch anh

Chức năng: Lọc nhiễu cho dao động thạch anh. 2 tụ gốm 33pF sẽ được nối một

đầu với chân của thạch anh, đầu còn lại đấu ra Mass.

Th ch anh: ạ

Chức năng: Là nguồn tạo xung nhịp dao động clock ổn định cho dao động của PIC

16F877A.

2.4.3 LED

Trong các thiết bị, để báo trạng thái hoạt động của thiết bị đó cho người sử dụng

với thông số chỉ là các dãy số đơn thuần, thường người ta sử dụng "led 7 đoạn". Led 7

đoạn được sử dụng khi các dãy số không đòi hỏi quá phức tạp, chỉ cần hiện thị số là đủ,

chẳng hạn led 7 đoạn được dùng để hiển thị nhiệt độ phòng, trong các đồng hồ treo tường

bằng điện tử, hiển thị số lượng sản phẩm được kiểm tra sau một công đoạn nào đó...

Led 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo hình và có thêm

một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên phải của led 7 đoạn.

8 led đơn trên led 7 đoạn có Anode(cực +) hoặc Cathode(cực -) được nối chung

với nhau vào một điểm, được đưa chân ra ngoài để kết nối với mạch điện. 8 cực còn lại

trên mỗi led đơn được đưa thành 8 chân riêng, cũng được đưa ra ngoài để kết nối với

mạch điện. Nếu led 7 đoạn có Anode(cực +) chung, đầu chung này được nối với +Vcc,

các chân còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi

tín hiệu đặt vào các chân này ở mức 0. Nếu led 7 đoạn có Cathode(cực -) chung, đầu

chung này được nối xuống Ground ( Mass), các chân còn lại dùng để điều khiển

trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức

1.

Page 23: Thiết kế và xây dựng hệ thống điều khiển giao thông

Hình 2.1 Cấu tạo LED 7 thanh

Vì led 7 đoạn chứa bên trong nó các led đơn, do đó khi kết nối cần đảm bảo dòng qua

mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led. Nếu kết nối với nguồn 5V có

thể hạn dòng bằng điện trở 330Ω trước các chân nhận tín hiệu điều khiển.

Các điện trở 330Ω là các điện trở bên ngoài được kết nối để giới hạn dòng điện qua led

nếu led 7 đoạn được nối với nguồn 5V. Chân nhận tín hiệu a điều khiển led a sáng tắt,

ngõ vào b để điều khiển led b. Tương tự với các chân còn lại.

Hình 2.2 Hình ảnh thực tế của Led 7 thanh

Page 24: Thiết kế và xây dựng hệ thống điều khiển giao thông

2.5 SƠ ĐỒ NGUYÊN LÍ CỦA MẠCH

24

Page 25: Thiết kế và xây dựng hệ thống điều khiển giao thông

2.6 NGUYÊN LÍ HOẠT ĐỘNG CỦA MẠCH

Mạch đèn giao thông hoạt động dựa trên nội dung đã lập trình cho pic

16F877A . PIC 16F877A đưa dữ liệu đến các LED xanh, đỏ, vàng để điều khiển

các LED này đóng, mở. LED 7 đoạn nhận dữ liệu từ vi điều khiển trung tâm để

thực hiện việc đếm lùi thời gian.

Như vậy khi mạch bắt đầu đếm lùi, nếu đường bên này đèn xanh hoặc vàng

sáng thì đường bên kia đèn đỏ sáng và ngược lại.

Cụ thể đèn giao thông hoạt động theo nguyên lý cơ bản như sau: Thời gian

đèn đỏ 2 của đường ưu tiên sáng bằng tổng thời gian đèn xanh 1 và đèn vàng 1

sáng. Thời gian đèn xanh 2 sáng bằng thời gian đèn đỏ 1 sáng Vì vậy khi thực

hiện hiển thị ta chú ý về mặt thời gian để hiển thị các đèn tương ứng. Một số hệ

thống thực tế có chế độ kiểm soát thời gian thực tối ưu phù hợp với yêu cầu thực tế.

- Tín hiệu đèn đỏ: Báo dừng lại.

- Tín hiệu đèn xanh: Được phép đi.

- Tín hiệu màu vàng: Chuẩn bị dừng.

Trong bài nguyên lý trên đèn giao thông thực hiện 4 pha:

- Pha 1: Đèn đỏ 1 đèn xanh 2 sáng.

- Pha 2: Đèn đỏ 2 đèn xanh 1 sáng

Và đèn vàng sẽ sáng vào 3s cuối cùng trước khi chuyển về pha 1

Trong PIC16F877A mắc sử dụng các led catode chung. Các chân dữ liệu của

led bên phải được nối với các chân của cổng PC và các chân dữ liệu của led bên trái

được nối với các chân của cổng PD. Khi cổng đó xuất giá trị là “1” thì thành led

sáng và ngược lại xuất “0” thì tắt.

Các đèn led xanh, đỏ và vàng cũng được nối đến các cổng của vi điều khiển

PIC. Khi vi điều khiển xuất giá trị “1” ra cổng đó thì đèn tương ứng sáng, ngược lại

nếu xuất giá trị “0” đèn sẽ tắt. Các đèn led nối với vi điều khiển PIC theo như bảng

sau:

25

Page 26: Thiết kế và xây dựng hệ thống điều khiển giao thông

LED Tên cổng

Đỏ 1 A0

Vàng 1 A1

Xanh 1 A2

Xanh 2 A3

Vàng 2 A4

Đỏ 2 A5

Bảng : Sơ đồ mô phỏng mạch điều khiển đèn giao thông

26

Page 27: Thiết kế và xây dựng hệ thống điều khiển giao thông

CHƯƠNG III: XÂY DỰNG CHƯƠNG TRÌNH HỆ THỐNG

3.1 MÃ NGUỒN ĐIỀU KHIỂN HỆ THỐNG ĐÈN GIAO THÔNG

#include <16f877A.h>#include <def_877a.h> #fuses HS,NOLVP,NOWDT,PUT#use delay(clock=11000000)#use fast_io(all)

#define red1 RA0#define yellow1 RA1#define green1 RA2#define green2 RA3#define yellow2 RA4#define red2 RA5int8 maled[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f};

//===================================

void displayh(int8 n) { int8 i; for (i = 0; i < 100; i++) { output_d(~maled[n / 10]); output_c(~maled[n % 10]); delay_ms(10); } }

//==================================

void displayl(int8 k) { int8 i; for (i = 0; i < 2; i++) { output_d(~maled[k / 10]); output_c(~maled[k % 10]); delay_ms(200); output_c(0xff); output_d(0xff); delay_ms(130); } }

void main(){int8 dem=50;set_tris_a(0);set_tris_b(0);set_tris_c(0);set_tris_d(0);

27

Page 28: Thiết kế và xây dựng hệ thống điều khiển giao thông

set_tris_e(0);while(true){

dem=30; while (dem--){

red1=0; yellow1=0; green1=1; red2=1; yellow2=0; green2=0;

if (dem<=3){ red2=1; yellow2=0; green2=1; displayl(dem); } else displayh(dem);}

dem=27; while(dem--){ red1=1;yellow1=1;green1=0; red2=0; yellow2=1; green2=1; if(dem<=3){ red1=1; yellow1=0; green1=1; displayl(dem); } else displayh(dem);}

}}

28

Page 29: Thiết kế và xây dựng hệ thống điều khiển giao thông

3.2 KẾT QUẢ MÔ PHỎNG

29

Page 30: Thiết kế và xây dựng hệ thống điều khiển giao thông

ĐÁNH GIÁ VÀ KẾT LUẬN

“Thiết kế và xây dựng hệ thống điều khiển giao thông” nhằm cải thiện tình

hình giao thông tại các ngã tư trọng điểm, giải quyết tốt nhất nhiệm vụ của đèn giao

thông giúp cho giao thông được thông suốt và hợp lý. Trong đề tài này chủ yếu tìm

hiểu đưa ra giải pháp “Thiết kế và xây dựng hệ thống điều khiển giao thông”. Tối ưu

hóa nhất nhằm giúp người tham gia giao thông thuận tiện nhất, ước lượng và tính

toán thời gian di chuyển, khả năng xung đột của các phương tiện trong các ngã tư.

Từ những thông số chung tốc độ xe di chuyển, số lượng xung đột giao thông, độ

rộng của các ngã tư từ đó đặt các thông số cho các nút giao thông một cách hợp lý

nhất.

Sau khi thực hiện đề tài em đã hoàn thành các nội dung như sau:

Tìm hiểu về PIC16F877A. Ứng dụng PIC xây dựng mô hình thực hệ thống giao

thông điều khiển theo làn sóng xanh.

Báo cáo được thực hiện trong một thời gian ngắn không tránh khỏi những sai sót

mong các thầy cô thông cảm và giúp đỡ em hoàn thiện đề tài này.

30

Page 31: Thiết kế và xây dựng hệ thống điều khiển giao thông

NHẬN XÉT......................................................................................................................................

........................................................................................................................

......................................................................................................................................

........................................................................................................................

......................................................................................................................................

........................................................................................................................

......................................................................................................................................

........................................................................................................................

......................................................................................................................................

........................................................................................................................

......................................................................................................................................

........................................................................................................................

......................................................................................................................................

........................................................................................................................

31

Page 32: Thiết kế và xây dựng hệ thống điều khiển giao thông

32