Tải bản đầy đủ (.doc) (37 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 (459.33 KB, 37 trang )

Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

MỤC LỤC
Trang
LỜI NÓI ĐẦU……………………………………………. 02
A - PHƯƠNG ÁN THIẾT KẾ…………………………… 04
I - SƠ ĐỒ KHỐI HỆ THỐNG MẠCH ĐÈN GIAO THÔNG……
II - PHƯƠNG ÁN THIẾT KẾ…………………………………
B - THIẾT KẾ ………………………………………………. 07
I - GIỚI THIỆU VỀ VĐK 8051…………………………… 07
1. Cấu trúc của VĐK 8051……………………………… 07
2. Các nhóm lệnh của VĐK 8051………………………… 16
II - THIẾT KẾ PHẦN CỨNG……………………………… 23
1. Khối Giải mã……………………………………………. 23
2. Khối xử lý ………………………………………………. 25
3. Khối hiển thị ………………………………………. … 27
4. Sơ đồ nguyên lý hệ thống………………………………. 29
5. Sơ đồ mạch in của hệ thống……………………………. 30
III - THIẾT KẾ PHẦN MỀM……………………………… 31
CHƯƠNG TRÌNH ĐIỀU KHIỂN HỆ THỐNG
C - NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG … 35

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 1
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

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- Nguyễn Phùng Thịnh
2- Lê Tiến Phong
3- Nguyễn Huy Yên
Dưới sự hướng dẫn nhiệt tình và chu đáo của thầy giáo Nguyễn Đình Thư,
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 HỌ 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.

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 2
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

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 Nguyễn Đình
Thư,cô giáo Trần Thị Thương đã 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!
Vinh,ngày 05 tháng 09 năm 2010

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 3

Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

A - PHƯƠNG ÁN THIẾT KẾ
I - SƠ ĐỒ KHỐI HỆ THỐNG

KHỐI GIẢI MÃ KHỐI ĐIỀU KHIỂN KHỐI HIỂN THỊ
BUS BUS-
IC IC LED 7 THANH
( SN 74LS47 ) 89S52


Hình 1: Sơ đồ khối của hệ thống
II - 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.
Do đề tài yêu cầu:
“ Thiết kế mạch đèn giao thông sử dụng họ VĐK 8051”
Nên chúng ta sẽ chọn :

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 4
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

+ VĐK AT89S52 ( Họ VĐK 8051) làm khối điều khiển chính của hệ thống

mạch đèn giao thông.
+ Để điều khiển hệ thống , ta sử dụng khối giải mã bao gồm IC SN
74LS247N.
+ Để hiển thị thời gian ta sử dụng các Led 7 thanh.
+ Ngoài ra , ta còn sử dụng 1 số điện trở, tụ diện . transistor và 1 số linh kiện
phụ trợ khác



Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 5
§iÒu khiÓn ng¾t
C¸c thanh
ghi kh¸c
128 byte RAM
ROM
4k - 8051
Timer1
Timer0
Port nèi tiÕp
C¸c Port xuÊt/nhËp
§iÒu khiÓn Bus
M¹ch dao ®éng
CPU
Timer1
Timer2
Port nèi tiÕp
INT1
INT0
P0 P2 P1 P3 TXD RXD
EA

RST
ALE
PSEN
§Þa chØ/d÷ liÖu
T1
T0
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

B - THIẾT KẾ
I - GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 8051
1 - CẤU TRÚC CỦA VĐK 8051
1.1 - Sơ đồ khối và sơ đồ chân của VĐK 8051
Hình 2: Sơ đồ chân của VĐK 8051

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 6
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

Hình 3: 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


Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 7
30pF
30pF
12MHz
19

18
XTAL1
XTAL2
PSEN
ALE
RST
EA
40
VCC
INT0
INT1
TXD
RXD
T0
T1
WR
RD
20
VSS
29
30
31
9
17
16
15
14
13
12
11

10
32
33
34
35
36
37
38
39
8
7
6
5
4
3
2
1
28
27
26
25
24
23
22
21
P3.7
P3.6
P3.5
P3.4
P3.3

P3.2
P3.1
P3.0
P2.3
P2.1
P2.0
P2.2
P2.6
P2.5
P2.4
P2.7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7 AD7
AD6
AD5
AD4

AD3
AD2
AD1
AD0
A15
A14
A13
A12
A11
A10
A9
A8
8051
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

+ 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 để 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

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 8
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

+ 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
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 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 )
.

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 9
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 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
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

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 10
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

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 độ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


Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 11
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

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.
1.3- 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à 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).

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 12

Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

 Ở 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
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 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.
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à


Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 13
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

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

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 14
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

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í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.
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

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 15
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

4 ES Cho phép ngắt do cổng nối tiếp
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
0 EX0 Cho phép ngắt từ bên ngoài 0
Bảng 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 4: Các bit và chức năng của chúng trong thanh ghi IP
2 - CÁC NHÓM LỆNH CỦA VĐK 8051

Tập lệnh của 8951 được chia thành 5 nhóm:
- Số học.
- Luận lý.
- Chuyển dữ liệu.
- Chuyển điều khiển.
Các chi tiết thiết lập lệnh:
Rn :Thanh ghi R0 đến R7 của bank thanh ghi được chọn.
Data : 8 bit địa chỉ vùng dữ liệu bên trong. Nó có thể là vùng RAM dữ liệu
trong (0-127) hoặc các thanh ghi chức năng đặc biệt.

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 16
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

@Ri : 8 bit vùng RAM dữ liệu trong (0-125) được đánh giá địa chỉ gián tiếp qua
thanh ghi R0 hoặc R1.
#data : Hằng 8 bit chức trong câu lệnh.
#data 16: Hằng 16 bit chứa trong câu lệnh

Addr16 : 16 bit địa chỉ đích được dùng trong lệnh LCALL và LJMP.
Addr11: 11 bit địa chỉ đích được dùng trong lệnh LCALL và AJMP.
Rel: Byte offset 8 bit có dấu được dùng trong lệnh SJMP và những lệnh nhảy có điều
kiện.
Bit: Bit được định địa chỉ trực tiếp trong RAM dữ liệu nội hoặc các thanh
ghi chức năng đặc biệt
a – Nhóm lệnh số học
ADD A,Rn : cộng nội dung thanh ghi Rn vào thanh ghi A.
ADD A,data (2,1): Cộng trực tiếp 1 byte vào thanh ghi A.
ADD A,@Ri (1,1): Cộng gián tiếp nội dung RAM chứa tại địa chỉ
được khai báo trong Ri vào thanh ghi A
ADD A,#data (2,1):Cộng dữ liệu tức thời vào A.
ADD A,Rn (1,1): Cộng thanh ghi và cờ nhớ vào A.
ADD A,data (2,1): Cộng trực tiếp byte dữ liệu và cờ nhớ vào A.
ADDC A,@Ri (1,1): Cộng gián tiếp nội dung RAM và cờ nhớ vào A.
ADDC A,#data (2,1): Cộng dữ liệu tức thời và cờ nhớ vào A.
SUBB A,Rn (1,1): Trừ nội dung thanh ghi A cho nội dung thanh ghi
Rn và cờ nhớ.
SUBB A,data (2,1): Trừ trực tiếp A cho một số và cờ nhớ.
SUBB A,@Ri (1,1): Trừ gián tiếp A cho một số và cờ nhớ.

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 17
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

SUBB A,#data (2,1): Trừ nội dung A cho một số tức thời và cờ nhớ.
INC A (1,1): Tăng nội dung thanh ghi A lên 1.
INC Rn (1,1): Tăng nội dung thanh ghi Rn lên 1.
INC data (2,1): Tăng dữ liệu trực tiếp lên 1.
INC @Ri (1,1): Tăng gián tiếp nội dung vùng RAM lên 1.
DEC A (1,1): Giảm nội dung thanh ghi A xuống 1.

DEC Rn (1,1): Giảm nội dung thanh ghi Rn xuống 1.
DEC data (2,1): Giảm dữ liệu trực tiếp xuống 1
DEC @Ri (1,1): Giảm gián tiếp nội dung vùng RAM xuống 1.
INC DPTR (1,2): Tăng nội dng con trỏ dữ liệu lên 1.
MUL AB (1,4): Nhân nội dung thanh ghi A với nội dung thanh ghi B.
DIV AB (1,4): Chia nội dung thanh ghi A cho nội dung thanh ghi B.
DA A (1,1,): hiệu chỉnh thập phân thanh ghi A
ANL A,Rn (1,1): AND nội dung thanh ghi A với nội dung thanh ghi Rn.
ANL A,data (2,1): AND nội dung thanh ghi A với dữ liệu trực tiếp.
ANL A,@Ri (1,1): AND nội dung thanh ghi A với dữ liệu gián tiếp
trong RAM
ANL A,#data (2,1): AND nội dung thanh ghi với dữ liệu tức thời.
ANL data,#data (2,1): AND một dữ liệu trực tiếp với A.
ANL C,bit (3,2): AND một dữ liệu trực tiếp với A một dữ liệu tức thời.
ANL C,/bit (2,2): AND cờ nhớ với 1 bit trực tiếp.
ANL data,A (2,2): AND cờ nhớ với bù 1 bit trực tiếp
ORL A,Rn (1,1): OR thanh ghi A với thanh ghi Rn.
ORL A,@Ri (2,1): OR thanh ghi A với một dữ liệu trực tiếp.
ORL A,#data (1,1): OR thanh ghi A với một dữ liệu gián tiếp.
ORL data,A (2,1): OR thanh ghi A với một dữ liệu tức thời.
ORL data,#data (2,1): OR một dữ liệu trực tiếp với thanh ghi A.

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 18
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

ORL C,bit (3,1) :OR một dữ liệu trực tiếp với một dữ liệu tức thời.
ORL C,/bit (2,2): OR cờ nhớ với một bit trực tiếp.
XRL A,Rn (2,2): OR cờ nhớ với bù của một bit trực tiếp.
XRL A,data (1,1): XOR thanh ghi A với thanh ghi Rn.
XRL A,@Ri (2,1): XOR thanh ghi A với mộ dữ liệu trực tiếp.

XRL A,#data (1,1): XOR thanh ghi A với một dữ liệu gián tiếp.
XRL data,A (2,1): XOR thanh ghi A với mộ dữ liệu tức thời.
SETB C (1,1): Đặt cờ nhớ.
SETB bit (2,1): Đặt một bit trực tiếp.
CLR A (1,1): Xóa thanh ghi A.
CLR C (1,1): Xóa cờ nhớ.
CPL A (1,1): Bù nội dung thanh ghi A.
CPL C (1,1): Bù cờ nhớ.
CPL bit (2,1): Bù một bit trực tiếp.
RL A (1,1): Quay trái nội dung thanh ghi A.
RLC A (1,1): Quay trái nội dung thanh ghi A qua cờ nhớ.
RR A (1,1): Quay phải nội dung thanh ghi A.
RRC A (1,1): Quay phải nội dung thanh ghi A qua cờ nhớ.
SWAP ( 1,1): Quay trái nội dung thanh ghi A 1 nibble (1/2byte).
b – Nhóm lệnh chuyển dữ liệu
MOV A,Rn (1,1):Chuyển nội dung thanh ghi Rn vào thanh ghi A.
MOV A,data (2,1):Chuyển dữ liệu trực tiếp vào thanh ghi A.
MOV A,@Ri (1,1):Chuyển dữ liệu gián tiếp vào thanh ghi A.
MOV A,#data (2,1):Chuyển dữ liệu tức thời vào thanh ghi A.
MOV Rn,data (2,2):Chuyển dữ liệu trực tiếp vào thanh ghi Rn.
MOV Rn,#data (2,1):Chuyển dữ liệu tức thời vào thanh ghi Rn.
MOV data,A (2,2):Chuyển một dữ liệu gián tiếp vào một dữ liệu gián tiếp.

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 19
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

MOV data,Rn (3,2):Chuyển một dữ liệu tức thời vào một dữ liệu trực tiếp
MOV data,data (1,1):Chuyển nội dung thanh ghi A vào một dữ liệu gián tiếp.
MOV data,@Ri (2,2):Chuyển một dữ liệu trực tiếp vào một dữ liệu gián tiếp.
MOV DPTR,#data (3,2):Chuyển một hằng 16 bit vào thanh ghi con trỏ dữ liệu

MOV C,bit (2,1):Chuyển một bit trực tiếp vào cờ nhớ.
MOV bit,C (2,2):Chuyển cờ nhớ vào một bit trực tiếp.
MOV A,@A+DPTR (1,2): Chuyển byte bộ nhớ chương trình có địa chỉ là
@A+DPRT Vào thanh ghi A.
MOVC A,@A+PC (1,2): Chuyển byte bộ nhớ chương trình có địa chỉ
@A+PC vào thanh ghi
MOVX A,@Ri (1,2): Chuyển dữ liệu ngoài (8 bit địa chỉ) vào.
MOVX A,@DPTR (1,2): Chuyển dữ liệu ngoài (16 bit địa chỉ) vào thanh
ghi A.
PUSH data (2,2): Chuyển dữ liệu trực tiếp vào ngăn xếp và tăng SP.
POP data (2,2): Chuyển dữ liệu trực tiếp vào ngăn xếp và giảm SP.
XCH A,Rn (1,1): Trao đổi dữ liệu giữa thanh ghi Rn v2 thanh ghi A.
XCH A,data (2,1): Trao đổi giữa thanh ghi A và một dữ liệu trực tiếp
XCH A,@Ri (1,1): Trao đổi giữa thanh ghi A và một dữ liệu gián tiếp.
XCHD A,@R (1,1): Trao đổi giữa nibble thấp (LSN) của thanh ghi A
và LSN

c – Nhóm lệnh chuyển điều khiển
ACALL addr11 (2,2): Gọi chương trình con dùng địa chì tuyệt đối.
LCALL addr16 (3,2): Gọi chương trình con dùng địa chỉ dài.
RET (2,2): Trở về từ lệnh gọi chương trình con.
RET1 (1,2): Trở về từ lệnh gọi ngắt.

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 20
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

AJMP addr11 (2,2): Nhảy tuyệt đối.
LJMP addr16 (3,2): Nhảy dài.
SJMP rel (2,2): Nhảy ngắn
JZ rel (2,2): Nhảy nếu A=0.

JNZ rel (2,2): Nhảy nếu A không bằng 0.
JC rel (2,2): Nhảy nếu cờ nhớ được đặt.
JNC rel (2,2): Nhảy nếu cờ nhớ không được đặt.
JB bit,rel (3,2): Nhảy tương đối nếu bit trực tiếp được đặt.
JNB bit,rel (3,2):Nhảy tương đối nếu bit trực tiếp không được đặt.
JBC bit,rel (3,2): Nhảy tương đối nếu bit trực tiếp được đặt , rồi xóa bit.
CJNE A,data,rel (3,2): So sánh dữ liệu trực tiếp với A và nhảy nếu không bằng
CJNE A,#data,rel (3,2): So sánh dữ liệu tức thời với A và nhảy nếu không
CJNE Rn,#data,rel (3,2): So sánh dữ liệu tức thời với nội dung thanh ghi Rn
và nhảy nếu không bằng.
CJNE @Ri,#data,rel (3,2): So sánh dữ liệu tức thời với dữ liệu gián tiếp và
nhảy
DJNZ Rn,rel (2,2): Giản thanh ghi Rn và nhảy nếu không bằng.
DJNZ data,rel (3,2): Giảm dữ liệu trực tiếp và nhảy nếu không bằng.

d – Các lệnh rẽ nhánh
Có nhiều lệnh để điều khiển lên chương trình bao gồm việc gọi hoặc trả lại từ
con hoặc chương trình chia nhánh có điều kiện hay không có điều kiện.
Tất cả các lệnh rẽ nhánh đều không ảnh hưởng đến cờ. Ta có thể định nhản cần
nhảy tới mà không cần rõ địa chỉ, trình biên dịch sẽ đặt địa chỉ nơi cần nhảy tới
đúng khẩu lệnh đã đưa ra.

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 21
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

II - THIẾT KẾ PHẦN CỨNG
1-Khối giải mã (SN74LS247N)
Khối giải mã nhận tín hiệu điều khiển từ khối xử lý, sau đó giải mã để đưa đến
hiển thị trên các đồng hồ đếm ngược. Với chức năng trên thì khối này chính là khối
giải mã cho đèn LED 7 thanh.

Vì các đồng hồ được hiển thị bằng các đèn LED 7 thanh nên ta sẽ sử dụng bộ giải
mã là các IC 74LS247N. Sơ đồ chân ra và sơ đồ khối chức năng như sau:



Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 22
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051




Hình 6: Sơ đồ chân ra và sơ đồ khối chức năng của IC 74LS247N
Các đầu ra (từ a đến f) nối đến các chân tương ứng của LED 7 thanh. Ta thấy các
đầu ra đều có mức tích cực là mức thấp. Do đó, loại LED 7 thanh cần sử dụng là loại
Anode chung. LED 7 thanh sẽ ghép nối với IC này theo bảng chân lý sau:

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 23
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

Bảng 5: Bảng chân lý của IC 74LS247N

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 24
Đồ án VI XỬ LÝ MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

2.Kh i x  lý
Khi x lý gm 1 b vi i u khin 89S52 làm
trung tâm.bên cnh ó là mt khi RESET,1
khi to dao   ng.

a . 89S52

.

Hinh 5: V  K 89S52

b . Khi RESET
Gm 1 phím bm,1 i n tr t.
Nguyên tc hot   n g:
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
Hình 7: S    khi RESET
c . Khi to dao   n g
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   n g:
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.

Nhóm SV: Phùng Thịnh,Tiến Phong ,Huy Yên Trang 25

×