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

ĐỀ tài ỨNG DỤNG MẠNG VI xử lí điều KHIỂN dây TRUYỀN sản XUẤT

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 (626.88 KB, 106 trang )

LUẬN VĂN TỐT NGHIỆP

GVHD : NGUYỄN CHÍ NGHĨA

LỜI CẢM ƠN!
Em xin chân thành cảm ơn q thầy cô trong và ngoài
Trường Đại Học Bách Khoa TP. Hồ Chí Minh đã truyền đạt
cho em nhiều kiến thức q báu trong suốt thời gian học tập.
Em xin chân thành cảm ơn thầy Nguyễn Chí Nghóa đã
tận tình hướng dẫn,truyền đạt cho em nhiều kiến thức và kinh
nghiệm thực tiễn trong quá trình thực hiện luận văn tốt nghiệp
này.
Xin cảm ơn gia đình và các bạn bè đã động viên, giúp đỡ
trong suốt quá trình hoàn thành luận văn này.
TP. HỒ CHÍ MINH THÁNG 1/2002
Sinh viên : PHẠM NGỌC CƯỜNG

SVTH : PHẠM NGỌC CƯỜNG
1


LUẬN VĂN TỐT NGHIỆP

GVHD : NGUYỄN CHÍ NGHĨA

LỜI GIỚI THIỆU
Cùng với sự phát triển khoa học kỹ thuật và công
nghệ,việc ứng dụng những thành tựu khoa học kỹ thuật vào
sản xuất ngày càng được mở rộng. Ở nước ta ngành điều
khiển tự động tuy vẫn còn khá mới mẻ nhưng đã và đang từng
bước được ứng dụng vào nhiều ngành sản xuất.


Với đề tài này, em đã đi sâu vào tìm hiểu ứng dụng
Mạng Vi Xử Lí - Bus I2C ( Rom nối tiếp Seeprom AT24C0X)
kết nối PC để thu thập - xử lí số liệu từ đó điều khiển dây
chuyền sản xuất tự động.
Vì thời gian có hạn và đây là đề tài mới chắc chắn còn
nhiều thiếu sót. Rất mong những sự góp ý và bổ sung để hoàn
thiện thêm.
Sinh viên thực hiện.
PHẠM NGỌC CƯỜNG

SVTH : PHẠM NGỌC CƯỜNG
2


LUẬN VĂN TỐT NGHIỆP

GVHD : NGUYỄN CHÍ NGHĨA

Nhận Xét Của Giáo Viên Hướng Dẫn

.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................

.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................
.....................................................................................................

MỤC LỤC
SVTH : PHẠM NGỌC CƯỜNG
3


LUẬN VĂN TỐT NGHIỆP

GVHD : NGUYỄN CHÍ NGHĨA

Trang
Chương I : Vi Điều Khiển 89C51
Chương II : Chuẩn Truyền Thông RS-485 và Adapter Chuyển
Đổi RS232 – RS485
Chương III : Bus I2C - Seeprom AT24C0X
Chương IV : Giới Thiệu Dây Chuyền Sản Xuất
Chương V : Sơ Đồ Giải Thuật và Chương Trình Điều Khiển
Báo Cáo Kết Quả Thi Công


Chương I :

Vi Điều Khiển

SVTH : PHẠM NGỌC CƯỜNG
4


LUẬN VĂN TỐT NGHIỆP

GVHD : NGUYỄN CHÍ NGHĨA

I. VI ĐIỀU KHIỂN HỌ MCS-51
MCS-51TM là họ vi điều khiển do hãng INTEL sản xuất vào
đầu những năm 80 và ngày nay đã trở thành một chuẩn trong công
nghiệp. Bắt đầu từ IC tiêu biểu là 8051 đã cho thấy khả năng thích
hợp với những ứng dụng mang tính điều khiển. Việc xử lí trên byte
và các phép toán số học ở cấu trúc dữ liệu nhỏ được thực hiện
bằng nhiều chế độ truy xuất dữ liệu nhanh trên RAM nội. Tập lệnh
cung cấp một bản tiện dụng của những lệnh số học 8 bit gồm cả
lệnh nhân và lệnh chia. Nó cung cấp những hỗ trợ mở rộng on-chip
dùng cho những biến 1 bit như là kiểu dữ liệu riêng cho phép quản
lí và kiểm tra bit trực tiếp trong điều khiển và những hệ thống logic
đòi hỏi xử lí luận lí.
Sau đây là bảng so sánh các IC trong họ MCS-51TM :
TÊN
LINH KIỆN
8051
8031
8751

8951
8052
8032
8752
8952

BỘ NHỚ CHƯƠNGùBỘ NHỚ DỮ LIỆU
TIMER
TRÌNH ON CHIP
ON CHIP
4 KB MROM
128 Bytes
2
0 KB
128 Bytes
2
4 KB EPROM
128 Bytes
2
4 KB Flash ROM
128 bytes
2
8 KB MROM
256 Bytes
3
0 KB
256 Bytes
3
8 KB EPROM
256 Bytes

3
8 KB Flash ROM
256 Bytes
3

II. VI ĐIỀU KHIỂN AT89C51
Do họ MCS-51TM đã trở thành chuẩn công nghiệp nên có rất
nhiều hãng sản xuất ra nó, điển hình là ATMEL Corporation. Hãng
này đã kết hợp rất nhiều tính năng dựa trên nền tảng kỹ thuật
của mình để tạo ra các vi điều khiển tương thích với MCS-51TM nhưng
mạnh mẽ hơn.
AT89C51 là một vi điều khiển 8 bit do ATMEL sản xuất, chế
tạo theo công nghệ CMOS, có chất lượng cao, công suất thấp với 4
KB Flash (flash programmable and erasable read only memory). Thiết bò
này được chế tạo bằng cách sử dụng kỹ thuật bộ nhớ không bốc
hơi mật độ cao của ATMEL và tương thích với chuẩn công nghiệp
MCS-51TM về tập lệnh và các chân ra. Flash on-chip cho phép bộ
nhớ lập trình được lập trình trong hệ thống bởi một lập trình viên
bình thường. Bằng cách nối 1 CPU 8 bit với một Flash trên một chip
đơn, AT89C51 là một vi điều khiển mạnh (có công suất lớn), cung
SVTH : PHẠM NGỌC CƯỜNG
5


LUẬN VĂN TỐT NGHIỆP

GVHD : NGUYỄN CHÍ NGHĨA

cấp một sự linh động cao và giải pháp về giá cả đối với nhiều
ứng dụng vi điều khiển.

Các đặc điểm chủ yếu của AT89C51 :
TM
 Tương thích hoàn toàn với họ MCS-51
của Intel.
 Bộ nhớ chương trình 4K Byte thuộc loại Flash Memory.
 64 K không gian bộ nhớ chương trình mở rộng .
 64 K không gian bộ nhớ dữ liệu mở rộng .
 Độ bền : 1000 lần ghi/xóa.
 Tần số hoạt động : 0 Hz đến 24 MHz.
 3 chế độ khóa bộ nhơ ù chương trình.
 128 x 8-Bit RAM nội.
 32 đường I/O lập trình được (4 port).
 2 timer/counter 16-bit.
 6 nguồn ngắt.
 Đường truyền nhận nối tiếp lập trình được .
 Chế độ hạ nguồn và chế độ lười tiêu tốn công suất thấp.
 Xử lí Boolean (hoạt động trên bit đơn).
 210 vò trí nhớ có thể đònh vò bit.
 4 µs cho hoạt động nhân hoặc chia.
1. Cấu tạo chân
Tùy theo khả năng (về kinh tế, kỹ thuật, …) mà các nhà sản
xuất các sản phẩm ứng dụng có thể chọn một trong 3 kiểu chân do
ATMEL đưa ra.

SVTH : PHẠM NGỌC CƯỜNG
6


LUẬN VĂN TỐT NGHIỆP


GVHD : NGUYỄN CHÍ NGHĨA

2. Sơ đồ khối

3. Mô tả chức năng của các chân
Vcc : áp nguồn.
GND : đất.
Port 0 : là một port I/O 8-bit hai chiều, cực máng hở. Khi xuất
ra, mỗi chân port có thể lái 8 đầu vào TTL. Nếu ghi các mức 1 ra
các chân port thì các chân này có thể dùng như các đầu vào trở
kháng cao.
Port 0 cũng có thể được cấu hình thành một bus multiplex giữa
đòa chỉ thấp và dữ liệu khi truy cập chương trình hay dữ liệu từ bên
ngoài. Trong chế độ này, port 0 có điện trở pullup nội.
Port 0 cũng nhận các byte mã chương trình khi lập trình Flash và
xuất ra mã chương trình khi kiểm tra, khi đó cần có điện trở pullup
bên ngoài.
SVTH : PHẠM NGỌC CƯỜNG
7


lUẬN VĂN TỐT NGHIỆP

gVHD : nGUYỄN CHÍ NGHĨA

Port 1 : là một port I/O 8-bit hai chiều có pullup nội. Đầu ra port
1 có thể lái 4 đầu vào TTL. Khi viết các mức 1 ra các chân port thì
chúng được kéo lên do có điện trở nội và có thể dùng làm đầu
vào. Khi vai trò là cổng nhập, những chân của port 1 bò kéo xuống
thấp sẽ đổ dòng vì có nội trở kéo lên.

Port 1 cũng nhận những byte đòa chỉ thấp trong khi lập trình Flash
và trong khi kiểm tra Flash .
Port 2 : là một port I/O 8-bit hai chiều có pullup nội. Đầu ra port
2 có thể lái 4 đầu vào TTL. Khi viết các mức 1 ra các chân port thì
chúng được kéo lên do có điện trở nội và có thể dùng làm đầu
vào. Khi vai trò là cổng nhập, những chân của port 2 bò kéo xuống
thấp sẽ đổ dòng vì có nội trở kéo lên.
Port 2 phát byte đòa chỉ cao trong khi nhận lệnh từ bộ nhớ
chương trình ngoài và trong lúc truy xuất đến bộ nhớ dữ liệu ngoài
mà có sử dụng đòa chỉ 16 bit (MOVX A, @DPTR). Trong ứng dụng
này nó dùng điện trở nội kéo lên mạnh khi xuất 1. Khi truy xuất
bộ nhớ dữ liệu ngoài dùng đòa chỉ 8 bit, port 2 sẽ phát nội dung
của thanh ghi P2
Port 2 cũng nhận byte đòa chỉ cao trong lúc lập trình Flash và
trong lúc kiểm tra Flash.
Port 3 : là một port I/O 8-bit hai chiều có pullup nội. Đầu ra port
3 có thể lái 4 đầu vào TTL. Khi viết các mức 1 ra các chân port thì
chúng được kéo lên do có điện trở nội và có thể dùng làm đầu
vào. Khi vai trò là cổng nhập, những chân của port 3 bò kéo xuống
thấp sẽ đổ dòng vì có nội trở kéo lên.
Port 3 là một port có công dụng kép , các chân của port này
có nhiều chức năng đặc biệt như của họ MSC-51 được liệt kê ở
bảng sau:
BIT
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5

P3.6
P3.7

TÊN ĐỊA CHỈ BITCHỨC NĂNG THAY THẾ
RXD
B0H
Nhận dừ liệu cho port nối tiếp
TXD
B1H
Truyền dừ liệu cho port nối tiếp
INT0
B2H
Ngắt ngoài 0
INT1
B3H
Ngắt ngoài 1
T0
B4H
Ngõ vào từ bên ngoài cho timer/counter 0
T1
B5H
Ngõ vào từ bên ngoài cho timer/counter 1
WR
B6H
Xung ghi bộ nhớ dữ liệu ngoài
RD
B7H
Xung đọc bộ nhớ dữ liệu ngoài

Port 3 cũng nhận vài tín hiệu điều khiển trong lúc lập trình

Flash và trong lúc kiểm tra Flash.

SVTH : PHẠM NGỌC CƯỜNG

31


lUẬN VĂN TỐT NGHIỆP

gVHD : nGUYỄN CHÍ NGHĨA

RST : là ngõ vào Reset. Khi ngõ này được đưa lên cao (trong ít
nhất hai chu kì máy), các thanh ghi bên trong AT89C51 được tải những
giá trò thích hợp để khởi động hệ thống.
ALE/PROG (Address Latch Enable) : ALE là xung xuất cho phép
chốt byte đòa chỉ thấp khi truy cập bộ nhớ ngoài. Chân này còn là
ngõ vào của xung lập trình (PROG) khi lập trình Flash.
Trong hoạt động bình thường, ALE được phát xung với tần số
1/6 tần số dao động on-chip và có thể được dùng như xung thời gian
chuẩn bên ngoài. Tuy nhiên, cần chú ý là một xung ALE sẽ bò
mất khi truy cập bộ nhớ ngoài.
Có thể hủy bỏ chức năng của ALE bằng cách set bit 0 của
thanh ghi ở vò trí 8EH. Một khi bit này được set, ALE chỉ tích cực khi
có lệnh MOVX hoặc MOVC. Nếu không có các lệnh này thì ALE
ở mức cao. Việc set bit 0 của thanh ghi ở vò trí 8EH không làm ảnh
hưởng đến vi điều khiển khi truy cập bộ nhớ ngoài.
PSEN (Program Store Enable) : PSEN là xung strobe báo hiệu
việc đọc bộ nhớ chương trình ngoài, PSEN tích cực hai lần (mức thấp)
mỗi chu kì máy, ngoại trừ hai xung PSEN bò mất khi truy xuất dữ liệu
ngoài. Khi thi hành chương trình trong RAM nội, PSEN sẽ ở mức thụ

động (mức cao).
EA/VPP (External Access) : EA là ngõ vào để cho phép truy xuất
bộ nhớ chương trình từ bên ngoài khi được nối với GND. Khi EA
được treo lên nguồn VCC, chương trình sẽ được thực thi trong ROM nội.
Chân này cũng nhận điện áp 12v (VPP) trong khi lập trình Flash.
XTAL1 : Đầu vào của bộ khuếch đại dao động đảo và cũng
là đầu vào đến mạch tạo xung clock nội.
XTAL2 : Đầu ra của bộ khuếch đại dao động đảo.
4. Tổ chức bộ nhớ :
Bộ nhớ bên trong AT89C51 gồm có : 4K ROM chương trình
và128 byte bộ nhớ RAM on-chip. Trong đó, 128 byte trên bao gồm
nhiều thành phần :phần lưu trữ đa dụng ,phần lưu trữ đòa chỉ hoá
tưng bit ,các bank thanh ghi và các thanh ghi chức năng đặc biệt.

FFFF
FF
00
SVTH : PHẠM NGỌC CƯỜNG

CODE
Memory
Enable
via
PSEN

FFFF

DATA
Memory
Enable

via
RD & WR

32


lUẬN VĂN TỐT NGHIỆP

On - Chip
Memory

0000

gVHD : nGUYỄN CHÍ NGHĨA

0000
External Memory

SVTH : PHẠM NGỌC CƯỜNG

33


lUẬN VĂN TỐT NGHIỆP

gVHD : nGUYỄN CHÍ NGHĨA

Bảng tóm tắt các vùng nhớ 8951.

Đòa chỉ

byte
7F

Đòa chỉ
byte
FF

Đòa chỉ bit

Đòa chỉ bit

F0

F7

F6

F5

F4

F3 F2 F1

E0

E7

E6

E5


E4

E3

F0

B

RAM đa dụng
E2 E1 E0

ACC

D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW
30
2F
2E
2D
2C
2B
2A
29
28
27
26
25
24
23
22

21
20
1F
18
17
10
0F
08
07
00

B8 7F
77
6F
67
5F
57
4F
47
3F
37
2F
27
1F
17
0F
07

7E
76

6E
66
5E
56
4E
46
3E
36
2E
26
1E
16
0E
06

7D
75
6D
65
5D
55
4D
45
3D
35
2D
25
1D
15
0D

05

7C 7B
74 73
6C 6B
64 63
5C 5B
54 53
4C 4B
44 43
3C 3B
34 33
2C 2B
24 23
1C 1B
14 13
0C 0B
04 03
Bank 3

7A
72
6A
62
5A
52
4A
42
3A
32

2A
22
1A
12
0A
02

79
71
69
61
59
51
49
41
39
31
29
21
19
11
09
01

Bank 2
Bank 1
Bank thanh ghi 0
(mặc đònh cho R0 -R7)
RAM


78
70
68
60
58
50
48
40
38
30
28
20
18
10
08
00

-

-

BC BB BA B9 B8 IP

B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3
A8 AF

AC AB AA A9 A8 IE

A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
99

98

không được đòa chỉ hoá bit
9F 9E 9D 9C 9B 9A 99

98

SBUF
SCON

90

97

90

P1

8D
8C
8B
8A
89

không được đòa chỉ hoá bit
không được đòa chỉ hoá bit
không được đòa chỉ hoá bit
không được đòa chỉ hoá bit
không được đòa chỉ hoá bit


88
87

8F 8E 8D 8C 8B 8A 89
không được đòa chỉ hoá bit

96

95

94

93 92 91

TH1
TH0
TL1
TL0
TMOD
88

TCON
PCON

83 không được đòa chỉ hoá bit
DPH
82 không được đòa chỉ hoá bit
DPL
81 không được đòa chỉ hoá bit
SP

88 87 86 85 84 83 82 81 80
P0
CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT

a. RAM đa dụng : chiếm các đòa chỉ từ 30H->7FH .Mọi đòa chỉ
trong vùng RAM đa dụng đều có thể 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 luỹ, ta sẽ dùng các lệnh sau :
MOV
A,5FH
;đây là cách đònh đòa chỉ trực
tiếp
Hoặc
MOV
R0,#5FH
MOV
A,R0
;cách đònh đòa chỉ gián tiếp qua
R0
b. RAM đòa chỉ hoá từng bit :89C51 chứa 210 bit được đòa chỉ
hoá , trong đó 128 bit là ở các đòa chỉ byte từ 20H đến 2FH , phần
SVTH : PHẠM NGỌC CƯỜNG

34


lUẬN VĂN TỐT NGHIỆP

gVHD : nGUYỄN CHÍ NGHĨA


còn lại là trong các thanh ghi chức năng đặc biệt . Để đặt bit 67H
(bit có trọng số lớn nhất trong đòa chỉ byte 2CH) ta có thể thực hiện
như sau :
SETB 67H
Hoặc
MOV
A,2CH
;đọc cả byte
ORL
A,#10000000
;set bit 67H
MOV
2CH,A
;ghi lại cả byte
c. Các bank thanh ghi : có 4 bank thanh ghi đòa chỉ từ 00H đến
1FH .Mỗi bank thanh ghi hỗ trợ 8 thanh ghi R0 đến R7 và theo mặc
đònh ( sau khi reset hệ thống ) các thanh ghi này ở các đòa chỉ 00H07H ( Bank 0). Thay đổi Bank thanh ghi 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) .
Các lệnh dùng các thanh ghi R0 đến R7 thì 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 các thanh ghi này .
5. Các thanh ghi chức năng đặc biệt (SFR-Special Funtion
Reisters)
AT89C51 có 21 thanh ghi chức năng được thiết kế như là một
thành phần của RAM on-chip. Do đó mỗi thanh ghi có một đòa chỉ
của nó, nằm trong vùng từ 80H đến FFH. Tuy nhiên, vùng này
cũng là vùng bộ nhớ nên việc truy cập các thanh ghi này thông
qua các lệnh dùng đònh vò trực tiếp khác với việc truy cập vùng
nhớ dùng đònh vò gián tiếp.
Chú ý là không phải tất cả các đòa chỉ từ 80H đến FFH

đều có các thanh ghi, những đòa chỉ không có thanh ghi này có thể
không có trên chip. Đọc những đòa chỉ này sẽ có những giá trò
ngẫu nhiên và ghi những giá triï này có những tác động không
xác đònh trước.
• Thanh ghi trạng thái chương trình (PSW: Program Status Word):
Từ trạng thái chương trình ở đòa chỉ D0H được tóm tắt như sau:
Từ trạng thái chương trình ở đòa chỉ D0H được tóm tắt như sau:
BIT
PSW.7
PSW.6
PSW.5
PSW4
PSW.3

SYMBOL
CY
AC
F0
RS1
RS0

SVTH : PHẠM NGỌC CƯỜNG

ADDRESS
D7H
D6H
D5H
D4H
D3H


DESCRIPTION
Cary Flag
Auxiliary Cary Flag
Flag 0
Register Bank Select 1
Register Bank Select 0
00=Bank 0; address
35


lUẬN VĂN TỐT NGHIỆP

PSW.2
PSW.1
PSW.0

OV
P

gVHD : nGUYỄN CHÍ NGHĨA

D2H
D1H
DOH

00H÷07H
01=Bank 1; address
08H÷0FH
10=Bank 2; address
10H÷17H

11=Bank 3; address
18H÷1FH
Overlow Flag
Reserved
Even Parity Flag

Chức năng từng bit trạng thái chương trình
• Cờ Carry CY (Carry Flag):
- Cờ nhớ có tác dụng kép. Thông thường nó được dùng cho các
lệnh toán học: C=1 nếu phép toán cộng có sự tràn hoặc phép trừ có mượn
và ngược lại C= 0 nếu phép toán cộng không tràn và phép trừ không có
mượn.
• Cờ Carry phụ AC (Auxiliary Carry Flag):
- Khi cộng những giá trò BCD (Binary Code Decimal), cờ nhớ
phụ AC được set nếu kết quả 4 bit thấp nằm trong phạm vi điều khiển
0AH÷ 0FH. Ngược lại AC= 0.
• Cờ 0 (Flag 0):
Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của
người dùng.
• Những bit chọn bank thanh ghi truy xuất:
- RS1 và RS0 quyết đònh dãy thanh ghi tích cực. Chúng được xóa
sau khi reset hệ thống và được thay đổi bởi phần mềm khi cần thiết.
- Tùy theo RS1, RS0 = 00, 01, 10, 11 sẽ được chọn Bank tích cực
tương ứng là Bank 0, Bank1, Bank2, Bank3.
RS1
0
0
1
1


RS0
0
1
0
1

BANK
0
1
2
3

• Cờ tràn OV (Over Flag) :
- Cờ tràn được set sau một hoạt động cộng hoặc trừ nếu có
sự tràn toán học. 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 quả có
nằm trong tầm xác đònh không. Khi các số không có dấu được
SVTH : PHẠM NGỌC CƯỜNG

36


lUẬN VĂN TỐT NGHIỆP

gVHD : nGUYỄN CHÍ NGHĨA

cộng bit OV được bỏ qua. Các kết quả lớn hơn +127 hoặc nhỏ hơn –
128 thì bit OV = 1.
• Bit Parity (P):
- Bit tự động được set hay Clear ở mỗi chu kỳ máy để lập Parity

chẳn với thanh ghi A. Sự đếm các bit 1 trong thanh ghi A cộng với bit
Parity luôn luôn chẵn. Ví dụ A chứa 10101101B thì bit P set lên một
để tổng số bit 1 trong A và P tạo thành số chẵn.
- Bit Parity thường được dùng trong sự kết hợp với những thủ
tục của Port nối tiếp để tạo ra bit Parity trước khi phát đi hoặc kiểm
tra bit Parity sau khi thu.
• Thanh ghi B:
- Thanh ghi B ở đòa chỉ F0H được dùng cùng với thanh ghi A cho
các phép toán nhân chia. Lệnh MUL AB ⇐ sẽ nhận những giá trò
không dấu 8 bit trong hai thanh ghi A và B, rồi trả về kết quả 16 bit
trong A (byte cao) và B(byte thấp). Lệnh DIV AB ⇐ lấy A chia B, kết
quả nguyên đặt vào A, số dư đặt vào B.
- Thanh ghi B có thể được dùng như một thanh ghi đệm trung gian
đa mục đích. Nó là những bit đònh vò thông qua những đòa chỉ từ
F0H÷F7H.
• Con trỏ Ngăn xếp SP (Stack Pointer) :
- Con trỏ ngăn xếp là một thanh ghi 8 bit ở đòa chỉ 81H. Nó
chứa đòa chỉ của byte dữ liệu hiện hành trên đỉnh ngăn xếp. Các
lệnh trên ngăn xếp bao gồm các lệnh cất dữ liệu vào ngăn xếp
(PUSH) và lấy dữ liệu ra khỏi Ngăn xếp (POP). Lệnh cất dữ liệu
vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu và lệnh lấy ra
khỏi ngăn xếp sẽ làm giảm SP. Ngăn xếp của 8031/8051 được giữ
trong RAM nội và giới hạn các đòa chỉ có thể truy xuất bằng đòa
chỉ gián tiếp, chúng là 128 byte đầu của 8951.
- Để khởi động SP với ngăn xếp bắt đầu tại đòa chỉ 60H, các
lệnh sau đây được dùng:
MOV SP , #5F
- Với lệnh trên thì ngăn xếp của 8951 chỉ có 32 byte vì đòa chỉ
cao nhất của RAM trên chip là 7FH. Sở dó giá trò 5FH được nạp vào
SP vì SP tăng lên 60H trước khi cất byte dữ liệu.

- Khi Reset 8951, SP sẽ mang giá trò mặc đònh là 07H và dữ
liệu đầu tiên sẽ được cất vào ô nhớ ngăn xếp có đòa chỉ 08H.
Nếu phần mềm ứng dụng không khởi động SP một giá trò mới thì
bank thanh ghi1 có thể cả 2 và 3 sẽ không dùng được vì vùng RAM
này đã được dùng làm ngăn xếp. Ngăn xếp được truy xuất trực
tiếp bằng các lệnh PUSH và POP để lưu trữ tạm thời và lấy lại
dữ liệu, hoặc truy xuất ngầm bằng lệnh gọi chương trình con
( ACALL, LCALL) và các lệnh trở về (RET, RETI) để lưu trữ giá
SVTH : PHẠM NGỌC CƯỜNG

37


lUẬN VĂN TỐT NGHIỆP

gVHD : nGUYỄN CHÍ NGHĨA

trò của bộ đếm chương trình khi bắt đầu thực hiện chương trình con và
lấy lại khi kết thúc chương trình con …
• Con trỏ dữ liệu DPTR (Data Pointer):
-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
MOV @DPTR, A
- Lệnh đầu tiên dùng để nạp 55H vào thanh ghi A. Lệnh thứ
hai dùng để nạp đòa chỉ của ô nhớ cần lưu giá trò 55H vào con trỏ
dữ liệu DPTR. Lệnh thứ ba sẽ di chuyển nội dung thanh ghi A (là
55H) vào ô nhớ RAM bên ngoài có đòa chỉ chứa trong DPTR (là

1000H).
• Các thanh ghi Port (Port Register):
- Các Port của 8951 bao gồm Port0 ở đòa chỉ 80H, Port1 ở đòa
chỉ 90H, Port2 ở đòa chỉ A0H, và Port3 ở đòa chỉ B0H. Tất cả các
Port này đều có thể truy xuất từng bit nên rất thuận tiện trong khả
năng giao tiếp.
• Các thanh ghi Timer (Timer Register):
- 8951 có chứa hai bộ đònh thời/ bộ đếm 16 bit được dùng cho
việc đònh thời được đếm sự kiện. Timer0 ở đòa chỉ 8AH (TLO: byte
thấp ) và 8CH (THO: byte cao). Timer1 ở đòa chỉ 8BH (TL1: byte thấp)
và 8DH (TH1: byte cao). Việc khởi động timer được SET bởi 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 .
• Các thanh ghi Port nối tiếp (Serial Port Register) :
- 8951 chứa một Port nối tiếp 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 giao tiếp nối tiếp
với các IC khác. Một thanh ghi đệm dữ liệu nối tiếp (SBUF) ở đòa
chỉ 99H sẽ giữ cả hai dữ liệu truyền và dữ liệu nhập. Khi truyền
dữ liệu ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF. Các mode vận
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.
• Các thanh ghi ngắt (Interrupt Register):
- 8951 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 bò 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ỉ A8H. Cả hai được đòa chỉ hóa
từng bit.
• Thanh ghi điều khiển nguồn PCON (Power Control Register):
- Thanh ghi PCON không có bit đònh vò. Nó ở đòa chỉ 87H chứa
nhiều bit điều khiển. Thanh ghi PCON được tóm tắt như sau:
SVTH : PHẠM NGỌC CƯỜNG


38


lUẬN VĂN TỐT NGHIỆP

gVHD : nGUYỄN CHÍ NGHĨA

√ Bit 7 (SMOD) : Bit có tốc độ Baud ở mode 1, 2, 3 ở Port nối
tiếp khi set.
√ Bit 6, 5, 4 : Không có đòa chỉ.
√ Bit 3 (GF1) : Bit cờ đa năng 1.
√ Bit 2 (GF0) : Bit cờ đa năng 2 .
√ Bit 1 (PD) : Set để khởi động mode Power Down và thoát để
reset.
√ Bit 0 (IDL) : Set để khởi động mode Idle và thoát khi ngắt
mạch hoặc reset.
Các bit điều khiển Power Down và Idle có tác dụng chính trong
tất cả các IC họ MSC-51 nhưng chỉ được thi hành trong sự biên dòch
của CMOS.
6. Bộ nhớ ngoài (external memory) :
- 8951 có khả năng mở rộng bộ nhớ lên đến 64K byte bộ
nhớ chương trình và 64k byte bộ nhớ dữ liệu ngoài. Do đó có thể
dùng thêm RAM và ROM nếu cần.
- Khi dùng bộ nhớ ngoài, Port0 không còn chức năng I/O nữa.
Nó được kết hợp giữa bus đòa chỉ (A0-A7) và bus dữ liệu (D0-D7)
với tín hiệu ALE để chốt byte của bus đòa chỉ khi bắt đầu mỗi chu
kỳ bộ nhớ. Port được cho là byte cao của bus đòa chỉ.
Truy xuất bộ nhớ mã ngoài (Accessing External Code
Memory) :

- Bộ nhớ chương trình bên ngoài là bộ nhớ ROM được cho
phép của tín hiệu PSEN\. Sự kết nối phần cứng của bộ nhớ
EPROM như sau:
D0 ÷ D7

Port 0
74HC373

EA8951

O
G

ALE

A0 ÷ A7

D
EPROM

A8 ÷ A15
OE

Port 2

- Trong một chu kỳ máy tiêu biểu, tín hiệu ALE tích 2 lần. Lần
thứ nhất cho phép 74HC373 mở cổng chốt đòa chỉ byte thấp, khi ALE
xuống 0PSEN
thì byte thấp và byte cao của bộ đếm chương trình đều có
nhưng EPROM chưa xuất vì PSEN\ chưa tích cực, khi tín hiệu lên một

trở lại thì Port 0 đã có dữ liệu là Opcode. ALE tích cực lần thứ hai
được giải thích tương tự và byte 2 được đọc từ bộ nhớ chương trình.

SVTH : PHẠM NGỌC CƯỜNG

39


lUẬN VĂN TỐT NGHIỆP

gVHD : nGUYỄN CHÍ NGHĨA

Nếu lệnh đang hiện hành là lệnh 1 byte thì CPU chỉ đọc Opcode, còn
byte thứ hai bỏ đi.
• Truy xuất bộ nhớ dữ liệu ngoài (Accessing External Data
Memory):
- Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được đọc hoặc
ghi khi được cho phép của tín hiệu RD\ và WR. Hai tín hiệu này nằm
ở chân P3.7 (RD) và P3.6 (WR). Lệnh MOVX được dùng để truy xuất
bộ nhớ dữ liệu ngoài và dùng một bộ đệm dữ liệu 16 bit (DPTR),
R0 hoặc R1 như là một thanh ghi đòa chỉ.
- Các RAM có thể giao tiếp với 8951 tương tự cách thức như
EPROM ngoại trừ chân RD\ của 8951 nối với chân OE\ (Output
Enable) của RAM và chân WR\ của 8951 nối với chân WE\ của
RAM. Sự nối các bus đòa chỉ và dữ liệu tương tự như cách nối của
EPROM.

Port 0

EA\

8951

D0 ÷ D7

74HC373

O

RAM
A0 ÷ A7

D

G
ALE

Port 2

A8 ÷ A15
OE\
WE\

RD\
WR\

• Sự giải mã đòa chỉ (Address Decoding):

SVTH : PHẠM NGỌC CƯỜNG

40



lUẬN VĂN TỐT NGHIỆP

gVHD : nGUYỄN CHÍ NGHĨA

- Sự giải mã đòa chỉ là một yêu cầu tất yếu để chọn
EPROM, RAM, 8279, … Sự giải mã đòa chỉ đối với 8951 để chọn
các vùng nhớ ngoài như các vi điều khiển. Nếu các con EPROM
hoặc RAM 8K được dùng thì các bus đòa chỉ phải được giải mã để
chọn các IC nhớ nằm trong phạm vi giới hạn 8K: 0000H÷1FFFH,
2000H÷3FFFH, . .
- Một cách cụ thể, IC giải mã 74HC138 được dùng với
những ngõ ra của nó được nối với những ngõ vào chọn Chip CS
(Chip Select) trên những IC nhớ EPROM, RAM, … Hình sau đây cho
phép kết nối nhiều EPROM và RAM.

SVTH : PHẠM NGỌC CƯỜNG

41


lUẬN VĂN TỐT NGHIỆP

gVHD : nGUYỄN CHÍ NGHĨA
Address Bus (A0 ÷ 15)

Data Bus (D0 ÷ D7)

74HC138


PSEN\

RD\

D0 - D7
OE
EPROM
A0 ÷ A12
8K Bytes
CS

WR\

CS

CS

CS

C
B
A
E
E0
E1

0
1
2

3
4
5
6
7

OE D0 - D7
W
RAM
A0 ÷ A12
8K Bytes
CS

CS

Select other
EPROM/RAM

Address Decoding (Giải mã đòa chỉ)
• Sự đè lên nhau của các vùng nhớ dữ liệu ngoài:
- Vì bộ nhớ chương trình là ROM, nên nảy sinh một vấn đề bất
tiện khi phát triển phần mềm cho vi điều khiển. Một nhược điểm
chung của 8951 là các vùng nhớ dữ liệu ngoài nằm đè lên nhau, vì
tín hiệu PSEN\ được dùng để đọc bộ nhớ mã ngoài và tín hiệu RD\
được dùng để đọc bộ nhớ dữ liệu, nên một bộ nhớ RAM có thể
chứa cả chương trình và dữ liệu bằng cách nối đường OE\ của
RAMù đến ngõ ra một cổng AND có hai ngõ vào PSEN\ và RD\. Sơ
đồ mạch như hình sau cho phép cho phép bộ nhớ RAM có hai chức
năng vừa là bộ nhớ chương trình vừa là bộ nhớ dữ liệu:


SVTH : PHẠM NGỌC CƯỜNG

42


lUẬN VĂN TỐT NGHIỆP

gVHD : nGUYỄN CHÍ NGHĨA
RAM
WR\

WR\
RD\

OE\

PSEN\

Overlapping the External code and data space
-Vậy một chương trình có thể được tải vào RAM bằng cách
xem nó như bộ nhớ dữ liệu và thi hành chương trình băng cách xem
nó như bộ nhớ chương trình.
Hoạt động Reset:
- 8951 có ngõ vào reset RST tác động ở mức cao trong khoảng
thời gian 2 chu kỳ xung máy, sau đó xuống mức thấp để 8951 bắt
đầu làm việc. RST có thể kích bằng tay bằng một phím nhấn thường
hở, sơ đồ mạch reset như sau:
+5V
Reset
100Ω


10 µF
RST
8.2 KΩ

Reset bằng tay.
Trạng thái của tất cả các thanh ghi trong 8951 sau khi reset hệ thống
được tóm tắt như sau:

Thanh ghi
Đếm chương trình PC
Thanh ghi tích lũy A
Thanh ghi B
Thanh ghi thái PSW
SP
DPRT
SVTH : PHẠM NGỌC CƯỜNG

Nội dung
0000H
00H
00H
00H
07H
0000H
43


lUẬN VĂN TỐT NGHIỆP


gVHD : nGUYỄN CHÍ NGHĨA

Port 0 đến port 3
IP
IE
Các thanh ghi đònh
thời
SCON SBUF
PCON (MHOS)
PCON (CMOS)

FFH
XXX0 0000 B
0X0X 0000 B
00H
00H
00H
0XXX XXXXH
0XXX 0000 B

-Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được
reset tai đòa chỉ 0000H. Khi ngõ vào RST xuống mức thấp, chương trình luôn
bắt đầu tại đòa chỉ 0000H của bộ nhớ chương trình. Nội dung của RAM trên
chip không bò thay đổi bởi tác động của ngõ vào reset.
7. Hoạt động timer của 8951:
Các Timer của 8951 được truy xuất bởi việc dùng 6 thanh ghi
chức năng đặc biệt như sau :
Timer SFR
TCON
TMOD

TL0
TL1
TH0
TH1

Purpose
Control
Mode
Timer 0 low-byte
Timer 1 low-byte
Timer 0 high-byte
Timer 1 high-byte

Address
88H
89H
8AH
8BH
8CH
8DH

Bit-Addressable
YES
NO
NO
NO
NO
NO

a. Thanh ghi điều khiển chế độ timer TMOD (timer mode

register) :
- Thanh ghi mode gồm hai nhóm 4 bit là: 4 bit thấp đặt mode hoạt
động cho Timer 0 và 4 bit cao đặt mode hoạt động cho Timer 1. 8 bit của
thanh ghi TMOD được tóm tắt như sau:
Bit
7

Name
GATE

Timer
1

6

C/T

1

5
4

M1
M0

1
1

SVTH : PHẠM NGỌC CƯỜNG


Description
Khi GATE = 1, Timer chỉ làm việc khi
INT1=1
Bit cho đếm sự kiện hay ghi giờ
C/T = 1 : Đếm sự kiện
C/T = 0 : Ghi giờ đều đặn
Bit chọn mode của Timer 1
Bit chọn mode của Timer 1
44


lUẬN VĂN TỐT NGHIỆP

3
2
1
0

GATE
C/T
M1
M0

gVHD : nGUYỄN CHÍ NGHĨA

0
0
0
0


Bit cổng của Timer 0
Bit chọn Counter/Timer của Timer 0
Bit chọn mode của Timer 0
Bit chọn mode của Timer 0

Hai bit M0 và M1 của TMOD để chọn mode cho Timer 0 hoặc Timer
1:
M1
0
0
1
1

M0
0
1
0
1

MODE
0
1
2
3

DESCRIPTION
Mode Timer 13 bit (mode 8048)
Mode Timer 16 bit
Mode tự động nạp 8 bit
Mode Timer tách ra :

Timer 0 : TL0 là Timer 8 bit được điều
khiển bởi các bit của Timer 0. TH0 tương
tự nhưng được điều khiển bởi các bit của
mode Timer 1.
Timer 1 : Được ngừng lại.

- TMOD không có bit đònh vò, nó thường được LOAD một lần
bởi phần mềm ở đầu chương trình để khởi động mode Timer. Sau đó
sự đònh giờ có thể dừng lại, được khởi động lại như thế bởi sự truy
xuất các thanh ghi chức năng đặc biệt của Timer khác.
b. Thanh ghi điều khiển timer TCON (timer control register):
- Thanh ghi điều khiển bao gồm các bit trạng thái và các bit điều
khiển cho Timer 0 và Timer 1. Thanh ghi TCON có bit đònh vò. Hoạt động
của từng bit được tóm tắt như sau :

Bit

Symbol

TCON.7

TF1

Bit
Address
8FH

TCON.6

TR1


8EH

TCON.5

TF0

8DH

SVTH : PHẠM NGỌC CƯỜNG

Description
Cờ tràn Timer 1 được set bởi phần
cứng ở sự tràn, được xóa bởi phần
mềm hoặc bởi phần cứng khi các vectơ
xử lí đến thủ tục phục vụ ngắt ISR
Bit điều khiển chạy Timer 1 được set
hoặc xóa bởi phần mềm để chạy
hoặc ngưng chạy Timer.
Cờ tràn Timer 0(hoạt động tương tự TF1)
45


lUẬN VĂN TỐT NGHIỆP

TCON.4
TCON.3

TR0
IE1


8CH
8BH

TCON.2

IT1

8AH

TCON.1
TCON

IE0
IT0

89H
88H

gVHD : nGUYỄN CHÍ NGHĨA

Bit điều khiển chạy Timer 0 (giống TR1)
Cờ kiểu ngắt 1 ngoài. Khi cạnh xuống
xuất hiện trên INT1 thì IE1 được xóa
bởi phần mềm hoặc phần cứng khi CPU
đònh hướng đến thủ tục phục vụ ngắt
ngoài.
Cờ kiểu ngắt 1 ngoài được set hoặc xóa
bằng phấn mềm bởi cạnh kích hoạt bởi
sự ngắt ngoài.

Cờ cạnh ngắt 0 ngoài
Cờ kiểu ngắt 0 ngoài.

c. Các nguồn xung nhòp cho timer (clock sources):
- Có hai nguồn xung clock có thể đếm giờ là sự đònh giờ bên
trong và sự đếm sự kiện bên ngoài. Bit C/T trong TMOD cho phép
chọn 1 trong 2 khi Timer được khởi động.
On Chip
Oscillator
Crystal

÷12

Timer
Clock

T0 or T1
pin
C/T

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

Sự bấm giờ bên trong (Interval Timing):
- Nếu bit C/T = 0 thì hoạt động của Timer liên tục được chọn
vào bộ Timer được ghi giờ từ dao động trên Chip. Một bộ chia 12
được thêm vào để giảm tần số clock đến 1 giá trò phù hợp với
các ứng dụng. Các thanh ghi TLx và THx tăng ở tốc độ 1/12 lần
tần số dao động trên Chip. Nếu dùng thạch anh 12MHz thì sẽ đưa đến
tốc độ clock 1MHz.

- Các sự tràn Timer sinh ra sau một con số cố đònh của
những xung clock, nó phụ thuộc vào giá trò khởi tạo được LOAD
vào các thanh ghi THx và TLx.
 Sự đếm các sự kiện (Event Counting) :
- Nếu bit C/T = 1 thì bộ Timer được ghi giờ từ nguồn bên
ngoài trong nhiều ứng dụng, nguồn bên ngoài này cung cấp 1 sự
đònh giờ với 1 xung trên sự xảy ra của sự kiện. Sự đònh giờ là sự
đếm sự kiện. Con số sự kiện được xác đònh trong phần mềm bởi


SVTH : PHẠM NGỌC CƯỜNG

46


lUẬN VĂN TỐT NGHIỆP

gVHD : nGUYỄN CHÍ NGHĨA

việc đọc các thanh ghi Timer. Tlx/THx, bởi vì giá trò 16 bit trong các
thanh này tăng lên cho mỗi sự kiện.
- Nguồn xung clock bên ngoài đưa vào chân P3.4 là ngõ nhập
của xung clock bởi Timer 0 (T0) và P3.5 là ngõ nhập của xung clock
bởi Timer 1 (T1).
- Trong các ứng dụng đếm các thanh ghi Timer được tăng trong
đáp ứng của sự chuyển trạng thái từ 1 sang 0 ở ngõ nhập Tx. Ngõ
nhập bên ngoài được thử trong suốt S5P2 của mọi chu kỳ máy: Do
đó khi ngõ nhập đưa tới mức cao trong một chu kỳ và mức thấp
trong một chu kỳ kế tiếp thì bộ đếm tăng lên một. Giá trò mới
xuất hiện trong các thanh ghi Timer trong suốt S5P1 của chu kỳ theo

sau một sự chuyển đổi. Bởi vì nó chiếm 2 chu kỳ máy (2µs) để
nhận ra sự chuyển đổi từ 1 sang 0, nên tần số bên ngoài lớn nhất
là 500KHz nếu dao động thạch anh 12 MHz.
8 .Hoạt động port nối tiếp :
8951 có một port nối tiếp trong chip có thể hoạt động ở nhiều
chế độ trên một dãy tần số rộng. Chức năng chủ yếu là thực
hiện chuyển đổi song song sang nối tiếp với dữ liệu xuất và
chuyển đổi nối tiếp sang song song với dữ liệu nhập.
Port nối tiếp cho hoạt động song công (full duplex: thu và phát
đồng thời) và đệm thu (receiver buffering) cho phép một ký tự sẽ
được thu và được giữ trong khi ký tự thứ hai được nhận. Nếu CPU
đọc ký tự thứ nhất trước khi ký tự thứ hai được thu đầy đủ thì dữ
liệu sẽ không bò mất.
Hai 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 là: SBUF và SCON. Bộ đệm port nối tiếp (SBUF)
ở điạ chỉ 99H nhận dữ liệu để thu hoặc phát. Thanh ghi điều khiển
port nối tiếp (SCON) ở điạ chỉ 98H là thanh ghi có điạ chỉ bit chứa
các bit trạng thái và các bit điều khiển. Các bit điều khiển đặt chế
độ hoạt động cho port nối tiếp, và các bit trạng thái Báo cáo kết
thúc việc phát hoặc thu 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ể lập trình để tạo ngắt.
Các thanh ghi và các chế độ hoạt động của port nối tiếp:
a. Thanh ghi điều khiển port nối tiếp:
Chế độ hoạt động của port nối tiếp được đặt bằng cách ghi vào thanh
ghi chế độ port nối tiếp (SCON) ở đòa chỉ 98H .Sau đây các bản tóm tắt
thanh ghi SCON và các chế độ của port nối tiếp :
Bit
SCON.7
SCON.6



hiệu
SM0
SM1

Đòa
chỉ
9FH
9EH

Mô tả
-Bit 0 của chế độ port nối tiếp
-Bit 1 của chế độ port nối tiếp

SVTH : PHẠM NGỌC CƯỜNG

47


lUẬN VĂN TỐT NGHIỆP

SCON.5

SM3

9DH

SCON.4
SCON.3


REN
TB8

9CH
9BH

SCON.2
SCON.1

RB8
TI

9AH
99H

SCON.0

RI

98H

gVHD : nGUYỄN CHÍ NGHĨA

-Bit 2 của chế độ port nối tiếp . Cho phép truyền
thông xử lý trong các chế độ 2 và 3, RI sẽ
không bò tác động nếu bit thứ 9 thu được là 0
-Cho phép bộ thu phải được đặt lên 1 để thu các
ký tự
-Bit 8 phát, bit thứ 9 được phát trong chế độ 2 và
3, được đặt và xóa bằng phần mềm.

-Bit 8 thu, bit thứ 9 thu được
- Cờ ngắt phát. Đặt lên 1 khi kết thúc phát ký
tự, được xóa bằng phần mềm
-Cờ ngắt thu. Đặt lên 1 khi kết thúc thu ký tự,
được xóa bằng phần mềm

Các chế độ port nối tiếp :
SM0
0
0
1
1

SM1
0
1
0
1

Chế độ
0
1
2
3

Mô tả
Thanh ghi
dòch
UART 8 bit
UART 9 bit

UART 9 bit

Tốc độ baud
Cố đònh (Fosc /12 )
Thay đổi ( đặt bằng timer )
Cố đònh (Fosc /12 hoặc Fosc/64
)
Thay đổi ( đặt bằng timer )

b. Tốc độ baud port nối tiếp
Như đã nói, tốc độ baud cố đònh ở các chế độ 0 và 2.
Trong chế độ 0 nó luôn luôn là tần số dao động trên chip được
chia cho 12. Thông thường thạch anh ấn đònh tần số dao động
trên chip nhưng cũng có thể sử dụng nguồn xung nhòp khác.

Dao động
trên chip

÷ 12
tốc độ baud
a. Chế độ 0
÷ 64

Dao động
trên chip

÷ 32
b. Chế độ 2

SVTH : PHẠM NGỌC CƯỜNG


SMOD = 0
XUNG NHỊP
SMOD=1 TỐC
độ baud

48


×