View
15
Download
4
Category
Preview:
Citation preview
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
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……
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
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
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
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
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
8Pham Quoc Thinh, ictu.edu.vn.
Department of Electronics & Telecommunications
Mạch reset Power-on với phím bấm
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
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!
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
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)
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)
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
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
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ờ
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)
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ẻ
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
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
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
22Pham Quoc Thinh, ictu.edu.vn.
Department of Electronics & Telecommunications
23Pham Quoc Thinh, ictu.edu.vn.
Department of Electronics & Telecommunications
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!
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
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
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
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)
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
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
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
??
??
??
??
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
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)
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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ỉ
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
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
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
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
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
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
Recommended