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

Mạch chống trộm hai vị trí

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 (805.6 KB, 36 trang )

Đồ án tốt nghiệp

Mạch báo trộm hai vị trí
CHƯƠNG I:
DẪN NHẬP

1.1.ĐẶT VẤN ĐỀ :
- Trong thời đại cơng nghiệp hóa, hiện đại hóa áp dụng những tiến bộ
của các cơng trình nghiên cứu khoa học là một điều hiển nhiên. Nhằm cải
thiện và tăng năng xuất thì tự động hóa được ưu chuộng và đưa vào các nhà
máy xí nghiệp. Báo động cũng là một phần của tự động hóa và nó khơng
thể thiếu tại các nhà máy xí nghiệp để báo động kẻ trộm khi cần thiết.
- Đi theo xu hướng đó chúng em xin giới thiệu đề tài tốt nghiệp :Mạch
chống trộm hai vị trí – là sản phẩm của những ngày nghiên cứu, học hỏi,
là sự áp dụng những kiến thức học tại ghế nhà trường với những lời hướng
dẫn, giúp đỡ của thầy hướng dẫn, bạn cùng khóa và đàn anh học ngành
điện tử.
1.2.TẦM QUAN TRỌNG CỦA ĐỀ TÀI:
- Việc thực hiện đề tài này chúng em hiểu thêm nhiều điều lý thú về
chuyên ngành mà chúng em đang học, và điều đó có thể là một động lực và
một kiến thức căn bản để làm việc sau khi chúng em ra trường.
- Mặc khác, những khó khăn khi thi hành đề tài cũng như nhiều yếu tồ
tiêu cực khách quan tác động cũng làm thấy mình tự tin và mạnh mẽ khi
đối diện với thứ thách.
1.3. GIỚI HẠN ĐỀ TÀI:
- Với thời gian rất ngắn chỉ một tháng để làm đề tài tốt nghiệp, nên
chúng em chỉ có thể thực hiện đề tài trong phạm vi hạn hẹp: báo động chỉ
hai phòng.
- Do kiến thức của chúng em còn hạn chế nên việc thực hiện đề tài
khơng tránh những sai xót trong tính tốn và thi cơng cá phần cứng lẫn
phần mềm. Vì vậy mong q thầy cơ chỉ dẫn và đóng góp ý kiến thêm.


1.4 MỤC ĐÍCH NGUN CỨU:
- Mục đích trước tiên khi thực hiện đề tài tốt nghiệp là hoàn thành các
chương trình phân bố mơn của khóa học tại trường và hoàn thành đủ tiêu
chuẩn tại trường.
- Đồng thời, việc thực hiện đề tài tốt nghiệp nhằm chung hòa giữa hai
vấn đề là lý thuyết và thực hành. Sự áp dụng những kiến thức học tại
trường và kiểm nghiệm nó vào vấn đề thi công thiết kế một mạch điện tử
theo chuyên nghành mình đã học.

Trang 1


Đồ án tốt nghiệp

Mạch báo trộm hai vị trí

CHƯƠNG II :
TỔNG QUAN VỀ VI ĐIỀU KHIỂN VÀ CÁC LINH KIỆN DÙNG
TRONG MẠCH
2.1. TỔNG QUAN VỀ VI ĐIỀU KHIỂN:
Bộ vi điều khiển viết tắt là micro-controller, là mạch tích hợp trên 1
chip có thể lập trình được, dùng để điều khiển hoạt động của một hệ thống
Trong các thiết bị điện và điện tử dân dụng , các bộ vi điều khiển điều
khiển hoạt động của tivi, máy giặt, lò vi ba…Trong hệ thống sản xuất tự
động , bộ vi điều khiển được sử dụng trong Robot, dây chuyền tự động.
Các hệ thống càng “thơng minh” thì vai trị của hệ thống vi điều khiển càng
quan trọng.
Trên thế giới có rất nhiều hãng sản xuất vi xử lý như ilog, Motorola,
Intet…nhưng nỗi tiếng nhất vẫn là Intel với viêc sản xuất ra các dòng
MCS51 tiêu biểu là 80C51.Vi điều khiển (microcontroler) tích hợp trên

một chip dùng để lập trình theo ngơn ngữ lập trình, để lưu giữ thơng tin, xử
lý thơng tin đễ điều khiển cho một hệ thống.MCS51 gồm 4kB, gồm 2 bộ
định thời cịn MCS52 thì 8kB, bộ định thời nhiều hơn.
2.2. CÁC LINH KIỆN DÙNG TRONG MẠCH:
2.2.1. VI ĐIỀU KHIỂN AT89S52
 Cấu Trúc Bên Trong :

Hình 2.1 Sơ Đồ Khối Bên Trong 89S52

Trang 2


Đồ án tốt nghiệp

Mạch báo trộm hai vị trí

21
22
23
24
25
26
27
28
19
18

P 2.0/AD 8
P 2.1/AD 9
P 2.2/AD 10

P 2.3/AD 11
P 2.4/AD 12
P 2.5/AD 13
P 2.6/AD 14
P 2.7/AD 15
XT A L 1
XT A L 2
R ST

20

9

P 1.0
P 1.1
P 1.2
P 1.3
P 1.4
P 1.5
P 1.6
P 1.7

GND

1
2
3
4
5
6

7
8

VCC

U?

40

-Vi điều khiển 89S52 có 4 port xuất nhập và làm các chức năng khác
(8bit)
- Có 8KB FLASH ROM bên trong dùng để lưu giữ chương trình điều
khiển
- 256 byte RAM nội, có thể giao tiếp với 64k bộ nhớ bên ngồi để lưu
giữ chương trình, giao tiếp với 64k bộ nhớ bên ngoài để lưu giữ dữ
liệu.
- Gồm 3 bộ định TIMER
 Sơ đồ chân :

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 3 . 0 / R XD
P 3 . 1 / TXD
P 3 . 2 / I N T0

P 3 . 3 / I N T1
P 3 . 4 / T0
P 3 . 5 / T1
P 3.6/W R
P 3.7/R D
A LE /P R O G
PSEN
E A /V C C

39
38
37
36
35
34
33
32
10
11
12
13
14
15
16
17
30
29
31

89S 52


Hình 2.2 Sơ đồ chân 89S52
 Chức năng các chân :
89S52 có tất cả 40 chân có chức năng như các đường xuất nhập. Trong
đó có 24 chân có tác dụng kép (có nghĩa là 1 chân có 2 chức năng), mỗi
đường có thể hoạt động như đường xuất nhập hoặc như đường điều khiển
hoặc là thành phần của các bus dữ liệu và bus địa chỉ.
Port 0:
- Port 0 là một port xuất/nhập song hướng cực máng hở 8 bit. Nếu được
sử dụng như là một ngõ xuất thì mỗi chân có thể kéo 8 ngõ vào TTL. Khi
mức 1 được viết vào các chân của port 0, các chân này có thể được dùng
như là các ngõ nhập tổng trở cao.
- Port 0 có cơng dụng kép.
Port 1:
Trang 3


Đồ án tốt nghiệp

Mạch báo trộm hai vị trí

- Port 1 là một port xuất/nhập song hướng 8 bit có các điện trở pullup
bên trong. Các bộ đệm ngõ ra của port 1 có thể kéo hoặc cung cấp 4 ngõ
nhập TTL. Khi mức 1 được viết vào các chân của port 1, chúng được kéo
lên cao bởi các điện trở pullup nội và có thể được dùng như là các ngõ
nhập. Nếu đóng vai trị là các ngõ nhập, các chân của port 1 (được kéo
xuống thấp qua các điện trở bên ngồi) sẽ cấp dịng IIL do các điện trở
pullup bên trong.
Port 2:
- Port 2 là một port xuất/nhập song hướng 8 bit có các điện trở pullup

bên trong. Các bộ đệm ngõ ra của port 2 có thể kéo hoặc cung cấp 4 ngõ
vào TTL. Khi các mức 1 được viết vào các chân của port 2 thì chúng được
kéo lên cao bởi các điện trở pullup nội và có thể được dùng như các ngõ
vào. Khi được dùng như các ngõ vào, các chân của port 2 (được kéo xuống
qua các điện trở bên ngoài) sẽ cấp dịng IIL do có các điện trở pullup bên
trong.
- Port 2 phát ra byte cao của địa chỉ khi đọc từ bộ nhớ chương trình
ngồi và khi truy cập bộ nhớ dữ liệu ngoài dùng các địa chỉ 16 bit (MOVX
@DPTR). Trong ứng dụng này, nó dùng các điện trở pullup nội "mạnh" khi
phát ra các mức 1. Khi truy cập bộ nhớ dữ liệu ngoài dùng các địa chỉ 8 bit
(MOVX @RI), port 2 phát ra các nội dung của thanh ghi chức năng đặc
biệt P2.
- Port 2 cũng nhận các bit cao của địa chỉ và một vài tín hiệu điều khiển
khi lập trình và kiểm tra Flash.
Port 3
Có 2 chức năng:
- Port xuất nhập dữ liệu khi không sử dụng bộ
nhớ ngoài hoặc các chức năng đặc biệt
- Dùng làm các tín hiệu điều khiển khi có sử
dụng bộ nhớ ngoài hoặc các chức năng đặc
biệt.
Bit

ên

T

Chức năng chuyển đổi

P3.0


RXT

Ngõ vào dữ liệu nối tiếp.

P3.1

TXD

Ngõ xuất dữ liệu nối tiếp.

P3.2

INT0\

Ngõ vào ngắt cứng thứ 0

P3.3

INT1\

Ngõ vào ngắt cứng thứ 1

P3.4

T0

Ngõ vào củaTIMER/COUNTER thứ 0.

P3.5


T1

Ngõ vào củaTIMER/COUNTER thứ 1.
Trang 4


Đồ án tốt nghiệp

Mạch báo trộm hai vị trí

P3.6

WR\

Tín hiệu ghi dữ liệu lên bộ nhớ ngồi

P3.7

RD\

Tín hiệu đọc bộ nhớ dữ liệu ngồi.

 Các ngõ tín hiệu điều khiển :
Ngõ Tín Hiệu Psen (Program Store Enable):
- PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ
chương trình mở rộng thường được nối đến chân OE\ (output enable) của
Eprom cho phép đọc các byte mã lệnh.
- PSEN ở mức thấp trong thời gian Microcontroller 8951 lấy lệnh. Các
mã lệnh của chương trình được đọc từ Eprom qua bus dữ liệu và được chốt

vào thanh ghi lệnh bên trong 8951 để giải mã lệnh. Khi 8951 thi hành
chương trình trong EPROM nội PSEN sẽ ở mức logic 1.
Ngõ Tín Hiệu Điều Khiển ALE (ADDRESS LATCH ENABLE):
- Khi 8951 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa
chỉ và bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra
ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường
địa chỉ và dữ liệu khi kết nối chúng với IC chốt.
- Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0
đóng vai trị là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động.
- Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên
chip và có thể được dùng làm tín hiệu clock cho các phần khác của hệ
thống. Chân ALE được dùng làm ngõ vào xung lập trình cho EPROM
trong 8951.
Ngõ Tín Hiệu EA\ (External Access):
- Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0.
Nếu ở mức 1, 89S52 thi hành chương trình từ EPROM nội trong khoảng
địa chỉ thấp 4 Kbyte. Nếu ở mức 0, 89S52 sẽ thi hành chương trình từ 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
cho Eprom trong 89S52.
Ngõ Tín Hiệu RST (Reset) :
- Ngõ vào RST ở chân 9 là ngõ vào Reset của 89S52. Khi ngõ vào tín
hiệu này đưa lên 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. Khi cấp điện mạch tự
động Reset.
sau khi reset các thanh ghi sẽ thay đổi như bảng sau:

Trang 5


Đồ án tốt nghiệp


Mạch báo trộm hai vị trí

Hình 2.3 sơ đồ mạch reset 89S52

Bảng 2.1 Sự thay đổi của các thanh ghi sau khi Reset
Các Ngõ Vào Bộ Dao Động XTAL1,XTAL2 :
- Bộ dao động được được tích hợp bên trong 89S52, khi sử dụng 89S52
người thiết kế chỉ cần kết nối thêm thạch anh và các tụ như hình vẽ trong
sơ đồ chân( hình 1.2 ). Tần số thạch anh thường sử dụng cho 89S52 là
12Mhz.

Trang 6


Đồ án tốt nghiệp

Mạch báo trộm hai vị trí

Hình 2.4 thạch anh
- Chân 40 (Vcc) được nối lên nguồn 5V. chân 20(Vdd) nối xuống mass
 Tập Lệnh Vi Điều Khiển :

TẬP LỆNH 89S52

Dạng
lệnh

Mô tả


Ví dụ

Đo
So
ä
á
da
MC
øi

LỆNH LUẬN LÝ TÁC ĐỘNG TRÊN BIT
CLR

C

Gán cờ C=0

CLR

BIT

Gán BIT =0

C

Gán cờ C=1

BIT

Gán BIT =1


SET
B
SET
B
CPL

C

CPL

BIT

ANL

C, BIT

ANL

C, BIT

ORL

C, BIT

ORL

C,/BIT

MO


C,BIT

Đảo giá trị cờ C. Nếu
C=1 thì sau lệnh này C=0
và ngược lại.
Đảo giá trị BIT. Nếu
BIT=1 thì sau lệnh này
BIT=0 và ngược lại.
Phép AND giữa cờ C và
BIT. Kết quả cất vào C.
Phép AND giữa cờ C và
bù của BIT. Kết quả cất
vào C.
Phép OR giữa cờ C và
BIT. Kết quả cất vào C.
Phép OR giữa cờ C và
bù của BIT. Kết quả cất
vào C.
Gán cờ C=BIT
Trang 7

CL
R
CL
R
SE
TB
SE
TB


C

1

1

P1.0

1

2

C

1

1

P1.0

1

2

CP
L

C


1

1

CP
L

P1.0

1

2

AN
L

OR
L

C,P1
2
.0
C,
/P1. 2
0
C,P1
2
.7

OR

L

C,/
P1.7

AN
L

2
2
2

2

2

MO C,AC 1

2


Đồ án tốt nghiệp

Mạch báo trộm hai vị trí

V
MO
BIT,C
V


V
C.7
Gán BIT bằng giá trị cờ MO ACC.
C
V
7,C
Nhảy đến nhãn nếu cờ
nho
JC
nhãn
JC
C =1
hon
nha Nhảy đến nhãn nếu cờ
nho
JNC
JNC
õn
C=0
hon
P1.0
BIT,nha Nhảy đến nhãn nếu BIT
JB
JB
,star
õn
=1
t
P1.0
BIT,nha Nhảy đến nhãn nếu BIT

JNB
JNB ,star
õn
=0
t
Nhảy đến nhãn nếu BIT
P1.0
BIT,nha
JBC
= 1 và sau đó gán BIT = JBC ,mai
õn
0
n

2

2

2

2

2

2

2

3


2

3

2

3

2

2

2

3

LỆNH RẼ NHÁNH CHƯƠNG TRÌNH
ACA
LL
LCA
LL

Gọi thực thi chương trình
con có tên “nhãn”.
Sau khi thực thi chương
nhãn
trình con, VXL sẽ thực
hiện câu lệnh ngay
phía sau câu lệnh gọi
này. Cần cất các giá

CAL
nhãn trị thanh ghi được sử
L
dụng trong chương trình
con bằng các lệnh
PUSH/POP
Thoát
khỏi
chương
RET  
trình con.
RET
Thoát
khỏi
chương
 
I
trình phục vụ ngắt
AJM
Nhảy đến nhãn. Số
nhãn
P
chu kỳ máy của lệnh
JMP được quyết định tại
LJM
nhãn
thời điểm dịch phụ
P
thuộc
vào

khoảng
SJM
nhãn
cách từ điểm gọi đến
P
nhãn. Lệnh nhảy này
JMP nhãn
không cần điều kiện.
JMP @A+DP Nhảy đến vị trí cách
TR
vị trí được trỏ bởi
DPTR một khoảng là
nhãn

Trang 8

ACAL
L
LCAL
L

DEL
AY
DEL
AY

CALL

DEL
AY


X

X

RET

 

2

1

RETI

 

2

1

AJMP Main 2

2

LJMP

Main 2

3


SJMP

Main 2

2

JMP

Main X

X

JMP

@A
+DP
TR

1

2


Đồ án tốt nghiệp
JZ
JNZ
CJN
E
CJN

E

CJN
E

CJN
E

DJN
Z

DJN
Z

NO
P

Mạch báo trộm hai vị trí

A.
Nhảy đến nhãn nếu
nhãn
thanh ghi A=0
Nhảy đến nhãn nếu
nhãn
thanh ghi A khác 0
So sánh và nhảy đến
A,direc nhãn nếu giá trị
t,nhãn thanh ghi A không bằng
giá trị ô nhớ direct

So sánh và nhảy đến
A,#dat nhãn nếu giá trị
a,nhãn thanh ghi A không bằng
giá trị data
So sánh và nhảy đến
nhãn nếu giá trị
Rn,#da thanh ghi Rn không
ta,nhã bằng giá trị data.
n
Trong đó, Rn là một
trong các thanh ghi R0,
R1, R2, …, R7
So sánh và nhảy đến
nhãn nếu giá trị ô
nhớ được trỏ bởi Ri
@Ri,#d
(R0 hay R1) không
ata,nha
bằng giá trị data.vd:
õn
R0=40h, so sánh giá
trị ô nhớ 40h với 20 ta
dùng câu lệnh bên
giảm giá trị thanh ghi
Rn,nha Rn (R0 -> R7) đi một đơn
õn
vị, sau đó nhảy đến
nhãn nếu Rn khác 0.
giảm giá trị của ô
nhớ direct đi 1 rổi

nhảy đến nhãn nếu
giá trị ô nhớ direct
direct,
khác 0. nếu giá trị ô
nhãn
nhớ direct bằng 0 thì
thực hiện câu lệnh
ngay sau câu lệnh
này.
tạm dừng VXL trong 1
 
chu kỳ máy
Trang 9

JZ
JNZ

Aba
ng0
Akh
ac0

2

2

2

2


CJNE

A,B,
Akh
acB

2

3

CJNE

A,#
20,A
2
khac
20

3

CJNE

R5,
#20,
R5k 2
hac2
0

3


CJNE

@R0
,#20
,me 2
mkh
ac20

3

R7,k
hack
DJNZ
2
hon
g

2

40h,
khac
DJNZ
2
khon
g

3

NOP


1

 

1


Đồ án tốt nghiệp

Mạch báo trộm hai vị trí

CÂU LỆNH CHUYỂN DỮ LIỆU
MO
V
MO
V
MO
V
MO
V
MO
V
MO
V
MO
V
MO
V
MO
V

MO
V
MO
V
MO
V
MO
V
MO
V

A,
Rn
A,
dire
ct

chép dữ liệu từ thanh ghi MO A,
Rn vào thanh ghi A
V
R7

1

1

chép dữ liệu từ ô nhơ MO A,
vaøo thanh ghi A
V
40h


1

2

MO A,
1
V
@R0

1

MO A,
V
#10

1

2

MO R1,
V
A

1

1

MO R2,
V

40h

2

2

MO R2,
V
#10

1

2

MO 40h,
V
A

1

2

MO 50h,
V
R7

2

2


MO 40h,
V
50h

2

3

MO 40h,
2
V
@R0

2

MO 50h,
V
#10

2

3

MO @R0
1
V
,A

1


@R1
MO
,
2
V
40h

2

chép dữ liệu từ ô nhớ
A,
được trỏ bởi thanh ghi Ri
@Ri
vào thanh ghi A
A,
#da gán A bằng con số data
ta
Rn, chép dữ liệu từ thanh ghi A
A
vào thanh ghi Rn
Rn,
chép dữ liệu từ ô nhớ
dire
vào thanh ghi Rn
ct
Rn,
#da gán Rn bằng con số data
ta
dire
chép dữ liệu của A vào

ct,
ô nhớ
A
dire
chép dữ liệu của Rn vào
ct,
ô nhớ
Rn
Dire
chép dữ liệu từ ô nhớ
c1dir
direct2 vào ô nhớ direct1
ect2
dire chép dữ liệu từ ô nhớ
ct,
được trở bởi Ri vào ô nhớ
@Ri direct
dire
ct,# gán nội dung ô nhớ direct
dat bằng giá trị data
a
chép dữ liệu trong thanh
@Ri,
ghi A vào ô nhớ được trỏ
A
bởi Ri
@Ri
chép dữ liệu từ ô nhớ
,
trực tiếp vào ô nhớ được

dire
trỏ bởi Ri
ct
Trang 10


Đồ án tốt nghiệp
MO
V
MO
V
MO
VC

@Ri
,
#da
ta
DPT
R,
#dat
a
A,@
A+
DPT
R

MO
VC


A,@
A+P
C

MO
VX

A,@
Ri

MO
VX

A,@
DPT
R

MO
VX

@Ri
,A

@D
PTR
,A
PUS dire
H
ct
MO

VX

POP
XC
H
XC
H

dire
ct
A,
Rn
A,
dire
ct

XC
H

A,
@Ri

XC
HD

A,
@Ri

Mạch báo trộm hai vị trí


@R0
gán nội dung ô nhớ được MO
,
1
trỏ bởi Ri bằng giá trị data V
#10
DPT
gán giá trị thanh ghi DPTR MO R,
bằng data
V
#20
00h
chép vào A một byte từ
A,
bộ nhớ chương trình tại vị MO @A
trí cách con trỏ gốc DPTR VC +DP
một khoảng là A
TR
chép vào A một byte từ
A,
bộ nhớ chương trình tại vị MO
@A
trí cách vị trí lệnh hiện VC
+PC
hành một khoảng là A
chép vào A một byte từ ô
MO A,
nhớ ngoài có địa chỉ được
VX @R0
trỏ bởi Ri

chép vào A một byte từ ô
A,
MO
nhớ ngoài có địa chỉ được
@DP
VX
trỏ bởi DPTR
TR
chép nội dung thanh ghi A
MO @Ri,
vào ô nhớ ngoài được trỏ
VX A
bởi Ri
chép nội dung thanh ghi A
@DP
MO
vào ô nhớ ngoài được trỏ
TR,
VX
bởi DPTR
A
cất giá trị ô nhớ direct PU
ACC
vào vùng nhớ stack
SH
lấy lại giá trị đã cất ở
PO
vùng stack vào ô nhớ
ACC
P

direct
hoán đổi nội dung hai XC A,
thanh ghi A và Rn
H
R7
hoán đổi nội dung thanh
XC A,
ghi A và nội dung ô nhớ
H
60h
direct
hoán đổi nội dung thanh
XC A,
ghi A và nội dung ô nhớ
H
@R0
được trỏ bởi Ri
hoán đổi nibble thấp thanh XC A,
ghi A và nibble thấp của HD @R1
nội dung ô nhớ được trỏ
Trang 11

2

2

3

2


1

2

1

2

1

2

1

2

1

2

1

2

2

2

2


1

1

1

2

1

1

1

1


Đồ án tốt nghiệp

Mạch báo trộm hai vị trí

bởi Ri
LỆNH SỐ HỌC
AD
D
AD
D

A,
Rn

A,
dire
ct

AD
D

A,
@Ri

AD
D

A,
#da
ta

AD
DC

A,
Rn

AD
DC

A,
dire
ct


AD
DC

A,
@Ri

AD
DC

A,
#da
ta

SUB A,
B
Rn
A,
SUB
dire
B
ct
SUB A,
B
@Ri
A,
SUB
#da
B
ta


cộng nội dung thanh ghi A
và Rn, kết quả cất vào A
cộng nội dung thanh ghi A
với ô nhớ direct, kết quả
cất vào A
cộng nội dung thanh ghi A
với ô nhớ được trỏ bởi Ri,
kết quả cất vào A
cộng nội dung thanh ghi A
và con số data, kết quả
cất vào A
cộng nội dung thanh ghi A
và Rn và cộng thêm cờ
nhớ C, kết quả cất vào A
cộng nội dung thanh ghi A
với ô nhớ direct và cộng
thêm cờ nhớ C, kết quả
cất vào A
cộng nội dung thanh ghi A
với ô nhớ được trỏ bởi Ri
và cộng thêm cờ nhớ C ,
kết quả cất vào A
cộng nội dung thanh ghi A
và con số data và cộng
thêm cờ nhớ C, kết quả
cất vào A
trừ nội dung thanh ghi A và
Rn và trừ thêm cờ nhớ C,
kết quả cất vào A
trừ nội dung thanh ghi A

với ô nhớ direct và trừ
thêm cờ nhớ C, kết quả
cất vào A
trừ nội dung thanh ghi A
với ô nhớ được trỏ bởi Ri
và trừ thêm cờ nhớ C ,
kết quả cất vào A
trừ nội dung thanh ghi A và
con số data và trừ thêm
cờ nhớ C, kết quả cất
vào A
Trang 12

AD
D

A,
R5

1

1

AD
D

A,
70h

1


2

AD
D

A,
1
@R0

1

AD
D

A,
#10

1

2

AD
DC

A,
R7

1


1

AD
DC

A,
41h

1

2

AD
DC

A,
1
@R0

1

AD
DC

A,
#10

1

2


SU
BB

A,
R7

1

1

SU
BB

A,
41h

1

2

SU
BB

A,
1
@R0

1


SU
BB

A,
#10

2

1


Đồ án tốt nghiệp
INC
INC
INC
INC
DEC
DEC
DEC
DEC
INC
MU
L
DIV

DA

Mạch báo trộm hai vị trí

tăng nội dung thanh ghi A

lên 1 đơn vị
tăng nội dung thanh ghi Rn
Rn
lên 1 đơn vị
dire tăng nội dung ô nhớ direct
ct
lên 1 đơn vị
@R tăng nội dung ô nhớ được
i
trỏ bởi Ri lên 1 đơn vị
giảm nội dung thanh ghi A
A
lên 1 đơn vị
giảm nội dung thanh ghi Rn
Rn
lên 1 đơn vị
dire giảm nội dung ô nhớ
ct
direct lên 1 đơn vị
giảm nội dung ô nhớ được
@Ri
trỏ bởi Ri lên 1 đơn vị
DPT tăng giá trị thanh ghi DPTR
R
lên 1 đơn vị
nhân nội dung thanh ghi A
và thanh ghi B, kết quả: A
AB
chứa byte thấp, B chứa byte
cao

chia A cho B, kết quả: A
AB chứa thương số, B chứa số

hiệu chỉnh BCD cho nội
dung thanh ghi A. Nếu digit
nào của A (dạng HEX) lớn
A
hơn 9 sẽ được cộng thêm 6
vào digit đó, ngược lại thì
cộng 0. lệnh này chỉ hoạt
động đúng cho phép cộng.
A

INC A

1

1

INC R6

1

1

INC 42h

1

2


INC @R0 1

1

DE
C
DE
C
DE
C
DE
C

A

1

1

R6

1

1

43h

1


2

@R0 1

1

DPT
R

2

1

MU
AB
L

4

1

DIV AB

4

1

DA

1


1

INC

A

LỆNH LUẬN LÝ TÁC ĐỘNG TRÊN BYTE
thục hiện AND nội dung
thanh ghi A với Rn, kết quả
cất vào A
A,
thục hiện AND nội dung
ANL dire thanh ghi A với ô nhớ
ct
direct, kết quả cất vào A
thục hiện AND nội dung
A,
thanh ghi A với ô nhớ có
ANL
@Ri địa chỉ trỏ bởi Ri, kết
quả cất vào A
A,
ANL
Rn

Trang 13

AN
L


A,
R7

1

1

AN
L

A,
45h

1

2

AN
L

A,
1
@R0

1


Đồ án tốt nghiệp


Mạch báo trộm hai vị trí

A,
thục hiện AND nội dung
ANL #da thanh ghi A với con số data,
ta
kết quả cất vào A
thục hiện AND nội dung ô
dire
nhớ direct với thanh ghi A ,
ANL ct,
kết quả cất vào ô nhớ
A
direct
dire thục hiện AND nội dung ô
ct,
nhớ direct với con số data ,
ANL
dat kết quả cất vào ô nhớ
a
direct
thục hiện OR nội dung
A,
ORL
thanh ghi A với Rn, kết quả
Rn
cất vào A
A,
thục hiện OR nội dung
ORL dire thanh ghi A với ô nhớ

ct
direct, kết quả cất vào A
thục hiện OR nội dung
A,
thanh ghi A với ô nhớ có
ORL
@Ri địa chỉ trỏ bởi Ri, kết
quả cất vào A
A,
thục hiện OR nội dung
ORL #da thanh ghi A với con số data,
ta
kết quả cất vào A
thục hiện OR nội dung ô
dire
nhớ direct với thanh ghi A ,
ORL ct,
kết quả cất vào ô nhớ
A
direct
dire thục hiện OR nội dung ô
ct,
nhớ direct với con số data ,
ORL
dat kết quả cất vào ô nhớ
a
direct
thục hiện XOR nội dung
A,
XRL

thanh ghi A với Rn, kết quả
Rn
cất vào A
A,
thục hiện XOR nội dung
XRL dire thanh ghi A với ô nhớ
ct
direct, kết quả cất vào A
thục hiện XOR nội dung
A,
thanh ghi A với ô nhớ có
XRL
@Ri địa chỉ trỏ bởi Ri, kết
quả cất vào A
A,
thục hiện XOR nội dung
XRL
#da thanh ghi A với con số data,
Trang 14

AN
L

A,
#45
h

1

2


AN
L

45h,
A

1

2

AN
L

45h,
#45
h

2

3

OR
L

A,
R7

1


1

OR
L

A,
45h

1

2

OR
L

A,
1
@R0

1

OR
L

A,
#45
h

1


2

OR
L

45h,
A

1

2

OR
L

45h,
#45
h

2

3

XR
L

A,
R7

1


1

XR
L

A,
45h

1

2

XR
L

A,
1
@R0

1

XR
L

A,
#45

2


1


Đồ án tốt nghiệp
ta

Mạch báo trộm hai vị trí

dire
ct,
XRL
dat
a

kết quả cất vào A
thục hiện XOR nội dung ô
nhớ direct với thanh ghi A ,
kết quả cất vào ô nhớ
direct
thục hiện XOR nội dung ô
nhớ direct với con số data ,
kết quả cất vào ô nhớ
direct

CLR

A

gán A=0


CPL

A

RL

A

RLC

A

RR

A

RLC

A

dire
XRL ct,
A

SWA
A
P

h
XR

L

45h,
A

1

2

XR
L

45h,
#45
h

2

3

A

1

1

A

1


1

A

1

1

A

1

1

A

1

1

A

1

1

A

1


1

CL
R
lấy bù 1 giá trị của A. CP
thực sự là gán A= 255 - A
L
quay traùi caùc bit trong thanh
RL
ghi A
quay traùi caùc bit trong thanh
RL
ghi A có dùng thêm cờ
C
nhớ C
quay phải các bit trong
RR
thanh ghi A.
quay phải các bit trong
RL
thanh ghi A có dùng thêm
C
cờ nhơ
hoán đổi nibble cao và SW
nibble thấp cuûa thanh ghi A. AP

 Tổ chức ngắt của 89S52
Trong nhiều ứng dụng đòi hỏi ta phải dùng Interrupt mà khơng dùng
Timer bời vì nếu dùng Timer ta phải mất thới gian để chờ cờ tràn
TimerTFx set mới xử lý tiếp chương trình.Do đó ta khơng có thời gian để

làm các việc quan trọng khác mà ứng dụng đòi hỏi.Đây là chương trình rất
quan trọng của 89S52 hay họ MSC-51.
89S52 có 5 ngắt nguồn phat, 2 sự ngắt ngồi, 2 sự ngắt Timer và một sự
ngắt Port nối tiếp.Tất cả các Interrupt bị mất tác dụng bởi sự mặc định sau
khi reset hệ thống và được cho phép cá biệt bởi phần mềm.
 Sự cho phép ngắt và cấm ngắt
Mỗi nguồn Interrupt được cho phep riêng biệt hoặc sự cấm riêng biệt
qua thanh ghi chức năng đặc biệt có bit định vị IE (Interrupt Enable) tại địa
chỉ 0A8H.Cũng như sự cá biệt cho phép các bit của mỗi nguồn ngắt có 1
bit cho phép (hoặc câm) chung mà nó được xoá để cấm tất cả các Interrupt
hoặc được set để cho phép chung các Interrupt.
Hoạt động của từng bit trong thanh ghi cho phép ngắt IE đươc tóm
tắt trong bảng sau:
Trang 15


Đồ án tốt nghiệp

Mạch báo trộm hai vị trí

Bit Ký hiệu Địa chỉ bit
Mơ tả hoạt động
IE.7
EA
AFH
Cho phép tồn bộ hoặc cấm
tồn bộ
IE.6
AEH
Khơng định nghĩa

IE.5
ET2
ADH
Cho phép ngắt Timer 2 (8052)
IE.4
ES
ACH
Cho phép ngắt Port nối tiếp
IE.3
ET1
ABH
Cho phép ngắt Timer 1
IE.2
EX1
AAH
Cho phép ngắt ngoài External
1
IE.1
ET0
A9H
Cho phép ngắt Timer 0
IE.0
EX0
A8H
Cho phép ngắt ngoài External
0
 Sự ưu tiên ngắt (Interrupt Priority):
Mỗi nguồn ngắt được lập trình cá biệt đến một trong hai mức ưu tiên
qua thanh ghi chức năng đặc biệt có định vị IP (Interrupt Priority) tại địa
chỉ 0B8H.Hoạt động của từng bit trong thanh ghi IP được tóm tắt trong

bảng sau:
Bit
IP.7
IP.6
IP.5


hiệu
PT2

IP.4
IP.3
IP.2
IP.1
IP.0

PS
PT1
PX1
PT0
PX0

Địa chỉ
bit
BDH
BCH
BBH
BAH
B9H
B8H


Mơ tả hoạt động
Không định nghĩa
Không định nghĩa
Ưu tiên cho sự ngắt Timer 2
(8052)
Ưu tiên ngắt cho port nối tiếp
Ưu tiên cho ngắt Timer 1
Ưu tiên cho ngắt ngoài 1
Ưu tiên cho ngắt Timer 0
Ưu tiên cho ngắt ngoài 0

Trên 89S52 có 2 mức ưu tiên thấp và 2 mức ưu tiên cao.Nếu một thủ tục
phục vụ ngắt có mức ưu tiên thấp đang thưc thi mà có một sự ngắt ưu tiên
cao hơn xuất hiện,thì thủ tục phục vụ đó bị ngắt đi để thực thi thủ tục ngắt
mới.Ngược lại thủ tục phục vụ ngắt có mức ưu tiên cao hơn đang thực thi
mà có sự ngắt ưu tiên thấp hơn xuất hiện,thì nó khơng thể bị ngắt mà phải
chờ thực thi xong thủ tục phục vụ cao hơn mới nhảy tới thủ tục phục vụ
ngắt thấp.
Chương trình thực thi ở mức cơ bản và không kết hợp với sự ngắt
nào,nó có thể ln ln bị ngắt bất chấp sự ưu tiên ngắt ở mức cao hay
thấp.Nếu 2 sự ngắt cảu các ưu tiên khác nhau xuất hiện đồng thời,sự ngắt
ưu tiên cao hơn sẽ được phục vụ đầu tiên.
 Việc xừ lý ngắt:
Trang 16


Đồ án tốt nghiệp

Mạch báo trộm hai vị trí


Khi một sự ngắt xuất hiện và đựơc chấp nhận bởi CPU thì chương
trình chính bị ngắt.Các hoạt động sau đây xuất hiện:
 Lệnh hiện hành và kết thúc thực thi.
 Bộ đếm chương trình PC được cất giữ vào Stack.
 Trạng thái ngắt hiện hành được cất giữ vào bên trong.
 Những sự ngắt bị ngăn lại tại mức ngắt.
 Bộ đếm chương trình PC được LOAD với địa chỉ vectơ ngắt của thủ
tục phục vụ ngắt ISR
 Thủ tục phục vụ ngắt ISR được thực thi
 Các vectơ ngắt:
Khi có một sự ngắt được nhận giá trị được LOAD vào PC được gọi
bởi vectơ ngắt.Nó là địa chỉ của sự khởi động thủ tục phục vụ ngắt ISR của
nguồn ngắt.Các vectơ đươc cho trong bảng sau:
Interrupt

Flag

System
reset
External 0
Timer 0
External 1
Timer 1
Serial Port
Timer 2

RST

Địa chỉ

vectơ
0000H

IE.0
TF.0
IE.1
TF.1
RI hoặc TI
TF2 hoặc EXF2

0003H
000BH
0013H
001BH
0023H
002BH

Vectơ reset hệ thống RST tại địa chỉ 0000h được tính trong bảng
này,bởi vì trong ý nghĩa này nó giống như 1 Interrupt: nó ngắt chương trình
và LOAD vào PC với giá trị mới.
Khi đưa 1 vectơ ngắt đến sự ngắt thì cờ của nó gây ra sự ngắt,tự
động bị xố bới phần cứng,ngồi trừ RI và TI của Port nối tiếp và
TF2,EXF2 của Timer 2 được xoá bởi phần mềm.Nguyên nhân trên là do có
2 nguồn ngắt có thể chịu đụng được cho mỗi sự ngắt mà nó khơng ứng
dụng cho CPU để xố cờ ngắt
Vì các vectơ ngắt nằm ở dưới cùng trong vùng mã nhớ,nên lệnh đầu
tiên của chương trình chính là lệnh nhảy đến vị trí cao hơn vị trí này như
LJMP 0030H.
 Các thanh ghi đặc biệt của 89S52
 Thanh ghi đệm Port nối tíếp (SBUF).

Thanh ghi SBUF (Serial Buffer Register): được dùng để lưu dữ liệu cần
phát đi và dữ liệu đã nhận được. Cấu trúc của thanh ghi SBUF được mơ tả
ở hình 2.3.

Trang 17


Đồ án tốt nghiệp

Mạch báo trộm hai vị trí

Hình 2.5- Cấu trúc thanh ghi SBUF
Write only: Chỉ ghi
Read only: Chi đọc
Shift register: Thanh ghi dịch bit
Baud rate clock (transmit): xung clock tốc độ baud (phát)
Baud rate clock (receive): xung clock tốc độ baud (thu)
 Thanh ghi điều khiển Port nối tíếp (SCON).
Thanh ghi SCON (Serial Control Register): chứa các bit dùng để điều
khiển hế độ hoạt động vả báo trạng thái của port nối tiếp.

Trang 18


Đồ án tốt nghiệp

Mạch báo trộm hai vị trí

Trước khi sử dụng port cần phải:
Qui định chế độ của port nối tiếp phụ thuộc thanh ghi SCON

Các chế độ hoạt động của port nối tiếp.
- Chế độ 0: Thanh ghi dịch 8 bit

- Chế độ 1: UART 8 bit có tốc độ baud thay đổi:
UART ( Universal Asynchoronous Receiver Transmitter): bộ thu phát
không đồng bộ đa năng. Nhiệm vụ của nó là biến đổi dữ liệu phát từ song
song thành nối tiếp và biến đổi dữ liệu thu từ nối tiếp thành song song.

Trang 19


Đồ án tốt nghiệp

Mạch báo trộm hai vị trí

- Chế độ 2: UART 9 bit có tơc độ baud cố định tương tự như UART 8
bit, chỉ khác ở số bit dữ liệu là 9 bit.

- Chế độ 3: UART 9 bit có tốc độ baud thay đổi: tương tự như UART 9 bit
chỉ khác ở tốc độ baud có thể thay đổi

 Khởi động và truy xuất các thanh ghi.
- Bit cho phép thu (nhận) dữ liệu (REN: Receive Enable):
Công dụng: dùng để cho phép (hoặc không cho phép) nhận các ký tự dữ
liệu.
REN = 1: Cho phép nhận nhận dữ liệu lệnh thực hiện: SETB REN
REN = 0: Không cho phép dữ liệu lệnh thực hiện: CLR REN
- Bit dữ liệu thứ 9:
Công dụng: tùy thuộc vào đặc tính kỹ thuật của thiết bị nối tiếp mà có
thể yêu cầu hoặc không yêu cầu bit dữ liệu thứ 9.

Khi phát: bit dữ liệu thứ 9 phải được nạp vào bit TB8 của SCON trước
khi phát đi.
Khi thu: bit dữ liệu thứ 9 sẽ được nạp vào bit RB8 của SCON sau khi
thu xong.
- Bit kiểm tra chẵn / lẻ (P:Parity):
Trang 20



×