Tải bản đầy đủ (.ppt) (18 trang)

Tài liệu môn kỹ thuật vi điều khiển 2

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 (501.1 KB, 18 trang )

2. CÁC THANH GHI CHỨC
NĂNG ĐẶC BIỆT (SFR)


SƠ ĐỒ SFRs (Special function registers)

Gồm: 21 sfr (51), 27 sfr (52).
Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng

Phân bố: 80H đến FFH trong RAM



1. Thanh ghi chính
• ACC (A): địa chỉ 0E0H (Accumulator)
• Là thanh ghi tính toán chính của 8051
• Sử dụng trong các phép tính số học: +, -, *, /
• Các phép logic AND, OR, XOR …
• Các phép dịch, quay byte (shift, rotate): RL, RR …

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng




2. Thanh ghi phụ
• Là thanh ghi tính toán phụ (B)
• Địa chỉ 0F0H
• B được dùng với thanh chứa A trong các phép toán nhân,
chia
• MUL


AB
; nhân 2 số 8-bit không dấu chứa trong A
& B, KQ 16-bit chứa vào cặp thanh ghi B:A (B chứa byte cao)
• DIV
AB
; chia A bởi B, thương số cất trong A, dư cất trong B

• B còn được xử lý như thanh ghi nháp
• B được định địa chỉ bit
F7 F6 F5 F4 F3 F2 F1 F0

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng




3. Thanh ghi trạng thái chương trình(PSW)
Mô tả toàn bộ trạng thái chương trình đang hoạt động của hệ thống
C

AC

F0

RS1

RS0

OV


Cờ nhớ
Cờ nhớ phụ
User flag
Bit chọn dãy thanh ghi 1
Bit chọn dãy thanh ghi 0
Cờ tràn
Dự trữ - User define bit
Cờ chẵn lẻ
RS1

RS0

Register Bank

--

P
PSW.7 C
PSW.6AC
PSW.5-PSW.4RS1
PSW.3RS0
PSW.2OV
PSW.1-PSW.0 P

Byte Address of R0-R7

0

0


0

00H-07H

0

1

1

08H-0FH

1

0

2

10H-17H

1

1

3

18H-1FH

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng





3. Thanh ghi trạng thái chương trình(PSW)
• 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
Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng




3. Thanh ghi trạng thái chương trình(PSW)
• 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
khi KQ vượt quá 255
• VD:
0F
thập phân
15
+7F
+127
____
_____
8E
142
• 8EH biễu diễn -114 không đúng với KQ mong
muốn là 142 nên OV = 1
Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng




3. Thanh ghi trạng thái chương trình(PSW)
• 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
• MOV A,#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


Bài tập áp dụng: Kiểm tra giá trị các bit C, AC, OV và P
trong các trường hợp sau:
VD1: MOV A,#88H
ADD A,#93H

VD2: MOV A,#9CH
ADD A,#64H

VD3: MOV A,#38H
ADD A,#2FH

VD4: MOV A,#FFH
ADD A,#1

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng




Ví dụ
VD:
MOV
A,#88H
ADD
A,#93H
88H
10001000
+93H
+ 10010011
----------------------11B H

00011011
C=1
AC=0 P=0
VD:
MOV
A,#38H
ADD
A,#2FH
38
00111000
+2F
+00101111
----------------67
01100111
C=0
AC=1 P=1

VD:
MOV
A,#9CH
ADD
A,#64H
9C
10011100
+64
+ 01100100
----------------100
00000000
C=1
AC=1 P=0

VD:

MOV
ADD

A=00H;
MOV
ADD

A,#0FFH
A,#1

C=1; AC=1; P=0
A,#0FH
A,#1

A=10H; C=0; AC=1; P=1;
Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng




Những lệnh ảnh hưởng đến các bit cờ

X có thể là 1
hoặc 0

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng





4. Con trỏ ngăn xếp (SP)

Địa chỉ byte 81H

• Ngăn xếp (stack) (bộ xếp chồng) là cấu trúc dữ liệu kiểu
thùng chứa, hoạt động theo nguyên lý “vào sau ra trước”.
• SP (stack pointer) chứa địa chỉ của dữ liệu hiện đang ở
đỉnh của stack.
• Mặc định stack bắt đầu từ địa chỉ 08H trong RAM
(SP=07H). Muốn thay đổi vùng nhớ stack ta chỉ cần thay
đổi giá trị của SP (ví dụ MOV SP,#5FH).
• Việc cất dữ liệu vào stack được thực hiện thông qua lệnh
PUSH) (làm tăng SP trước khi ghi dữ liệu). Việc lấy dữ
liệu khỏi stack được thực hiện thông qua lệnh POP (lấy
dữ liệu ra khỏi stack trước khi giảm SP).

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng




Con trỏ ngăn xếp (SP)
Công dụng của stack:
•PUSH, POP: lưu và lấy dữ liệu tạm thời trong quá trình xử lý
•ACALL, LCALL, và Ngắt: cất bộ đếm chương trình PC
•RET, RETI: phục hồi bộ đếm chương trình PC

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng





Ví dụ:
VD:

MOV
MOV
MOV
PUSH
PUSH
PUSH

R6,#25H
R1,#12H
R4,#0F3H
6
1
4

0BH

0BH

0BH

0BH

0AH


0AH

0AH

0AH

F3

09H

09H

09H

12

09H

12

08H

08H

08H

25

08H


25

Start SP=07H

25
SP=08H

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng

SP=09H

SP=0AH




5. Con trỏ dữ liệu (DPTR)
• DPTR (data pointer) được dùng để truy xuất bộ nhớ chương
trình hoặc bộ nhớ dữ liệu ngoài
• VD:
MOV
MOV
MOVX
MOVC

A,#55H
DPTR,#1000H
@DPTR,A
A,@A+DPTR

83H
82H

DPH
DPL

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng




6. Các thanh ghi I/O port: P0, P1, P2, P3
• Tất cả port đều định địa chỉ bit được (P0.0, P0.1…P0.7)
• Công dụng:
• Điều khiển thiết bị đầu ra
SETB
P1.0
CLR
P1.0
• Đọc tín hiệu đầu vào
WAIT: JB P1.5, WAIT
SETB
P1.0

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng




7. Các thanh ghi định thời

• 8051 có 2 bộ đếm/định thời 16-bit để định các khoảng thời gian
hoặc đếm các sự kiện
• Mỗi bộ định thời có 2 thanh ghi: THx, TLx để lưu giá trị hiện tại
hoặc thiết lập giá trị ban đầu cho bộ định thời/ đếm
• Hoạt động của bộ định thời được thiết lập bởi:
• TMOD (Timer Mode Register)
• TCON (Timer Control Register)

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng




8. Các thanh ghi của port nối tiếp
• 8051 có 1 port nối tiếp để truyền thông với các thiết bị nối tiếp
• SBUF (Serial Data Buffer): lưu trữ dữ liệu truyền và nhận
• SCON (Serial Port Control Register): chọn chế độ hoạt động

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng




9. Các thanh ghi ngắt
• IE (interrupt enable): Thanh ghi cho phép ngắt
• IP (interrupt priority): Thanh ghi ưu tiên ngắt

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng






×