1
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT HƢNG YÊN
KHOA: ĐIỆN – ĐIỆN TỬ
ĐỒ ÁN MÔN HỌC
Đề tài: “ Thiết kế và chế tạo hệ thống điều khiển tín hiệu giao thông cho ngã tƣ
lập trình bằng vi điều khiển”
Giảng viên hƣớng dẫn : Đỗ Công Thắng Hƣng yên ngày tháng … năm 2009
2
NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN HƢỚNG DẪN
2.2: H thng iu khin tớn hiu giao thụng cho ngó t. 7
2.3: H thng iu khin giao thụng cho ngó ba. 9
II: Phõn tớch la chn phng ỏn iu khin. 10
1. Mch dựng IC s 10
2. iu khin bng vi iu khin. 10
3. Vi vi mch dựng k thut vi x lý. 11
4. iu khin bng PLC. 11
IV: Cỏc tiờu chun la chn mt b vi iu khin: 12
V: LED 7 ON V LED N 13
1.Cỏc khỏi nim c bn 13
2. Kt ni vi vi iu khin 15
VI. Giao tip vi iu khin vi led 7 on. 18
VII: Khi gii mó 18
1. IC gii mó 7447 18
VIII: Gii thiu chung cu trỳc b vi iu khin AT 89C51 20
1 . Tóm tắt về lịch sử của AT89C51. 20
2. Sơ đồ chân tín hiệu của 80C51/AT89C51. 23
3. Các thanh ghi chức năng đặc biệt 24
Phn II: THIT K PHN CNG V CHNG TRèNH IU KHIN 32
4
I: Thiết kế phần cứng và viết chƣơng trình điều khiển 32
1. Sơ đồ khối 32
2. Thiết kế phần cứng 33
3. Lƣu đồ thuật toán 37
4. Phần lập trình 41
Phần III: PHẦN TỔNG KẾT 46
thống điều khiển tín hiệu giao thông cho ngã tƣ lập trình bằng vi điều khiển”
Trong suốt quá trình thực hiện đề tài chúng em đã nhận đƣợc sự hƣớng dẫn tận tình
của thầy “ ĐỖ CÔNG THẮNG” và các thầy cô trong khoa điện- điện tử. Chúng
em xin chân thành cám ơn các thầy cô. Tuy nhiên trong quá trình thực hiện đồ án
do kiến thức hiểu biết còn hạn hẹp cũng nhƣ chúng em chƣa có nhiều điều kiện
khảo sát thực tế nhiều, thời gian làm đồ án không dài do vậy đồ án của chúng em
cũng không thể tránh đƣợc những thiếu sót. Chúng em rất mong thầy cô và các các
bạn đóng góp và bổ sung ý kiến để đồ án của chúng em thêm hoàn thiện hơn. Chúng em xin chân thành cám ơn!
6
Phần I: GIỚI THIỆU CHUNG
I: TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN TÍN HIỆU GIAO THÔNG.
1: Yêu cầu và mục đích của hệ thống điều khiển tín hiệu giao thông.
Trƣớc tình hình phƣơng tiện tham gia giao thông ngày càng gia tăng không
ngừng và hệ thống giao thông ngày càng phức tạp. Chính lý do này đã dẫn đến tình
trạng ùn tắc và tai nạn giao thông ngày càng gia tăng. Vì vậy để đảm bảo giao
thông đƣợc an toàn và thông suốt thì việc sử dụng các hệ thống tín hiệu để điều
khiển và phân luồng tại các nút giao thông là rất cần thiết. Với tầm quan trọng nhƣ
vậy hệ thống điều khiển tín hiệu giao thông cần đảm bảo những yêu cầu sau:
- Đảm bảo trong quá trình hoạt động một cách chính xác và liên tục.
- Độ tin cậy cao.
t
Xanh
0
®i bé
t
§á
0®i bé
2.2: Hệ thống điều khiển tín hiệu giao thông cho ngã tƣ.
A
B
C
D
Hệ thống có hoạt động nhƣ sau:
8
t
t
t
t
t
t
t
t
§á
®i bé B ,D
0
Xanh
®i bé B , D
0
7 S
2 S
9 S
7 S
9 S
7 S
2 S
9 S
9 S
25S 25S
25S
30S
30S 30S
5S
5S
30S
30S
30S
30S
30S
30S
II: Phân tích lựa chọn phƣơng án điều khiển.
Với sự phát triển của khoa học kỹ thuật để điều khiển đƣợc hệ thống giao thông
chúng ta có nhiều cách khác nhau nhƣ là: Dùng IC số, các bộ vi xử lý, vi điều
khiển, các bộ điều khiển PLC.
1. 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 rễ 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 ta phải thay đổi phần 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 số đặc biệt là cho ra đời các họ
vi xử lý, vi điều khiển hay 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.
2. Đ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.
11
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 may tính.
3. 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 đó
sản xuất chíp khác nhau. Với tất cả những bộ vi điều khiển khác nhau nhƣ thế này
thì lấy gì làm tiêu chuẩn lựa chọn mà các nhà thiết kế phải cân nhắc?
1. Tiêu chuẩn đầu tiên và trƣớc hết trong lựa chọn một bộ vi điều khiển là nó phải
đáp ứng nhu cầu bài toán về một mặt công suất tính toán và giá thành hiệu quả.
Trong khi phân tích các nhu cầu của một dự án dựa trên bộ vi điều khiển chúng ta
trƣớc hết phải biết là bộ vi điều khiển nào 8 bit, 16 bit hay 32 bit có thể đáp ứng tốt
nhất nhu cầu tính toán của bài toán một cách hiệu quả nhất? Những tiêu chuẩn
đƣợc đƣa ra để cân nhắc là:
a) Tốc độ: Tốc độ lớn nhất mà bộ vi điều khiển hỗ trợ là bao nhiêu.
b) Kiểu đóng vỏ: Đó là kíểu 40 chân DIP hay QFP hay là kiểu đóng vỏ khác
(DIP – đóng vỏ theo 2 hàng chân. QFP là đóng vỏ vuông dẹt)? Đây là điều quan
trọng đối với yêu cầu về không gian, kiểu lắp ráp và tạo mẫu thử cho sản phẩm
cuối cùng.
c) Công suất tiêu thụ: Điều này đặc biệt khắt khe đối với những sản phẩm dùng
pin, ắc quy.
d) Dung lƣợng bộ nhớ RAM và ROM trên chíp.
e) Số chân vào – ra và bộ định thời trên chíp
f) Khả năng dễ dàng nâng cấp cho hiệu suất cao hoặc giảm công suất tiêu thụ.
13
g) Giá thành cho một đơn vị: Điều này quan trọng quyết định giá thành cuối
cùng của sản phẩm mà một bộ vi điều khiển đƣợc sử dụng.
2. Tiêu chuẩn thứ hai trong lựa chọn một bộ vi điều khiển là khả năng phát triển
các sản phẩm xung quanh nó dễ dàng nhƣ thế nào? Các cân nhắc chủ yếu bao gồm
khả năng có sẵn trình lƣợng ngữ, gỡ rối, trình biên dịch ngôn ngữ C hiệu quả về mã
nguồn, trình mô phỏng hỗ trợ kỹ thuật và khả năng sử dụng trong nhà và ngoài môi
trƣờng. Trong nhiều trƣờng hợp sự hỗ trợ nhà cung cấp thứ ba (nghĩa là nhà cung
cấp khác không phải là hãng sản xuất chíp) cho chíp cũng tốt nhƣ, nếu không đƣợc
tốt hơn, sự hỗ trợ từ nhà sản xuất chíp.
3. Tiêu chuẩn thứ ba trong lựa chọn một bộ vi điều khiển là khả năng sẵn sàng đáp
tín hiệu đặt vào các chân này ở mức 1. Hiển thị LED 7 thanh là phần tử hiển thị thông dụng, để hiển thị các phần tử
số từ 0 đến 9 trong một số hệ thập phân. Nó gồm 7 thanh xếp thành hình số 8, mỗi
thanh là một diode ( LED ) phát quang hoặc hiển thị tinh thể lỏng. Điode thƣòng
đƣợc cấu tạo từ các chất Ga, As, P …nó cũng có tính chất chỉnh lƣu nhƣ diode
thƣờng. Nhƣng khi điện áp thuận đạt nên diode vƣợt quá mức ngƣỡng U
ng
nào đó
thì diode sáng. Điện áp ngƣỡng thay đổi từ 1,5 đến 5 v tuỳ theo từng loại có màu
sắc khác nhau.
- LED màu đỏ có điện áp ngƣỡng U
ng
= 1,6 đến 2 v
- LED màu cam có điện áp ngƣỡng U
ng
= 2,2 đến 3 v
15
- LED màu xanh lá cây có điện áp ngƣỡng U
ng
= 2,8 đến 3,2 v
- LED màu vàng có điện áp ngƣỡng U
ng
= 2,4 đến3, 2 v
- LED màu xanh ra trời có điện áp ngƣỡng U
ng
= 3 đến 5 v
Thiết kế bộ giải mã hiển thị cho LED 7 thanh với tín hiệu đầu vào là mã BCD
đoạn dạng nhị phân
Mã hiển thị led 7
đoạn dạng thập lục
phân
hgfedcba
0
11000000
C0
1
11111001
F9
2
10100100
A4
3
10110000
B0
4
10011001
99
5
10010010
92
6
11000010
82
7
11111000
Số hiển thị trên
led 7 đoạn
Mã hiển thị led 7
đoạn dạng nhị phân
Mã hiển thị led 7
đoạn dạng thập lục
phân
hgfedcba
0
00111111
3F
1
00000110
06
2
01011011
5B
3
01001111
4F
4
01100110
66
5
01101101
6D
6
Phần cứng đƣợc kết nối với 1 Port bất kì của Vi điều khiển, để thuận tiện cho việc
xử lí về sau phần cứng nên đƣợc kết nối nhƣ sau: Px.0 nối với chân a, Px.1 nối với
chân b, lần lƣợt theo thứ tự cho đến Px.7 nối với chân h.
Dữ liệu xuất có dạng nhị phân nhƣ sau : hgfedcba
Từ bảng chức năng lập bảng karnaught cho 7 hàm rat a có kết quả:
a = A
B
C
D
+
A
B
C
D
b =
A
B
C
D
+
A
BC
D
c =
A
BC
D
+ ABC
D
f = A
B
C
D
+
A
B
C
D
+ AB
C
D
+ ABC
D
g =
A
B
C
D
+ ABC
D
+ A
B
C
D
- Mã nhị phân BCD đƣợc chuyển sang thập phân và hiển thị các số thập phân
bằng 7 đoạn tƣơng ứng với mỗi tổ hợp xác định .Các thanh sáng hiển thị cho ta một
chữ số ở hệ 10.
- Các đoạn a , b , c , d , e , f , g có thể là :Đèn LED mắc anôt chung hoặc katôt
chung đƣợc nối qua các điện trở giới hạn dòng tới đầu ra phù hợp của bộ giải mã.
- Trong thực tế ngƣời ta đã chế tạo sẵncác vi mạch để giảI mã nhị phân ra mã 7
đọan nhƣ :
Các vi mạch 7448 , 74LS48 , 7449 , 74LS49 là các IC giảI mã 7 đoạn có lối ra
tác động ở mức cao , ta có thể ding chung để giải mã từ mã BCD ra thập phân Quy
luật hiển thị các chữ số thập phân của các vi mạch này về cơ bản là giống nhau nhƣ
bảng chân lý sau, chỉ khác đôi chút là số 6 không dùng thanh a và số 9 không dùng
thanh d .
Số thập
phân
Mã BCD đầu vào
Đầu ra mã 7 thanh
D
C
B
A
a
b
c
d
e
f
g
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
20
8
9
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
nhau đ-ợc bán bởi hơn nửa các nhà sản xuất. Điều này quan trọng là mặc dù có
nhiều biến thể khác nhau của AT89C51 về tốc độ và dung l-ơng nhớ ROM trên
chíp, nh-ng tất cả chúng đều t-ơng thích với AT89C51 ban đầu về các lệnh. Điều
này có nghĩa là nếu ta viết ch-ơng trình của mình cho một phiên bản nào đó thì nó
cũng sẽ chạy với mọi phiên bản bất kỳ khác mà không phân biệt nó từ hãng sản
xuất nào.
Bảng 3.1: Các đặc tính của AT89C51 đầu tiên.
Đặc tính
Số l-ợng
ROM trên chíp
RAM
Bộ định thời
Các chân vào - ra
Cổng nối tiếp
Nguồn ngắt
4K byte
128 byte
2
32
1
6
Bộ vi điều khiển 8051: Bộ vi điều khiển 8051 là thành viên đầu tiên của họ
AT89C51. Hãng Intel ký hiệu nó nh- là MCS51. Bảng 3.2 trình bày các đặc tính
của AT89C51. 22 Hình 3.3. IC 80C51/AT89C51
Chức năng của các chân tín hiệu nh- sau:
- P0.0 đến P0.7 là các chân của cổng 0.
- P1.0 đến P1.7 là các chân của cổng 1.
- P2.0 đến P2.7 là các chân của cổng 2
- P3.0 đến P3.7 là các chân của cổng 3
- RxD: Nhận tín hiệu kiểu nối tiếp.
- TxD: Truyền tín hiệu kiểu nối tiếp.
- /INT0: Ngắt ngoài 0.
- /INT1: Ngắt ngoài 1.
40
1
Vcc
P1.0
P0.1 (AD1)
38
P0.4 (AD4)
34
35
7
6
P1.6
P1.5
P0.6 (AD6)
P0.6 (AD6)
AT89C5
1
(8031)
32
33
9
8
13
12
(T1) P3.5
(T0) P3.4
P2.6 (A14)
P2.5 (A13)
26
27
15
14
(RD) P3.7
(WR) P3.6
P2.4(A12)
P2.3 (A11)
25
24
- T0: Chân vào 0 của bộ Timer/Counter 0.
- T1: Chân vào 1 của bộ Timer/Counter 1.
- /Wr: Ghi dữ liệu vào bộ nhớ ngoài.
- /Rd: Đọc dữ liệu từ bộ nhớ ngoài.
- RST: Chân vào Reset, tích cực ở mức logic cao trong khoảng 2 chu kỳ máy.
- XTAL1: Chân vào mạch khuyếch đaị dao động
- XTAL2: Chân ra từ mạch khuyếch đaị dao động.
- /PSEN : Chân cho phép đọc bộ nhớ ch-ơng trình ngoài (ROM ngoài).
- ALE (/PROG): Chân tín hiệu cho phép chốt địa chỉ để truy cập bộ nhớ ngoài, khi
On-chip xuất ra byte thấp của địa chỉ. Tín hiệu chốt đ-ợc kích hoạt ở mức cao, tần
số xung chốt = 1/6 tần số dao động của bộ VĐK. Nó có thể đ-ợc dùng cho các bộ
Timer ngoài hoặc cho mục đích tạo xung Clock. Đây cũng là chân nhận xung vào
để nạp ch-ơng trình cho Flash (hoặc EEPROM) bên trong On-chip khi nó ở mức
thấp.
- /EA/Vpp: Cho phép On-chip truy cập bộ nhớ ch-ơng trình ngoài khi /EA=0, nếu
/EA=1 thì On-chip sẽ làm việc với bộ nhớ ch-ơng trình nội trú. Khi chân này đ-ợc
cấp nguồn điện áp 12V (Vpp) thì On-chip đảm nhận chức năng nạp ch-ơng trình
cho Flash bên trong nó.
- Vcc: Cung cấp d-ơng nguồn cho On-chip (+ 5V).
- GND: nối mát.
3. Các thanh ghi chức năng đặc biệt
Bảng1.4. Địa chỉ, ý nghĩa và giá trị của các SFR sau khi Reset
Symbol
Name
Address
Reset Values
* ACC
Thanh ghi tích luỹ
90h
11111111b
Symbol
Name
Address
Reset Values
* P2
Cæng 2
0A0h
11111111b
* P3
Cæng 3
0B0h
11111111b
* IP
TG ®iÒu khiÓn ng¾t -u tiªn
0B8h
xxx00000b
* IE
TG ®iÒu khiÓn cho phÐp ng¾t
0A8h
0xx00000b
TMOD
§iÒu khiÓn kiÓu Timer/Counter
89h
00000000b
* TCON
TG ®iÒu khiÓn Timer/Counter
88h
00000000b
* : cã thÓ ®Þnh ®Þa chØ bit, x: kh«ng ®Þnh nghÜa
3.1. Thanh ghi ACC: