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

Thiết kế đồng hồ thời gian thực trên lcd sử dụng ds1307

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 (746.34 KB, 50 trang )

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI HÀ NÔI
KHOA: ĐIỆN-ĐIỆN TỬ
* * * * *

BÀI TẬP LỚN : VI XỬ LÝ
Thiết kế môn học : Thiết kế đồng hồ thời gian thực trên
LCD sử dụng DS1307
Giáo viên hướng dẫn :
Sinh viên thực hiện :
1.

Phạm Thăng Long.

MSV: 1207585

2.

Đỗ Văn Thuỷ.

MSV: 1212245

3.

Nguyễn Văn Trung.

MSV: 1213233

Lớp : Trang bị điện- điện tử K53
1



Phần I. VI ĐIỀU KHIỂN 8501
Vi điều khiển 8051 lµ một trong những họ vi điều khiển 8bit th«ng
dụng nhất trªn thế giới. Vi điều khiển nµy được chế tạo lần đầu tiªn bởi
h·ng Intel, sau đã được c¸c h·ng kh¸c chế tạo dưới dạng c¸c dẫn xuất kh¸c
nhau. C¸c dẫn xuất nµy đều cã chung một kiến tróc giống với vi điều khiển
8051 kinh điển. Thªm vµo đo', tïy theo từng loại mµ c¸c chip dẫn xuất được
tÝch hợp thªm c¸c ngoại vi kh¸c nhau (như ADC, SPI, EEPROM,
capture/compare channels…), tÝnh năng cũng được n©ng cao để phï hợp với
c¸c ứng dụng ngµy cµng phức tạp.
Trước hết xin giới thiệu một số tính năng của họ vi điều khiển 8051
(lưu ý là những tính năng này là của vi điều khiển 8051 kinh điển):
- CPU 8bit được thiết kế tối ưu cho các ứng dụng điều khiển.
- Cả các khả năng xử lý bit l ogic.
- Kh ông gian bộ nhớ chương trình 64Kbyte.
- Kh ông gian bộ nhớ dữ liệu 64 Kbyte.
- T ích hợp 4Kbyte bộ nhớ chương tr×nh trªn chip.
- T ích hợp 128byte bộ nhớ RAM trên chip.
- Cã 32 đường vao/ra 2 chiều cã thể định địa chỉ đến từng bit.
- T ích hợp 02 timer 16bit.
- T ích hợp UART
- Cấu trúc ngắt với 06 nguồn/05 vector ở 02 mức ưu tiên khac nhau.
- Tích hợp mạch bộ dao động trên chip.

2


Vi điều khiển đợc giới thiệu ở đây đợc sản xuất theo công nghệ CMOS. Một
số loại vi điều khiển thông dụng thuộc họ 8051 có thể kể ra nh: AT89C2051(
20 chân), AT89C4051( 20 chân), AT89C51( 40 chân), AT89C52
( 40 chân), AT89S51( 40 chân), AT89S52( 40 chân), AT89S53( 40 chân)

Sau đây là sơ đồ khối tổng quan của 8051

I-Cấu trúc phần cứng họ 8051( AT 89S52)

3


Sơ đồ chân AT 89S52
Bộ vi điều khiển AT89S52 gồm các khối chức năng chính sau đây:
CPU( Central Processing Unit) bao gồm:
- Thanh ghi tích luỹ A
- Thanh ghi tích luỹ phụ B, dùng cho phép nhân và phép chia
- Đơn vị logic học( ALU: Arithmetic Logical Unit)
- Từ trạng thái chơng trình( PSW: Progam Status Word)
- Bốn băng thanh ghi
- Con trỏ ngăn xếp
Bộ nhớ chơng trình( Bộ nhớ ROM) gồm 8Kb Flash.
Bộ nhớ dữ liệu( Bôn nhớ RAM) gồm 256 bytes.
Bộ UART( Universal Ansynchronous Receiver and Tranmitter) làm chức
năng truyền nhận nối tiếp, nhờ khối này, AT89S52 có thể giao tiếp với máy
tính qua cổng COM.

4


3 bộ Timer /Counter 16 bít thực hiện các chức năng định thời và
đếm sự kiện.
WDM( Watch Dog Timer) đợc dùng để phục hồi lại hoạt động
của CPU khi nó bị treo bởi một nguyên nhân nào đó. WDM ở AT89S52 gồm
một bộ Timer 14 bít, một bộ Timer 7 bít, thanh ghi WDTPRG( WDT

programable) điều khiển Timer 7 bit và một thanh ghi chớc năng
WDTRST( WDM register). Bình thờng WDT không hoạt động( bị cấm), để
cho phép WDT, các giá trị 1EH và E1H cần phải đợc ghi liên tiếp vào thanh
ghi WDTRST. Timer 14 bit của WDT sẽ đếm tăng dần sau mỗi chu kỳ đồng
hồ cho đến giá trị 16383 thì xảy ra tràn. Khi xảy ra tràn, chân RTS sẽ đợc đặt
ở mức cao trong thời gian 96.Tosc (Tossc=1/Fosc) và AT89S52 sẽ đợc reset.
Khi WDT hoạt động, ngoại trừ reset phần cứng và reset do WDT tràn thì
không có cách nào cấm đợc WDT, vì vậy khi sử dụng WDT thì các đoạn mã
chơng trình phải đợc đặt trong các khe thời gian từ khi giữa các lần WDT đợc khởi tạo lại

5


Hình: Sơ đồ khối của bộ vi điều khiển 89S52

II- Sơ đồ các chân và chức năng

6


1.Port 0(P0.0-P0.7 hay từ chân 32 đến chân 39): Gồm 8 chân, ngoài
chức năng xuất nhập ra, Port 0 còn là Bus đa hợp dữ liệu và địa chỉ( AD0AD7), chức năng này sẽ đợc sử dụng khi AT89S52 giao tiếp với thiết bị ngoài
có kiến trúc Bus

7


2.Port 1( P1.0-P1,7 hay từ chân 1 đến chân 8) : Có chức năng xuất
nhập theo bit và byte. Ngoài ra, 3 chân P1.5, P1.6, P1.7 đợc dùng để nạp
ROM theo chuẩn ISP, 2 chân P1.0 và P1.1 đợc dùng cho bộ Timer 2


3.Port 2( P2.0- P2.7 hay từ chân 21 đến chân 28): Là một port có
công dụng kép: là đờng xuất nhập hoặc là byte cao của bus địa chỉ đối với
các thiết kế dùng bộ nhớ mở rộng.

4.Port 3( P3.0- P3.7 hay từ chân 10 đến chân 17): Mỗi chân trên port
3 ngoài chức năng xuất nhập ra còn có một chức năng riêng:

8


Bit
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7

Tên
RXD
TXD
INT0
INT1
T0
T1
WR
RD


Chức năng
Dữ liệu nhận cho port nối tiếp
Dữ liệu phát cho port nối tiếp
Ngắt 0 bên ngoài
Ngắt 1 bên ngoài
Ngõ vào của Timer/Counter 0
Ngõ vào của Timer/Counter 1
Xung ghi bộ nhớ dữ liệu bên ngoài
Xung đọc bộ nhớ dữ liệu bên ngoài

5. RST( Reset- chân 9):
Mức tích cực của chân này là mức 1, để reset ta phải đa mức
1(5V) đến chân này với thời gian tối thiểu 2 chu kỳ máy( tơng đơng 2uS đối
với thạch anh 12MHz.
Trạng thái của các thanh ghi khi reset, khi reset thì trạng thái
của các thanh ghi không thay đổi

9


6.XTAL1, XTAL2:
AT89S52 có một bộ dao động trên chip, nó thờng đợc nồi với một bộ dao
động thạch anh có tần số lớn nhất là 33MHz, thông thờng là 12MHz.
7. EA( External Access):
EA thờng đợc mắc lên mức cao(+5V) hoặc mức thấp( GND).
Nếu ở mức cao, bộ vi điều khiển thi hành chơng trình từ ROM nội. Nếu ở
mức thấp, chơng trinh chỉ đợc thi hành từ bộ nhớ mở rộng.
8.ALE( Address Latch Enable):
ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoài

trong nửa đầu của chu kỳ bộ nhớ. Sau đó các đờng port 0 dùng để xuất hoặc
nhập dữ liệu trong nửa chu kỳ sau của bộ nhớ.
9.PSEN( Program Store Enable):
PSEN là điều khiển để cho phép bộ nhớ chơng trình mở rộng và
trờng đợc nối đến chân /OE ( Output Enable) của một EPROM để cho phép
đọc các bytes mã lệnh.
PSEN sẽ ở mức thấp trong thừi gian đọc lệnh. Các mã nhị phân
của chơng trình đợc đọc từ EPROM qua Bus và đợc chốt vào thanh ghi lệnh

10


của bộ vi điều khiển để giải mã lệnh. Khi thi hành chơng trình trong ROM
nội, PSEN sẽ ở mức thụ động( mức cao)
10.Vcc, GND:
AT89S52 dùng nguồn một chiều có dải điện áp từ 4V-5.5V đợc
cấp qua chân 40(+) và chân 20(-).

III- Tổ chức bộ nhớ của AT89S52
1.Bộ nhớ chơng trình

AT89S52 có 8Kb Flash Rom trên chip, khi chân EA( Chân 31) đợc đặt ở
mức logic cao(+5V), bộ vi điều khiển sẽ thực hiện chơng trình trong ROM
nội bắt đầu từ địa chỉ 0000H. Số lần ghi cho bộ nhớ này khoảng 1000
lần( trên lý thuyết).
Khi chân EA đợc đặt ở mức thấp, bộ vi điều khiển sẽ thực hiên chơng
trình ở bộ nhớ chơng trình ngoài (EPROM ngoài), tuy nhiên để có ợc điều
này thì phải có một mạch phối ghép AT89S52 với EPROM đợc lựa chọn.
Hình dới là một vi mach chốt (Latch) sẽ tách riêng bus đa hợp địa chỉ
và dữ liệu AD0- AD7; Tuỳ theo dung lợng của EPROM sẽ có số đờng địa chỉ

tơng ứng đợc dung; EPROM đợc đọc nhờ tín hiệu PSEN

11


Flash
EPRROM
A15:8

89S52
P2
ALE

Latch
A7:0

P0

D7:0
OE

PSEN #

2. Bộ nhớ dữ liệu

AT89S52 có 256 bytes RAM nội đợc phân chia nh sau:
Các bank thanh ghi có địa chỉ từ 00H đến 1FH:
32 byte thấp của bộ nhớ nội đợc dành cho các bank thanh ghi. Bộ lệnh
AT89S52 hỗ trợ 8 thanh ghi có tên là R0-R7 và theo mặc định sau khi
reset hệ thống, các thanh ghi này có các địa chỉ từ 00H đến 07H.

Các lệnh dùng các thanh ghi R0-R7 sẽ ngắn hơn và nhanh hơn so với các
lệnh có chức năng tơng ứng dùng kiểu địa chỉ trực tiếp. Các dữ liệu đợc dung
thờng xuyên nên dùng một trong các thanh ghi này.

12


Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi
đợc truy xuất bởi các thanh ghi R0-R7, để chuyển đổi việc truy xuất thanh
ghi ta phải thay đổi các bit chọn bank trong thanh ghi trạng thái.
RAM địa chỉ hoá từng bit có địe chỉ từ 20H đến 2FH:
AT89S52 có 128 bits có chứa các byte định địa chỉ theo bit từ 20H đến
2FH. ý tởng truy xuất từng bit bằng phần mềm là các đặc tính mạnh của
các bộ vi điều khiển nói chung. Các bit có thể đợc đặt xoá, AND, OR...,
với một lệnh đơn.
RAM đa dụng từ 30H đến FFH.
Các thanh ghi chức năng đặc biệt từ 80H đến FFH:

3. Bộ nhớ dữ liệu ngoài:

13


D0-D7
Port 0
74HC373
O
D

EA


G

A0-A7
RAM

ALE
A8-A15
Port 2
89S52

WR

OE
WE
RD
Sơ đồ ghép nối AT89S52 với RAM

Bộ nhớ dữ liệu ngoài là bộ nhớ RAM đợc đọc hoặc ghi bởi tín hiệu
/RD và WR. Các RAM có thể giao tiếp với AT89S52 tơng tự cách thức nh
EPROM ngoại trừ chân /RD của AT89S52 nối với chân /OE của RAM và
chân /WR của AT89S52 nối với chân /WE của RAM.
Nếu có nhiều vi mạch RAM hoặc ROM sùng đợc ghép nối với
AT89S52 thì có thể dùng thêm vi mạch giải mã 74LS138.
4. Các thanh ghi chức năng
Từ trạng thái chơng trình( PSW: Program Status Word).
Thanh ghi B.
Con trỏ ngăn xếp SP( Stack pointer).
Con trỏ dữ liệu DPTR( Data poiner)
Các thanh ghi Port( Port register)

Các thanh ghi của các bộ Timer( Timer register)
Các thanh ghi Port nối tiếp(Serial Port register)
Các thanh ghi ngắt( Interrupt register)

14


Thanh ghi điều khiển nguồn( Power Control register)

5. Mạch tạo dao động và Reset
* Mạch tạo dao động:
AT89S52 có một bộ chia tần số trong chip, bộ này sẽ cấp xung clock
cho các khối bên trong chip từ nguồn dao động bên ngoài qua 2 chân XTAL1
và XTAL2. Tụ gốm có trị số từ 27pF -33pF để ổn định làm việc cho thạch
anh, thờng dùng loại 33pF

* Mạch Reset:

15


Có 4 cách để reset AT89S52 lần lợt là: Reset khi cấp nguồn, Reset bởi
WDT, Reset bằng phần mềm và Reset bằng mạch ngoài qua chân RST.

HI

Vcc

C


R 1
10K

1
2
3
4
5
6
7
8
19
18
31
9

0 .0
0 .1
0 .2
0 .3
0 .4
0 .5
0 .6
0 .7

/A
/A
/A
/A
/A

/A
/A
/A

P
P
P
P
P
P
P
P

1 .0
1 .1
1 .2
1 .3
1 .4
1 .5
1 .6
1 .7

/T 2
/T 2 E X
/S
/M
/M
/S

D

D
D
D
D
D
D
D

0
1
2
3
4
5
6
7

P
P
P2
P2
P2
P2
P2
P2

S
O SI
IS O
C K


XTA L1
XTA L2

2 .0 /A
2 .1 /A
.2 /A 1
.3 /A 1
.4 /A 1
.5 /A 1
.6 /A 1
.7 /A 1

8
9
0
1
2
3
4
5

P 3 .0 /R XD
P 3 .1 /T XD
P 3 .2 /IN T 0
P 3 .3 /IN T 1
P 3 .4 /T 0
P 3 .5 /T 1
P 3 .6 /W R
P 3 .7 /R D

PSEN
A L E /P R O G

2
2
2
2
2
2
2
2

1
2
3
4
5
6
7
8

1
1
1
1
1
1
1
1


0
1
2
3
4
5
6
7

29
30

E A /V P P
R ST
VC C

20

40

P
P
P
P
P
P
P
P

G N D


SW 2
C 2

Reset

AT89S52
39
38
37
36
35
34
33
32

IV- Hoạt động định thời
AT89S52 có 3 timer 16 bits, mỗi timer có 4 chế đọ hoạt động. Ngời ta
sử dụng các timer để: Định khoảng thời gian. đếm sự kiện hoặc tạo tốc độ
baud cho port nối tiếp
Trong các ứng dụng định khoảng thời gian, ngời ta lập trình timer ở
một khoảng đều đặn và đặt cờ tràn timer. Cờ đợc dùng để đồng bộ hoá chơng
trình để thực hiện một tác động nh kiểm tra trạng thái của các
ngõ vào hoặc gửi các sự kiện ra các ngõ ra. Các ứng dụng khác có thể sử
dụng việc tạo xung nhịp đều đặn của timer để đo thời gian trôi qua giữa 2 sự
kiện

16



Giả sử số bớc đếm là k
==> t định thời= k*t clock=k/fclock=

k
12k
=
1
f óc
12 f óc

Đếm sự kiện dùng để xác định số lần xảy ra của các sự kiện. Trong
ứng dụng này, ngời ta tìm cách quy các sự kiện thành các sự chuyển mức trên
chân T0, T1, T2 để dùng các timer đếm các sự kiện đó.
1. Các thanh ghi của bộ định thời(Timer 0,1)
+ Thanh ghi chế độ Timer( TMOD)
Thanh ghi TMOD chứa 2 nhóm 4 bit dùng để đặt chế độ làm việc cho
Timer 0 và Timer 1
Chế độ cho Timer 1
GATE C
C

T

M1
T

M0

Chế độ cho Timer 0
GATE C

M1

M0

T

=1: Bộ đếm sự kiện

=0: Định thời
M0M1=00 : Timer 13 bit, mode 0
=01 : Timer 16 bit, mode 1
=10 : Timer 8 bit nạp tự động, mode 2
=11 : Timer tách riêng, mode 3
GATE=0: Hoạt động của Timer bị điều khiển bởi mức Logic ở chân
/INT
=1: Hoạt động của Timer không bị điều khiển bởi mức Logic ở
chân /INT
2. Các thanh ghi điều khiển Timer(Timer 0,1)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho
Timer 0 và Timer 1
3. Các thanh ghi chứa giá trị của các bộ định thời(Timer 0,1)
Các timer 0 và timer 1 đều là các timer 16 bit, mỗi timer có 2 thanh
ghi 8 bit dùng để chứa các giá trị khởi tạo hoặc giá trị hiện thời của các
timer. Cụ thể timer 0 có TH0 và TL0, timer 1 có TH1 và TL1. Các thanh ghi
này không có địa chỉ bit

17


Lu ý: c¸c thanh ghi ë timer 2 kh¸c timer 0,1

4. C¸c chÕ ®é cña bé ®inh thêi

Timer 2 ë chÕ ®é Capture( thu nhËn)

Timer 2 ë chÕ ®é tù n¹p l¹i ( DCEN=0)

18


Timer 2 ë chÕ ®é tù n¹p l¹i ( DCEN=1)

Timer 2 t¹o tèc ®é baud

19


Timer 2 trong chế độ clock-out

V- PORT nối tiếp
AT89S52 có một port nối tiếp trong chip có thể hoạt động ở nhiều chế
độ khác nhau, nhiều tốc độ khác nhau. Chức năng chủ yếu của một port nói
tiếp là thực hiện chuyển đổi song song sang nối tiếp với dữ liệu xuất ra và
chuyển đổi nói tiếp sang song song với dữ liệu nhập để có thể giao tiếp với
máy tính qua cổng nối tiếp hoặc các thiết bị tơng tự

20


AT89S52
Bộ chuyển

đổi mức

Máy
Cổng
tính
COM

Mô tả hoạt động của Port nối tiếp
Port nối tiếp có thể hoạt động song công( full duplex: thu và phát
đồng thời) và đệm lúc thu( receiver buffering) cho phép một kí tự sẽ đợc thu
và đợc giữ trong khi kí tự thứ 2 đợc nhận. Nếu CPU đọc kí tự thứ nhất trớckhi kí tự thứ 2 đợc thu đầy đủ thì dữ liệu sẽ không mất.

1. Các thanh ghi của port nối tiếp
Có 2 thanh ghi chức năng đặc biệt cho phép phần mềm truy xuất
đến Port nối tiếp: SBUF và SCON.
Thanh ghi điều khiển Port nối tiếp( SCON- Serial Controller).
Thanh ghi điều khiển Port nối tiếp SCON ở địa chỉ 98H là thanh
ghi có điịnh địa chỉ bit, chứa các bit trạng thái và các bit để đièu khiển liên
quan tới port nối tiếp. Các bit điều khiển đặt chế độ hoạt động cho Port nối
tiếp, các bit trạng thái báo cáo kết thúc việc phát hoặc thu một ký tự. Các bit
trạng thái có thể đợc kiểm tra bằng phần mềm hoặc có thể đợc lập trình để
tạo ngắt.

Bit

Ký hiệu

Địa chỉ

Mô tả


21


SCON.7
tiếp
SCON.6
Port

SM0
SM1

9FH
9EH

Mode 1-Bit 0 chọn chế độ cho Port nối
Mode 1-Bit 1 chọn chế độ hoạt động cho
nối tiếp
SM0SM1=00: Port nối tiếp hoạt động ở chế

độ 0
SM0SM1=01: Port nối tiếp hoạt động ở chế
độ1
SM0SM1=10: Port nối tiếp hoạt động ở chế
độ2
SM0SM1=11: Port nối tiếp hoạt động ở chế
độ3
SCON.5
tiếp


SM2

SCON.4
phải
SCON.3
trong
SCON.2

REN

SCON.1

TI

TI
SCON.0

RI

TB8
RB8

9DH

Mode 2-Bit 2 chọn chế độ cho Port nối

Bit này cho phép truyền thông đa xử lý
9CH
Receiver Enable-Bit cho phép thu, REN
đợc đặt bằng 1 để cho phép nhận các ký tự

9BH
Transmitted bit 8-Bit truyền thứ 9 sử dụng
chế độ UART 9 bit
9AH
Receiver bit 8- Bit nhận thứ 9 trong sử dụng
trong chế độ UART 9 bit
99H
Transmitted Interupt- Cờ ngắt truyền, TI đợc
đặt bằng 1 khi kết thúc việc truyền 1 ký tự,
đợc xoá bằng phần mềm
98H
Receiver Interupt-Cờ ngắt nhận, RI đợc dặt
bằng 1 khi kết thúc việc nhận 1 ký
xoá bằng phần mềm
dụng cổng nối tiếp, phải khởi động thanh ghi SCON để

tự,RI đợc
Trớc khi sử
chọn chế độ
2.Trao đổi dữ liệu qua Port nối tiếp
Thao tác trao đổi dữ liệu qua port nối tiếp không đơn thuần chỉ là việc
ghi/đọc dữ liệu nh trao đổi dữ liệu trực tiếp qua các port(chẳng hạn P1,
P2,4...) mà nó bao gồm 3 thao tác cính nh sau:
- Khởi tạo cổng nối tiếp: Thao tác này bao gồm các việc nh sau:

22


+ truy xuất SCON để đặt các thông số nh chế độ hoạt động, cho
phép thu...

+Thiết lập hoặc xoá bit SMOD của thanh ghi PCON để đặt hệ
số chia của tốc độ baud
+Truy xuất các thanh ghi của các bộ Timer 1 và Timer 2 để đặt
tốc độ baud cho port nối tiếp( Chỉ với chế độ 1 và 3).
- Kiểm tra cờ TI( Khi truyền) và RI( Khi nhận).
-Ghi/ đọc byte dữ liệu ở SBUF
VI- Xử lý ngắt
AT89S52 có 6 nguồn ngắt:
-Ngắt ngoàiđến từ chân /INT0
-Ngắt ngoàiđến từ chân /INT1
-Ngắt do bộ Timer 0
-Ngắt do bộ Timer 1
-Ngắt do bộ Timer 2
-Ngắt do Port nối tiếp
6 nguồn ngắt này đợc xoá khi Reset và đợc đặt bằng phần mềm bởi
các bit trong thanh ghi cho phép ngắt (IE), thanh ghi u tiên ngắt (IP).
Thanh ghi cho phép ngắt IE ( Interrupt Enable):

Bit 1: Cho phép
Bit 0: Cấm
Bit
IE.7

Ký hiệu
EA

Địa chỉ bit
AFH

IE.6

IE.5
IE.4

ET5
ES

AEH
ADH
ACH

IE.3

ET1

ABH

Mô tả
Không cho phép hoặc cấm
toàn bộ
Không đợc định nghĩa
Cho phép ngắt từ Timer 2
Cho phép ngắt từ Port nối
tiếp
Cho phép ngắt từ Timer 1

23


IE.2
IE.1

IE.0

EX1
ET0
EX0

AAH
A9H
A8H

Cho phép ngắt ngoài 1
Cho phép ngắt từ Timer 0
Cho phép ngắt ngoài 0

Các nguồn ngắt của AT89S52
Các vector ngắt:
Khi một ngắt nào đó đợc chấp nhậ, giá trị đợc nạp vào PC đợc
gọi là vector ngắt. Nó là địa chỉ bắt đầu của chơng trình con phục vụ ngắt
ISR( Interrupt Service Routine) tơng ứng với nguồn tạo ngắt.Các vector ngắt
đợc cho liệt kê nh sau:

Ngắt
Reset hệ thống

RST

Cờ

Địa chỉ vector
0000H


Bên ngoài 0

IE0

0003H

0

Timer

TF0

000BH

1

Bên ngoài 1

IE1

0013H

2

Timer

TF1

001BH


3

24

Số hiệu


Port nối tiếp

TI hoặc RI

0023H

4

Timer 2

TX2 hoặc EXF2

002BH

5

Khi chỉ đến một ngắt, cờ gây ngắt tự động bị xoá bởi phần cứng, ngoại
trừ RI và TI phải đợc xoá bằng phần mềm
1. Ngắt do các bộ Timer
Các ngắt do các bộ timer xảy ra do có sự kiện tràn ở các timer, khi
đó các cờ tràn TFx sẽ đợc đặt bằng 1. Khi ISR đợc đáp ứng, các cờ TFx sẽ tự
động đợc xoá bằng phần mềm

2. Ngắt do Port nối tiếp
Ngắt do port nối tiếp xảy ra khi hoặc cờ ngắt phát (TI) hoặc cờ ngắt
thu(RI) đợc đặt lên 1. Ngắt phát xảy ra khi bộ đệm truyền rỗng, ngắt thu xảy
ra khi một ký tự đã đợc truyền xong và đang đợi trong SBUF để đợc đọc.
Các ngắt do Port nối tiếp khác với các ngắt do Timer. Cờ gây ra ngắt
cho port nối tiếp không thể xoá bằng phần cúng khi CPU chuyển tới ISR do
có 2 nguồn ngắt do port nối tiếp la TI và RI, nguồn ngắt phải đợc xác định
trong ISR và cờ tạo ngắt sẽ đợc xoá bằng phần mềm
3. Ngắt ngoài
Các ngắt ngoài xảy ra khi có một mức thấp hoạc cạnh xuống trên
chân /INT0 hoặc /INT1 của vi điều khiển
Các cờ tạo ngắt này là các bit IE0 và IE1 trong TCON. Khi quyền
đièu khiển đã chuyển đến ISR, cờ tạo ra ngắt chỉ đợc xoá nếu ngắt đợc tích
cực bằng cạnh xuống, nếu ngắt đợc tích cực theo mức, thì nguồn yêu cầu
ngắt bên ngoài sẽ điều khiển mức của cờ thay cho phần cứng
Cách thức tích cực ngắt đợc đặt bởi các bit trong ITx trong thanh ghi
SCON, nếu ITX =0, ngắt đợc tích cực bằng mức thấp, nếu ITX=1,ngắt đợc
tích cực bằng cạnh xuống( sờn âm). Nếu ngắt ngoài đợc tích cực bằng cacnhj
xuống thì nguồn bên ngoài phải giữ chân /INTx ở mức cao tối thiểu trong
một chu kỳ máy và giữ nó ở mức thấp trong một chu kỳ máy để đảm bảo cho
CPU phát hiện ra cạnh xuống. Nếu ngằt ngoài đợc tác động theo mức thì
nguồn bên ngoài phải giữ tín hiệu yêu cầu tác động trên chân ĩNT( mức thấp)
cho đến khi ngắt đợc đáp ứng và không tác động( giữ ở mức thấp) nữa khi
ISR đã đợc hoàn tất, nếu không một ngắt khác sẽ đợc lặp lại.

25


×