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

chương 3 giới thiệu họ microcontroller

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 (184.55 KB, 35 trang )

Chương III:

GIỚI THIỆU HỌ MICROCONTROLLER

I.PHẦN CỨNG:
1. Sơ đồ khối:
Microcontroller 8051/8031 là một IC thuộc họ vi điều khiển MCS_51 do
hãng Intel phát minh và chế tạo.Các IC tiêu biểu cho họ MC_51 là 8051 và
8031.
INT1
INT0
Timer 1
Timer 0
Port nối tiếp
Điều khiển
ngắt

Các thanh
ghi khác

128 bytes
RAM

4K
ROM

Timer 1
Timer 0

CPU


Bộ dao
động

Điều khiển
bus

EA

Các Port
I/O

Port nối
tiếp

ALE

RST

PSE
TX RX
N
P0 P2 P1 P3
D D
Sơ đồ khối 8051

T1
T0


Chúng có các đặc điểm chung sau:

+ 4K byte ROM (được lập trình bởi nhà sản xuất ,chỉ có ở 8051).
+ 128 byte Ram.
+ 4 port I/O 8 bit.
+ 2 bộ đònh thì 16 bit .
+ Giao tiếp nối tiếp.
+ 64K không gian bộ nhớ chương trình mở rộng.
+ 64K không gian bộ nhớ dữ liệu mở rộng.
+ Một bộ xử lý luận lý (thao tác trên các bit đơn).
+ 210 bit có khả năng đònh vò riêng biệt trong Ram nội.
+ 5 nguồn ngắt với 2 mức ưu tiên.
2.Sơ lược các chân của 8051:
40

30p
F
12MH
z

VCC

19
18

30p
F
29
30

PSE
N

ALE

8051

31 EA

/RD
/WR
T1
T0
/INT1
/INT0
TXD
RXD

9

RST

17
16

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


15

14
13
12

11
10

VSS

20

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

32
33
34
35
36
37
38

39

P1.7 8
P1.6 7
P1.5 6
P1.4 5
P1.3 4
3
P1.2
P1.1 2
P1.0 1
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P21
P2.0

28
27
26
25
24
23

22
21



2.1.Port 0:
Port 0 gồm các chân từ 32 ÷ 39 .Port 0 có chức năng I/O trong các thiết kế
cở nhỏ (không dùng bộ nhớ mở rộng) .Đối với các thiết kế lớn với bộ nhớ mở
rộng ,nó được hợp kênh giữa bus đòa chỉ và bus dữ liệu.
2.2.Port 1:
Port 1 là một Port I/O trên các chân 1-8 .Các chân được ký hiệu
P1.0,P1.1,…có thể dùng giao tiếp với các thiết bò ngoài nếu cần .
2.3.Port 2:
Port 2 là Port công dụng kép trên các chân 21-28 được dùng như các
đườ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.
2.4.Port 3:
Port 3 là một Port công dụng kép trên các chân 10-17 .Các chân của Port
này có nhiều chức năng ,các công dụng chuyển đổi có liên hệ với các đặc tính
đặc biệt của 8051/8031như ở bảng sau:
Bit
P3.0
P3.1
P3.2
P3.3

Tên
RXD
TXD
/INT0
/INT1

Chức năng chuyển đổi
Dữ liệu nhận cho Port nối tiếp

Dữ liệu phát cho Port nối tiếp
Ngắt ngoài 0
Ngắt ngoài 1


P3.4
P3.5
P3.6

T0
T1
/WR

P3.7

/RD

Ngõ vào của Timer/Counter 0
Ngõ vào của Timer/Counter 1
Xung ghi bộ nhớ dữ liệu
ngoài.
Xung đọc bộ nhớ dữ liệu
ngoài.

2.5.PSEN (Prorgam Store Enable):
8051/8031 có 4 tín hiệu điều khiển .
PSEN là tín hiệu ra trên chân 29 .nó là tín hiệu điều khiển để cho phép
bộ nhớ chương trình mở rộng và thường được nối đến chân OE (Output Enable)
của một EPROM để cho phép đọc các byte mã lệnh.
PSEN sẽ ở mức thấp trong thời gian lấy lệnh .Các mã nhò phân của chương

trình được đọc từ ERPOM qua bus dữ liệu và được chốt vào thanh

ghi lệnh của 8051 để giải mã lệnh .Khi thi hành chương trình trong ROM nội
(8051) PSEN sẽ ở mức thụ động cao.
2.6.ALE(Address Latch Enable):
Tín hiệu ra ALE trên chân 30 ,8051 dùng ALE cho việc giải kênh các bus
đòa chỉ và dữ liệu.Khi Port 0 được dùng trong chế độ chuyển đổi củă nó: vừa là
bus dữ liệu vừa là byte thấp của bus đòa chỉ ,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 dùng để xuất hoặc nhập dữ liệu trong nữa chu kỳ sau của bộ nhớ .
2.7.EA (External Access):
Đây là tín hiệu cho phép lựa chọn truy xuất bộ nhớ chương trình trong hay
ngoài. Khi EA được mắc lên mức cao (+5V) thì 8051 thi hành chương trình trong
ROM nội. Ngược lại, nếu Ea được mắc xuống mức thấp (GND) thì 8051 chỉ
thực thi chương trình từ bộ nhớ mở rộng.
2.8.RST (Reset):
Ngỏ vào RST trên chân 9 là ngỏ reset của 8051 .Khi tín hiệu này được
đưa lên mức cao (trong ít nhất 2 chu kỳ máy),các thanh ghi bên trong 8051 được
tải những giá trò thích hợp để khởi động hệ thống.
2.10.Các ngỏ vào bộ dao động trên chip:


8051 có một bộ dao động trên chip ,nó thường được nối với một thạch
anh giữa hai chân 18 và 19.
2.11.Các chân nguồn :
8051 vận hành với nguồn đơn +5V .Vcc (+5V) được nối vào chân 40 và
Vss (GND) được nối vào chân 20.
3.Tổ chức bộ nhớ:
8051/8031 có bộ nhớ theo cấu trúc Harvard : có vùng nhớ riêng biệt cho
chương trình và dữ liệu ,cả chương trình và dữ liệu có thể ở bên trong 8051 .Dù

vậy chúng có thể được mở rộng bằng các thành phần ngoài lên đến tối đa 64K
byte bộ nhớ chương trình và 64K byte bộ nhớ dữ liệu.
Bộ nhớ bên trong bao gồm ROM (8051) và RAM trên chip , RAM trên
chip bao gồm nhiều phần : phần lưu trữ đa dụng , phần lưu trữ đòa chỉ hóa từng
bit, các bank thanh ghi và các thanh ghi chức năng đặc biệt.
Hai đặc tính cần lưu ý là :

• Các thanh ghi và các Port xuất nhập đã được xếp trong bộ nhớ và có thể
được truy xuất trực tiếp giống như các đòa chỉ bộ nhớ khác.
• Ngăn xếp bên trong RAM nội nhỏ hơn so với Ram ngoài như trong các bộ vi
xử lý khác.
ĐỊA CHỈ
BYTE

ĐỊA CHỈ
BYTE

ĐỊA CHỈ BIT

RAM ĐA ĐỤNG

F5 F4 F3 F2 F1 F0

E0 E7 E6

E5 E4 E3 E2 E1 E0 ACC

D0 D7 D6

D5 D4 D3 D2 - D0 PSW


B8
2F
2E
2D
2C
2B
2A
29
28

7F
77
6F
67
5F
57
4F
47

7E
76
6E
66
5E
56
4E
46

7D

75
6D
65
5D
55
4D
45

7C
74
6C
64
5C
54
4C
44

7B
73
6B
63
5B
53
4B
43

7A
72
6A
62

5A
52
4A
42

79
71
69
61
59
51
49
41

78
70
68
60
58
50
48
40

ĐỊA CHỈ BIT

FF
F0 F7 F6

-


-

- BC BB BA B9 B8 IP

B0 B7 B6
A8 AF

-

A0 A7 A6
99

B

B5 B4 B3 B2 B1 B0 P3
- AC AB AA A9 A8 IE
A5 A4 A3 A2 A1 A0 P2

Không được đòa chỉ hóa bit

SBUF


27
26
25
24
23
22
21

20
1F
18
17
10
0F
08
07
00

3F
37
2F
27
1F
17
0F
07

3E
36
2E
26
1E
16
0E
06

3D
35

2D
25
1D
15
0D
05

3C
34
2C
24
1C
14
0C
04

3B
33
2B
23
1B
13
0B
03

3A
32
2A
22
1A

12
0A
02

BANK 3
BANK 2
BANK 1
BANK 0
(thanh ghi R0-R7)

39
31
29
21
19
11
09
01

38
30
28
20
18
10
08
00

98


9F 9E

9D 9C 9B 9A 99 98

SCON

90

97

95 94 93 92 91 90

P1

8D
8C
8B
8A

96

Không được đòa chỉ hóa bit
Không được đòa chỉ hóa bit
Không được đòa chỉ hóa bit
Không được đòa chỉ hóa bit

89
88
87


Không được đòa chỉ hóa bit
8F 8E 8D 8C 8B 8A 89 88
Không được dòa chỉ hóa bit

83
82
81
80

Không được đòa chỉ hóa bit
Không được đòa chỉ hóa bit
Không được đòa chỉ hóa bit
86 85 84 83 82 81 80

87

TH1
TH0
TL1
TL0
TMOD
TCON
PCON
DPH
DPL
SP
P0

Tóm tắc bộ nhớ dữ liệu trên chip
• Chi tiết về bộ nhớ Ram trên chip :

Ram bên trong 8051/8031 được phân chia giữa các bank thanh ghi (00H1FH),Ram đòa chỉ hóa từng bit (20H-2FH),Ram đa dụng (30H_7FH)và các
thanh ghi chức năng đặc biệt (80H-FFH).
3.1. Ram đa dụng:
Mọi đòa chỉ trong vùng RAM đa dụng đều có thể được truy xuất tự do
dùng cách đánh đòa chỉ trực tiếp hoặc gián tiếp. Ví dụ, để đọc nội dung ở đòa chỉ
5FH của RAM nội vào thanh ghi tích lũy lệnh sau sẽ được dùng :
MOV A, #5FH
Lệnh này di chuyển một búyt dữ liệu dùng cách đánh đòa chỉ trực tiếp để
xác đònh “đòa chỉ nguồn” (5FH). Đích nhận dữ liệu được ngầm xác đònh trong
mã lệnh là thanh ghi tích lũy A.
RAM bên trong cũng có thể được truy xuất dùng cách đánh đòa chỉ gián
tiếp qua RO hay R1. Ví dụ, sau khi thi hành cùng nhiệm vụ như lệnh đơn ở trên:
MOV R0, #5FH
MOV A, @R0
Lệnh đầu dùng đòa chỉ tức thời để di chuyển giá trò 5FH vào thanh ghi R0
và lệnh thứ hai dùng đòa gián tiếp để di chuyển dữ liệu “được trỏ bởi R0” vào
thanh ghi tích lũy.
3.2.RAM đòa chỉ hóa từng bit :


8051 / 8031 chứa 210 bit được đòa chỉ hóa, trong đó 128 bit là ở các đòa
chỉ byte 20H đến 2FH, và phần còn lại trong các thanh ghi chức năng đặc biệt.
Ý tưởng truy xuất từng bit riêng rẽ bằng mềm là một đặc tính tiện lợi của
vi điều khiển nói chung. Các bit có thể được đặt, xóa, AND,OR …với một lệnh
đơn. Đa số các chi xử lí đòi hỏi một chuổi lệnh đọc – sửa– ghi để đạt được hiệu
quả tương tự. Hơn nữa, các port I/0 cũng được đòa chỉ từng bit làm đơn giản
phần mềm xuất nhập từng bit.
Có 128 bit được đòa chỉ hóa đa dụng ở các byte 20H đến 2FH. Các đòa chỉ
này được truy xuất như các byte hoặc các bit phụ thuộc vào lệnh được dùng . ví
dụ, để đặt bit 67H, ta dùng lệnh sau :

SETB 67H
Chú ý rằng “đòa chỉ bit 67H” là bit có trọng số lớn nhất (MSB) ở “đòa chỉ
byte 2CH” lệnh trên sẽ không tác động đến các bit khác của đòa chỉ này.
3.3.Các bank thanh ghi :
32 byte thấp nhất của bộ nhớ nội là dành cho các bank thanh ghi. Bộ lệnh
của 8051 / 8031 hổ trợ 8 thanh ghi (RO đến R7) và theo mặc đònh (sau khi Reset
hệ thống) các thanh ghi này ở các đòa chỉ 00H-07H. Lệnh sau đây sẽ đọc nội
dung ở đòa chỉ 05H vào thanh ghi tích lũy.
MOV A,R5
Đây là lệnh một byte dùng đòa chỉ thanh ghi. Tất nhiên, thao tác tương tự
có thể được thi hành bằng lệnh 2 byte dùng đòa chỉ trực tiếp nằm trong byte thứ
hai:
MOV A,05H
Các lệnh dùng các thanh ghi R0 đến R7 thì sẽ ngắn hơn và nhanh hơn các
lệnh tương ứng nhưng dùng đòa chỉ trực tiếp. Các giá trò dữ liệu được dùng
thường xuyên nên dùng một trong các thanh ghi này.
Bank thanh ghi tích cực có thể chuyển đổi bằng cách thay đổi các bit
chọn bank thanh ghi trong từ trạng thái chương trình (PSW). Giả sử rằng bank
thanh ghi 3 được tích cực, lệnh sau sẽ ghi nội dung của thanh ghi tích lũy vào
đòa chỉ 18H:
MOV R0,A
Ýù tưởng dùng “các bank thanh ghi” cho phép “chuyển hướng” chương
trình nhanh và hiệu qủa (từng phần riêng rẽ của phần mềm sẽ có một bộ thanh
ghi riêng không phụ thuộc vào các phần khác).


3.4. Các thanh ghi chức năng đặc biệt:
Các thanh ghi trong 8051/8031 được đònh dạng như một phần của RAM
trên chip. Vì vậy mỗi thanh ghi sẽ có một đòa chỉ (ngoại trừ thanh ghi trực tiếp,
sẽ không có lợi khi đặt chúng vào trong RAM trên chip). Đó là lý do để

8051/0831 có nhiều thanh ghi. Cũng như R0 đến R7, có 21 thanh ghi chức năng
đặc biệt (SFR: Special Funtion Register) ở vùng trên của RAM nội, từ đòa chỉ
80H đến FFH. Chú ý rằng hầu hết 128 đòa chỉ từ 80H đến FFH không được đònh
nghóa. Chỉ có 21 đòa chỉ SFR là được đònh nghóa.
Ngoại trừ tích lũy (A) có thể được truy xuất ngầm như đã nói, đa số các
SFR được truy xuất dùng đòa chỉ trực tiếp. chú ý rằng một vài SFR có thể được
đòa chỉ hóa bit hoặc byte. Người thiết kế phải thận trọng khi truy xuất bit và
byte. Ví dụ lệnh sau:
SETB 0E0H

Sẽ set bit 0 trong thanh ghi tích lũy, các bit khác không thay đổi. Ta thấy
rằng E0H đồng thời là đòa chỉ byte của thanh ghi tích lũy và là đòa chỉ bit có
trọng số nhỏ nhất trong thanh ghi tích lũy. Vì lệnh SETB chỉ tác động trên bit,
nên chỉ có đòa chỉ bit là có hiệu quả
a)Từ trạng thái chương trình:
Từ trạng thái chương trình (PSW: Program Status Word) ở đòa chỉ D0H
chứa các bit trạng thái như bảng tóm tắt sau:
Bit

Đòa chỉ

PSW.7
PSW.6
PSW.5
PSW.4
PSW.3


hiệu
CY

AC
F0
RS1
RS0

PSW.2

OV

D2H

D7H
D6H
D5H
D4H
D3H

Ý nghóa
Cờ nhớ
Cờ nhớ phụ
Cờ 0
Bit 1 chọn bank thanh ghi
Bit chọn bank thanh ghi.
00=bank 0; đòa chỉ 00H-07H
01=bank 1: đòa chỉ 08H-0FH
10=bank 2:đòa chỉ 10H-17H
11=bank 3:đòa chỉ 18H-1FH
Cờ tràn



PSW.1
PSW.0

P

D1H
D0H

Dự trữ
Cờ Parity chẵn.

Bảng Từ trạng thái chương trình
• Cờ nhớ (CY) :bit đòa chỉ là D7H,cờ nhớ được set lên 1 nếu có nhớ ở bit thứ 7
trong phép toán cộng hay có mượn ở bit thứ 7 trong phép toán trừ
• Cờ nhớ phụ:Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết qủa
của 4 bit thấp trong khoảng 0AH đến 0FH. Nếu các giá trò cộng được là số
BCD, thì sau lệnh cộng cần có DA A( hiệu chỉnh thập phân thanh ghi tích
lũy) để mang kết qủa lớn hơn 9 trở về tâm từ 0÷9.
• Cờ 0(F0): là một bit cờ đa dụng dành các ứng dụng của người dùng.
• Các bit chọn bank thanh ghi:
Các bit chọn bank thanh ghi (RSO và RS1) xác đònh bank thanh ghi được
tích cực. Chúng được xóa sau khi reset hệ thống và được thay đổi
bằng phần mềm nếu cần. Ví dụ, ba lệnh sau cho phép bank thanh ghi 3 và di
chuyển nội dung của thanh ghi R7 đến thanh ghi tích lũy A:
SETB RS1
SETB RS0
MOV A,R7
• Cờ Tràn:
Cờ tràn (OV) được set một lệnh cộng hoặc trừ nếu có một phép toán bò
tràn. Khi các số có dấu được cộng hoặc trừ với nhau, phần mềm có thể kiểm tra

bit này để xác đònh xem kết qủa của nó có nằm trong tầm xác đònh không. Khi
các số không dấu được cộng, bit OV có thể được bỏ qua. Các kết qủa lớn hơn
+127 hoặc nhỏ hơn –128 sẽ set bit OV.
b)Thanh ghi B:
Thanh ghi B ở đòa chỉ F0H được dùng cùng với thanh ghi tích lũy A cho
các phép toán nhân và chia. Lệnh MUL AB sẽ nhân các giá trò không dấu 8 bit
trong A và B rồi trả về kết qủa 16 bit trong A (byte thấp) và B (byte cao). Lệnh
DIV AB sẽ chia A cho B rồi trả về kết qủa nguyên trong A và phần dư trong B.


Thanh ghi B cũng có thể được xem như thanh ghi đệm đa dụng. Nó được đòa chỉ
hóa ttừng bit bằng các đòa chỉ bit FOH đến F7H.
• Con trỏ ngăn xếp:(SP)
Thanh ghi SP là thanh ghi 8 bit đònh vò tại đòa chỉ 81H .Nó chứa đòa chỉ của đata
hiện tại ở đỉnh stack .Các phép toán liên quan đến stack boa gồm việc đưa dữ
liệu vào stack(PUSH) và lấy ( POP) đata ra khỏi stack .Việc đưa data vào stack
làm tăng SP trước khi ghi data vào stack ,và việc lấy data ra khỏi stack sẽ làm
giảm nội dung SP
• trỏ dữ liệu:
Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài là một thanh
ghi 16 bit ở đòa chỉ 82H(DPL: byte thấp) và 83H (DPH:byte cao). Ba lệnh sau sẽ
ghi 55H vào RAM ngoài ở đòa chỉ 1000H:
MOV A,#55H
MOV DPTR,#1000H
MOVX @DPTR,A
Lệnh đầu tiên dùng đòa chỉ tức thời để tải dữ liệu 55H vào thanh ghi tích
lũy, lệnh thứ hai cũng dùng đòa chỉ tức thời, lần này để tải dữ liệu 16 bit 1000H
vào con trỏ dữ liệu. Lệnh thứ ba dùng đòa chỉ gián tiếp
để di chuyển dữ liệu trong A (55H) đến RAM ngoài ở đòa chỉ được chứa trong
DPTR (1000H)

c)Các thanh ghi port xuất nhập:
Các port của 8051/8031 bao gồm Port 0 ở đòa chỉ 80H, Port 1 ở đòa chỉ 90
H, Port 2 ở đòa chỉ A0H và Port 3 ở đòa chỉ B0H. Tất cả các Port đều được đòa
chỉ hóa từng bit. Điều đó cung cấp một khả năng giao tiếp thuận lợi.
d)Các thanh ghi timer:
8051/8031 chứa 2 bộ đònh thời đếm 16 bit được dùng trong việc đònh thời
hoặc đếm sự kiện. Timer 0 ở đòa chỉ 8AH (TL0:byte thấp) và 8CH (TH0:byte
cao).Timer 1 ở đòa chỉ 8BH (TL1:byte thấp) và 8DH (TH1: byte cao). việc vận
hành timer được set bởi thanh ghi Timer Mode (TMOD) ở đòa chỉ 89H và thanh
ghi điều khiển timer (TCON) ở đòa chỉ 88H. Chỉ có TCON được đòa chỉ hóa từng
bit.
e)Các thanh ghi port nối tiếp:
8051/8031 chức một port nối tiếp trên chip dành cho việc trao đổi thông
tin với các thiết bò nối tiếp như máy tính, modem hoặc cho việc giao tiếp với
các IC khác có giao tiếp nối tiếp (có bộ chuyển đổi A/D, các thanh ghi dòch..).


Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở đòa chỉ 99H sẽ giữ cả hai
giữ liệu truyền và nhận. Khi truyền dữ liệu thì ghi lên SBUf, khi nhận dữ liệu
thì đọc SBUF. Các mode vận hành khác nhau được lập trình qua thanh ghi điều
khiển port nối tiếp (SCON) (được đòa chỉ hóa từng bit) ở đòa chỉ 98H.
f)Các thanh ghi ngắt:
8051/8031 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên. Các ngắt bò cấm sau
khi reset hệ thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt
(IE) ở đòa chỉ 8AH. Cả hai thanh ghi được đòa chỉ hóa từng bit.
g)Các thanh ghi điều khiển công suất:
Thanh ghi điều khiển công suất (PCON) ở đòa chỉ 87H chứa nhiều bit điều
khiển. Chúng được tóm tắt trong bảng sau:

Bit

7
6
5
4
3
2
1
0


hiệu
SMOD
_
_
_
GF1
GF0
PD
IDL

Ý nghóa

Bit này liên quan đến tốc độ baud trong Port nối
tiếp
Không đònh nghóa
Không đònh nghóa
Không đònh nghóa
Bit cờ đa dụng 1
Bit cờ đa dụng 0
Giảm công suất

Chuyển sang chế độ nghỉ.
BảngThanh ghi điều khiển công suất (PCON)
3.5. Bộ nhớ ngoài.
Khi dùng bộ nhớ ngoài, port 0 không còn là một port I/O thuần túy nữa.
Nó được hợp kênh giữa bus đòa chỉ (A0-A7) và bus dữ liệu (D0-D7) với tín hiệu
ALE để chốt byte thấp của đòa chỉ khi bắt đầu mỗi chu kỳ bộ nhớ. Port 2 thông
thường được dùng cho byte cao của bus đòa chỉ.
Trong nửa đầu của mỗi chu kỳ bộ nhớ, byte thấp của đòa chỉ được cấp
trong port 0 và được chốt bằng xung ALE. Một IC chốt 74HC373 (hoặc tương
đương) sẽ giữ byte đòa chỉ thấp trong phần còn lại của chu kỳ bộ nhớ. Trong nửa


sau của chu kỳ bộ nhớ port 0 được dùng như bus dữ liệu và được đọc hoặc ghi
tùy theo lệnh.
a) Truy xuất bộ nhớ chương trình ngoài:
Bộ nhớ chương trình ngoài là mộ IC ROM được phép bởi tín hiệu PSEn.
Hình sau mô tả cách nối một EPROM vào 8051/8031:

Port
0
EA

AL
8051 E

D0÷D7
D

Q


A0÷A7

74CH373

G

Port
2
/
PSE
N Giao tiếp giữa 8051/8031 và EPROM

EPROM

A8÷A1
5
/OE

Một chu kỳ máy của 8051/8031 có 12 chu kỳ xung nhòp. Nếu bộ dao động
trên chip được lái bởi một thạch anh 12MHz thì chu kỳ máy kéo dài 1µs. Trong
một chu kỳ máy sẽ có 2 xung ALE và 2 byte được đọc từ bộ nhớ chương trình
(nếu lệnh hiện hành là một byte thì byte thứ hai sẽ được loại bỏ). Giản đồ thời
gian của một lần lấy lệnh được vẽ ở hình sau:


M o ät c h u k y ø m a ùy
S2

S1
P1


P2

P1

P2

P1

S5

S4

S3
P2

P1

P2

P1

S6
P2

P1

S1
P2


P1

P2

O SC
A LE

PSEN

P o rt 2

PC H

PC H

P o rt 1

PC L

O pcode

PC L

Giản đồ thời gian đọc bộ nhớ chương trình ngoài

b/ Truy xuất bộ nhớ dữ liệu ngoài:

Port
0
EA


D0÷D7
D

Q

A0÷A7

74CH373

AL
G
8051 E
Port
2
/RD
/WR
/
NC
PSE
Giao tiếp giữa 8051/8031 và RAM
N

RAM

A8÷A1
5
/OE
/WR
/CS


Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được cho phép ghi/đọc bằng
các tín hệu WR và RD (các chân P3.6 và P3.7 thay đổi chức năng). chỉ có một


cách truy xuất bộ nhớ dữ liệu ngoài là với lệnh MOVX dùng con trỏ dữ liệu
(DPTR) 16 bit hoặc R0 và R1 xem như thanh ghi đòa chỉ.
Kết nối bus đòa chỉ và bus dữ liệu giữa RAM và 8051/8031 cũng giống
EPROM và do đó cũng có thể lên đến 64 byte bộ nhớ RAM. Ngoài ra, chân RD
của 8051/8031 được nối tới chân cho phép xuất (OE) của RAM và chân WR
được nối tới chân ghi (WR) của RAM.
Giản đồ thời gian cho lệnh đọc bộ nhớ dữ liệu ngoài được vẽ trên hình
sau đối với lệnh MOVX A, @DPTR:
M o ät c h u k y ø m a ùy

M o ät c h u k y ø m a ùy

S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6
A LE
PSEN

R D

PC H

P o rt 2
P o rt 0

PC L


O pcode

D PH

D PL

D A TA

Giản đồ thời gian của lệnh MOVX

Giản đồ thời gian cho lệnh ghi (MOVX @DPTR, A) cũng tương tự chỉ
khác đường WR sẽ thay vào đường RD và dữ liệu được xuất ra trên port 0 (RD
vẫn giữ mức cao).
3.6. Lệnh reset.
8051/8031 được reset bằng cách giữ chân RST ở mức cao ít nhất trong 2
chu kỳ máy và trả nó về múc thấp. RST có thể được kích khi cấp điện dùng một
mạch R-C.


+5V

+5V

100

10UF

8 ,2 K

Mạch Reset hệ thống


Trạng thái của tất cả các thanh ghi của 8051/8031 sau khi reset hệ thống
được tóm tắt trong bảng sau:
Nội dung
Thanh ghi
Đếm chương trình
0000H
Tích lũy
00H
B
00H
PSW
00H
SP
07H
DPTR
0000H
Port 0-3
FFH
IP
XXX00000B
IE
0XX00000B
Các thanh ghi đònh thời
00H
SCON
00H
SBUF
00H
PCON(HMOS)

0XXXXXXB
PCON(CMOS)
0XXX0000B
Bảng Trạng thái các thanh ghi sau khi reset
Quan trọng nhất trong các thanh ghi trên là thanh ghi đếm chương trình,
nó được đặt lại 0000H. Khi RST trở lại mức thấp, việc thi hành chương trình


luôn bắt đầu ở đòa chỉ đầu tiên trong bộ nhớ trong chương trình: đòa chỉ 0000H.
Nội dung của RAM trên chip không bò thay đổi bởi lệnh reset.
II. TẬP LỆNH CỦA 8051/8031.
Tập lệnh 8051/8031 có 255 lệnh gồm 139 lệnh 1 byte, 92 lệnh 2 byte và
24 lệnh 3 byte.
1. Các chế độ đánh đòa chỉ: trong tập lệnh có 8 chế độ đánh đòa chỉ:
a)Thanh ghi đòa ghi:
8051/8031 có 4 bank thanh ghi, mỗi bank có 8 thanh ghi đ1nh số từ R0
đến R7. Tại mỗi thời điểm chỉ có một bank thanh ghi được tích cực.
n n

M a õ l e än h

n

Đòa chỉ thanh ghi

Ngoài ra, một số thanh ghi đặc biệt như thanh ghi tích lũy ACC,B,DPTR.
b)Đòa chỉ trực tiếp:
Trong chế độ này, các thanh ghi bên trong 8051/8031 được đánh đòa chỉ
trực tiếp bằng 8 bit đòa chỉ nằm trong byte thứ hai của mã lệnh.
Mã lệnh


Đòa chỉ trực tiếp
Đòa chỉ trực tiếp

c)Đòa chỉ gián tiếp:
R0 và R1 được dùng để chứa đòa chỉ ô nhớ mà lệnh tác động đến. người
ta quy ước dùng dấu @ trước R0 hoặc R1.
M a õ l e än h

i

Đòa chỉ gián tiếp

d)Đòa chỉ tức thời:
Người ta dùng # trước các toán hạng tức thời. Các toán hạng đó có thể là
một hằng số, một ký số hay một biểu thức toán học...
Mã lệnh

Dữliệu tức thời
Đòa chỉ tức thời


e)Đòa chỉ tương đối:
Đòa chỉ tương đối được dùng trong các lệnh nhảy 8051/8031 dùng giá trò 8
bit có dấu để cộng thêm vào thanh ghi đếm chương trình (PC). Tầm nhảy của
lệnh này trong khoảng từ –128 đến 127 ô nhớ. Trước khi cộng , thanh ghi PC sẽ
tăng đến đòa chỉ theo sau lệnh nhảy rồi tính toán đòa chỉ offset cần thiết để nhảy
đến đòa chỉ yêu cầu. Như vậy đòa chỉ mới là đòa chỉ tương đối so với lệnh kế tiếp
chứ không phải là bản thân lệnh nhảy. Thường lệnh này có liên quan đến nhãn
được đònh nghóa trước.

M a õ l e än h

O f f s e t t ư ơ n g đ o ái

Đòa chỉ tương đối

f)Đòa chỉ tuyệt đối:
Đòa chỉ tuyệt đối chỉ dùng trong các lệnh ACALL và JIMP. Các lệnh 2
byte này dùng để rẽ nhánh vào một trang 2 Kbyte của bộ nhớ trương trình bằng
cách cấp 11 bit đòa chỉ thấp (A0-A10) để xác đònh đòa chỉ đích trong trang mã.
Còn 5 bit cao của đòa chỉ đích (A11-A15) chính là 5 bit cao hiện hành trong
thanh ghi đếm chương trình. Vì vậy đòa chỉ của lệnh theo sau lệnh rẽ nhánh và
đòa chỉ đích của lệnh rẽ nhánh và đòa chỉ đích của lệnh rẽ nhánh cần phải cùng
trang mã 2 Kbyte (có cùng 5 bit đòa chỉ cao).
A15

A11 A10

Xác đònh trang mã
A 1 0 -A 8

A0

xác đònh đòa chỉ trong trang mã

M ã

O f f s e t t ư ơ n g đ o ái

Đòa chỉ tuyệt đối


g)Đòa chỉ dài:
Đòa chỉ dài chỉ dùng cho lệnh LCALL và LJIMP. Các lệnh này chiếm 3
byte và dùng 2 byte sau (byte 2 và byte 3) để đònh đòa chỉ đích của lệnh (16 bit).
Ưu điểm của lệnh này có thể sử dụng trong toàn bộ vùng nhớ 64 Kbyte. Tuy
nhiên, lệnh này chiếm nhiều byte và lệ thuộc vào vò trí vùng nhớ.


Mã lệnh

A15-A8

A7-A0

Đòa chỉ dài

h)Đòa chỉ tham chiếu:
Đòa chỉ tham chiếu dùng một thanh ghi cơ bản (hoặc thanh ghi đếm
chương trình PC hoặc thanh ghi con trỏ dữ liệu DPTR) và đòa chỉ offset (trong
thanh ghi tích lũy A) để tạo đòa chỉ được tác động cho các lệnh JMP hoặc
MOVC. Các bảng nhảy và bảng tìm kiếm dễ dàng được tạo ra để sử dụng đòa
chỉ tham chiếu
O ffse t

đ ò a c h ỉ c ơ b a ûn
P C h o a ëc D P T R

+

A CC


đ ò a c h ỉ đ ư ơ ïc t a ùc đ o än g
=

Đòa chỉ tham chiếu

2. Các nhóm lệnh của 8051/8031:
Tập lệnh của 8051/8031 được chia thành 5 nhóm:
Số học.
Luận lý.
Chuyển dữ liệu.
Chuyển điều khiển.
a)Nhóm lệnh xử lý số học:
ADD A,Rn (1byte,1chu kỳ máy): 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ớ.


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.
b)Nhóm lệnh luận lý:
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,A
(2,1): AND một dữ liệu trực tiếp với A.
ANL data,#data (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 C,/bit
(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,data
(2,1): OR thanh ghi A với một dữ liệu trực tiếp.
ORL A,@Ri
(1,1): OR thanh ghi A với một dữ liệu gián tiếp.
ORL A,#data
(2,1):OR thanh ghi A với một dữ liệu tức thời.
ORL data,A
(2,1): OR một dữ liệu trực tiếp với thanh ghi A.

ORL data,#data (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.
ORL C,/bit
(2,2): OR cờ nhớ với bù của một bit trực tiếp.
XRL A,Rn
(1,1): XOR thanh ghi A với thanh ghi Rn.
XRL A,data
(2,1): XOR thanh ghi A với mộ dữ liệu trực tiếp.
XRL A,@Ri
(1,1): XOR thanh ghi A với một dữ liệu gián tiếp.
XRL A,#data
(2,1): XOR thanh ghi A với mộ dữ liệu tức thời.


XRL data,A
(2,1): XOR một dữ liệu trực tiếp với thanh ghi A.
XRL dara,#data (3,1): XOR một dữ liệu trực tiếp với một 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).
c) 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,1): Chuyển nội dung thanh ghi A vào dữ liệu trực tiếp.
MOV data,Rn
(2,2):Chuyển nội dung thanh ghi Rn vàodữ liệu trực tiếp.
MOV data,@Ri (2,2): Chuyển một dữ liệu gián tiếp vào dữ liệu gián tiếp.
MOV @Ri,A

(1,1): Chuyển nội dung thanh ghi A vào dữ liệu gián tiếp.
MOV @Ri,data (2,2): Chuyển một dữ liệu trực tiếp vào dữ liệu gián tiếp.
MOV @Ri,#data (2,1): Chuyển dữ liệu tức thời vào dữ liệu gián tiếp.
MOV DPTR,#data (3,2): Chuyển một hằng 16 bit vào thanh ghi DPTR.
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ỉ là @A+PC
vào thanh ghi A.
MOV A,@Ri
(1,2): Chuyển dữ liệu ngoài (8 bit đòa chỉ) vào thanh ghi A.


MOVX A,@DPTR (1,2): Chuyển dữ liệu ngoài (16 bit đòa chỉ) vào A.
MOVX @Ri,A
(1,2): Chuyển nội dung A ra dữ liệu ngoài (8 bit đòa chỉ).
MOVX @DPTR,A (1,2): Chuyển nội dung A ra dữ liệu ngoài (16 bit đòa chỉ).
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ủa dữ liệu gián tiếp.
d) 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
(1,2): Trở về từ lệnh gọi chương trình con.
RETI
(1,2): Trở về từ lệnh gọi ngắt.
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.
JMP @A+DPTR (1,2): Nhảy gián tiếp từ con trỏ dữ liệu.
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

bằ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 nếu không bằng.
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.
III.HOẠT ĐỘNG CỦA BỘ ĐỊNH THỜI (TIMER)
1.Giới thiệu:
8051/8031 có hai timer 16 bit ,mỗi timer có 4 cách làm việc người ta sử
dụng các timer để :
a) đònh khoảng thời gian
b) đếm sự kiện
c) tạo tốc độ bad cho Port nối tiếp có sẵn trong 8051/8031
Truy xuất các timer dùng 6 thanh ghi chức năng đặc biệt
SFR

MỤC ĐÍCH

ĐỊA
CHỈ
TCON Điều khiển timer
88H
TMO Chế độ timer
89H

D
Byte thấp của timer 8AH
TL0
0
8BH
TL1
Byte thấp của timer 8CH
TH0
1
8DH
TH1
Byte cao của timer
0
Byte cao của timer
1

Đòa chỉ hóa từng bit

Không
Không
Không
Không
Không

2. Thanh ghi chế độ timer (TMOD):
Thanh ghi TMOD chứa hai nhóm 4 bit dùng để đặt chế độ làm việc cho
timer 0 và timer 1.

Bit
Bit

7

Tên

6

C/T*

Timer

GATE 1
1

Mô tả
Bit (mở) cổng, khi set thì Timer
chạy khi INT1 ở mức cao
Bit chọn chế độ timer/counter
1: đếm sự kiện


5
4

M1
M0

1
1

3

2
1
0

GATE
C/T*
M1
M0

0
0
0
0

0: đònh thời
Bit 1 của chế độ
Bit 0 của chế độ
00: chế độ 0 (timre 13 bit)
01: chế độ 1 (timer 16 bit)
10: chế độ 2 (8 bit tự động nạp
lại)
11: chế độ 3 (tách timer)
Bit (mở ) cổng
Bit chọn timer/counter
Bít của chế độ
Bit 0 của chế độ

3. Thanh ghi điều khiển timer (TCON):
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.

BIT

Đòa
Mô tả
hiệu
chỉbit
TCON. TF1
8FH
Cờ báo tràn timer 1.
7
TCON. TR1
8EH
Bit điều khiển timer 1 chạy/ngưng.
6
TCON. TF0
8DH
Cờ báo tràn timer 0
5
TCON. TR0
8CH
Bit điều khiển timer 0 chạy/ngưng.
4
TCON. IE1
8BH
Cờ cạnh interrupt 1 bên ngoài .
3
TCON. IT1
8AH
Cờ kiểu interrupt 1 bên ngoài đặt/xóa
2

bằng phần mềm với interrupt bên ngoài
tác động mức thấp/cạnh xuống
TCON. IE0
89H
Cờ cạnh interrupt 0 bên ngoài
1
TCON. IT0
88H
Cờ kiểu interrupt 0 bên ngoài


0
4. Các chế độ timer:
a)Chế độ 0, chế độ timer 13 bit:
Để tương thích với 8048 (có trứớc 8051)
Ba bit cao của TLX (TL0 và/hoăc TL1) không dùng
Xung nhòp timer

TLx
(5 bit)

THx
(8 bit)

TFx
Cờ báo tràn

b)Chế độ 1- chế độ timer 16 bit.
Hoạt động như timer 16 bit đầy đủ.
Cờ báo tràn là bit TFx trong TCON có thể đọc hoặc ghi bằng phầm mềm.

MSB của giá trò trong các thanh ghi timer là bit 7 của THx và LBS là bit 0
của TLx. Các thanh ghi timer (Tlx/THx) có thể được đọc hoặc ghi bất cứ lúc
nào bằng phầm mềm.

Xung nhòp timer

TLx
(8 bit)

THx
(8 bit)

TFx
Cờ báo tràn

c)Chế độ2- chế độ tự động nạp lại 8 bit.
TLx hoạt động như một timer 8 bit, trong khi đó THx vẫn giữ nguyên giá
trò được nạp. Khi số đếm tràn tứ FFH đến 00H, không những cờ timer được set
mà giá trò trong THx đồng thời được nạp vào TLx. Việc đếm tiếp tục từ giá trò
này lên đến FFH xuống 00H và nạp lại... chế độ này rất thông dụng vì sự tràn
timer xảy ra trong những khoảng thời gian nhất đònh và tuần hoàn một khi đã
khởi động TMOD và THx.

Xung nhòp
timer

TLx
(8 bit)

TFx

Nạp lại

THx
(8 bit)

Cờ báo tràn


d)Chế độ 3- chế độ tách timer
Timer 0 được tách thành hai Timer 8 bit với cờ báo tràn là TF0 và TF1.
Timer 1 không còn bò tác động bởi cờ tràn TF1.Timer ngưng ở chế độ 3, nhưng
có được khởi động bằng cách chuyển sang chế độ khác.
1/12fosc

TL1
TH1

TH1

Xung nhòp timer

TL0

Xung nhòp timer

TH0

TF0
Cờ báo tràn
TF1

Cờ báo tràn

5.Nguồn tạo xung nhòp:
Có hai nguồn tạo xung nhòp có thể có, đươcï chọn bằng cách ghi vào bit
C/T (counter/timer) trong TMOD khi khởi động timer. Một nguồn tạo xung nhòp
dùng cho đònh khoảng thời gian, cái khác cho đếm sự kiện.
On chip
Osillator

÷12

Clock (T0 or T1)



C/T
Nguồn tạo xung nhòp

0=Up (Internal Timing)
1=Down (Event Counting)

-Đònh khoảng thời gian (interval timing)


×