— Khi lập trình cho ROM trong chịp thì Port 0 đóng vai trò là ngõ vào của _ Ở chế độ mặc định khi reset thì các chân Port P1.0 — P1.7 được cầu hình là port xuất đữ liệu.. Muốn các chân P
Trang 1CHƯƠNG 2
KHAO SAT CHIP VI DIEU KHIEN 89852
2.1 GIỚI THIÊU CHUNG
Chip vi diéu khién 89852 thuộc họ MCS-51 là họ vi điều khiển của hãng
Intel Chip 89S52 có một số đặc trưng cơ bản sau:
_ Bộ nhớ chương trình bén trong: 8 KB (ROM)
_ Bộ nhớ đữ liệu bén trong: 256 byte (RAM)
_ Bộ nhớ chương trình bên ngoài: 64 KB (RAM)
_ Bộ nhớ dữ liệu bên ngoài: 64 KB (RAMI
_ 4 port xuat nhap (I/O port) 8 bit
_ 3 bộ dinh thoi 16 bit
_ Mach giao tiếp nối tiếp
_ Bộ xử lý bit (thao tác trên các bit riêng lẻ)
_ 210 vị trí nhớ được định địa chỉ, mỗi vị trí 1 bit
_ Nhân / Chia trong 4s
Trang 22.2 CÁC CHÂN CỦA CHIP §9S52
INTERRUPT, SERIAL PORT
ANO TIMER BLOCKS
LEPROG 4| TƯỜNG | INSTRUCTION | ¥ ¥ : p>) nuAaprr lkiO——k |
EZ/v„ ——| CONTROL | NESISTER [ 1! ‡ q + "|
'
1 | WATCH PORT 3 PORT 1 ISP PROGRAM '
DOG LATCH LATCH PORT +-> LOGIC
( | PORT 3 DRIVERS = PORT 1 DRIVERS |
KV Cứ ccs! cal contin > Che - hanh ốm nha Ê 0 rw ates lec coset andl mgt is eck een tS CS =2 —=_- =2 cy k6 emesis haat Nah tar duy Av la CỔ tế kế adeGctbsamaoDaockfciades Sơ thêno 8
|
=F P3.0 - P37 P10 - PLT
"I4
Sơ đồ 2.1: Sơ đồ khối của chip 89S52
_ OSC (Oscillator): Mạch dao động-> tạo tín hiệu xung clock cung cấp cho các khối trong chip hoạt động
_ Interrupt control: Diéu khiển ngắt -> nhận tín hiệu ngắt từ bên ngoài
(NT0\, INT1)), từ bộ định thời (Timer 0, Timer 1) và từ công nối tiếp (Serial port), lần lượt đưa các tín hiệu ngắt này đến CPU để xử lý.
Trang 3_ Other reglsters: Các thanh ghi khác -> lưu trữ dữ liệu của các port xuất/nhập, trạng thái làm việc của các khối trong chip trong suốt quá trình hoạt động của hệ thống
— RAM (Random Access Memory): Bộ nhớ dữ liệu trong chip -> lưu trữ
các dữ liệu
_ ROM (Read Only Memory): Bộ nhớ chương trình trong chip -> lưu trữ chương trình hoạt động của chịp
_ LO port (In/Out ports): Các port xuất/nhập -> điều khiển việc xuất nhập
dữ liệu dưới dạng song song giữa trong và ngoài chip thông qua các port P0, P1, P2, P3
_ Serial port: Port nỗi tiếp -> điều khiển việc xuất nhập dữ liệu dưới dạng nối tiếp giữa trong và ngoài chip thông qua các chân TxD, RxD
_ Timer 0, Timer 1: Bộ định thời 0, 1 -> dùng để định thời gian hoặc đếm
sự kiện (đếm xung) thông qua các chân T0, T1
Trang 42.2.2 Sơ đồ chân và chức nănø các chân của chip 89852
>>
(T2) P1.0 F] 1 40 0 vec (12 EX) P1102 39 1] PO.0 (ADO)
P1203 38 [L]P0.1 (AD1) Pi304 37 [IP0 2 (AD2) P1405 36 LIP0.3 (AD3) (MOSI) P1.5 F] 6 35 [FIP0.4 (AD4) (MISO) P1607 34 L]P0 5 (AD5) (SCK) P1.7 L]8 33 L]P06 (ADS6) RST r]3 32 FIP0.7 (AD7)
(TXD) P3.1 L] 11 30 []ALE/PROG (INTO) P3.2 0 12 29 [IPSEN (INT1) P3.30 13 28 L]P27 (A15) (T0) P3.4 LỊ 14 27 []P26 (A14) (T1) P35 LÌ 15 26 LIP2 5 (A13) (WR) P36 [| 16 25 []P24{A12) (RD) P3.7 L| 17 24 P2.3 (A11) XTAL2 | 18 23 [F]P22 (A10) XTAL1 F]| 13 22 [1P2.1 (A9) GND [] 20 21 1P20 (A8)
Sơ đồ 2.2: Sơ đồ chân của chip 89S52 2.2.2.1 Port 0
_ Port0 (P0.0 — P0.7) có số chân từ 32 — 39
_ Port 0 c6 hai chức năng:
e Port xuat nhap di ligu (P0.0 — P0.7)> khéng st dung bộ nhớ ngoai
e Bus dia chi byte thap va bus dit liéu da hop (ADO - AD7)—> có sử
dụng bộ nhớ ngoài
* Lưu ý: Khi Port 0 đóng vai trò là port xuất nhập dữ liệu thì phải sử
dụng các điện trở kéo lên bên ngoài
_ Ở chế độ mặc định (khi reset) thì các chân Port 0 (P0.0 — P0.7) được cầu hình là port xuất dữ liệu, Muốn các chân Port 0 làm port nhập dữ liệu thi cần
Trang 5phải lập trình lại, bằng cách ghi mức logic cao (mức 1) đến tất cả các bit của
port trước khi bắt đầu nhập đữ liệu từ port
— Khi lập trình cho ROM trong chịp thì Port 0 đóng vai trò là ngõ vào của
_ Ở chế độ mặc định (khi reset) thì các chân Port (P1.0 — P1.7) được cầu
hình là port xuất đữ liệu Muốn các chân Port 1 làm port nhập dữ liệu thì cần
phải lập trình lại, bằng cách ghi mức logic cao (mức 1) đến tất cả các bỉt của
port trước khi bắt đầu nhập dữ liệu từ port
_ Khi lap trinh cho ROM trong chip thi Port 1 đóng vai trò là ngõ vào của
địa chỉ byte thấp (A0 — A7)
_ Port 2 (P2.0 - P2.7) có số chân từ 21 — 28
_ Port 2 co hai chức năng:
e Port xuat nhap di liéu (P2.0 - P2.7) -› không sử dụng bộ nhớ
ngoài
e Bus địa chỉ byte cao (A8 — A15) — có sử dụng bộ nhớ ngoài _ Ở chế độ mặc định (khi reset) thì các chân Port 2 (P2.0 — P2.7) được cầu hình là port xuất đữ liệu Muốn các chân Port 2 làm port nhâp dữ liêu thì cần phải lập trình lại, bằng cách ghi mức logic cao (mức 1) đến tất cả các bit của
port trước khi bắt đầu nhập đữ liệu từ port
_ Khi lập trình ROM trong chip thi Port 2 đóng vai trò là ngõ vào của địa
chỉ byte cao (A8 — A11) và các tín hiệu điều khiến
_ Port 3 (P3.0 — P3.7) có số chân tù 10 — 17
_ Port 3 có hai chức năng:
Trang 6e Port xuat nhap dữ liệu (P3.0 - P3.7)-› không sử dụng bộ nhớ
ngoài hoặc các chức năng đặc biệt
e© Các tín hiệu điều khiển -> có sử dụng bộ nhớ ngoài hoặc các
chức năng đặc biệt
_ Ở chế độ mặc định (khi reset) thì các chân Port 3 (P3.0 — P3.7) được cầu hình là port xuất đữ liệu Muốn các chân Port 3 làm port nhập dữ liệu thì cần phải lập trình lai, bang cách ghỉ mức logic cao (mức 1) đến tất cá các bit của
port trước khi bắt đầu nhập dữ liệu từ port
—_ Khi lập trình cho ROM trong chịp thì Port 3 đóng vai trò là ngõ vào của
các tín hiệu diéu khién
_ Chức năng các chân Port 3:
Bit Tên Dia chi bit Chức năng
H3 RxD BOH Chân nhận dữ liệu của port nồi tiếp
P31 | TxD BIH Chân phát đữ liện của port nối tiếp
P3.2 | INTO\ B2H Ngõ vào ngắt ngoài 0
P33 |INTI\ B3H Ngõ vào ngắt ngoài 1
P3.4 TO B4H Ngõ vào của bộ định thời/đềm 0
P3.5 Tl BH Ngõ vào của bộ định thoi/dém 1
P3.6 | WR\ B6H Điều khiên ghi vào RAMI ngoài
e©_ Là tín hiệu xuất, tích cực mức thấp
PSEN\=0 — trong thời gian CPU tìm — nạp lệnh từ ROM ngoài
PSEN\ = 1 — CPU su dung ROM trong (không sử dụng ROM ngoài)
Trang 7_ Khi sử dụng bộ nhớ chương trình bên ngoài, chân PSEN\ thường được nối với chân OE\ của ROM ngoài dé cho phép CPU đọc mã lệnh từ ROM ngoai
2.2.2.6 Chan ALE\
_ ALE (Address Latch Enable): cho phép chốt địa chỉ, chân số 30
_ Chức năng:
e Là tín hiệu cho phép chốt địa chỉ để thực hiện việc giải đa hợp
cho bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 —- AD7)
e© Là tín hiệu xuất tích cực mức cao
ALE = 0 — trong thời gian bus AD0 — AD7 dong vai tro là ngõ vào của xung lập trình (PGM
_ Sose
f,,, (MHz): tần số xung tại chân ALE
fos„ (MHz): tần số dao động trên chip (tần số thạch anh) _ Khi lệnh lẫy từ đữ liệu từ RAM ngoài (MOVX) được thực hiện thì một xung ALE bị bỏ qua
EA\=0— chip 89S52 sử dụng chương trình của ROM ngoài
EA\= 1-> chip 89S52 sử dụng chương trình của ROM trong
— Khi lập trình cho ROM trong chip thi chan EA đóng vai trò là ngõ vào
của điện áp lập trình (V,„ = 12V — 12,5V cho họ 89xx; 21V cho ho 80xx,
87xx)
vx Lưu ý: Chân EA\ phải được nối lên ƒ„„ (nếu sử dụng chương trình của ROM trong) hoặc nối xuống GND (nếu sử dụng chương trình của ROM ngoài), không bao giờ được phép bỏ trống chân này.
Trang 82.2.2.8 Chân XTALI, XTAL2
_ XTAL (Crystal): tỉnh thể thạch anh, chân số 18 — 19
_ Chức năng:
e Dung để nối với thạch anh hoặc mạch dao động tạo xung clock bên ngoài, cung cấp tín hiệu xung clock cho chip hoạt động
e XTAL]l—› ngõ vào mạch tạo xung clock trong chịp
Két néi thach anh Kết nối mạch dao
dao động bên ngoài động bên ngoài
Sơ đồ 2.3: Sơ đồ kết nối thạch anh và mạch dao động bên ngoài
RST =0— Chip §9S52 hoạt động bình thường
RST = 1-> Chip 89852 dugc thiét lap trạng thái ban dau
t orser (Hs): thoi gian reset fc (MHz): tan số thạch anh
Tacume (us ) : chu ky may
10
Trang 92.3 CAU TRUC CAC PORT XUẤT NHAP CHIP 89S52
Khả năng fanout ( số lượng tải đầu ra) của từng chân port chip 89S52 là:
11
Trang 10Đối với các chân
của Port 0 (khi là
% Hệ thông bus bên trong cát \ pts “2
`
Nec §? Điện trở kéo I
3 Š I< lên bên ngoài Đọc bộ \ Điện trở Đọc chân d
chốt kéo lên P ort LỊI —Ƒ | Chân
- port
Ghibo_|° °
chốt ad
Ở chế độ mặc định (khi reset) thi tat
cả các chân của port luôn luôn được
cấu hình là pøz/ xuất dữ liệu
Hình 2.1: Cầu trúc bên trong của các port xuất nhập
e Ở chế độ mặc định (khi reset) thì tất cả các chân của các port (P0 —
P3) được cấu hình là port xuất dữ liệu
e Muốn các chân port của chip 89S52 làm port nhập dữ liệu thì ta cần phải được lập trình lại, bằng cách ghi mức logic cao (mức 1) đến tất
cả các bit (các chân) của port trước khi bắt đầu nhập đữ liệu từ port
e Các chân trong cùng một port không nhất thiết phải có cùng kiểu cấu hình (port xuất hoặc port nhập) Nghĩa là trong cùng một port có thê
có chân dùng đề nhập dữ liệu, có thể có chân dùng để xuất đữ liệu Điêu này là tùy thuộc vào nhu câu và mục địch của người lập trình
12
Trang 11Quá trình ghi chân port (xuất đữ liệu ra chân port)
Hệ thống bus bên trong 2s
[1] | Đọc bộ \ Điện trở < Doc chan
Trang 12Quá trình đọc bộ chốt (kiểm tra đữ liệu tại chân port)
đọc bộ chốt
o_ Quá trình đọc chân port: Khi ta sử dụng các lệnh MOV, ADD,
Dữ liệu nhận được sau khi thực hiện quá trình đọc là dữ liệu hiện tại ở các chân port
o_ Quá trình đọc bộ chốt: Khi ta sử dụng các lệnh ANL, Orl, XRL, CPL, INC, DEC, DINZ, JBC, CLR bit, SETB bit, MOV bit Dir
liệu nhận được sau khi thực hiện quá trình đọc là dữ liệu hiện tại
ở các bộ chốt (là các dữ liệu đã được ghi ra port tại thời điểm
trước đó bởi quá trình ghi chân port), chứ không phải là dữ liệu hiện tại ở các chân port Cho nên, nếu tại thời điểm thực hiện quá trình đọc mà dữ liệu tại các chân port có bị thay đôi đi chăng nữa thì đữ liệu đọc về cũng không được cập nhật
14
Trang 132.4 TO CHUC BO NHO CUA CHIP 89852
_ B6 vi xt lý-> có không gian bộ nhớ chung cho dữ liệu và chương trình
Chương trình —>
Dix id u heu ——> L_J xế" RAM —> CPU thực thi
-> chương trình và dữ liệu nằm chung trên RAM trước khi đưa vào CPU để thu thi
_ Bộ vi điêu khiên-> có không gian bộ nhớ riêng cho dữ liệu và chương
Hình 2.5: Không gian bộ nhớ của chip 89552
Bô nhớ ngoài chip
Trang 14E7 |E6 | E5 | E4 | E3 | E2 |EI | E0
B7 [h6 |Bš[B4|B3|B2 [B1 [B0
AF| = | = |AC|AB|AA |A9|A®
A7|A6|A5|A4|A3]A2[Al [AO
Không định địa chỉ bit
OF [9E[9D[9C]9B[9A [99 [98
97 [96 [95 [94 | 93 [92 [91 [90
Không định dia chi bit
Khéng dinh dia chi bit
Thanh ghi chức nắng đặc biệt)
Hình 2.6: Bộ nhớ dữ liệu trên chip 89S52
A PSW
IP
IE P2 SBUF SCON
Pi
THi THO T11 TLO TMOD
TCON
PCON DPH DPL
SP
lồ
Trang 152.4.1 Bộ nhớ trong
Bộ nhớ chương trình Day thanh ghi
(SQH-FFH)
2.4.1.1 Bộ nhớ chương trình (ROM)
_ Dùng để lưu trữ chương trình điều khiển cho chip 89S52 hoạt động
_ Chip 89852 cé 8 KB ROM trong, dia chỉ truy xuất: 000H - FFEFH
2.4.1.2 Bộ nhớ dữ liệu (RAM)
_ Dùng để lưu trữ các dữ liệu và tham số
_ Chip 89S52 có 256 byte RAM trong, địa chỉ truy xuất: 00H - 7FH Hai đặc tính cần chú ý là:
> Các thanh ghi và các port xuất nhập đã được định vị (xác định)
trong bộ nhớ và có thể 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ộ Microcontroller khác
_ RAM bén trong chip 89S52 được phân chia như sau:
“ Các bank thanh ghi có địa chỉ từ 00H đến 1FH
= RAM dia chi hda ting bit có địa chỉ từ 20H đến 2FH
= RAM da dụng từ 30H đến 7FH
= Các thanh ghi chức năng đặc biệt từ 80H đến FFH
“+ RAM da dung:
_ Mặc dù trên hình vẽ cho thấy 80 byte đa dụng chiếm các địa chỉ từ
30H đến 7FH, 32 byte dưới từ 00H đến IFH cũng có thể dùng với mục đích
tương tự (mặc dù các địa chỉ này đã có mục đích khác)
17
Trang 16_ Moi địa chỉ trong vùng RAM đa dụng đều có thể truy xuất tự đo dùng kiểu địa chỉ trực tiếp hoặc gián tiếp
* RAM có thể truy xuất từng bit:
_ 89552 chứa 210 bit được địa chỉ hóa, trong đó có 128 bit có chứa
các byte chứa các địa chỉ từ 20F đến 2FH và các bit còn lại chứa trong nhóm
thanh ghi có chức năng đặc biệt
Ý tưởng truy xuất từng bit bằng phần mềm là các đặc tính mạnh của microcontroller xu ly chung Các bit có thê được đặt, xóa, AND, OR, , với 1 lệnh đơn Đa số các microcontroller xử lý đòi hỏi một chuỗi lệnh đọc — sửa — ghi dé đạt được mục đích tương tự Ngoài ra các port cũng có thể truy xuất
được từng bịt
_ 128 bit mà truy xuất từng bit này cũng có thê truy xuất như các byte
hoặc như các bit phụ thuộc vào lệnh được dùng
s* Các dãy thanh phi:
Gồm: 4 dãy x 8 thanh ghi Địa chỉ truy xuất: 00H — 1FH
Kiểu truy xuất đữ liệu Trực tiếp
RAM
dãy thanh ghi
Gian tiép Thanh ghi
-> cho phép truy xuất dữ liệu nhanh, lệnh truy xuất đơn giản và ngắn gọn Bảng số liệu dưới đây minh họa địa chỉ của các ô nhớ trong một dãy các
ký hiệu thanh ghi R0 — R7 được gán cho từng ô nhớ trong dãy tích cực
18