Tải bản đầy đủ (.pptx) (37 trang)

Tìm hiểu chung về 8051

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 (4.38 MB, 37 trang )

NGHIÊN CỨU vi ĐIỀU KHIỂN
8051

Hà Nội, tháng 9 năm 2020


VI XỬ LÝ ( MICROPROCESSOR )
KHÁI NIỆM
- Bộ vi xử lý là một mạch tích hợp hàng ngàn thậm chí hàng triệu Transistor (LSI, VLSI, MSI) được kết
nối với nhau. Các Transistor cùng nhau làm việc để lưu trữ và xử lý dữ liệu cho bộ VXL. Chúng có thể
thực hiện nhiều chức năng hữu ích.
- Chức năng của một bộ VXL được xác định bằng phần mềm ( có thể lập trình được).
LSI: Large Scale Integration
VLSI : Very Large Scale Integration
MSI : Medium Scale Integration


VI XỬ LÝ 8051
SƠ ĐỒ KHỐI TỔNG QUÁT CỦA VI ĐIỀU KHIỂN 8051
External
by Timers, Serial
Port

On-chip
ROM for
program
code 4K

Interrupt
Control


Timer/Counter
On-chip
RAM
128Byte

Timer 1

Counter
Inputs
T1, T0

Timer 0

CPU

Bus
Control

OSC

4 I/O Ports

Serial
Port

Crystal
33pF

EA


ALE

P0
P1
P3
Address/Data

P2

T×D
R×D


VI XỬ LÝ 8051
1. CÁC ĐẶC TRƯNG VÀ SƠ ĐỒ CHÂN VĐK 8051
a) Các đặc trưng ( Feature) 8051:
• 4 KB ROM nội ( on– chip)
• 128 bytes RAM nội ( on- chip)
• 64 KB ROM ngồi
• 64 KB RAM ngồi
• Có khả năng truy cập 210 bit
• Truyền nối tiếp chuẩn UART
• 2 bộ Timer/ Counter 16 bit
• Có 6 nguồn ngắt và có 2 mức ưu tiên ngắt
• Bộ tạo dao động on-chip
• 4 Port xuất/ nhập IO 8bit
ã Lnh nhõn, chia mt 4 às


VI XỬ LÝ 8051

b) Sơ đồ chân :

4 cổng = 4*8 chân = 32 chân
8 chân đặc biệt : Vcc , GND, rST, XTAL1, XTAL2,
, ALE,


VI XỬ LÝ 8051
8 chân đặc biệt:
 Vcc ( chân 40)
 Cung cấp nguồn cho chip
 Nguồn +5V ± 5%
 GND ( chân 20) : Đất
 XTAL1 & XTAL2 ( chân 19, 18)
 2 chân cung cấp xung clock ngoài
 Cách 1: dao động dùng thạch anh
 Cách 2: dao động từ nguồn xung clock TTL bên ngoài
 Quan hệ giữa chu kỳ máy và XTAL
Tần số thạch anh của 8051 thường là 12 MHz hoặc 11,0582 MHz (
fosc )
Nếu kết nối VĐK với máy tính buộc phải dùng fosc = 11,0592MHz




VI XỬ LÝ 8051

RST ( chân 9) : reset

 Input & kích hoạt mức cao

 Để đảm bảo hoạt động reset xảy ra, xung kích khởi
phải kéo dài ít nhất là 2 chu kỳ máy
 Giá trị các thanh ghi chịu tác động bởi hoạt động
reset
 Mạch reset có chống rung
 ( chân 31) : External Access
 nối GND chỉ định rằng code lưu trên bộ nhớ ngoài
 & ALE dùng cho ROM ngồi
 Với 8051, 8031, 8032 thì

nối Vcc : truy cập bộ nhớ

trong
 “/” : Chỉ dịnh tác động mức thấp


VI XỬ LÝ 8051
 (chân 29) : Program Store Enable
 Output, cho phép truy xuất bộ nhớ chương trình ngồi
 Nối tới chân /OE của ROM/EPROM
 Khi thực thi chương trình ở Rom nội, /EA được gán mức 1, ( khi đó /PSEN được tự động
giữ ở mức 1)
 ALE (pin 30) : Address Latch Enable


Là chân output cho phép chốt địa chỉ byte thấp của cổng đa hợp chung bus dữ liệu và
bus địa chỉ.




ALE xuất tín hiệu để chốt địa chỉ ( byte thấp địa chỉ 16 bit) vào 1 thanh ghi ngoài
trong suốt nửa đầu của chu kỳ bộ nhớ. Trong nửa chu kỳ bộ nhớ còn lại, P0 sẽ xuất/
nhập dữ liệu

• ALE có f = (1/6)fclock = (1/6)fosc


Có 1 ngoại lệ: trong thời gian thực thi lệnh MOVX, một xung ALE bị bỏ qua


VI XỬ LÝ 8051
Sơ đồ ghép nối vi điều khiển với bộ nhớ ngoài:
32KB= 256Kbit


VI XỬ LÝ 8051

Các cổng vào/ra ( I/O = Input/ Output)

 4 cổng I/O mỗi cổng 8 chân -> 32 chân I/O
Port 0 ( chân 32-39) : P0 ((P0.0 ÷ P0.7)
Port 1 (chân 1-8) : P1 (P1.0 ÷ P1.7)
Port 2 (chân 21-28) : P2 (P2.0 ÷ P2.7)
Port 3 (chân 10-17) : P3 (P3.0 ÷ P3.7)
Mỗi cổng có 8 chân:
Đánh tên P0.X (X=0,1,...,7), P1.X, P2.X, P3.X
Ex : P0.0 là bit 0 (LSB) của P0
Ex : P0.7 là bit 7 (MSB) của P0 8 bits này cấu thành 1 byte
Mỗi cổng có thể được dùng như input hay output:
Mặc định là cổng ra

Nếu muốn là cổng vào thì out ra mức 1 mọi chân trước khi đọc về
Ví dụ: định nghĩa P1 là cổng vào:

MOV

MOV A, P1

P1, #0FFH


VI XỬ LÝ 8051
Cổng P0:
Đặc điểm: Ngoài chức năng vào/ra thơng thường cịn có chức năng sau:
- Là cổng Open Drain (cực máng để hở) khác so với các cổng P1, P2, P3 cịn lại: phải mắc
điện trở

treo ở ngồi Rpull-up

- Là cổng đa hợp : AD0 ÷ AD7
- Vừa xuất nhập dữ liệu (Data)
- Vừa xuất nhập địa chỉ (Address): xuất nhập địa chỉ byte thấp


VI XỬ LÝ 8051
Cổng P1:
Đặc điểm: Chỉ có chức năng vào/ra thơng thường
Cổng P2: Đặc điểm: Ngồi chức năng vào/ra thơng thường cịn có chức năng xuất địa chỉ byte
cao: A8 ÷ A15 Cổng P3: Đặc điểm: Ngồi chức năng vào/ra thơng thường cịn có các chức năng
khác
Gọi là cổng đa chức

năng
Port
pin

Name

Function

P3.0

RXD

Serial input port (Nhận)

P3.1

TXD

Serial output port ( Truyền)

P3.2

External interrupt 0 (Ngắt ngoài 0)

P3.3

External interrupt 1 (Ngắt ngoài 1)

P3.4


T0

Counter 0 external input (Đầu vào bộ
đếm 0)

P3.5

T1

Counter 0 external input (Đầu vào bộ
đếm 0)

P3.6

external data memory write strobe


TỔ CHỨC BỘ NHỚ VĐK 8051
2. TỔ CHỨC BỘ NHỚ CỦA VĐK 8051
Không gian bộ nhớ 8051

Program Memory (Read
Only)
7FFFH

FFFFh

0000
H


8FFFH

32
K

Data Memory (Read/
Write )
FFFFFh
Extern
al

1000
H

0FFFH

0FFFh

0
Externa
l

0000h

64
K

Intern
al
0000

H

4K

Bộ nhớ chương trình

00FFh

0000h

256byt
e

Internal
128byte

Bộ nhớ dữ liệu

64K


TỔ CHỨC BỘ NHỚ VĐK 8051

256

DE
C

BIN


HEX

0

0000

0

1

0001

1

2

0010

2

3

0011

3

4

0100


4

5

0101

5

6

0110

6

7

0111

7

8

1000

8

Địa chỉ của 4KB là: 0000H ÷ 0FFFH

9


1001

9

4KB = * Byte =

...

Cần 12 bit để định địa chỉ cho 4KB

...
12

1100

0CH

254

1111
1110

0FEH

255

1111
1111

0FFH


Byte= 1KB (1 Kbyte)
KB = 1MB
MB = 1GB
GB = 1TB
Dung lượng bộ nhớ 4KB =4 * Byte = 4*
1024 Byte =4096 Byte (0- 4095)


TỔ CHỨC BỘ NHỚ VĐK 8051

MAIN

MAIN
Chương

Chương

FFFH

trình chính

0030H

030H
023H
01BH

8
8


013H
00BH
003H
000H LJMP MAIN
Bộ nhớ chương
trình trong

8

Điểm nhập
của ngắt port
nối tiếp
Điểm nhập
của ngắt
Timer 1
Điểm nhập
của ngắt
ngoài
Điểm nhập
của ngắt
Timer 0

8

Điểm nhập của
ngắt ngoài 0

3


Điểm nhập của
reset hệ thống

trình chính

8

Điểm nhập của
ngắt port nối
tiếp

8

Điểm nhập của
ngắt Timer 1

0023H
001BH
0013H
000BH
0003H
0000H

8
8
8
3

Điểm nhập
của ngắt

ngoài
Điểm nhập của
ngắt Timer 0
Điểm nhập
của ngắt
ngoài 0
Điểm nhập của
reset hệ thống

Bộ nhớ chương
trình ngồi
Nhảy tới các chương
trình phục vụ ngắt

Nhảy tới các
chương trình phục
vụ ngắt


TỔ CHỨC BỘ NHỚ VĐK 8051
Bộ nhớ dữ liệu
RAM

Byte
address

Bit address


TỔ CHỨC BỘ NHỚ VĐK 8051

Bộ nhớ dữ liệu RAM
Vùng RAM đa mục đích
• Truy xuất tự do 80 bytes này theo kiểu định địa chỉ trực tiếp hay gián tiếp
• MOV A, 5FH.

Hoặc:

MOV R0, #5FH

MOV A, @R0
Vùng RAM định địa chỉ bit
• Truy xuất các bit riêng rẽ là 1 đặc trưng của VĐK. Các bit có thể được set, xóa, AND,
OR … chỉ

bằng 1 lệnh so với 1 chuỗi lệnh của VXL

• Các port cũng được định địa chỉ bit
• Vd: để set bit 7FH bằng 1, ta viết:
VĐK:

SETB 7FH

VXL:

MOVA,2FH

: đọc cả byte

ORL A,#10000000B: set cả bit
MOV 2FH,A


: ghi trở lại cả byte


TỔ CHỨC BỘ NHỚ VĐK 8051
Bộ nhớ dữ liệu RAM
Các băng thanh ghi (register )
• Các lệnh dùng thanh ghi là những lệnh ngắn & thực
hiện nhanh hơn
– MOVA,R5
– MOVA,05H

: 1 byte
: 2 bytes

• Các dữ liệu thường dùng nên chứa ở các thanh ghi
• Ý tưởng các dãy thanh ghi cho phép chuyển đổi ngữ
cảnh nhanh và hiệu quả ở các module độc lập

nhau

của phần mềm
Ngăn xếp
• Thanh ghi dùng truy cập ngăn xếp gọi là SP (stack
pointer)
• SP là thanh ghi 8 bit: giá trị từ 00 ÷ FFH.


TỔ CHỨC BỘ NHỚ VĐK 8051
Bộ nhớ dữ liệu RAM

Các thanh ghi đặc biệt : Special Function Register _SFR


TỔ CHỨC BỘ NHỚ VĐK 8051
Thanh ghi từ trạng thái: PSW
• Thanh ghi PSW (bit addressable)
C

AC

F0

RS1

RS0

OV

--

P

Cờ nhớ
PSW.7
C
Cờ nhớ phụ
PSW.6
AC
Available to user for general purpose
PSW.5


Bit chọn dãy thanh ghi 1
PSW.4
RS1
Bit chọn dãy thanh ghi 0
Cờ tràn
PSW.2
OV
Dự trữ - User define bit
PSW.1

Cờ chẵn lẻ
PSW.0
P
P =1: số con 1 là lẻ; =0 nếu số con 1 là chẵn
RS1
RS0
REGISTER
Byte
BANK
Address of
R0-R7
0

0

0

00H-07H


0

1

1

08H-0FH

1

0

2

10H-17H

1
D4

3

18H-1FH

1
D7

D6

D5


D3

D2

D1

D0

Địa chỉ


TỔ CHỨC BỘ NHỚ VĐK 8051
• C (carry flag) - Cờ nhớ
– Được set bằng 1 nếu có số nhớ từ phép cộng bit 7 hay có số mượn mang đến bit 7
MOV

A,#FFH

ADD

A,#1

– Còn được dùng như 1 thanh ghi 1 bit đối với các lệnh logic thao tác trên các bit
ANL

C,25H

• AC (auxiliary carry) – Cờ nhớ phụ
– Được set bằng 1 nếu có số nhớ từ bit 3 sang bit 4
• RS1, RS0 - Các bit chọn dãy (bank) thanh ghi

– Dùng để xác định dãy thanh ghi tích cực
– Chúng được xóa khi reset

SETB
SETB

RS1
RS0

MOV

A,R7


TỔ CHỨC BỘ NHỚ VĐK 8051
• OV (overflow flag) - Cờ tràn
– Set bằng 1 sau phép toán cộng hoặc trừ nếu có xuất hiện 1 tràn số học. Khi các số có dấu
được cộng hoặc trừ, phần mềm có thể kiểm tra bit tràn OV để xác định KQ có nằm trong tầm
hay khơng
– Với các số có dấu, KQ nhỏ hơn -128 hoặc lớn hơn +127 sẽ set cờ OV = 1. Với các số không
dấu,
OV=1
KQ -114
vượt không
quá 255
• 8EH
biễukhi
diễn
đúng với KQ mong muốn là 142 nên OV = 1
• P (parity) - Cờ chẵn lẻ

– Kiểm tra chẵn lẻ cho thanh chứa A
– Số các bit 1 trong thanh chứa A cộng với bit P luôn luôn chẵn
• MOVA,#10101101B
• -> P=1
– Bit chẵn lẻ được sử dụng kết hợp với các chương trình xuất/nhập nối tiếp trước khi truyền
dữ liệu hoặc để kiểm tra chẵn lẻ sau khi nhận dữ liệu


3. TẬP LỆNH HỌ µc8051

Các quy ước trong câu lệnh và địa chỉ
+ Rn: Thanh ghi R0-R7 của băng thanh ghi hiện hành đang được chọn để định địa chỉ thanh ghi.
+ Direct: Địa chỉ 8 bit của ô nhớ dữ liệu nội trú, nó có thể là ơ nhớ trong RAM nội hoặc SFR. (00h-FFh)
+ @Ri: Ô nhớ 8 bit của RAM nội được định địa chỉ gián tiếp thơng qua thanh ghi R0 họăc R1.
+ Source (Src): tốn hạng nguồn, có thể là Rn hoặc direct hoặc @Ri.
+ Dest: Tốn hạng đích, có thể là Rn hoặc direct hoặc @Ri.
+ #Data: Hằng số 8 bit chứa trong lệnh.
+ #Data16: Hằng số 16 bit chứa trong lệnh.
+ Bit: Bit được định địa chỉ trực tiếp trong RAM nội trú hoặc SFR.
+ Rel: Offset 8 bit có dấu (từ -128 đến +127). Nó được lệnh SJMP và các lệnh nhảy có điều kiện sử
dụng.
+ Addr11: địa chỉ 11 bit của bộ nhớ chương trình , được lệnh ACALL và AJMP sử dụng.
+ Addr16: địa chỉ 16 bit của 64Kb bộ nhớ chương trình, được lệnh LCALL và LJMP sử dụng


3. TẬP LỆNH HỌ µc8051

Các ký hiệu dùng trong mơ tả lệnh
Ký hiệu


Ý nghĩa
Được thay thế bởi…

()
(( ))
rrr

Nội dung của...
Dữ liệu được trỏ bởi…
1 trong 8 thanh ghi (R0-R7) của các băng thanh ghi

dddddddd

Các bit dữ liệu

aaaaaaaa

Các bit địa chỉ

bbbbbbbb

Địa chỉ của 1 bit

i
eeeeeeee

Định địa chỉ gián tiếp thông qua R0 hoặc R1
Địa chỉ tương đối 8 bit



3. TẬP LỆNH HỌ µc8051
1.Các lệnh di chuyển:
a)Kiểu Byte: Cú pháp câu lệnh: MOV <dest-byte>, <src-byte>
Chức năng: Sao chép nội dung của tốn hạng nguồn vào tốn hạng đích, nội dung của tốn hạng nguồn
khơng thay đổi. Lệnh này khơng làm ảnh hưởng tới các cờ và các thanh ghi khác.
Câu lệnh

Số
byte

Số chu
kỳ

Mã lệnh

Hoạt động

MOV A, Rn

1

1

11101rrr

(A) ← (Rn

MOV A, direct

2


1

11100101 aaaaaaaa

(A) ← (direct)

MOV A, @Ri

1

1

1110111i

(A) ← ((Ri))

MOV A, #data

2

1

01110100 dddddddd

(A) ← #data

MOV Rn, A

1


1

11111rrr

(Rn) ← (A)

MOV Rn, direct

2

2

10101rrr aaaaaaaa

(Rn) ← (direct)

MOV Rn, #data

2

1

01111rrr dddddddd

(Rn) ← #data

MOV direct, A

2


1

11110101 aaaaaaaa

(direct) ← (A)

MOV direct, Rn

2

2

10001rrr aaaaaaaa

(direct) ← (Rn)

MOV direct, direct

3

2

10000101 aaaaaaaa aaaaaaaa

(direct) ← (direct)

MOV direct, @Ri

2


2

1000011i aaaaaaaa

(direct) ← ((Ri))

MOV direct, #data

3

2

01110101 aaaaaaaa dddddddd

(direct) ← #data

MOV @Ri, A

1

1

1111011i

((Ri)) ← (A)

MOV @Ri, direct

2


2

1010011i

((Ri)) ← (direct)

MOV @Ri, #data

2

1

0111011i dddddddd

((Ri)) ← #data


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×