BÀI 2: PH N C NG C A VI ĐI U KHI N 8051 Ủ

3.1. C U TRÚC PH N C NG H VI ĐI U KHI N 8051

3.1.1.

GI Ớ các ch

I THI U CHUNG ng 1 và 2 đã gi ươ

Ở ứ ủ

ố ư i thi u v c u trúc bên trong và ch c năng c a các ứ ho t đ ng x lý d li u c a vi x lý và đi nghiên c u ớ ệ ạ ộ ề ấ ử ữ ệ ủ ử ự

kh i bên trong cũng nh trình t c th m t lo i vi x lý 8086. ạ ụ ể ộ ử

t k m t h th ng g m có: Khi s d ng vi x lý c n ph i thi ử ử ụ ầ ả ế ế ộ ệ ố ồ

B vi x lý. - ử ộ

- B b nh . ớ ộ ộ

- Các IC ngo i vi (các m ch c ng giao ti p). ế ạ ạ ổ

B nh dùng đ ch a ch ộ ươ ử

ng trình cho vi x lý th c hi n và ch a d li u x ự bên ngoài vào x lý và đi u khi n tr ớ ạ ấ ứ ữ ệ ể ữ ệ ừ ệ ử ề ử ở

ể ứ ể ế ớ lý, các IC ngo i vi dùng đ xu t nh p d li u t l ạ ậ i. Các kh i này liên k t v i nhau t o thành m t h th ng vi x lý. ạ ộ ệ ố ử ố

ầ ề ệ ố ể ế ầ

ứ ạ ộ ể ầ ơ ờ

ề Yêu c u đi u khi n càng cao thì h th ng càng ph c t p và n u yêu c u đi u khi n có đ n gi n ví d ch c n đóng m 1 đèn led theo m t th i gian yêu c u nào đó ụ ỉ ầ thì h th ng vi x lý cũng ph i có đ y đ các kh i trên. ở ầ ủ ệ ố ả ử ả ố

Đ k t n i các kh i trên t o thành m t h th ng vi x lý đòi h i ng i thi ạ ể ế ố ườ

t v t ố t c các thành ph n vi x lý, b nh , các thi ể ộ ệ ố ử ử ớ ầ

ế ề ấ ả ứ ạ

t k , ng i thi ế ườ ử ụ ề ể ậ ộ

ng x lý d li u theo byte ho c word trong khi đó các đ i t ặ ố ượ ề

ế ế t k ỏ ệ ph i r t hi u bi t b ngo i vi. H ộ ả ấ ạ ế ị th ng t o ra khá ph c t p, chi m nhi u không gian, m ch in, và v n đ chính là đòi ạ ố ề ấ ạ i s d ng hi u th t rõ v h th ng. M t lý do chính n a là vi h i ng ữ ề ệ ố ườ ỏ ể ng đi u khi n x lý th ừơ ử trong công nghi p th ng đi u khi n theo bit. ể ế ế ử ệ ữ ệ ườ ề

ứ ạ ộ ộ ớ

Chính vì s ph c t p nên các nhà ch t o đã tích h p m t ít b nh và m t s ế ạ ạ ộ ố ể t b ngo i vi cùng v i vi x lý t o thành m t IC g i là vi đi u khi n ợ ộ ự ạ ế ề ớ ọ ị

các thi ử (Microcontroller). Hình 3.1.1 so sánh h th ng vi x lý v i h th ng vi đi u khi n ể ệ ố ớ ệ ố ử ề

Khi vi đi u khi n ra đ i đã mang l i s ti n l ạ ự ệ ợ

ề ệ ờ ể ệ ử ụ ề ễ ỏ

ư ế

t nh ng đ i v i ng ể ng ki n th c quá nhi u nh ng ườ ử ụ ố ớ ứ ề t càng nhi u thì càng t ề ư ố ề i là d dàng s d ng trong đi u ử ụ i s d ng ph i hi u ể ả ườ ử ụ ườ ử i s ệ ử ụ i b t đ u thì vi c s d ng i s d ng vi x lý – dĩ nhiên ng ử ườ ắ ầ

khi n công nghi p, vi c s d ng vi đi u khi n không đòi h i ng ể bi t m t l ộ ượ ế d ng hi u bi ể ụ vi x lý là đi u r t khó. ế ề ấ ử

Có r t nhi u hãng ch t o đ ề ấ ượ ấ ổ ả

c vi đi u khi n, hãng s n xu t n i ti ng là t k . Có nhi u h vi đi u khi n mang các mã s khác ể ề ề ọ ế ố ề ể

ATMEL. Hãng Intel là nhà thi nhau, m t trong h n i ti ng là h MCS-51. ọ ổ ế ộ ế ạ ế ế ọ

Trong h MCS-51 thì vi đi u khi n đ u tiên là 80C31 không có b nh bên ầ ề ể ọ ộ ớ

trong là do không tích h p đ c. ợ ượ

1

Vi đi u khi n 8051 tích h p đ ượ ầ c 4 kbyte b nh Prom. Ch l p trìnnh 1 l n ỉ ậ ộ ớ

ề không th xóa đ l p trình l ể ể ậ ợ i đ c. ạ ượ ể

Vi đi u khi n 8751 tích h p đ c 4 kbyte b nh Eprom. Cho phép l p trình ề ợ ượ ậ ộ ớ

nhi u l n và xóa b ng tia c c tím. ề ầ ự ể ằ

Vi đi u khi n 8951 tích h p đ ợ ượ ằ c 4 kbyte b nh flash rom n p và xóa b ng ạ ộ ề

Data bus

CPU

CPU

ROM

RAM

RAM

ROM

Timer

I/O Port

Serial COM Port

General- Purpose Micro- processor

I/O

Timer

Serial COM Port

Address bus

(a) General-Purpose Microcessor System

(b) Microcontroller

i và nhanh chóng. Có th cho phép n p xóa hàng ngàn l n. ể ầ ớ ạ ể đi n m t cách ti n l ệ ợ ệ ộ

Hình 3.1.1 so sánh h th ng vi x lý v i h th ng vi đi u khi n ể ử ớ ệ ố ệ ố ề

ộ Song song v i h MCS-51 là h MCS-52 có 3 timer nhi u h n h MCS-51 m t ề ơ ọ

timer và dung l ọ ng b nh n i l n g p đôi t c là 8 Kbyte. ấ ớ ọ ộ ớ ộ ớ ứ ượ

ơ Hi n nay có r t nhi u vi đi u khi n th h sau có nhi u đ c tính hay h n, ế ệ ệ ề ể ề ấ ặ

nhi u thanh ghi h n, dung l ề ơ ng b nh l n h n. ớ ớ ộ ơ ề ượ

ụ Ứ ệ ố ề ề

ng d ng c a vi đi u khi n r t nhi u trong các h th ng đi u khi n công ể ề t, máy đi u hòa ấ ộ ề ể ậ ề ặ

ể nghi p, các dây chuy n s n xu t, các b đi u khi n l p trình, máy gi nhi ấ đ ng, … ủ ệ ề ả t đ , máy b m xăng t ệ ộ ự ộ ơ

c s n xu t vào năm 1980 ạ ượ ả ấ

Vi m ch t ng quát c a h MCS-51 là chip 8051 đ ọ ổ v i các thông s k thu t nh sau: ố ỹ ớ ủ ư ậ

4 KB ROM. -

128 byte RAM. -

4 port xu t nh p (I/O port) 8 bit. - ấ ậ

2 b đ nh th i 16 bit. - ộ ị ờ

M t c ng n i ti p. - ố ế ộ ổ

- Không gian nh ch ng trình ngoài 64 K. ớ ươ

- B x lý bit (thao tác trên các bit riêng r ). ộ ử ẽ

- 210 v trí nh đ c đ nh đ a ch , m i v trí m t bit. ị ỗ ị ộ ị ỉ

- ớ ượ ị Nhân/chia trong 4 m s.

Và sau đây là b ng các đ c tính k thu t c a h MCS-51 và MCS-52: ỹ ậ ủ ọ ả ặ

2

ROM RAM Chân I/O

Ký hi uệ AT89C51 AT89LV51 AT89C1051 AT89C2051 AT89C52 AT89LV52 4K 4K 1K 2K 8K 8K 128 128 64 128 128 128 32 32 15 15 32 32 Timer 2 2 1 2 3 3 Ng tắ 6 6 3 6 8 8 Vcc 5V 3V 3V 3V 5V 3V Đóng vỏ 40 40 20 20 40 40

3.1.2.

S Đ C U TRÚC C A H VI ĐI U KHI N 8051

Ơ Ồ Ấ

Ể Ọ s đ c u trúc bên trong vi đi u khi n 8051

Hình 3.1.2 mô t ả ơ ồ ấ ể ề

Kh i ALU đi kèm v i các thanh ghi temp1, temp2 và thanh ghi tr ng thái - ạ ớ ố

PSW.

- B đi u khi n logic (timing and control). ộ ề ể

- Vùng nh RAM n i và vùng nh Flash Rom l u tr ch ng trình. ữ ươ ư ớ ớ ộ

- M ch t o dao đ ng n i k t h p v i t th ch anh bên ngoài đ t o dao ộ ế ợ ớ ụ ạ ể ạ ạ ạ ộ

đ ng.ộ

- Kh i x lý ng t, truy n d li u, kh i timer/counmter. ề ữ ệ ố ử ắ ố

- Thanh ghi A, B, dptr và 4 port0, port1, port2, port3 có ch t và đ m. ệ ố

- Thanh ghi b đ m ch ng trình PC (program counter). ộ ế ươ

- Con tr d li u dptr (data pointer). ỏ ữ ệ

- Thanh ghi con tr ngăn x p SP (stack pointer). ế ỏ

- Thanh ghi l nh IR (instruction register). ệ

- ả ị

ổ ợ ể ả ỉ ộ ấ ộ ố ư ớ ớ ị ỉ

Ngoài ra còn có 1 s các thanh ghi h tr đ qu n lý đ a ch b nh ram n i bên trong cũng nh các thanh ghi qu n lý đ a ch truy xu t b nh bên ộ ngoài.

ủ ư ề ể ầ ố

ươ ư ố

ế ạ ỏ

i mã l nh, kh i đi u khi n logic. Các kh i bên trong c a vi đi u khi n có các thành ph n gi ng nh đã trình bày ố ộ ế ph n ch ng 1 nh kh i ALU, thanh ghi temp1, thanh ghi temp2, thanh ghi b đ m ầ ở ch ng trình PC, thanh con tr ngăn x p, thanh ghi tr ng thái PSW, thanh ghi l nh IR, ươ ệ kh i gi ố ệ ề ể ả ố

3

P0.0 - P0.7

P2.0 - P2.7

PORT 0 DRIVES

PORT 2 DRIVES

Vcc GND

FLASH

RAM

PORT 2 LATCH

RAM ADDR REGISTER

PORT 0 LATCH

B REGISTER

STACK POITER

ACC REGISTER

PROGRAM ADDRESS REGISTER

TEM 1

TEMP 2

BUFFER

PC INCREMENTER

ALU

INTERRUPT, SERIAL PORT AND TIMER BLOCK

PSW

PROGRAM COUNTER

PSEN

DPTR

ALE/PROG EA/Vpp

TIMMING AND CONTROL

INSTRUCTION REGISTER

RST

PORT 3 LATCH

PORT 1 LATCH

OSB

PORT 1 DRIVES

PORT 3 DRIVES

P1.0 - P1.7

P3.0 - P3.7

Hình 3.1.2. S đ c u trúc c a h vi đi u khi n 8051 ơ ồ ấ ủ ọ ề ể

Ứ S đ chân c a vi đi u khi n 8051 đ

c trình bày hình 3.1.a.

3.1.3. MÔ T CH C NĂNG CÁC CHÂN C A 8051 ể

Ả ủ

Ủ ở

ơ ồ ượ ề

Vi đi u khi n 8051 có t ể ề ấ ả ổ t c 40 chân. Trong đó có 32 chân dành cho 4 c ng

(Port) là P0, P1, P2, P3. M i c ng có 8 bit (chân – pin). ỗ ổ

3.1.3.1.

Các Port

 Port 0

ớ ở ộ ề ơ ộ ộ

ệ ố chân 32 – 39. Trong các h th ng đi u khi n đ n gi n s d ng b nh bên trong không dùng b nh m r ng bên ể ngoài thì port 0 đ Port 0 là port có 2 ch c năng v i s th t ứ ả ử ụ c dùng làm các đ ng đi u khi n IO (Input- Output). ớ ố ứ ự ớ ườ ượ ề ể

Trong các h th ng đi u khi n có quy mô l n s d ng b nh m r ng bên ớ ử ụ ể ộ

ớ ở ộ ngoài thì port 0 có ch c năng d n kênh bus đ a ch và bus d li u AD7 - AD0. ệ ố ứ ề ồ ữ ệ ỉ ị

 Port 1

chân 1- 8. Port1 ch có 1 ch c năng dùng làm các đ Port 1 v i s th t ứ ỉ ườ ng

đi u khi n xu t nh p IO, port 1 không có ch c năng khác. ứ ề ớ ố ứ ự ậ ấ ể

 Port 2

chân 21 – 28. Port 2 là port có 2 ch c năng v i s th t ứ ớ ố ứ ự

4

ề ể ộ

ả ử ụ c dùng làm các đ Trong các h th ng đi u khi n đ n gi n s d ng b nh bên trong không ớ ng đi u khi n IO ườ ớ ở ộ ượ ề ể

ơ ệ ố dùng b nh m r ng bên ngoài thì port 2 đ ộ (Input- Output).

Trong các h th ng đi u khi n có quy mô l n s d ng b nh m r ng bên ớ ử ụ ớ ở ộ ề ộ

ngoài thì port 2 có ch c năng là bus đ a ch cao A8 - A15. ỉ ệ ố ứ ể ị

Hình 3.1.a. S đ chân c a vi đi u khi n 8051 ơ ồ ủ ể ề

 Port 3

Port 3 là port có 2 ch c năng v i s th t ứ ớ ố ứ ự ạ ộ chân 10 -17. Khi không ho t đ ng

xu t nh p, các chân c a port này có nhi u ch c năng (b ng 1.3.1) ứ ủ ề ả ậ ấ

B ng 1.3.1 ả

Bit P3.0 P3.1 P3.2 P3.3 P3.4 Tên RxD TxD INT0\ INT1\ T0 Đ a ch ị B0H B1H B2H B3H B4H Ch c năng ứ Ngõ vào nh n d li u n i ti p. ố ế ậ ữ ệ Ngõ xu t d li u n i ti p. ố ế ấ ữ ệ Ngõ vào ng t c ng th 0. ứ ắ ứ Ngõ vào ng t c ng th 1. ứ ắ ứ Ngõ vào c a timer/counter th 0. ứ ủ

5

ứ ữ ệ

P3.5 P3.6 P3.7 T1 WR\ RD\ B5H B6H B7H ộ ọ ữ ệ ừ ộ ủ ề ề ệ ệ

3.1.3.2.

Ngõ vào c a timer/counter th 1. Tín hi u đi u khi n ghi d li u lên b nh ngoài. ớ ể b nh ngoài. Tín hi u đi u khi n đ c d li u t ớ ể Các ngõ tín hi u đi u khi n ể ệ  Ngõ tín hi u PSEN (Program Store ENable) ệ

PSEN là tín hi u ngõ ra chân 29 có tác d ng cho phép đ c b nh ch ụ ở

ớ ươ ng ệ ng n i đ n chân OE (output enable ho c RD) c a Eprom cho ọ ộ ủ ố ế ặ ườ

trình m r ng th ở ộ phép đ c các byte mã l nh. ọ ệ

ng trình bên ngoài thì m i dùng đ n PSEN, ớ ươ ớ ộ ế ớ

Khi có giao ti p v i b nh ch n u không có giao ti p thì chân PSEN b tr ng. ỏ ố ế ế ế

PSEN ấ ệ ờ

ở ứ ng trình đ c t ệ m c th p trong th i gian vi đi u khi n 8051 l y l nh. Các mã l nh c ch t vào thanh ghi l nh IR Eprom qua bus d li u và đ ề ữ ệ ấ ọ ừ ể ượ ệ ố ươ

c a ch ủ bên trong 8051 đ gi ể ả i mã l nh. ệ

Khi 8051 thi hành ch ng trình trong EPROM n i thì PSEN m c logic 1. ươ ộ ở ứ

 Ngõ tín hi u đi u khi n ALE (Address Latch Enable) ể ề ệ

ề ấ ộ ứ ớ

ườ

chân th 30 dùng làm tín hi u đi u khi n đ gi Khi vi đi u khi n 8051 truy xu t b nh bên ngoài, port 0 có ch c năng là ng d li u và i đ a ch và bus d li u [AD7 – AD0] do đó ph i tách các đ ữ ệ ợ i đa h p ả ệ ỉ ệ ể ề

ể ả ng đ a ch và d li u khi k t n i chúng v i IC ch t. Xem hình 3.1.3b bus t đ a ch . Tín hi u ra ALE ị các đ ể ữ ệ ở ữ ệ ả ị ỉ ườ ứ ế ố ớ ố ị ỉ

ơ ồ ể ạ ố ố ớ

Hình 3.1.3b. S đ ghép n i vi đi u khi n 8951 v i IC ch t, m ch Reset, ề t th ch anh ụ ạ

ờ ộ

c th c hi n 1 cách hoàn toàn t ị ỉ ượ ố ị ệ

Tín hi u ra ệ ỉ ấ ệ ủ ụ ạ ộ ố

chân ALE là m t xung trong kho ng th i gian port 0 đóng vai ở đ ng. trò là đ a ch th p nên vi c ch t đ a ch đ ự ộ Các xung tín hi u ALE có t c đ b ng 1/6 l n t n s dao đ ng c a t th ch anh ộ ằ g n vào vi đi u khi n và có th dùng tín hi u xung ngõ ra ALE làm xung clock ể ắ ả ự ệ ầ ầ ố ệ ề ể

6

ấ ầ ộ

ế ộ ậ c dùng làm ngõ vào nh n xung l p trình t ậ ủ ệ ố ượ ậ

ớ ộ cung c p cho các ph n khác c a h th ng. Trong ch đ l p trình cho b nh n i c a vi đi u khi n thì chân ALE đ bên ừ ể ủ ngoài đ l p trình cho b nh flash rom trong 8051. ề ể ậ ộ ớ

 Ngõ tín hi u EA (External Access) ệ

chân 31 th Tín hi u vào EA ệ ố ố

ứ ứ ươ

b nh ể ẽ ứ ố ớ

ừ ộ ấ ươ ậ ủ ệ ạ

ng n i lên m c 1 ho c m c 0. N u n i EA ế ứ ặ ở ế b nh n i. N u ng trình t lên m c logic 1 (+5v) thì vi đi u khi n s thi hành ch ớ ộ ừ ộ ề ớ n i EA v i m c logic 0 (0V) thì vi đi u khi n s thi hành ch ng trình t ệ ngo i. Các phiên b n c a 8051 còn s d ng EA làm chân nh n đi n áp c p đi n 21V (Vpp) cho vi c l p trình EPROM n i (n p EPROM). ườ ể ẽ ề ử ụ ộ ả ệ ậ ạ

 Ngõ tín hi u RST (Reset) ệ

Ngõ vào RST ở ủ ạ

ư ơ ồ ế ố ấ ệ ạ

ẽ ề ể

ặ ả ở ứ ị ữ ể ợ

chân 9 là ngõ vào Reset c a 8051. S đ k t n i m ch reset ẽ nh hình v 3.1.3b. Khi c p đi n cho h th ng ho c khi nh n nút reset thì m ch s ệ ố ấ m c cao ít nh t là 2 chu kỳ reset vi đi u khi n. Khi reset thì tín hi u reset ph i ệ ấ ở ộ c n p nh ng giá tr thích h p đ kh i đ ng máy, khi đó các thanh ghi bên trong đ ượ ạ h th ng. ệ ố

3.1.3.3.

Các chân ngu n và đ ng h ồ  Các ngõ vào b dao đ ng XTAL1, XTAL2

ộ ộ

B dao đ ng đ c đ c tích h p bên trong 8051, khi s d ng 8051 ng ộ ượ ợ

ượ ộ t k ch c n k t n i thêm t ườ i nh hình v trong s đ hình ơ ồ ư ế ế ụ ạ ụ

thi ỉ ầ 3.1.3b. T n s t ế ố th ch anh th th ch anh và các t ng s d ng cho 8051 là 12Mhz đ n 24Mhz. ầ ố ụ ạ ử ụ ườ ử ụ ẽ ế

8051 v i m ch dao đ ng bên ngoài ạ ớ ộ

 Chân 40 (Vcc) đ c n i lên ngu n 5V ượ ố ồ

 Chân 20 GND n i mass ố

3.1.4 C UẤ TRÚC PORT I/O

ậ đ

i TTL lo i LS Sơ đồ m chạ bên trong các chân c aủ port xu t/nh p cượ vẻ đ nơ gi nả như ở hình 3.1.4 ấ ộ ố Vi cệ ghi đ nế m tộ chân c aủ port sẽ n pạ dữ li uệ vào bộ ch tố c aủ port, ngỏ ra Q c aủ b ch t ngườ và transistor này n iố đ nế chân của port. Khả năng fan- đi uề khi nể m tộ transistor tr rt 0 là 8 t out c aủ các port 1, 2 và 3 là 4 t còn c a poủ i ả LS. ả ạ

7

L uư ý là điện trở kéo lên sẽ không có ở port 0 trừ khi port này làm nhiệm vụ bus đa cượ cần đ n,ế giá trị ủ h pợ đ aị chỉ/dử li u,ệ vì v yậ m tộ đi nệ trở kéo lên bên ngoài ph iả đ đi n ệ tr này p ở h thu c vào đ c tính ng ụ ép n i ố v i chân c a port. ỏ vào c a thành ph n gh ủ ầ ặ ớ ộ

Hình 3.1.4 S đ port I/O ơ ồ

C uấ trúc port cho th yấ có hai khả năng: Đ cọ bộ ch tố và đ cọ t iạ chân của port. Các

ọ ử

ng i ạ chân port. Trong tr ườ

FET sẽ đ ệ ố sẻ set t

VD: CPL P1.5 sẽ đ cọ bộ ch tố để tránh sự hi uể l nhệ yêu c uầ thao tác đ c-s a-ghi iả tăng. Các l nhệ nh pậ m tộ bít c aủ port VD: l m ầ m cứ đi nệ áp do nguyên nhân dòng t h p ợ này b ộ ch t ố c a ủ port ph iả MOV C,P1.5 s ẻ đ c ọ t cượ kích b oả hòa và đi uề này kéo ngõ ra xu ngố m cứ th p.ấ ch a ứ 1 n u không ế Vi cệ reset h th ng cượ tấ cả các bộ ch tố port. Do đó, các chân port có thể đ dùng làm các ngõ nh pậ mà không c nầ ph iả set các bộ ch t.ố Tuy nhiên, n uế m tộ bộ ch tố bị xóa VD: CLR P1.5 thì chân port không thể làm nhi mệ vụ ti pế theo là ngỏ nh pậ trừ khi tr cướ đó ph iả set b ch t SETB P1.5 ộ ố

Hình 3.1.4 không trình bày m chạ cho các ch cứ năng khác c aủ các port 0,2 và 3. cượ chuy nể đ nế m tộ

đ a ch /d l ng ng. Khi các chức năng khác đư cợ xử d ng,ụ các m chạ kích ngỏ ra đ đ aị ch n i (port 2), ệ ỉ ử i u (port 0) ho c tín hi u i n ể (port 3) t ệ đi u kh ề ươ ứ ỉ ộ ặ ị

3.1.5 T CH C B NH C A 8051

Ứ Ộ

ề ớ ộ

ch ớ ộ ươ ả

ế ng trình. B ng trình. B nh ể ế ồ ư ộ ươ ộ

ớ ộ ng trình có dung l ớ ươ ộ

ủ ớ ữ ệ ượ ớ ữ ệ ộ ộ ượ

ả ọ

Ớ Ủ Vi đi u khi n 8051 có b nh n i bên trong và có thêm kh năng giao ti p v i ớ ả ộ b nh bên ngoài n u b nh bên trong không đ kh năng l u tr ộ ữ ộ ớ nh n i bên trong g m có 2 lo i b nh : b nh d li u và b ch ớ ớ ộ ạ ộ d li u có 256 byte, b nh ch ng 4kbyte. B nh m r ng bên ớ ở ộ ữ ệ ng trình. ngoài cũng đ c chia ra làm 2 lo i b nh : b nh d li u và b nh ch ươ ớ ớ ộ ạ ộ ế Kh năng giao ti p là 64kbyte cho m i lo i. Hình 3.1.5a minh h a kh năng giao ti p ả ỗ ạ b nh c a vi đi u khi n 8051. B nh m r ng bên ngoài và b nh ch ng trình bên ớ ươ ớ ở ộ ộ

ế ề ớ ủ ể ộ ộ

8

d li u và mã ch ỉ ệ t – ch có ch c năng l u tr ứ ữ ữ ệ ư

t ng ầ ả ớ

ộ ộ ch c và các ch c năng đ c bi ứ ộ ả ắ ớ ặ ặ ề ng trình nên ườ ử i s ệ ớ t c a b nh ệ ủ ộ

trong không có gì đ c bi ặ ươ không c n ph i kh o sát. B nh ram n i bên trong là m t b nh đ c bi ộ ả d ng vi đi u khi n c n ph i n m rõ các t ổ ứ ể ầ ụ này.

FFFFH

FFFFH

0FFFH

FFH

Bé nhí ch¦ ¬ng tr×nh

Bé nhí ch¦ ¬ng tr×nh cho phÐp theo ®¦ êng PSEN

Bé nhí d÷ liÖu cho phÐp theo ®¦ êng RD, WR

Bé nhí d÷ liÖu

0000H

0000H

00H

0000H

S đ c u trúc bên trong c a b nh này đ c trình bày nh b ng 3.1.5b. ơ ồ ấ ủ ộ ớ ượ ư ả

Hình 3.1.5a: B ng tóm t t các vùng nh 8051 . ả ắ ớ

RAM bên trong 8051 đ c phân chia nh sau: ượ ư

- Các bank thanh ghi có đ a ch t ỉ ừ ị 00H đ n 1FH. ế

- RAM đ a ch hóa t ng bit có đ a ch t ừ ỉ ừ ị ị ỉ 20H đ n 2FH. ế

- RAM đa d ng t ụ ừ 30H đ n 7FH. ế

- Các thanh ghi ch c năng đ c bi ứ ặ t t ệ ừ 80H đ n FFH. ế

9

Đ a ch bit Đ a ch bit ỉ ị Đ a ch byte ỉ ị ị ỉ

Đ aị chỉ byte

10

7F FF

F7 F6 F5 F4 F3 F2 F1 F0 B F0

E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC RAM đa d ngụ

D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW

30 B8 - - - BC BB BA B9 B8 IP

2F 7F 7E 7D 7C 7B 7A 79 78

2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P3

2D 6F 6E 6D 6C 6B 6A 69 68

2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE

2B 5F 5E 5D 5C 5B 5A 59 58

2A 57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2

29 4F 4E 4D 4C 4B 4A 49 48

28 47 46 45 44 43 42 41 40 SBUF 99

27 3F 3E 3D 3C 3B 3A 39 38 9F 9E 9D 9C 9B 9A 99 98 SCON 98

26 37 36 35 34 33 32 31 30

25 2F 2E 2D 2C 2B 2A 29 28 97 96 95 94 93 92 91 90 P1 90

24 27 26 25 24 23 22 21 20

23 1F 1E 1D 1C 1B 1A 19 18 TH1 8D

22 17 16 15 14 13 12 11 10 TH0 8C

21 0F 0E 0D 0C 0B 0A 09 08 TL1 8B

20 07 06 05 04 03 02 01 00 TL0 8A

Bank 3

TMOD 8F 8E 8D 8C 8B 8A 89 88 TCON PCON 89 88 87 Bank 2

Bank 1

1F 18 17 10 0F 08 07 00 DPH DPL SP P0 87 86 85 84 83 82 81 80 83 82 81 80 Bank thanh ghi 0 (m c đ nh cho gán cho R0 -R7) ặ ị

Các thanh ghi có ch c năng đ c bi RAM n iộ ứ ặ t ệ

ả ể ộ

ề 00H – 1FH

ỉ ừ c dành cho 4 bank thanh ghi.

B ng 3.1.5b: C u trúc b nh d li u bên trong vi đi u khi n 8051 ớ ữ ệ ấ 3.1.5.1 Các bank thanh ghi có đ a ch t ị 32 byte th p c a b nh n i đ ớ ộ ượ ấ ủ ộ

11

ộ ệ ế

ặ ị ị ượ

B l nh 8051 h tr thêm 8 thanh ghi có tên là R0 đ n R7 và theo m c đ nh ỉ c gán cho 8 ô nh có đ a ch m t trong các ệ ố 00H đ n 07H. Các d li u đ ng xuyên nên l u tr c dùng th ớ ữ ở ộ ế ườ ữ ệ ượ ư ế

ổ ợ sau khi reset h th ng thì các thanh ghi R0 đ n R7 đ t ừ thanh ghi này.

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 đ n R7, đ chuy n đ i vi c truy xu t các bank ờ ể ể ể ỉ ổ ạ ế ệ ấ

đ ượ thanh ghi ta ph i thay đ i các bit ch n bank trong thanh ghi tr ng thái. ọ ấ ở ả ạ ổ

Ng i l p trình dùng vùng nh 4 bank thanh ghi đ l u tr d li u ph c v ữ ữ ệ ụ ụ ể ư

ườ ậ cho vi c x lý d li u khi vi ớ ng trình. t ch ệ ử ữ ệ ế ươ

ế

ng trình thì ch ứ ủ ươ

ạ ấ ươ ể ộ

ứ ươ ủ ẫ ử ụ ệ ử ể ư

ng đ n các d li u R0 đ n R7 tr ữ ệ ữ ệ ầ ế ế ả

ng t ấ b n có th m thêm hai ch ể ở ưở ệ ấ ữ ệ ươ ự ạ ươ ữ

ử ụ Ch c năng chính c a 4 bank thanh ghi này là n u trong h th ng có s d ng ệ ố ng trình th nh t có th s d ng h t các thanh ghi R0 nhi u ch ế ể ử ụ ề ệ đ n R7 c a bank0, khi b n chuy n sang ch ng trình th 2 đ x lý m t công vi c ứ ể ử ế gì đó và v n s d ng các thanh ghi R0 đ n R7 đ l u tr cho vi c x lý d li u mà ữ ế ả c đây và không c n ph i không làm nh h ướ th c hi n công vi c c t d li u thì cách nhanh nh t là b n gán nhóm thanh ghi R0 ự ạ đ n R7 cho bank1 là xong. T ng trình n a và ế gán cho các bank 3 và 4.

20H đ n 2FH ế

3.1.5.2 RAM đ a ch hóa t n ấ ừ

ừ g bit có đ a ch t ỉ ừ ể

RAM có th truy xu t t ng bit. Vi đi u khi n 8051 có 210 ô nh có th truy ể ề ế 20H đ n ằ ở ấ ừ ị

ể xu t t ng bit, trong đó có 128 bit n m 2FH và các bit còn l ớ các các ô nh byte có đ a ch t ỉ ừ t. i ch a trong nhóm thanh ghi có ch c năng đ c bi ớ ứ ứ ệ ặ ạ

ử ệ ộ

ấ ừ ể ượ ẫ ượ ử

ặ ử c cùng m t k t qu . Các port cũng có th truy xu t đ c t ng bit. ớ c a vi đi u khi n. Các bit có th đ ề ể ủ khi đó đ x lý các bit thì vi x lý v n x lý đ ể ử l nh đ đ t đ ể ạ ượ ệ ế ạ Các ô nh cho phép truy xu t t ng bit và các l nh x lý bit là m t th m nh c đ t, xóa, AND, OR b ng 1 l nh đ n trong ơ ằ ệ ề c nh ng ph i s d ng r t nhi u ấ ả ử ụ ấ ượ ừ ư ể ộ ế ả

128 ô nh bit cho phép truy xu t t ng bit và cũng có th truy xu t byte ph ấ ừ ể

ụ c dùng là l nh x bit hay l nh x lý byte. Chú ý đ a ch c a ô ấ ị ỉ ủ ử ử ệ ệ ượ

ớ thu c vào l nh đ ệ nh byte và bit trùng nhau. ộ ớ

Ví dụ: Đ đ t bit 67H lên 1 ta có th s d ng m t trong 2 l nh sau: ể ử ụ ể ặ ệ ộ

MOV 2Ch, #10000000b ;ho cặ

SETB 67h

Ng ườ ậ i l p trình dùng vùng nh này đ l u tr d li u ph c v cho vi c x ể ư ữ ữ ệ ệ ử

ụ ụ ớ lý d li u byte ho c bit. Các d li u x lý bit nên l u vào vùng nh này. ớ ữ ệ ử ữ ệ ư ặ

30H – 7FH

3.1.5.3 RAM đa d ng có đ a ch t

ỉ ừ

ớ Vùng nh ram đa d ng g m có 80 byte có đ a ch t ồ ỉ ừ ế ị

ặ ớ ớ ớ

30H đ n 7FH – vùng t so v i 2 vùng nh trên. Vùng nh bank thanh ghi 32 00H đ n 1FH cũng có th dùng làm vùng nh ram đa d ng m c dù các các ô ừ ụ ế ể ặ ớ

ụ nh này không có gì đ c bi ệ ớ byte t nh này đã có ch c năng nh đã trình bày. ứ ư ớ

12

M i đ a ch trong vùng RAM đa d ng đ u có th truy xu t t ấ ự ụ ể ề ể do dùng ki u

ọ ị ỉ ự ế ỉ ặ đ a ch tr c ti p ho c gián ti p. ị ế

3.1.6 Các thanh ghi có ch c năng đ c bi

t ệ

Các thanh ghi n i c a 8051 đ c truy xu t ng m đ nh b i b l nh.

ứ ộ ủ

ặ ượ

ở ộ ệ ấ ầ ị

Các thanh ghi trong 8051 đ ư ộ

ỗ ậ ượ ị ỉ ầ ủ ộ ế ạ ạ ừ ộ ị ươ

ẽ ệ ữ ư ứ

c đ nh d ng nh m t ph n c a RAM trên chip ng trình và ư ệ t ố ị ứ ể ề ặ

vì v y m i thanh ghi s có m t đ a ch (ngo i tr thanh ghi b đ m ch thanh ghi l u tr mã l nh vì các thanh ghi này đã có ch c năng c đ nh). Cũng nh các thanh ghi R0 đ n R7, vi đi u khi n 8051 có 21 thanh ghi có ch c năng đ c bi n m vùng trên c a RAM n i có đ a ch t 80H đ n FFH. ế ằ ở ế ủ ỉ ừ ộ ị

Trong 128 ô nh có đ a ch t ị ớ ế ỉ

i thì ch a thi ư ị

ỉ ừ ị c các nhà thi t đ ệ ượ ng lai s đ c xác đ nh các đ a ch – còn các ô nh còn l ỉ ế ế ứ 80H đ n FFH thì ch có 21 thanh ghi có ch c t l p và ạ t l p thêm khi đó s có ế ậ t k vi đi u khi n thi ề ế ậ ẽ ớ ể ẽ ượ

năng đ c bi trong t các vi đi u khi n th h m i h n. ế ệ ớ ơ ặ ươ ề ể

 Các Port (t ng ng các ô nh có đ a ch 80H, 90H, A0h, B0h) ươ ứ ớ ỉ ị

ỉ ủ ị

ị ỉ ỉ ồ ị ị ấ ả ề

ấ ỉ ủ ệ ể ậ

ấ ừ ớ ị ụ ư ươ ứ ắ ầ

ị ỉ ủ ỉ ắ ầ ủ ườ ậ ầ ị

ấ ằ ề ầ ỉ

Là các Port c a 8051 bao g m Port0 có đ a ch 80H, Port1 có đ a ch 90H, ỉ Port2 có đ a ch A0H và Port3 có đ 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 đi u khi n IO. Đ a ch c a các bit đ c đ t ượ ề ng ng ví d nh bit đ u tiên c a port tên v i ô b t đ u chính là đ a ch c a port t ủ ầ ớ ị i l p trình không c n nh đ a 0 là 80h cũng chính là đ a ch b t đ u c a port 0. Ng ch các bit trong các port vì ph n m m l p trình cho phép truy xu t b ng tên t ng ừ ậ bit d nh nh sau: p0.0 chính là bit có đ a ch 80h c a port0. ị ớ ư ủ ễ ỉ

c truy xu t ng m, đa s các thanh ghi có ấ ầ ố

Ngo i tr ạ ừ ch c năng đ c bi ệ ặ thanh ghi A có th đ ể ượ t SFR có th đ a ch hóa t ng bit ho c byte. ỉ ể ị ừ ứ ặ

 Thanh ghi con tr ngăn x p SP (ô nh có đ a ch 81h) ế ớ ỏ ỉ ị

ế ả ỏ

Là thanh ghi con tr ngăn x p SP (stack pointer) - có ch c năng qu n lý đ a ị ữ ệ t m th i các d li u ứ ữ ạ ỉ ủ ộ ờ ớ

ch c a b nh ngăn x p. B nh ngăn x p dùng đ l u tr ộ ớ trong quá trình th c hi n ch ươ ể ư ế ng trình c a vi đi u khi n. ể ế ệ ự ủ ề

Các l nh liên quan đ n ngăn x p bao g m các l nh c t d li u vào ngăn ấ ữ ệ ế ệ ệ ồ

ế x p (l nh push) và l y d li u ra kh i ngăn x p (l nh 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ào. ấ ữ ệ ế ẽ ệ ướ ữ ệ

Sau l nh l y ra kh i ngăn x p s làm gi m SP. ế ẽ ệ ả ấ ỏ

B nh ngăn x p c a 8051 n m trong RAM n i và b gi ộ ớ ế ủ ộ

ế ỉ ỉ ỉ ị ớ ạ ộ ượ i h n v cách truy ề ế ng b nh ngăn x p ớ

ằ xu t đ a ch - ch cho phép truy xu t đ a ch gián ti p. Dung l ấ ị l n nh t là 128 byte ram n i c a 8051. ớ ấ ị ấ ộ ủ

ữ ệ Khi Reset 8051 thì thanh ghi SP s mang giá tr m c đ nh là 07H và d li u ị ặ ẽ ị

c c t vào ô nh ngăn x p có đ a ch 08H. đ u tiên s đ ầ ẽ ượ ấ ế ớ ị ỉ

13

Ngăn x p đ c truy xu t tr c ti p b ng các l nh PUSH và POP đ l u tr ệ ế ằ

ế ượ i d li u, ho c truy xu t ng m b ng l nh g i ch ấ ấ ạ ữ ệ ấ ự ặ ằ ầ ờ

ệ ể ư

ệ ự ươ ữ ể ư ng trình con ươ ọ ỉ ủ ộ ế đ a ch c a b đ m ữ ị i đ a ch khi k t thúc ế ỉ ấ ạ ị

t m th i và l y l ạ (ACALL, LCALL) và các l nh tr v (RET, RETI) đ l u tr ch ng trình con và l y l ch ở ề ng trình khi b t đ u th c hi n ch ệ ắ ầ ng trình con. ươ ươ

 Thanh ghi con tr d li u DPTR (ô nh có đ a ch 82h và 83h) ỏ ữ ệ ớ ỉ ị

ấ ể ử ụ ữ ữ ệ

i t o thành 1 thanh ghi 16 bit có tên là DPTR và g i là con tr d li u - đ ỏ ữ ệ

Là 2 thanh ghi DPL (byte th p) có đ a ch là 82H và DPH (byte cao) có đ a ch ỉ ị ị ể ế ợ 83H. Hai thanh ghi này có th s d ng đ c l p đ l u tr d li u và có th k t h p ộ ậ l c dùng ạ ạ ượ đ l u đ a ch 16 bit khi truy xu t d li u c a b nh d li u bên ngoài. ể ư ị ể ư ọ ớ ữ ệ ấ ữ ệ ủ ộ ỉ

 Thanh ghi PCON (ô nh có đ a ch 87h) ớ ỉ ị

ứ ề ể ấ

ở ế ộ ờ ể ệ

Là thanh ghi PCON (power control) có ch c năng đi u khi n công su t khi ch đ ch . Khi vi đi u khi n không còn x lý gì n a ữ ờ ể i l p trình có th l p trình cho vi đi u khi n chuy n sang ch đ ch đ ề ể ườ ậ ể ậ ể

vi đi u khi n làm vi c hay ề thì ng gi m b t công su t tiêu th nh t là khi ngu n cung c p cho vi đi u khi n là pin. ử ế ộ ể ề ể ấ ụ ấ ề ả ấ ớ ồ

 Các thanh ghi ph c v cho Timer/Counter (các ô nh có đ a ch t 88h ụ ụ ỉ ừ ớ ị

đ n 8dh) ế

Là các thanh ghi ph c v cho 2 timer/ counter T1, T0. ụ ụ

Thanh ghi TCON(timer control): thanh ghi đi u khi n timer / counter. ề ể

ạ Thanh ghi TMOD (timer mode): thanh ghi l a ch n ch đ (mode) ho t ế ộ ự ọ

đ ng cho timer/counter. ộ

Thanh ghi TH0 và TL0 k t h p l ứ

ng t ế ự ế ợ ạ ạ ươ

i t o thành 1 thanh ghi 16 bit có ch c năng ế cho 2 thanh ghi TH1 và TL1 k t ng xung ế ữ ố ượ ư ả

ữ c là 65536 xung. l u tr xung đ m cho timer/counter T0. T ư ữ i đ l u tr xung đ m cho timer/counter T1. Kh năng l u tr s l h p l ợ ạ ể ư đ m đ ượ ế

 Các thanh ghi ph c v truy n thông n i ti p (các ô nh có đ a ch t ụ ụ ố ế ỉ ừ ớ ề ị

98h đ n 99h) ế

ề ữ ệ ữ ệ ệ

ữ ệ ả ư ề

ế ố ế ữ ệ ử ụ ề

Là 2 thanh ghi SCON và SBUF: SCON (series control): thanh ghi đi u khi n ể ố truy n d li u n i ti p. SBUF (series buffer): thanh ghi đ m d li u truy n n i ố ế ề ti p. D li u mu n truy n đi thì ph i l u vào thanh ghi SBUF và d li u nh n v ề ậ ố ữ ệ n i ti p cũng l u ả ử ụ thanh ghi này. Khi có s d ng truy n d li u thì ph i s d ng ư ở 2 thanh ghi này.

 Các thanh ghi ph c v ng t (các ô nh có đ a ch t ụ ụ ắ ỉ ừ ớ ị A8h đ n B8h) ế

ề ể ư ề

ế ặ ắ

ể Là 2 thanh ghi IE và IP – thanh ghi IE (interrupt enable): thanh ghi đi u khi n cho phép / không cho phép ng t. IP (interrupt priority): thanh ghi đi u khi n u tiên ng t. Khi có s d ng đ n ng t thì ph i dùng đ n 2 thanh ghi này. M c nhiên các thanh ghi này đ c kh i t o ắ ắ ế ả ch đ c m ng t. ở ạ ở ế ộ ấ ử ụ ượ ắ

14

 Thanh ghi tr ng thái ch ng trình (PSW: Program Status Word) ạ ươ

Thanh ghi tr ng thái ch ng trình c tóm t ạ ươ ở ị đ a ch D0H đ ỉ ượ ắ t nh sau: ư

BIT KÝ HI UỆ Đ A CH Ỉ Ị MÔ TẢ

PSW.7 D7H C ho c CYặ Cary Flag: C nhờ ớ

PSW.6 AC D6H Auxiliary Cary Flag: C nh ph ớ ụ ờ

PSW.5 F0 D5H Flag 0 còn g i là c Zero kí hi u là Z ờ ệ ọ

PSW4 RS1 D4H Register Bank Select 1: bit l a ch n bank thanh ghi. ự ọ

PSW.3 RS0 D3H Register Bank Select 0: bit l a ch n bank thanh ghi. ự ọ

00 = Bank 0; ô nh có address 00H ớ

01 = Bank 1; ô nh có address 08H ớ

10 = Bank 2; ô nh có address 10H ớ

‚ 07H gán cho R0-R7 ‚ 0FH gán cho R0-R7 ‚ 17H gán cho R0-R7 ‚ 1FH gán cho R0-R7 11 = Bank 3; ô nh có address 18H ớ

PSW.2 OV D2H Overflow Flag: c tràn s nh phân có d u. ấ ố ờ ị

PSW.1 - D1H Reserved: ch a thi t k nên ch a s d ng đ c. ư ế ế ư ử ụ ượ

PSW.0 P D0H Even Parity Flag: c ch n l . ờ ẵ ẻ

Ch c năng t ng bit tr ng thái: ứ ừ ạ

- ờ ờ ớ

ượ ử ụ c s d ng có C Carry CY (Carry Flag): C nh có tác d ng kép. C C đ ờ ế ụ ộ ệ ặ ọ

cho các l nh toán h c: C = 1 n u phép toán c ng có tràn ho c phép tr ừ m n, C = 0 n u phép toán c ng không tràn và phép tr không có m n. ượ ượ ừ ế ộ

- ờ ụ ộ

ị ả ượ ớ

ờ i AC= 0. C AC đ C Carry ph AC (Auxiliary Carry Flag): Khi c ng nh ng giá tr BCD ữ c set [AC=1] n u k t qu 4 bit ế c dùng đ ch nh s BCD khi ỉ ụ ờ ế ố ượ ể ơ

(Binary Code Decimal), c nh ph AC đ l n h n 09H, ng c l ượ ạ ớ th c hi n l nh c ng 2 s BCD. ố ộ ự ệ ệ

- ế ủ ử C 0 (Flag 0): C 0 (F0) còn g i là c zero, c zero =1 khi k t q a x lý ờ ờ ờ ờ

b ng 0 và c zero = 0 khi k t qu x lý khác 0. ằ ế ờ ọ ả ử

- ọ ể

c thay đ i b i ch ượ ể ề

Các bit ch n bank thanh ghi truy xu t: Hai bit RS1 và RS0 dùng đ thay ấ ẽ ủ ng trình c a c ch n Bank thanh ổ ở ẽ ượ ươ ọ

đ i cách gán 8 thanh ghi R7 – R0 cho 1 trong 4 bank thanh ghi. Hai bit này s ổ b xóa sau khi reset vi đi u khi n và đ ị ng ườ ậ ghi tích c c t i l p trình. Hai bit RS1, RS0 = 00, 01, 10, 11 s đ ng ng là Bank 0, Bank1, Bank2, Bank3. ự ươ ứ

RS1 RS0 Bank thanh ghi đ ượ ự c l a ch n ọ

0 0 Bank 0

0 1 Bank 1

1 0 Bank 2

1 1 Bank 3

15

- c c ng ho c tr C tràn OV (Over Flag): Khi các s có d u đ ộ ờ ố ấ ượ

ị ầ ề ế

ị ể ớ ố

ng t 0 đ n +127, s âm t ị -128 đ n – 1. N u k t qu c ng 2 s d ừ ể ể ị ố ừ ế ế ế

ả ộ ế ế ỏ ơ ả ơ ố

ả ể ẽ ặ ộ ị

ề ầ ế ấ ố ộ ị

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 vùng giá tr xác đ nh hay không. V i s nh phân 8 bit có d u thì s ấ ố ươ ng d ươ ượ l n h n +127 ho c c ng 2 s âm k t qu nh h n –128 thì k t qu đã v t ế ớ ra ngoài vùng giá tr cho phép thì kh i ALU trong vi đi u khi n s làm bit ố OV = 1. Khi c ng các s nh phân không d u thì không c n quan tâm đ n bit OV.

- đ ng đ c Set hay Clear m i chu kỳ máy đ Bit Parity (P): Bit P t ự ộ ở ỗ

ớ ẳ ộ

ượ ế ụ ẳ ị

ố ộ ể ả

ng đ ế ổ ườ ố ượ ữ

ế ợ ữ ệ ố ế ể ạ ề

ể ớ l p Parity ch n v i thanh ghi A. Đ m các bit 1 trong thanh ghi A c ng v i ậ bit Parity luôn luôn là s ch n. Ví d thanh ghi A ch a nh phân 10101101B ứ t t ng s bit 1 trong thanh ghi A và c bit P thì bit P set lên m t đ cho bi ủ ụ c dùng k t h p v i nh ng th t c t o thành s ch n. Bit Parity th ớ ẵ ạ c khi truy n đi truy n d li u n i ti p đ t o ra bit Parity cho d li u tr ề ướ ho c ki m tra bit Parity sau khi nh n d li u. ố ữ ệ ể ậ ữ ệ ặ

 Thanh ghi t ng A (ô nh có đ a ch E0h) ớ ổ ị ỉ

ộ Thanh ghi A là m t thanh ghi quan tr ng c a vi x lý có ch c năng l u tr ọ ứ ử

ầ ế ủ ố ọ ư ề

ủ ộ ọ

b nh ho c t ớ ữ ệ ừ ộ ủ

ề ế ị ề ứ ể ả

ữ ả d li u khi tính toán. H u h t các phép toán s h c và các phép toán logic đ u x y ữ ệ ra gi a ALU và Accumulator. M t ch c năng quan tr ng khác c a thanh ghi ứ ữ Accumulator là đ truy n d li u t các thanh ghi bên trong c a vi ặ ừ ể x lý ra các thi t b đi u khi n bên ngoài thì d li u đó ph i ch a trong thanh ghi ữ ệ ử Accumulator.

 Thanh ghi B (ô nh có đ a ch F0h) ớ ỉ ị

Thanh ghi B ớ ượ đ a ch F0H đ ỉ ệ

ở ị ệ ể ự ấ ữ ị

ồ ả ề ế ị ệ ấ ị

c dùng nh ể ượ ư ả

c dùng cùng v i thanh ghi A đ th c hi n các ớ phép toán nhân chia. L nh MUL A B: s nhân nh ng giá tr không d u 8 bit v i 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 A B: l y giá tr trong thanh ghi A chia cho giá tr trong thanh ghi B, ấ k t qu nguyên l u trong A, s d l u trong B. Thanh ghi B có th đ ư ố ư ư ế m t thanh ghi đ m trung gian nhi u ch c năng. ề ộ ứ ệ

3.1.7. CÁC CẢI TIẾN C AỦ 8032/8052

Các vi mạch 8032/8052 và các phiên b nả CMOS có hai c iả ti nế so v iớ 8031/8051. M tộ là có thêm 128 byte RAM trên chip từ đ aị chỉ 80H đ nế FFH, đi uề này không xung đ tộ v iớ các thanh ghi ch cứ năng đ cặ bi tệ vì 128 byte RAM thêm vào chỉ có thể truy xu tấ b ngằ cách dùng ki u đ nh đ a ị iếp, xem l nh sau ị ch gián t ỉ ể ệ

MOV A, 0F0H

S ẽ di chuy n ể n i ộ dung c a ủ thanh ghi B vào thanh ghi A đ i ố v i ớ h ọ MCS-51

còn chu i l nh ổ ệ sau

16

MOV R0,#0F0H MOV , @R0

i đ a ch 0F0H đ i 8052, t ch c ộ ạ ị ố v i 8032/ ớ ỉ ớ ộ ổ ứ b nh n i ộ

Ghi vào thanh ghi A n i dung t c trì nh bày 052 đ hình 3.1.7 ượ ở c a 8032/8 ủ

17

Hình 3.1.7 RAM nội của 8032/8052

B ng 3.1.7 Các thanh ghi c a timer 2. ủ ả

th iờ 16 bít, bộ timer 2 này đ cượ l pậ trình nhờ

C iả ti nế thứ hai là có thêm bộ đ nhị vào 5 thanh ghi ch cứ năng đ c bi ệ ặ t trong b ng 3.1.7 ả

3.1.8 HO T Đ NG RESET Ạ Ộ

Khi reset thì tín hi u reset ph i m c cao ít nh t là 2 chu kỳ máy, khi đó các ấ

thanh ghi bên trong đ c n p nh ng giá tr thích h p đ kh i đ ng h th ng. ợ ở ộ ệ ố ữ ể ệ ượ ạ ả ở ứ ị

Tr ng thái c a t t c các thanh ghi trong 89C51 sau khi reset h th ng đ c tóm ủ ấ ả ệ ố ượ

ạ t nh sau: ư t ắ

ng trình PC ươ ộ ế

N i dung ộ 0000H 00H 00H 00H 07H 0000H FFH xxx0 0000 B 0xx0 0000 B 00H Thanh ghi B đ m ch Thanh ghi tích lũyA Thanh ghi B Thanh ghi tr ng thái PSW ạ Thanh ghi con tr SPỏ DPTR Port 0 đ n port 3 ế IP IE Các thanh ghi đ nh th i ờ ị

1

ng trình t ể ệ

ng trình nên các ch 00H 00H 0xxx xxxxB 0xxx 0000B ươ ộ ế ắ ầ ự ươ ươ ộ ng trình PC = 0000H sau i đ a ạ ị ươ ắ ng trình cho vi đi u khi n luôn b t ề ể

SCON SBUF PCON (HMOS) PCON (CMOS) Thanh ghi quan tr ng nh t là thanh ghi b đ m ch ấ ọ khi reset. Sau khi reset xong vi đi u khi n luôn b t đ u th c hi n ch ề ch 0000H c a b nh ch ớ ủ ỉ i đ a ch 0000H. đ u t ỉ ầ ạ ị

ộ ủ ổ ở ộ ị

ủ ữ ữ ệ ử ụ ể ư ư ế ề

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 (có nghĩa là vi đi u khi n đang s d ng các thanh ghi đ l u tr d li u nh ng n u vi đi u khi n b reset thì d li u trong các thanh ghi v n không đ i). ể ữ ệ ể ề ẫ ổ ị

Hình 3.1.8: S đ m ch reset ơ ồ ạ

2