55
1 Pham Quoc Thinh, ictu.edu.vn. ICTU – 03-2010 │Chương 3 Vi điều khiển 8051 và lập trình hợp ngữ Kiến trúc 8051 Kiến trúc 8051

02 Goi thieu kiên truc MCS_51

Embed Size (px)

Citation preview

Page 1: 02 Goi thieu kiên truc MCS_51

1Pham Quoc Thinh, ictu.edu.vn.

ICTU – 03-2010

│Chương 3 Vi điều khiển 8051 và lập trình hợp ngữ │

Kiến trúc 8051Kiến trúc 8051

Page 2: 02 Goi thieu kiên truc MCS_51

2Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Tổng quan

Đặc điểm chung và hoạt động

Sơ đồ khối

Sơ đồ chân

Mô tả phần cứng

Mô tả chân

Đặc điểm đọc-sửa đổi-ghi

Nội dung bài giảng……Nội dung bài giảng……

Page 3: 02 Goi thieu kiên truc MCS_51

3Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Sản xuất bởi Intel năm 1981

Vi điều khiển đơn chíp 8-bit, được tối ưu cho các ứng dụng điều khiển

128 byte RAM, 4096 byte (4KB) ROM, 2 timer, 1 serial port, 4 I/O port

40 Chân được đóng gói theo chuẩn DIP)

Tổng quan về 8051Tổng quan về 8051

Page 4: 02 Goi thieu kiên truc MCS_51

4Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

4KB ROM128 bytes RAM nội

4 bank thanh ghi với 8 byte mỗi bank (R0-R7)16 byte được định địa chỉ bit80 byte bộ nhớ đa dụng

Bốn cổng I/O 8-bit (P0-P3)Hai bộ timer 16-bit (Timer0 và Timer1)Một bộ giao diện truyền nhận nối tiếpNăm nguồn ngắt (2 ngắt ngoài và 3 ngắt nội)Bộ nhớ dữ liệu và chương trình của 8051 có thể được mở rộng tới 64K ROM và 64K RAM

Các đặc điểm chungCác đặc điểm chung 4 x 8 = 32 16 80------------ 128

Page 5: 02 Goi thieu kiên truc MCS_51

5Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Sơ đồ khối 8051Sơ đồ khối 8051

Interrupt Control

External Interrupts

CPU

OSC

Timer 1

Timer 0

SerialPort

I/O PortsBus

Control

CounterInputs

P0 P3P1

4K byteROM

128 byteRAM

P2(Address/Data)

TXD RXD

Page 6: 02 Goi thieu kiên truc MCS_51

6Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Sơ đồ chânSơ đồ chân1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

40

39

38

37

36

35

34

33

32

31

30

29

28

27

26

25

24

23

22

21

VCC

P0.0 (AD0)

P0.1 (AD1)

P0.2 (AD2)

P0.3 (AD3)

P0.4 (AD4)

P0.5 (AD5)

P0.6 (AD6)

P0.7 (AD7)

EA/VPP

ALE/PROG

PSEN

P2.7 (A15)

P2.6 (A14)

P2.5 (A13)

P2.4 (A12)

P2.3 (A11)

P2.2 (A10)

P2.1 (A9)

P2.0 (A8)

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

RST

(RXD) P3.0

(TXD) P3.1

(INT0) P3.2

(INT1) P3.3

(T0) P3.4

(T1) P3.5

(WR) P3.6

(RD) P3.7

XTAL2

XTAL1

GND

8051

Page 7: 02 Goi thieu kiên truc MCS_51

7Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Sơ đồ chân với các chức năng tích hợp, Sơ đồ chân với các chức năng tích hợp, các chân tín hiệucác chân tín hiệu

VSS VCC RST

PO RT0

Bus địa chỉ và dữ liễu

XTAL1

XTAL2

ALE

EA

PSEN

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

RxD TxD INT0INT1T0T1WRRD

SECONDARYFUNCTIONS

PORT3

PORT2

Bus địa chỉ

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

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

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

PORT1

Page 8: 02 Goi thieu kiên truc MCS_51

8Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Mạch reset Power-on với phím bấm

Page 9: 02 Goi thieu kiên truc MCS_51

9Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

1. Mạch dao động2. Bộ đếm chương trình (PC)3. Con trỏ dữ liệu (DPTR)4. Thanh ghi A5. Thanh ghi B6. Các cờ7. Từ trạng thái chương trình (PSW)8. Bộ nhớ nội(ROM, RAM, bộ nhớ mở rộng)9. Stack và con trỏ stack (SP)10. Thanh ghi chức năng đặc biệt (SFR)

Mô tả phần cứngMô tả phần cứng

Page 10: 02 Goi thieu kiên truc MCS_51

10Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Trái tim của 8051Cung cấp xung đồng hồĐồng bộ tất cả các hoạt động nội của 8051

Mạch dao độngMạch dao độngMột chu kỳ máy bao gồm12 xung từ tần số thạch anh!

Page 11: 02 Goi thieu kiên truc MCS_51

11Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Ví dụVí dụ

Tính chu kỳ máy với tần số thạch anh tương ứng:(a) XTAL = 11.0592 MHz (b) XTAL = 16 MHz(c) XTAL = 20 MHz

Ta có:

(a) 11.0592 MHz / 12 = 921.6 kHz

Chu kỳ máy= 1 / 921.6 kHz = 1.085 s

(b) 16 MHz / 12 = 1.333 MHz

Chu kỳ máy = 1 / 1.333 MHz = 0.75 s

(c) 20 MHz / 12 = 1.667 MHz

Chu kỳ máy = 1 / 1.667 MHz = 0.60 s

Page 12: 02 Goi thieu kiên truc MCS_51

12Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

PC là một thanh ghi 16-bitPC không có địa chỉ nội.PC trỏ tới địa chỉ của lệnh kế tiếp cần được thực hiện.PC sẽ tự động tăng thêm 1 (+1) mỗi khi CPU nhận mã lệnh từ ROMKhi bật nguồn PC có giá trị 0000, nghĩa là 8051 luôn thực hiện từ mã lệnh đầu tiên tại địa chỉ 0000hPC rộng 16 bit, 8051 có thể truy cập được địa chỉ chương trình từ 0000h đến FFFFh (64 kbyte)

Bộ đếm chương trình (PC)Bộ đếm chương trình (PC)

Page 13: 02 Goi thieu kiên truc MCS_51

13Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

DPTR là một thanh ghi 16 bitDPTR được tạo bởi 2 thanh ghi 8-bit: DPH và DPLDPTR giữ địa chỉ bộ nhớ cho các truy cập dữ liệu và mã trong bộ nhớ nội và bộ nhớ ngoài

(ví dụ: MOVC A,@A+DPTR MOVX A,@DPTR MOVX @DPTR,A )

DPTR không có địa chỉ; DPH và DPL được gán địa chỉ riêng (83H and 82H)

Con trỏ dữ liệu (DPTR)Con trỏ dữ liệu (DPTR)

Page 14: 02 Goi thieu kiên truc MCS_51

14Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Thanh ghi tích luỹ AThanh ghi tích luỹ A

Là thanh ghi được sử dụng nhiều nhất trong 8051.

Nó được sử dụng nhiều trong các hoạt động như cộng, trừ, nhân, chia, các lệnh xử lý bit

Thanh ghi A được sử dụng cho tất cả dữ liệu được truyền giữa 8051 và bộ nhớ ngoài

Page 15: 02 Goi thieu kiên truc MCS_51

15Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Thanh ghi B được sử dụng với thanh ghi A cho các hoạt động nhân và chia

(Ví dụ: MUL AB DIV AB)

Không có chức năng đặc biệt khác, có thể là nơi lưu trữ dữ liệu.

Thanh ghi BThanh ghi B

Page 16: 02 Goi thieu kiên truc MCS_51

16Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Các cờ được nằm trong thanh ghi từ trạng thái chương trình (PSW) và thanh ghi điều khiển nguồn (PCON)Các cờ toán học: CY, AC, OV, PCác cờ người sử dụng: Các cờ để người lập trình ghi một vài sự kiện trong chương (F0, GF0, GF1)

Các cờCác cờ

Page 17: 02 Goi thieu kiên truc MCS_51

17Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

PSW bao gồm các cờ toán học, cờ người sử dụng F0, và các bit lựa chọn bank thanh ghi (RS1, RS0)

7 6 5 4 3 2 1 0

CY AC F0 RS1

RS0

OV -- P

Từ trạng thái chương trình(PSW)Từ trạng thái chương trình(PSW)

Page 18: 02 Goi thieu kiên truc MCS_51

18Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Từ trạng thái chương trình (PSW)Từ trạng thái chương trình (PSW)

Bit Ký hiệu Chức năng

7 CY Cờ nhớ; được sử dụng trong các lệnh số học, nhảy, quay và logic

6 AC Cờ nhớ phụ; được sử dụng cho số học BCD

5 F0 Cờ người sử dụng 0

4 RS1 Bit 1 lựa chon bank thanh ghi

3 RS0 Bit 0 lựa chon bank thanh ghi

2 OV Cờ tràn; sử dụng trong các lệnh số học

1 -- Dành cho tương lai sử dụng

0 P Cờ chẵn lẻ; Chỉ ra tính chẵn lẻ của thanh ghi A: 1 = Tính lẻ

Page 19: 02 Goi thieu kiên truc MCS_51

19Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Các lệnh ảnh hưởng đến cờCác lệnh ảnh hưởng đến cờ

Lệnh CY OV AC Lệnh CY OV AC

ADD X X X SETB C 1

ADDC X X X CLR C 0

SUBB X X X CPL C X

MUL 0 X ANL C, bit X

DIV 0 X ANL C, /bit X

DA X ORL C, bit X

RRC X ORL C, /bit X

RLC X CJNE X

MOV C, bit X Chú ý: X có thể 0 hoặc 1

Page 20: 02 Goi thieu kiên truc MCS_51

20Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Một máy tính chức năng phải có bộ nhớ cho các byte mã chương trình, thường trong ROM và bộ nhớ cho dữ liệu thay đổi có thể thay đổi khi chạy chương trình8051 có RAM nôi (128 byte) và ROM (4Kbyte)8051 sử dụng địa chỉ tương tự nhưng khác loại bộ nhớ cho mã và dữ liệuMạch truy cập nội bộ sẽ truy cập chính xác bộ nhớ dựa trên hoạt động xử lý.Có thể mở rộng bộ nhớ nếu cần

Bộ nhớ nộiBộ nhớ nội

Page 21: 02 Goi thieu kiên truc MCS_51

21Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & TelecommunicationsTổ chức RAM nội 8051 Tổ chức RAM nội 8051

R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0

0706050403020100

0F0E0D0C0B0A0908

1716151413121110

1F1E1D1C1B1A1918

Ba

nk

0B

an

k 1

Ba

nk

2B

an

k

3

2726252423222120

2F2E2D2C2B2A2928

7F 7877 706F 6867 605F 5857 504F 4847 403F 3837 302F 2827 201F 1817 100F 0807 00 30

7F

Các thanh ghi làm việc Định địa chỉ bit Mục đích chung

128 byte RAM nội•4 bank thanh ghi và 8 byte mỗi bank(R0-R7)•16 byte được định địa chỉ bit•80 byte vùng RAM đa dụng

Page 22: 02 Goi thieu kiên truc MCS_51

22Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Page 23: 02 Goi thieu kiên truc MCS_51

23Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Page 24: 02 Goi thieu kiên truc MCS_51

24Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Ví dụ 1Ví dụ 1

Trạng thái các thành phần của RAM sau khi thực hiện chương trình sau:

MOV R0, #99H

MOV R1, #85H

MOV R2, #3FH

MOV R7, #63H

MOV R5, #12H

Sau khi thực thi chương trình trên:

Vị trí 0 trong RAM có giá trị 99 Vị trí 1 trong RAM có giá trị 85HVị trí 2 trong RAM có giá trị 3FH Vị trí 7 trong RAM có giá trị 63HVị trí 5 trong RAM có giá trị 12H

Cho rằng bank thanh ghi 0 được lựa chọn!

Page 25: 02 Goi thieu kiên truc MCS_51

25Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Program Status Word (PSW)Program Status Word (PSW)Bank Select Bits, RS1, & RS0 to select 1 of 4 register bankBank Select Bits, RS1, & RS0 to select 1 of 4 register bank

Page 26: 02 Goi thieu kiên truc MCS_51

26Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Ví dụ 2Ví dụ 2

Sử dụng địa chỉ RAM thay vì tên các thanh ghi

Cái này được gọi là định địa chỉ trực tiếp và sử dụng vị trí địa chỉ RAM cho địa chỉ đích

MOV 00, #99H

MOV 01, #85H

MOV 02, #3FH

MOV 07, #63H

MOV 05, #12H

Page 27: 02 Goi thieu kiên truc MCS_51

27Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Ví dụ 3Ví dụ 3Trạng thái các thành phần trong RAM sau khi thực hiện đoạn chương trình sau:

SETB PSW.4MOV R0, #99HMOV R1, #85HMOV R2, #3FHMOV R7, #63HMOV R5, #12H

Mạc định PSW.3=0 và PSW.4=0; vì thế, lệnh “SETB PSW.4” đặt RS1=1 và RS0=0, do đó bank thanh ghi 2 được lựa chọn . Bank thanh ghi 2 ở địa chỉ 10H – 17H trong RAM. Sau khi thực thi chương trình trên chúng ta sẽ có:

Vị trí RAM 10 có giá trị 99H Vị trí RAM 11 có giá trị85HVị trí RAM 12 có giá trị 3FH Vị trí RAM 17 có giá trị 63HVị trí 15 có giá trị 12H

7 6 5 4 3 2 1 0

CY AC F0 RS1

RS0

OV -- PPSW

Page 28: 02 Goi thieu kiên truc MCS_51

28Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

SP là một thanh ghi 8 bit được sử dụng để giữ địa chỉ trong RAM nội cái được gọi là ‘đỉnh của ngăn xếp’Stack là một khu vực trong RAM nội được sử dụng để lưu trữ dữ liệu và lấy ra một cách nhanh chóngSP giữ địa chỉ RAM nội nơi mà byte dữ liệu được lưu bởi hoạt động của stackKhi dữ liệu được lưu trong stack, con trỏ SP sẽ tăng lên trước khi dữ liệu được lưu.Khi lấy dữ liệu từ stack ra, SP sẽ giảm để trỏ tới byte dữ liệu được lưu trữ ở đỉnh stackSP = 07H sau khi reset

Ngăn xếp và con trỏ ngăn xếp (SP)Ngăn xếp và con trỏ ngăn xếp (SP)

Page 29: 02 Goi thieu kiên truc MCS_51

29Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Hoạt độngHoạt động

SP = 0A Địa chỉ 0A SP = 0ALưu trữ dữ liệu

SP = 09 Địa chỉ 09 SP = 09

SP = 08 Địa chỉ 08 SP = 08Nhận dữ liệu

SP = 07 Address 07 SP = 07

Lưu dữ liệu trên stack

(tăng khi lưu)

RAM nội

(Lấy dữ liệu sau đó giảm)

Nhận dữ liệu từ stack

Lưu trữ dữ liệu Nhận dữ liệu

Nhận dữ liệu

Lưu trữ dữ liệu

Page 30: 02 Goi thieu kiên truc MCS_51

30Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Ví dụ 4Ví dụ 4Chỉ ra stack và con trỏ stack khi thực hiện các lệnh sau đây:

MOV R6, #25HMOV R1, #12HMOV R4, #0F3HPUSH 6PUSH 1PUSH 4

0B0A0908

0B0A0908

0B0A0908

0B0A0908

SP = 07

25

Sau khi PUSH 6

SP = 08

12

25

SP = 09

Sau khi PUSH 1

F3

12

25

SP = 0A

Sau khi PUSH 4

Page 31: 02 Goi thieu kiên truc MCS_51

31Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Ví dụ 5Ví dụ 5Kiểm tra stack, Chỉ ra các thanh phần của các thanh ghi và SP sau khi thực thi các lệnh sau đây. Tất cả các giá trị là kiểu hex.

POP 3 ;POP stack vào R3POP 5 ;POP stack vào R5POP 2 ;POP stack vào R2

0B0A0908

0B0A0908

0B0A0908

540B0A0908

54F9

76

6C

54

F976

6C

F976

6CSP = 0A SP = 09 SP = 08

Sau POP 3 Sau POP 5 Sau POP 2

Bắt đầu SP = 0B

54

F9

76

6C

05040302

??

??

54

??

05040302

05040302

05040302

F9

??

54

??

F9

??

54

76

??

??

??

??

Page 32: 02 Goi thieu kiên truc MCS_51

32Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Ví dụ 6Ví dụ 6Chỉ ra stack và con trỏ stack khi thực hiện các lệnh sau:

MOV SP, #5FHMOV R2, #25HMOV R1, #12HMOV R4, #0F3HPUSH 2PUSH 1PUSH 4

63626160

63626160

63626160

6362616025

12

25

F3

12

25

Bắt đầu SP = 5F SP = 60 SP = 61 SP = 62

Sau PUSH 2 Sau PUSH 1 Sau PUSH 4

Page 33: 02 Goi thieu kiên truc MCS_51

33Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

8051 có 21 thanh ghi SFR giữ địa chỉ 80H đến FFH (128bytes)

Không phải tất cả các địa chỉ từ 80H đến FFH được sử dụng cho SFR

Việc cố gắng sử dụng "trống" địa chỉ có thể nhận được kết quả không thể đoán trước được

Các thanh ghi chức năng đặc biệt (SFR)Các thanh ghi chức năng đặc biệt (SFR)

Page 34: 02 Goi thieu kiên truc MCS_51

34Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Thanh ghi chức năng đặc biệtThanh ghi chức năng đặc biệtĐịnh địa chỉ bit

Page 35: 02 Goi thieu kiên truc MCS_51

35Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Giá trị của các thanh ghi SFR khi resetGiá trị của các thanh ghi SFR khi reset

Page 36: 02 Goi thieu kiên truc MCS_51

36Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

ROM nội (Internal ROM)ROM nội (Internal ROM)

ROM nội chiếm không gian địa chỉ từ 0000H đến 0FFFH (Size = 4K byte)

Địa chỉ chương trình cao 0FFFH sẽ tự động tìm nạp các byte mã từ bộ nhớ chương trình ngoài

Các byte mã cũng có thể được tìm nạp riêng từ bộ nhớ ngoài bởi việc kết nối pin (EA) xuống đất

Page 37: 02 Goi thieu kiên truc MCS_51

37Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

VCC (pin 40 – Cung cấp điện áp +5V)GND (pin 20)XTAL1 & XTAL2 (pins 19 & 18 – nối tới thạch anh và tụ)RST (pin 9- reset)EA (pin 31 – truy xuất ngoài)PSEN (pin 29 – Cho phép lưu trữ chương trình)ALE (pin 30 – Cho phép chốt địa chỉ)Ports 0-3

Các chân quan trọngCác chân quan trọng

Page 38: 02 Goi thieu kiên truc MCS_51

38Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

I/O Ports (P0 - P3) I/O Ports (P0 - P3)

Một trong các đặc điểm hữu ích nhất của 8051 bao gồm 4 cổng I/O (P0 - P3)

Tất cả các cổng có hai hướng (có thể là vào hoặc ra)Các cổng có đa chức (trừ cổng P1)Tất cả các cổng được định địa chỉ bit

Khi RESET tất cả các cổng được cấu hình là outputKhi một PIN được sử dụng như là input, “1” phải được viết ra tương ứng với bit PIN đó để chương trình cấu hình nó như một ngõ đầu vào (vi dụ: MOV P1, #0FFH)

Page 39: 02 Goi thieu kiên truc MCS_51

39Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Có 8 PIN (Pins 32-39)Có thể được sử:

Chỉ là đầu vàoChỉ là đầu raVào và ra(chân được cấu hình là đầu vào còn chân khác thì cấu hình là đầu ra )

Có thể được sử dụng để điều khiển cả địa chỉ và dữ liệuCần điện trở kéo

Port 0Port 0

Page 40: 02 Goi thieu kiên truc MCS_51

40Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Port 0 như một cổng raPort 0 như một cổng ra

Mã sau đây sẽ liên tục gửi ra cổng P0 giá trị 55H và AAH

MOV A, #55HBACK: MOV P0, A

ACALL DELAYCPL ASJMP BACK

AAH = 101010102

55H = 010101012

Page 41: 02 Goi thieu kiên truc MCS_51

41Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Port 0 như một cổng vàoPort 0 như một cổng vào

Trong mã sau đây, port 0 đầu tiên được cấu hình là một cổng vào bởi việc viết 1 ra nó sau đó dữ liệu được đọc vào P0 và xuất ra cổng P1

MOV A, #0FFHMOV P0, A

BACK: MOV A, P0MOV P1, ASJMP BACK

FFH = 111111112

Page 42: 02 Goi thieu kiên truc MCS_51

42Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Vai trò thứ hai của Port 0Vai trò thứ hai của Port 0

Khi kết nối 8051 với bộ nhớ ngoài,P0 cung cấp cả địa chỉ và dữ liệu (AD0 – AD7)

Khi ALE = 0, nó cung cấp dữ liệu D0 – D7

Khi ALE = 1, nó cung cấp địa chỉ A0 – A7

ALE được sử dụng để phân kênh địa chỉ và dữ liệu với vi mạch chốt 74LS373

Page 43: 02 Goi thieu kiên truc MCS_51

43Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Có 8 pin (Pins 1-8)

Có thể được sử dụng như cổng vào hoặc ra

Không cần trở treo

khi reset, port 1 được cấu hình như một cổng ra

Không có chức năng khác

Port 1Port 1

Page 44: 02 Goi thieu kiên truc MCS_51

44Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Port 1 cấu hình như một cổng raPort 1 cấu hình như một cổng ra

Mã sau đây sẽ gửi liên tục tới P1 giá trị 55H và AAH

MOV A, #55HBACK: MOV P1, A

ACALL DELAYCPL ASJMP BACK

Page 45: 02 Goi thieu kiên truc MCS_51

45Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Cổng P1 như một cổng vàoCổng P1 như một cổng vàoP1 một cấu hình như một cổng vào bởi việc ghi bit “1” ra tương ứng và sau đó dữ liệu được đọc vào và ghi vào thanh ghi R7, R6 và R5

MOV A, #0FFHMOV P1, AMOV A, P1MOV R7, AACALL DELAYMOV A, P1MOV R6, AACALL DELAYMOV A, P1MOV R5, A

Page 46: 02 Goi thieu kiên truc MCS_51

46Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Có 8 chân (Chân 21 đến28) Có thể được sử dụng như đầu vào hoặc đầu ra Không cần nối trở treo Sau khi reset, port 2 được cấu hình như một cổng ra Khi kết nối 8051 với bộ nhớ ngoài, cổng P2 cung cấp

địa chỉ (A8-A15) Nó được sử dụng cùng với P0 để cung cấp 16 bit địa

chỉ Khi P2 được sử dụng cho 8 bit cao của 16 bit địa chỉ

thì nó không được sử dụng với chức năng I/O

Port 2Port 2

Page 47: 02 Goi thieu kiên truc MCS_51

47Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Cổng P2 như một cổng raCổng P2 như một cổng ra

Giửi ra cổng P2 giá trị 55h và AAh thực hiện lập đi lập lại

MOV A, #55HBACK: MOV P2, A

ACALL DELAYCPL ASJMP BACK

Page 48: 02 Goi thieu kiên truc MCS_51

48Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

P2 như một cổng vàoP2 như một cổng vào

Đầu tiên P2 được cấu hình là cổng input và sau đó then dữ liệu nhận được cổng này gửi tới cổng P1

MOV A, #0FFHMOV P2, A

BACK: MOV A, P2MOV P1, ASJMP BACK

Page 49: 02 Goi thieu kiên truc MCS_51

49Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Chức năng tích hợp của P2Chức năng tích hợp của P2

Sử dụng 8051 sử dụng bộ nhớ ngoài

P2 cung cấp cả địa (A8 – A15)

Nó được sử dụng để cung cấp địa chỉ 16 bit

Khi P2 được sử dụng cho 8 bit cao của 16 bit địa chỉ

Page 50: 02 Goi thieu kiên truc MCS_51

50Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Có 8 chân (Các chân từ 10 đến17) Có thể được sử dụng như đầu vào hoặc dầu ra Không cần trở treo Sau khi reset, cổng P3 được cấu hình như một

cổng ra Các chân có thể được lập trình cho những người sử

dụng khác nhau Hầu hết thường được sử dụng để cung cấp một số

tín hiệu quan trọng(ví dụ: các ngắt)

Cổng P3Cổng P3

Page 51: 02 Goi thieu kiên truc MCS_51

51Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Các chức năng tích hợp thêm trên cổng P3Các chức năng tích hợp thêm trên cổng P3

P3 Bit Function Pin

P3.0 RxD 10

P3.1 TxD 11

P3.2 INT0 12

P3.3 INT1 13

P3.4 T0 14

P3.5 T1 15

P3.6 WR 16

P3.7 RD 17

Page 52: 02 Goi thieu kiên truc MCS_51

52Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Đặc điểm đọc- sửa đổi- ghiĐặc điểm đọc- sửa đổi- ghiMột phương pháp được sử dụng để truy xuất các cổng 8051

Thực hiện 3 hành động trong một lệnh:

Đọc dữ liệu ở cổngSửa dữ liệu trên cổngGhi kết quả ra cổng

MOV P1, #55HAGAIN: XRL P1, #0FFH

ACALL DELAYSJMP AGAIN

Vi dụ:ANL P1, AORL P2, AXRL P3, AJBC P1.1, LABELCPL P3.0INC P2DEC P2DJNZ P3, LABEL

Page 53: 02 Goi thieu kiên truc MCS_51

53Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Định địa chỉ bit từng chân trong một cổngĐịnh địa chỉ bit từng chân trong một cổng

Đây là một trong những tính năng mạnh mẽ nhất của 8051

Có thể truy suất một hoặc một vài bit trong một cổng

BACK: CPL P1.2ACALL DELAYSJMP BACK

;bit 2 của cổng1

Page 54: 02 Goi thieu kiên truc MCS_51

54Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Ví dụ 7Ví dụ 7

Viết một chương trình thực hiện những yêu cầu sau:(a) Kiểm tra chân P1.2 cho đến khi P1.2 có mức cao;(b) Khi P1.2 có mức cao, ghi giá trị 45H ra cổng P0(c) Gửi tín hiệu xung high-to-low (H-to-L) tới P2.3

SETB P1.2 ;Cấu hình chân P1.2 thành inputMOV A, #45H

AGAIN: JNB P1.2, AGAIN ; Chờ P1.2=1; Khi P1.2 = 1

MOV P0, ASETB P2.3CLR P2.3

Page 55: 02 Goi thieu kiên truc MCS_51

55Pham Quoc Thinh, ictu.edu.vn.

Department of Electronics & Telecommunications

Các đặc điểm vật lý và hoạt động

Mô tả phần cứng 8051

Mô tả các chân 8051

Các lệnh đọc ghi Read-modify-write các cổng

SummarySummary