Tải bản đầy đủ (.doc) (28 trang)

MẠCH đèn GIAO THÔNG DÙNG họ 8051

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 (389.98 KB, 28 trang )

Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

MỤC LỤC

----------------------------------------------------Trang 1


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

LỜI NÓI ĐẦU

Trong thời đại ngày nay khi nhân loại đang trải qua những bước tiến vượt bậc về
khoa học công nghệ, thì ngành điện tử cũng có những bước tiến quan trọng đặc
biệt là trong lĩnh vực vi điều khiển. Các bộ vi xử lý ngày càng phát triển và hoàn
thiện hơn,được sử dụng trong hầu hết các hệ thống điều khiển tự động trong công
nghiệp,khoa học kĩ thuật,cũng như trongcác thiết bị dân dụng. Chính nhờ vai trò,chức
năng của vi xử lý đã đem lại nhiều ưu điểm, nhiều tính năng đặc biệt cho các hệ
thống điều khiển thay thế con người trong các công việc đòi hỏi sự phức tạp và yêu
cầu kỹ thuật cao.
Để áp dụng tính năng đặc biệt đó của vi xử lý vào thực tiễn,nhóm sinh viên chúng
em gồm các thành viên:
1. [Họ và tên]
2. [Họ và tên]
3. [Họ và tên]
Dưới sự hướng dẫn nhiệt tình và chu đáo của thầy giáo [Họ và tên], nhóm chúng em
đã tiến hành nghiên cứu và hoàn thành đồ án với đề tài: Thiết Kế Mạch Đèn Giao
Thông Sử Dụng Vi Điều Khiển 8051.


Trong hệ thống này nhóm em đã sử dụng IC AT89S52 là IC điều khiển chính. Ngoài
việc sử dụng IC 89S52 còn sử dụng một số linh kiện phụ trợ khác.

----------------------------------------------------Trang 2


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

Mặc dù đã cố gắng nhiều nhưng vì kinh nghiệm chưa có nhiều và sự khác biệt giữa lý
thuyết – thực hành nên trong quá trình thực hiện còn nhiều thiếu sót. Mong được sự
góp ý chân tình từ thầy cô và các bạn!
Chúng em chân thành cảm ơn các thầy,các cô giáo dã nhiệt tình giúp đỡ nhóm
em trong thời gian hoàn thành đồ án.Cảm ơn các anh chị sinh viên đi trước và các bạn
sinh viên đã cùng đóng góp ý kiến, thảo luận và giúp đỡ.
Đặc biệt chúng em xin chân thành cảm ơn Thầy giáo hướng dẫn [Họ và tên] đã
nhiệt tình hướng dẫn và giúp đỡ chúng em hoàn thành đồ án này.
Chúng em xin chân thành cảm ơn!

----------------------------------------------------Trang 3


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

CHƯƠNG 1 PHƯƠNG ÁN THIẾT KẾ
1.1 Sơ đồ khối hệ thống


Hình 1.1 Sơ đồ khối của hệ thống
1.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,
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.

----------------------------------------------------Trang 4


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

CHƯƠNG 2 THIẾT KẾ
2.1 Giới thiệu về vi điều khiển 8051
2.1.1 Cấu trúc của vđk 8051
Sơ đồ khối và sơ đồ chân của VĐK 8051

Hình 2.1 Sơ đồ khối của VĐK 8051

----------------------------------------------------Trang 5


Đồ án Vi Xử Lý

THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

Hình 2.2 Sơ đồ chân của VĐK 8051
VĐK 8051 bao gồm:
+ CPU 8 bit
+ 4KB Rom bộ nhớ chương trình
+ 128 Byte Ram dữ liệu
+ 2 Bộ định thời timer 0,1
+ 1 cổng ra nối tiếp (Seral port)
+ 4 cổng xuất nhập P0 - P3 (I/O port)8 bit
+ Mạch giao tiếp nối tiếp
+ Không gian nhớ chương trình ngoàI 64K.
+ 210 vị trí nhớ được định địa chỉ , mỗi vị trí 1 bit
+ Bộ xử lý bit (thao tác trên các bit riêng lẻ )
+ Một bộ điều khiển ngắt:Interruptcontrol
+ Một mạch dao động bên trong và một bộ điều khiển Bus
+ Các cổng P0-P3 là các cổng vào ra hai chiều. Ngoài ra P0 và P2 còn được xử dụng

----------------------------------------------------Trang 6


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

để truy cập bộ nhớ ngoài với các chương trình ứng dụng này cổng P0 sẽ đưa ra địa chỉ
Byte thấp và P2 đưa ra địa chỉ cao.
+ Cổng port 3 có hai công dụng :
Khi hoạt động ở chế độ xuất nhập mỗi một cổng của P3 có một chức năng riêng

+ RxD: chân nhập dữ liệu cổng nối tiếp
+ TxD: phát dữ liệu cổng nối tiếp
+ INT : ngắt ngoài
+ INT1: Ngõ ngoài của bộ định thời không và ngõ vào của bộ định thời 1
+ OE : ( outront enable) cho phép đọc các byte lệnh trong thời gian lấy lệnh
+ Trong thời gian lấy lệnh tín hiệu PSEN=0
Trong thời gian thực hiện lệnh PSEN=1
+ ALE (address lacht Enable): là tín hiệu để chốt địa chỉ
+ EA : truy xuất bên ngoài.
+ 8051 thực hiện chương trình trong Rom nội. Ngoài ra EA được dùng chân nhận điện
áp 21V cho việc lập trình Eprom
+ RST : (reset) là chân dùng thiết lập trạng thái ban đầu cho hệ thống
+ WR : tín hiệu đIều khiển ghi nhớ ngoài
+ RD : tín hiệu đIều khiển đọc bộ nhớ ngoài
+ PSEN : (Program store Enable) là tín hiệu điều khiển cho phép truy xuất bộ nhớ
ngoài , tín hiệu này được nối với OE.
2.1.2 Chức năng các chân của VĐK 8051
Vcc : chân cấp điện
Vss : Chân nối đất (0 V)
32 chân trong số 40 chân của 8051 có công dụng xuất/nhập, tuy nhiên 24 trong 32
đường này có 2 mục đích (công dụng). Mỗi một đường có thể hoạt động xuất/nhập
hoặc hoạt động như một đường địa chỉ/dữ liệu của bus địa chỉ/dữ liệu đa hợp.
32 chân nêu trên hình thành 4 port 8-bit. Với thiết kế yêu cầu một mức tối thiểu bộ
nhớ ngoài hoặc các thành phần bên ngoài khác, ta có thể sử dụng các port này làm

----------------------------------------------------Trang 7


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG

----------------------------------------------------------------------------------------------------------------

nhiệm vụ xuất/nhập. 8 đường cho mỗi port có thể được xử lý như một đơn vị giao tiếp
với các thiết bị song song như máy in, bộ biến đổi D-A v.v hoặc mỗi đường có thể
hoạt động độc lập giao tiếp với một thiết bị đơn bit như chuyển mạch, LED, BJT,
FET, cuộn dây, động cơ, loa,...
Port 0 : Port 0 ( các chân từ 32 đến 39 trên 8051 ) có hai công dụng . Trong các thiết
kế có tối thiểu thành phần, port 0 được sử dụng làm nhiệm vụ xuất/nhập. Trong các
thiết kế lớn hơn có bộ nhớ ngoài, port 0 trở thành bus địa chỉ và bus dữ liệu đa hợp
( byte thấp của bus địa chỉ)
Port 1 : Port1 chỉ có một công dụng là xuất/nhập ( các chân từ 1 đến 8 trên 8051 )
.
Các chân của port 1 được ký hiệu là P1.0, P1.1,..., P1.7 và được dùng để giao tiếp với
thiết bị bên ngoài khi có yêu cầu. Không có chức năng nào nữa gán cho các chân của
port 1, nghĩa là chúng chỉ được sử dụng để giao tiếp với các thiết bị ngoại vi.
Port 2 : Port 2 ( các chân từ 21 đến 28 trên 8051 ) có 2 công dụng, hoặc làm nhiệm vụ
xuất/nhập hoặc là byte địa chỉ cao của bus địa chỉ 16 bit cho các thiết kế có bộ nhớ
chương trình ngoài hoặc các thiết kế có nhiều hơn 256 bytes bộ nhớ dữ liệu ngoài.
Port 3 : Port 3 ( các chân từ 10 đến 17 trên 8051 ) có 2 công dụng. Khi không hoạt
động xuất/nhập, các chân của port 3 có nhiều chức năng riêng ( mỗi chân có chức
năng riêng liên quan đến các đặc trưng cụ thể của 8051 )
Bảng sau đây cho ta chức năng của các chân của port 3 :
Bit

Tên

Địa chỉ bit

Chức năng


P3.0

RxD

B0H

Chân nhận dữ liệu port nối tiếp

P3.1

TxD

B1H

Chân phát dữ liệu port nối tiếp

----------------------------------------------------Trang 8


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

P3.2

INT0

B2H

Ngõ vào ngắt ngoài 0


P3.3

INT1

B3H

Ngõ vào ngắt ngoài 1

P3.4

T0

B4H

Ngõ vào của bộ định thời/đếm 0

P3.5

T1

B5H

Ngõ vào của bộ định thời/đếm 1

P3.6

WR

B6H


Điều khiểnghi bộ nhớ dữ liệu ngoài

P3.7

RD

B7H

ĐiềU khiển đọcbộ nhớ dữ liệu

ngoài
Chân cho phép bộ nhớ chương trình PSEN :
8051 cung cấp cho ta 4 tín hiệu điều khiển bus. Tín hiệu cho phép bộ nhớ
chương trình PSEN ( program store enable) là tín hiệu xuất trên chân 29. Đây là tín
hiệu điều khiển cho phép ta truy xuất bộ nhớ chương trình ngoài. Chân này thường
nối với chân cho phép xuất OE ( output enable ) của EPROM ( hoặc ROM ) để cho
phép đọc các file lệnh.
Tín hiệu PSEN ở logic 0 trong suốt thời gian tìm nạp lệnh. Các mã nhị phân của
chương trinh hay opcode ( mã thao tác ) được đọc từ EPROM, qua bus dữ liệu và chốt
vào thanh ghi lệnh IR của 8051 để được giải mã.
Khi thực thi một chương trình chứa trong ROM nội , PSEN được duy trì ở logic
không tích cực ( logic 1 ).
Chân cho phép chốt địa chỉ ALE :
8051 sử dụng chân 30, chân xuất tín hiệu cho phép chốt địa chỉ ALE
( address latch enable ) để giải đa hợp ( demultiplexing ) bus dữ liệu và bus địa chỉ.
Khi port 0 được sử dụng làm bus địa chỉ/dữ liệu đa hợp, chân ALE xuất tín hiệu để
chốt địa chỉ ( byte thấp của địa chỉ 16 bit) vào một thanh ghi ngoài trong suốt nửa đầu
của chu kỳ bộ nhớ ( memory cycle ). Sau khi điều này đã được thực hiên, các chân
của port 0 sẽ xuất/nhập dữ liệu hợp lệ trong suốt nửa thứ hai của chu kỳ bộ nhớ.

Tín hiệu ALE có tần số bằng 1/6 tần số của mạch dao động bên trong chip vi điều
khiển và có thể dùng làm xung clock cho phần còn lại của hệ thống. Nừu mạch dao

----------------------------------------------------Trang 9


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

động có tần số 12 MHz, tín hiệu ALE có tần số 2 MHz . Ngoại lệ duy nhất là trong
thời gian thực thi lệnh MOVX, một xung ALE sẽ bị bỏ qua. Chân ALE còn được
dùng để nhận xung ngõ vào lập trình cho EPROM trên chip đối với các phiên bản có
EPROM này.
Chân truy xuất ngoài EA

Ngõ vào này ( chân 31 ) có thể được nối với 5 V ( logic 1 ) hoặc với GND

( logic

0 ) . Nếu chân này nối lên 5 V, 8051 thực thi chương trình trong ROM nội ( chương
trình nhỏ hơn 4K ). Nếu chân này nối với GND ( và chân PSEN cũng ở logic 0 ),
chương trình cần thực thi chứa ở bộ nhớ ngoài. Nếu chân EA ở logic 0 , ROM nội bên
trong chip được vô hiệu hoá và chương trình cần thực thi chứa ở EPROM bên ngoài.
Chân RESET ( RST )
Ngõ vào RST ( chân 9 ) là ngõ vào xoá chính ( master reset ) của 8051 dùng để thiết
lập lại trạng thái ban đầu cho hệ thống hay gọi tắt là reset hệ thống. Khi ngõ vào này
được treo ở logic 1 tối thiểu 2 chu kỳ máy, các thanh ghi bên trong của 8051 được nạp
các giá trị thích hợp cho việc khởi động lại hệ thống.


Các chân XTAL1 và XTAL2
Mạch dao động bên trong chip 8051 được ghép với thạch anh bên ngoài ở hai chân
XTAL1 và XTAL2 ( chân 18 và 19 ). Tần số danh định của thạch anh là 12 MHz cho
hầu hết các chip của họ MCS-51.
XTAL1 : Ngõ vào đến mạch khuếch đại đảo của mạch dao động.
XTAL2 : Ngõ ra từ mạch khuếch đại đảo của mạch dao động.
2.1.3 Bộ nhớ trên chip

----------------------------------------------------Trang 10


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

* 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à 80byte 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 dá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ội
dung của các thanh ghi điều khiển.


Sau đây là một số thanh ghi chuyên dụng:

THANH GHI


MÃ GỢI NHỚ

ĐỊA CHỈ

CHỐT CỔNG Port0

P0

80H

CHỐT CỔNG Port1

P1

90H

CHỐT CỔNG Port2

P2

AOH

CHỐT CỔNG Port3

P3

BOH

Điều khiển bộ định thời/bộ đếm


TCON

88H

Điền khiển chế độ bộ định thời/bộ đếm

TMOD

89H

Byte thấp bộ định thời/bộ đếm 0

TL0

8AH

Byte cao bộ định thời/bộ đếmo

TH0

8BH

Byte thấp bộ định thời/bộ đếm 1

TL1

8CH

Byte cao bộ định thời/bộ đếm 1


TH1

8DH

Cho phép ngắt

IF

A8H

Điều khiển ưu tiên khi ngắt

IP

B8H

----------------------------------------------------Trang 11


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

Từ trạng thái chuong trình

PSW

D0H


Thanh ghi tích lũy

ACC(A)

E0H

Thanh ghi B

B

F0H

Bảng 2.1 Một số thanh ghi chuyên dụng của vi điều khiển 8051
* ROM:
Bộ vi điều khiển AT89S52 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.

2.1.4 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
GATE1 C/T1

M1(1) M0(1)

GATE0

C/T0 M1(0) M0(0)

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 khi cá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ộ định thờ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

----------------------------------------------------Trang 12


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

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:
M1

M0

CHẾ ĐỘ

0

0

Đếm 13 bit

0


1

Đếm 16 bit

1

0

Đếm 8 bit và tự động nạp lại

1

1

Bộ đếm 0 đếm 8bit riêng rẽ

Bộ đếm 1 dừng hoạt động
Bảng 2.2 Các chế độ hoạt động của 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:
TF1

TR1 TF0

TR0 IE1

IT1

ITE


IE0

IT0

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ẽ

----------------------------------------------------Trang 13


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

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ín hiệ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.
2.1.5 Đ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ứ tự ư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):

BIT

MÃ GỌI NHỚ

CHỨC NĂNG

7

EA

Cho ngắt toàn cục

6

--

Không dùng

5

ET2

Cho phép ngắt do bộ định thời 2

4


ES

3

ET1

Cho phép ngắt do bộ đếm 1

2

EX1

Cho phép ngắt từ bên ngoài 1

1

ET0

Cho phép ngắt do bộ đếm

Cho phép ngắt do cổng nối tiếp

----------------------------------------------------Trang 14


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

0


EX0

Cho phép ngắt từ bên ngoài 0

Bảng 2.3 Các bit và chức năng của nó trong thanh ghi IE

Với thanh ghi IP:
BIT

MÃ GỢI NHỚ

CHỨC NĂNG

7

--

Không dùng

6

--

Không dùng

5

PT2


Ưu tiên ngắt do bô định thời 2

4

PS

Ưu tiên ngắt do cổng nói tiếp

3

PT1

Ưu tiên ngắt do bộ đếm 1

2

PX1

Ưu tiên ngắt từ bên ngoài 1

1

PT0

Ưu tiên ngắt do bộ đếm 0

0

PX0


Ưu tiên ngắt từ bên ngoài 0

Bảng 2.4 Các bit và chức năng của chúng trong thanh ghi IP

----------------------------------------------------Trang 15


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

2.2 Thiết kế phần cứng
2.2.1 Khối vi xử lý
Khối xử lý gồm 1 bộ vi điều khiển AT89S52 làm
trung tâm.bên cạnh đó là một khối RESET,1
khối tạo dao động.
Vi điều khiển AT89S52

Hình 2.3 Vi điều khiển 89S52

Khối RESET
Gồm 1 phím bấm, 1 điện trở tụ.
Nguyên tắc hoạt động:
Khi có tác động vào phím bấm
RESET thì vi điều khiển sẽ chạy
lại chương trình từ ban đầu

----------------------------------------------------Trang 16



Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

Hình 2.4 Sơ đồ khối RESET

Khối tạo dao động

Hình 2.5 Khối tạo dao động
Gồm 1 bộ dao động thach anh có tần số 12MHz ,2 tụ có trị số 33 pF.
Nguyên tắc hoạt động:
Bộ dao động này tự phát ra xung dao động có tần số 12MHz để bộ vi điều khiển hoạt
động.
Bộ này có đặc điểm là không cần cấp nguồn thì nó vẫn có thể phát ra xung chính xác.

----------------------------------------------------Trang 17


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

2.2.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à bộ đếm
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.
Bộ đếm thời gian dùng các LED 7 thanh để tạo thành các bộ hiển thị từ 00 đến 99.


Hình 2.6 Khối hiển thị

----------------------------------------------------Trang 18


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

Sơ đồ nguyên lý hệ thống mạch đèn giao thông

Hình2.7 Sơ đồ nguyên lý hê thống

----------------------------------------------------Trang 19


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

Sơ đồ mạch in của hệ thống

Hình 2.7 Sơ đồ mạch in hệ thống
2.3 Thiết kế phần mềm
Chương trình điều khiển hệ thống
#include <main.h>
#define delayLED
unsigned

40

char

LED7segAnot[]

{0x09,0xaf,0x98,0x8c,0x2e,0x4c,0x48,0x8f,0x08,0x0c};
void LED7seg_Display(unsigned char pos, unsigned char number);
void delay_ms(unsigned int t)

----------------------------------------------------Trang 20

=


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

{
unsigned int i,j;
for(i=0;i{
for(j=0;j<123;j++);
}
}
void main()
{
int i,j;
//Khoi tao ngat ngoai
IT0 = 0;
EX0 = 1;

EA = 1;
while(1)
{
Green1=0;

//Bat den xanh 1

Red1=1;

//Tat den do 1

Green2=1;

//Tat den xanh 2

Red2=0;

//Bat den do 2

Yellow1=Yellow2=1;

//Tat den vang 1 va 2

for(i=30;i>=0;i--)
{
if(i<=4)
{
Green1=1;

//Tat den xanh 1


Yellow1=0;

//Bat den vang 1

----------------------------------------------------Trang 21


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

for(j=0;j{
LED7seg_Display(2,i/10);
LED7seg_Display(3,i%10);
LED7segPIN1 = 1;
LED7segPIN2 = 1;
}
LED7segPIN3 = 1;
LED7segPIN4 = 1;
delay_ms(500);
}
else
{
for(j=0;j{
LED7seg_Display(2,i/10);
LED7seg_Display(3,i%10);
LED7seg_Display(0,(i-5)/10);

LED7seg_Display(1,(i-5)%10);
}
}
}
Green1=1;

//Tat den xanh 1

Red1=0;

//Bat den do 1

Green2=0;

//Bat den xanh 2

Red2=1;
Yellow1=Yellow2=1;

//Tat den do 2
//Tat den vang 1 va 2

----------------------------------------------------Trang 22


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

for(i=30;i>=0;i--)

{
if(i<=4)
{
Green2=1;

//Tat den xanh 2

Yellow2=0;

//Bat den vang 2

for(j=0;j{
LED7seg_Display(0,i/10);
LED7seg_Display(1,i%10);
LED7segPIN3 = 1;
LED7segPIN4 = 1;
}
LED7segPIN1 = 1;
LED7segPIN2 = 1;
delay_ms(500);
}
else
{
for(j=0;j{
LED7seg_Display(0,i/10);
LED7seg_Display(1,i%10);
LED7seg_Display(2,(i-5)/10);
LED7seg_Display(3,(i-5)%10);

}
}
}

----------------------------------------------------Trang 23


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

}
}
void INT0_ISR() interrupt 0
{
LED7segPIN1 = 1;
LED7segPIN2 = 1;
LED7segPIN3 = 1;
LED7segPIN4 = 1;
Green1=Green2=Red1=Red2=1;
while(1)
{
Yellow1=Yellow2=1;
delay_ms(1000);
Yellow1=Yellow2=0;
delay_ms(1000);
}
}
void LED7seg_Display(unsigned char pos, unsigned char number)
{

switch(pos)
{
case 0: LED7seg = LED7segAnot[number];
LED7segPIN1 = 0;
delay_ms(5);
LED7segPIN1 = 1;
break;
case 1: LED7seg = LED7segAnot[number];
LED7segPIN2 = 0;

----------------------------------------------------Trang 24


Đồ án Vi Xử Lý
THIẾT KẾ MẠCH ĐÈN GIAO THÔNG
----------------------------------------------------------------------------------------------------------------

delay_ms(5);
LED7segPIN2 = 1;
break;
case 2: LED7seg = LED7segAnot[number];
LED7segPIN3 = 0;
delay_ms(5);
LED7segPIN3 = 1;
break;
case 3: LED7seg = LED7segAnot[number];
LED7segPIN4 = 0;
delay_ms(5);
LED7segPIN4 = 1;
break;

}
}

----------------------------------------------------Trang 25


×