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ông”
Lớp : CNVTK9A
Giảng viên hướng dẫn: Nguyễn Thế Dũng
1
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
MỤC LỤC
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
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.
4
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
5
KHỐI
HIỂN THỊ
KHỐI MÃ
HÓA
KHỐI ĐIỀU
KHIỂN
KHỐI NGUỒN
Đèn đỏ 1 sáng
Đèn xanh 2 sáng
Các đèn vàng 1, đỏ 1, đỏ
2, 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
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
9
Chức năng các chân:
Chân Tên Chức năng
1 /V
PP
- : Hoạt động Reset ở mức thấp
- V
PP
: 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/V
REF-
/CV
REF
- RA2 : xuất/nhập số
- AN2 : ngõ vào tương tự
- V
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 V
DD
Chân nguồn của PIC.
12 V
SS
Chân nối đất
13 OSC1/CLKI
Ngõ vào dao động thạch anh hoặc xung clock bên
ngoài.
- 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.
10
- 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/CLKO
Ngõ 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
- 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
26 RC7/RX/DT
- RC7 : xuất/nhập số
- RX : nhận bất đồng USART
- DT : dữ liệu đồng bộ USART
11
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 V
SS
Chân nối đất
32 V
DD
12
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
13
c. Sơ đồ khối VĐK PIC 16F877A
14
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
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
16
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
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
18
độ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.
19
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:
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.
21
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
22
2.5 SƠ ĐỒ NGUYÊN LÍ CỦA MẠCH
23
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.