Tải bản đầy đủ (.docx) (36 trang)

Ứng dụng vi điều khiển 89c51 lập trình cho hệ thống đèn giao thông và mô phỏng trên phần mềm proteus

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (387.9 KB, 36 trang )

Đề tài luận văn:
Ứng dụng vi điều khiển 89C51 lập trình cho
hệ thống đèn giao thông và mô phỏng trên
phần mềm Proteus
LỜI NÓI ĐẦU
Ngày nay, với sự phát triển ngày càng mạnh về lĩnh vực khoa học kỹ
thuật cũng như tất cả các lĩnh vực khác. Đặc biệt ngành điện tử là một trong
những ngành khoa học kỹ thuật đáp ứng rất tốt nhu cầu cuộc sống của con người.
Trong ngành điện tử thì có rất nhiều lĩnh vực chuyên môn hóa khác
nhau, nhưng vi điều khiển là một trong những lĩnh vực đáp ứng rất tốt nhu cầu
trên của con người. Vì nó là một vi mạch rất nhỏ nhưng giải quyết được rất nhiều
vấn đề khó khăn, phức tạp. Chính vì vậy, hầu hết các thiết bị điện tử hiện nay đều
sử dụng vi mạch điều khiển.
Nói đến vi điều khiển thì phải nói đến 89C51. Đây là một trong những
con vi xử lí được sử dụng khá rộng rãi và rất phổ biến trong đời sống hiện nay,
giá thành lại vừa phải. Vì vậy, nó là một con vi điều khiển được sử dụng nhiều
trong giảng dạy và học tập.
PHẦN I
ĐẶT VẤN ĐỀ
Trong hệ thống giao thông hiện nay ở nước ta, vấn đề về an toàn giao thông và
tránh ùn tắc tại các đô thị và thành phố lớn là một trong những vấn đề hết sức
cấp bách và được toàn xã hội quan tâm. Vì vậy các phương tiện hướng dẫn giao
thông đóng vai trò rất quan trọng, nó góp phần hạn chế những xung đột xảy ra
khi tham gia giao thông. Tại các đô thị thì hệ thống đèn điều khiển giao thông là
rất quan trọng. Hệ thống đèn điều khiển giao thông không những có tác dụng
hạn chế những xung đột trong giao thông thành phố mà còn là công cụ điều
khiển các luồng giao thông nhằm hạn chế ùn tắc - một vấn đề nan giải tại các
thành phố lớn. Vì lí do trên, chúng em quyết định chọn đề tài “Ứng dụng vi
điều khiển 89C51 lập trình cho hệ thống đèn giao thông và mô phỏng trên
phần mềm Proteus”


PHẦN II
LỰA CHỌN PHƯƠNG ÁN THIẾT KẾ
1. Mô tả hoạt động của hệ thống:
Mật độ giao thông phát triển mạnh mẽ ở các đô thị lớn đòi hỏi hệ thống
điều khiển giao thông phải chính xác, linh hoạt, đơn giản nhưng hiệu quả cao. Hệ
thống đèn giao thông phần nào đã đáp ứng được những yêu cầu trên. Mỗi cột
gồm các đèn: Xanh - Đỏ - Vàng điều khiển các phương tiện đang tham gia giao
thông.
Hoạt động của từng pha ở chế độ điều khiển tự động như sau:
 Đèn xanh: Hướng đi ứng với pha này được phép đi.
 Đèn vàng: Thông báo cho các phương tiện ứng với pha này giảm tốc độ,
chuẩn bị dừng lại.
 Đèn đỏ: Các phương tiện dừng lại.
2. Phương án thiết kế:
Hiện nay việc sử dụng các mạch số kết kợp với chíp vi điều khiển trong
các hệ thống điều khiển tự động đã trở nên rất phổ biến vì những ưu việt của nó
như: độ chính xác cao, khả năng lập trình được, tốc độ điều khiển nhanh, sử dụng
đơn giản,… Mặt khác kỹ thuật số, vi xử lý, vi điều khiển là lĩnh vực đang phát
triển mạnh mẽ và có ứng dụng trong rất nhiều ngành sản xuất. Vì vậy, ta sẽ thiết
kế một hệ thống điều khiển giao thông đơn giản, chỉ sử dụng bộ vi điều khiển.
Tất cả các tín hiệu điều khiển đều được đưa đến khối hiển thị trực tiếp từ các
cổng của bộ vi điều khiển. Phương án này có đặc điểm là mạch gọn nhẹ, không
quá phức tạp, cách thức bố trí linh kiện dễ dàng, lập trình đơn giản, dễ chỉnh sửa.
3. Sơ đồ khối hệ thống :
KHỐI
VI ĐIỀU
KHIỂN
TRUNG
TÂM
AT89C51

KHỐI HIỂN
THỊ THỜI GIAN
KHỐI ĐÈN LED ĐƠN
KHỐI
NÚT
NHẤN
NGUỒN
Hình 1: Sơ đồ khối hệ thống Đèn Giao Thông
PHẦN III.
PHẦN THIẾT KẾ
1. Khối vi điều khiển:
1.1. Sơ lược về vi điều khiển:
Vi điều khiển AT89C51 là một vi điều khiển thuộc họ 8051, loại
CMOS,có tốc độ cao và công suất thấp với bộ nhớ Flash có thể lập trình được.
Nó được sản xuất với công nghệ bộ nhớ không bay hơi mật độ cao của hãng
Atmel. AT89C51 có 40 chân, được đóng gói theo tiêu chuẩn PDIP.

Hình 2:Sơ đồ chân ra của vi điều khiển AT89C51.
1.2. Sơ đồ bên trong của vi điều khiển:P0
RST
PSENAE\
ALE
P1
P2
P3
TXD
RXD
Taïo Dao
Ñoäng
AE\

Điều khiển BUS
Các Port I/0
Port nối
Tiếp
CPU
Điều khiển ngắt
Các thanh ghi khác
128 Byte
RAM
ROM
4k - 8051
Timer 0
Timer 1
INT
*
\1
INT
*
\0
TIMER 1
TIMER 0
PORT Nối tiếp
T
0
*
T
1
*
Hình 3: Sơ đồ bên trong vi điều khiển.
- Các đặc điểm tiêu chuẩn (của họ vi điều khiển 8051):

+ 4KB Flash ROM.
+ 128 byte RAM.
+ 4 cổng vào/ra song song 8 bit.
+ 2 bộ định thời/đếm 16 bit.
+ Kiến trúc 5 vectơ ngắt 2 mức (five vector two-level
interruptarchitecture).
+ 1 cổng nối tiếp song công (full-duplex).
+ Mạch tạo dao động trên chip và mạch đồng hồ.
- AT89C51 được thiết kế với logic tĩnh cho hoạt động có tần số giảm
xuống 0 và hỗ trợ hai chế độ tiết kiệm năng lượng được lựa chọn bằng phần
mềm. Chế độ nghỉ dừng CPU trong khi vẫn cho phép RAM, các bộ định
thời/đếm, cổng nối tiếp và hệ thống ngắt tiếp tục hoạt động. Chế độ nguồn giảm
duy trì nội dung của RAM nhưng không cho mạch dao động cung cấp xung
clock nhằm vô hiệu hóa các hoạt động khác của chip cho đến khi có reset cứng
tiếp theo.
1.3. Khảo sát, chức năng từng chân:
1.3.1. Nhóm chân nguồn nuôi:
- nguồn nuôi +5V (chân số 40).
- nối đất (chân số 20).
1.3.2. Chức năng của các chân tín hiệu:(Các cổng vào/ra song song)
- 8051 có 4 cổng vào/ra song song 8 bit là Port0, Port1, Port2,
Port3.
- Các cổng này có thể sử dụng như là cổng vào hoặc cổng ra.
Cổng Port 0 (các chân 32÷39):
Là cổng vào/ra song song có haichức năng. Trong các thiết kế cỡ
nhỏ không dùng bộ nhớ mở rộng, nó có chức năng như các đường vào/ra. Trong
các thiết kế cỡ lớn có bộ nhớ mở rộng nó trở thành bus địa chỉ và bus dữ liệu đa
hợp.
Cổng Port 1 (các chân 1÷8):
Là cổng vào/ra song song. Các chân được ký hiệu P1.0, P1.1,

P1.2, …có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần. Cổng Port1
không có các chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với các
thiết bị ngoại vi.
Cổng Port 2 (các chân 21÷28):
Là một cổng vào/ra song song có tác dụng kép, được dùng như
các đường xuất nhập hoặc là byte của bus địa chỉ 16 bit đối với các thiết bị dùng
bộ nhớ mở rộng.
Cổng Port 3 (các chân 10÷17):
Là cổng vào/ra song song có tác dụng kép. Khi không hoạt động
xuất nhập các chân của cổng này có nhiều chức năng riêng.
Bit Tên Chức năng
P3.0 RXD Dữ liệu nhận cho Port nối
tiếp
P3.1 TXD Dữ liệu phát cho Port nối
tiếp
P3.2 /INT0 Ngắt ngoài 0
P3.3 /INT1 Ngắt ngoài 1
P3.4 T0 Ngõ vào Timer/Counter 0
P3.5 T1 Ngõ vào Timer/Counter 1
P3.6 /WR Xung ghi bộ nhớ dữ liệu
ngoài
P3.7 /RD Xung ghi đọc nhớ dữ liệu
ngoài

1.3.3. Các chân tín hiệu điều khiển:
- Chân cho phép bộ nhớ chương trình PSEN (Program Storage
Enable): Tín hiệu PSEN là tín hiệu ra ở chân 29 có tác dụng kép.Cho phép đọc
bộ nhớ chương trình ngoài, thường được nối đến chân OE (Output Enable) của
EPROM cho phép đọc các byte mã lệnh. Tín hiệu PSEN ở logic 0 trong thời gian
vi điều khiển tìm nạp lệnh. Các mã lệnh được đọc từ EPROM qua bus dữ liệu và

được chốt vào thanh ghi lệnh IR của vi điều khiển để giải mã.Khi vi điều khiển
thi hành chương trình trong ROM nội PSEN sẽ ở mức logic1.Chân cho phép chốt
địa chỉ ALE/PROG (Address Latch Enable):
- Chân tín hiệu ALE (chân 30) đưa ra xung điều khiển cho phépchốt
byte thấp của địa chỉ khi vi điều khiển truy xuất bộ nhớ ngoài.Chân này cũng là
đầu vào của xung lập trình khi lập trình cho FLASH, khi đó chân tín hiệu ở mức
0. Khi hoạt động bình thường, tín hiệu ALE được phát ra với tần số không đổi
bằng 1/6 tần số của bộ tạo dao động trên chip, và có thể sử dụng cho mục đích
định thời. Tuy nhiên, sẽ có một xung ALE bị bỏ qua mỗi khi vi điều khiển truy
xuất bộ nhớ ngoài.
- Chân tín hiệu truy xuất ngoài EA (External Access): Tín hiệu
vàoEA (chân 31) được nối với 5V (mức logic 1) hoặcvới GND (mức 0). Nếu ở
mức 1, vi điều khiển thi hành chươngtrình từ ROM nội. Nếu ở mức 0, vi điều
khiển sẽ thi hành chươngtrình ở bộ nhớ mở rộng. Chân EA được lấy làm chân
cấp nguồn 12V khi lập trình choFLASH trong vi điều khiển.Chân thiết lập lại
RST (Reset):
- Chân RST (chân 9) là đường vào xóa chính của vi điều khiển dùng
để thiết lập lại hệ thống. Khi chân tín hiệu này đưa lên mức cao ít nhất là 2 chu kì
máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ
thống. RST có thể được kích khi cấp điện dùng một mạch R-C. Mạch này như
sau:
Hình 4: Mạch thiết lập lại cho 8051
- Các chân XTAL1, XTAL2: Các chân này (chân 18, 19) nối với bộ
tạo dao động trên chip.Mạch tạo dao
động như sau:
Hình 5: Mạch tạo dao động cho bộ tạo dao động trên chip của AT89C51
Tần số của dao động thường là 12MHz. Khi đó tụ có giá trị 33pF.Chân VCC
nối đến +5V của nguồn cấp, chân GND nối đất.
1.4. Bộ nhớ trên chip:
RAM trong:

- Bộ vi điều khiển 8051 có 128 byte RAM trong bao gồm 32 byte đầu
tiên (00H đến 1FH) dành cho các thanh ghi, 16 byte tiếp theo (20H đến 2FH) là
vùng RAM định địa chỉ theo bit, sau đó là 80 byte RAM nháp.
-Vùng thanh ghi có 32 byte, chia thành 4 khối (bank 0 đến bank 3),mỗi
khối có 8 thanh ghi (từ R0 đến R7).
- Ở vùng RAM định địa chỉ theo bit, các bit được đánh địa chỉ từ 00H
đến 7FH.
- Các thanh ghi chuyên dụng (SFRs – Special Function Registers):
- Các thanh ghi này có địa chỉ từ 80H đến FFH. Chúng chứa nộidung
của các thanh ghi điều khiển.
ROM:
- Bộ vi điều khiển AT89C51 có 4KB FLASH lập trình được.
- ROM luôn chiếm vùng địa chỉ thấp nhất trong bộ nhớ chương trình.
1.5. Các Bộ định thời/Bộ đếm:
- Bộ vi điều khiển 8051 có 2 Bộ định thời/Bộ đếm là Bộ định thời/Bộ
đếm 0 và Bộ định thời/Bộ đếm 1. Chúng có thể hoạt động như là bộ định thời
hoặc bộ đếm.
- Chế độ hoạt động của các Bộ định thời/Bộ đếm được cất trong thanh
ghi TMOD:
- Nếu bit GATE xóa, các Bộ định thời/Bộ đếm được phép hoạt đông
khi bit TR# tương ứng trong thanh ghi TCON thiết lập. Ngược lại,nếu GATE
thiết lập thì các Bộ định thời/Bộ đếm chỉ hoạt động khicác chân INT# tương ứng
tích cực (mức thấp).
- Bit C/T# dùng để lựa chọn chế độ hoạt động bộ đếm hay bộ địnhthời.
Nếu được thiết lập thì nó hoạt đông theo chế độ đếm sự kiện,lúc này nguồn xung
cho bộ đếm là xung ngoài đưa vào từ chân T# tương ứng (chân 14, 15). Nếu bị
xóa, thì nó hoạt động theo chế độ định thời với nguồn xung là xung tạo ra từ bộ
tạo dao đông trên chip sau khi chia 12.
- Các bit M0, M1 dùng để xác dịnh chế độ đếm cho các bộ đếm: Sự
hoạt động của các Bộ định thời/Bộ đếm được điều khiển bởi thanh ghi TCON:

- Các bit TR# cho phép Bộ định thời/Bộ đếm hoạt động (nếu được thiết
lập) hoặc không cho phép chúng hoạt động (nếu bị xóa).
- Các bit TF# là các cờ tràn tương ứng với các Bộ định thời/Bộ đếm.
Chúng được thiết lập khi xảy ra tràn và được xóa bằng phần cứng nếu khi đó bộ
xử lý rẽ nhánh đến chương trình phục vụ ngắt tương ứng.
- Các bit IT# là các bit ngắt. Thiết lập IT# tạo ra chế độ ngắt cạnh, chân
INT# nhận ra một ngắt khi nhận ra có một sườn âm (↓) của tín hiệu vào. Xóa IT#
tạo ra chế độ ngắt mức, tức là ngắt được tạo ra khi tín hiệu vào ở mức thấp (0). Ở
chế độ ngắt mức, khi tín hiệu vào còn ở mức thấp thì ngắt được tạo ra liên tục
cho đến khi tínhiệu vào chuyển lên mức cao hoặc thiết lập IT#.
- Các bit IE# là các cờ ngắt cạnh, được thiết lập khi dò thấy ngắt cạnh.
1.6. Điều khiển ngắt:
Bộ vi điều khiển 8051 có 5 nguồn ngắt: TF0, TF1, INT0, INT1 và ngắt
do cổng nối tiếp. Sự điều khiển hoạt động ngắt được cất trong 2 thanh ghi là
thanh ghi cho phép ngắt IE (Interrupt Enable) và thanh ghi xác định thứ ự ưu tiên
ngắt IP (Interrupt Priority).Các bit và chức năng của chúng trong thanh ghi IE
như sau (thiết lập là cho phép, xóa là cấm):
2. Khối hiển thị:
- Khối hiển thị có chức năng đưa ra thông tin điều khiển giao thông 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 điều khiển.
và đồng hồ hiển thị thời gian.
- Đèn điều khiển 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 đến 99. Ở đây ta dùng loại anode chung), cấu trúc của nó như sau:
2.1. Led 7 thanh dung Anode chung:
- Sơ đồ chân:
Hình 6: Cấu trúc bên trong của LED 7 thanh Anode chung
- Bảng hiển thị:
V C C
c

c
e
e
a
a
g
g
d p
d p
d
d
C o m m o n A n o d e
b
bf
f
- Vì led 7 đoạn bên trong nó có 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. Do kết nối với
nguồn 5V nên ta dung điện trở hạn dòng 330omh trước các chân tín hiệu điều
khiển.
- Các chân đều dùng điện trở để hạn dòng cho 7seg để đề phòng cháy. Bình
thường LED hoạt động ở mức 1,8 – 3V dòng từ 10 – 20mA thì nó sẽ cho sáng
đẹp và mạnh.
- Mạch này chúng em dùng phương pháp qt: Tối thiểu là các LED hiển
thị phải sáng 24 lần/giây (tiêu chuẩn của điện ảnh). Thực tế người ta thường làm
cao hơn một chút, có thể đến 60, 70 lần/giây. Hiển thị LED bằng phương pháp
qt là phương pháp hiển thị mà tại mỗi thời điểm dữ liệu được truyền đến tất cả
các LED nhưng chỉ có một LED được cho phép hiển thị dữ liệu đó.
2.2. LED đơn hiển thị Xanh, Vàng, Đỏ:
2.3. Tính giá trị điện trở hạn dòng cho LED:
Dòng qua mỗi nhánh của led khoảng 10 - 20mA

Sụt áp trên mỗi nhánh của led khoảng 1,8V ÷ 3V
Giaự trũ ủieọn trụỷ R nh nht:
(5V 3V)/20mA = 0.1K = 100
Giỏ tr in tr R ln nht:
(5V 1.8V)/10mA = 0.32K = 320
Chn R hn dũng t 100 - 320 cng c.
3. Khi ngun:
Mch in gm nhng phn sau : H ỏp, chnh lu, lc, bin i (7805).
Ngun in xoy chiu 220VAC-50Hz qua bin ỏp l h ỏp xung cũn 24VAC -
1A v c qua b chnh lu nhm bin i xoay chiu thnh 1 chiu. Thnh
phn 1 chiu ny cú gn nờn phi qua b lc C san phng in ỏp gn ú
cho ra in ỏp 1 chiu. Sau ú in ỏp 1 chiu ny qua b n ỏp 7805 cho ra in
ỏp n ỏp 5V n nh bi con IC LM7805 cung cp cho ton mch.

Hỡnh 7: Hỡnh dỏng IC n ỏp 7805
U 2
L M 7 8 0 5
1 3
2
I N O U T
G N D
R 1
3 3 0
C 1
2 5 V - 1 0 0 0 u F
C 3
0 . 1 u F - 5 0 V
0
1 2 V
1

2
0
C 2
1 u F - 5 0 V
- +
D 1
1
4
3
2
0
D 2
L E D
0
C 4
1 0 u F - 5 0 V
00
0
Hỡnh 8: S nguyờn lý mch ngun.
PHẦN IV.
THIẾT KẾ VÀ THI CÔNG MẠCH
1. Sơ đồ nguyên lý toàn mạch:
0
0
P 2 . 1
P 1 . 7
P 2 . 1
P 3 . 2
0
U 1

A T 8 9 C 5 1
9
1 8
1 9
2 9
3 0
3 1
1
2
3
4
5
6
7
8
2 1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
1 0
1 1
1 2
1 3
1 4
1 5
1 6

1 7
3 9
3 8
3 7
3 6
3 5
3 4
3 3
3 2
R S T
X T A L 2
X T A L 1
P S E N
A L E / P R O G
E A / V P P
P 1 . 0
P 1 . 1
P 1 . 2
P 1 . 3
P 1 . 4
P 1 . 5
P 1 . 6
P 1 . 7
P 2 . 0 / A 8
P 2 . 1 / A 9
P 2 . 2 / A 1 0
P 2 . 3 / A 1 1
P 2 . 4 / A 1 2
P 2 . 5 / A 1 3
P 2 . 6 / A 1 4

P 2 . 7 / A 1 5
P 3 . 0 / R X D
P 3 . 1 / T X D
P 3 . 2 / I N T 0
P 3 . 3 / I N T 1
P 3 . 4 / T 0
P 3 . 5 / T 1
P 3 . 6 / W R
P 3 . 7 / R D
P 0 . 0 / A D 0
P 0 . 1 / A D 1
P 0 . 2 / A D 2
P 0 . 3 / A D 3
P 0 . 4 / A D 4
P 0 . 5 / A D 5
P 0 . 6 / A D 6
P 0 . 7 / A D 7
P 0 . 7P 2 . 0
P 1 . 5
P 3 . 3
P 0 . 0
C 3
1 0 4
R 1
1 0 K
P 2 . 2
P 1 . 0
P 1 . 6
P 3 . 4
R P 3

1 2
3
4
5
6
7
8
9
+ 5 V
S W 4
12
+
C 9
0 . 1 u F - 5 0 V
P 0 . 1
0
P 2 . 3
P 1 . 1
P 1 . 7
P 3 . 5
+
C 1
1 0 u F - 5 0 V
+
C 1 0
1 0 u F - 5 0 V
P 2 . 4
P 1 . 2
P 0 . 0
P 3 . 6

R P 1
1 2
3
4
5
6
7
8
9
0
0
P 2 . 5
P 1 . 3
P 0 . 1
P 3 . 7
P 0 . 2
C 2
1 0 4
S W 1
1 2
- +
D 8
1
4
3
2
U 2 L M 7 8 0 5
1 3
2
I N O U T

G N D
P 2 . 6
P 1 . 4
P 0 . 2
+ 5 V
P 3 . 6
P 0 . 3
0
S W 5
12
P 2 . 7
P 1 . 0
P 0 . 3
R P 2
1 2
3
4
5
6
7
8
9
P 3 . 7
P 0 . 4
S W 2
12
0
X 1
0
P 2 . 7

P 0 . 4
R P 4
1 2
3
4
5
6
7
8
9
P 3 . 5
P 0 . 5
C 5
1 0 4
1 2 M H z
+ 5 V
+
C 8
1 u F - 5 0
+
C 7
1 0 0 0 u F - 2 5 V
P 2 . 6
P 0 . 5
R 2
3 3 0
P 3 . 4
P 1 . 1
P 0 . 6
0

P 2 . 5
P 0 . 6
+ 5 V
P 3 . 3
P 1 . 2
P 1 . 0
+ 5 V
S W 3
12
C 4
1 0 4
0
P 2 . 4
P 3 . 2
P 1 . 3
P 1 . 1
0
+ 5 V
P 3 . 1
P 1 . 4
P 1 . 2
0
0
P 0 . 7
C 6
1 0 4
P 3 . 0
P 1 . 5
P 1 . 3
P 2 . 3

P 3 . 0
0
D 9
L E D
0
P 2 . 0
P 1 . 6
P 1 . 4
0
P 2 . 2
P 3 . 1
J 1
9 V
1
2
B
Q 1
A 1 0 1 5
P 2 . 2 1
G
R 1 2
1 0 K
1
A
R 6
2 2 0
C
F
0
D P

R 1 3
1 0 K
P 0 . 3 1
U 6
7 S A - A
a
b
c
d
e
f
g
d p
A
D P
A n o d e
R 1 7
3 3 0
A n o d e
P 3 . 5
+ 5 V
R 4
2 2 0
D
A
0
B
D 2
D V 2
Q 3

A 1 0 1 5
G
P 2 . 3 1
R 8 2 2 0
P 0 . 0 1
P 2 . 1 1
E
d p
P 2 . 4 1
B
R 1 5
3 3 0
C
A F
G
U 4
7 S A - A
a
b
c
d
e
f
g
d p
A
P 0 . 5 1
P 3 . 1
+ 5 V
0

P 0 . 4 1
U 3
7 S A - A
a
b
c
d
e
f
g
d p
A
P 2 . 6 1
0
D 4
D D 1
D P
R 1 6
3 3 0
A n o d e
R 3
2 2 0
D 5
D V 1
1
P 2 . 5 1
A
U 7
7 4 H C 2 4 5
2

3
4
5
6
7
8
9
1 9
1
1 8
1 7
1 6
1 5
1 4
1 3
1 2
1 1
A 0
A 1
A 2
A 3
A 4
A 5
A 6
A 7
O E
D I R
B 0
B 1
B 2

B 3
B 4
B 5
B 6
B 7
P 3 . 4
+ 5 V
D 6
D X 1
P 2 . 0 1
R 1 9
3 3 0
G
D
R 2 0
3 3 0
0
F
R 9
2 2 0
B
E
D 1
D D 2
D 3
D X 2
E
Q 2
A 1 0 1 5
C

F
0
R 1 1
1 0 K
R 1 0
2 2 0
C
D
0
1
D P
Q 4
A 1 0 1 5
A n o d e
D
C
P 2 . 7 1
R 7
2 2 0
D
P 0 . 1 1
R 1 4
1 0 K
P 3 . 0
+ 5 V
A
E
R 1 8
3 3 0
U 5

7 S A - A
a
b
c
d
e
f
g
d p
A
E
P 0 . 2 1
G
1
R 5
2 2 0
F
B
2.Nguyên lý hoạt động:
Cấp nguồn từ 9 – 12V qua mạch nguồn ổn áp còn 5VDC ổn định cấp cho
toàn mạch hoạt động.
Các mạch hiển thị hoạt động trên nguyên tắc điều khiển bit vào/ra của các
cổng trên IC 89C51. Chương trình được nạp vào IC này và cụ thể như sau: Vi
điều khiển được lập trình để điều khiển 2 công việc chính:
Chuyển mức của các đèn tín hiệu trên hai làn đường (Xanh, Đỏ, Vàng)
Việc chuyển mức này sẽ được thực hiện bằng 6 bit truyền tín hiệu: Làn đường
thứ nhất và làn đường thứ hai sẽ dùng P0.0 – P0.7 để hiển thị đèn Xanh, Vàng,
Đỏ.
Các đèn hiển thị là các LED 7 thanh nối chung nhau anốt. Đèn sáng sẽ
tương ứng với mức logic thấp. Giữa các lần hiển thị sẽ kết hợp đèn của hai làn

đường. Đèn xanh ở làn 1 thì tương ứng sẽ là đèn đỏ ở làn 2 và ngược lại. Và
chuyển mức giữa các đèn sẽ xen kẽ những bộ đếm, kết thúc mỗi bộ đếm sẽ tương
ứng thiết lập lại các bit để hiển thị các trạng thái đèn tiếp theo.
Việc tạo ra số thập phân được thực hiện bằng cách ghi dãy số Hexa 21 giảm
dần vào vị trí ROM nội.(Lúc này ta sử dụng chân số 31(EA/VPP) và cho nó mức
điện áp cao(mức 1) để đọc dữ liệu từ Rom nội).
Các trạng thái đèn hiển thị được điều khiển thông qua khối nút nhấn.
3. Lưu đồ giải thuật:
Begin
Khởi tạo
Biến mode = 0
Đọc thời gian xanh và thời gian vàng lưu vào 2 biến tgx, tgv
Tg1: = tgx
Tg2: = tgx + tgv
X1 sáng, Đ2 sáng
Giải mã
Hiển thị
Mode =0
Mode1 =0
Chỉnh tgx, tgv
Đ
SA
Tg = 1s
1
Tg1:= tg1 – 1
Tg2:= tg2 - 1
Tg1 = 0
2
SA
SA

SA
SA
Đ
2
Chỉnh giờ, phút
3
Chỉnh giờ, phút
Đ
1
2
Tg1 = 0
X1 tắt, v1 sáng
Tg1:= tgv
SA
Đ
Đ
Đ sáng, x2 sáng
Giải mã
Hiển thị
Mode = 0
Mode1 = 0
T =1s
Tg:= tg1 -1
Tg:= tg2 -1
Chỉnh tgx, tgv
Đ
SA
SA
Đ
Tg1:= tgx + tgv

Tg2:= tgx
Tg2 =0
T1 =0
end
V2 sáng, Đ1 sáng
Tg2:= tgV
SA
Đ
SA
SA
3

×