Tải bản đầy đủ (.doc) (58 trang)

Tìm hiểu 8051 và xây dựng đồng hồ thời gian thực trên có sở DS1307 và ứng dụng điều khiển

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 (2.86 MB, 58 trang )

MỤC LỤC
LỜI MỞ ĐẦU...........................................................................................................................................5
...............................................................................................................................................................5
CHƯƠNG 1.............................................................................................................................................6
TÌM HIỂU VI ĐIỀU KHIỂN 8051................................................................................................................6
1.1. Giới thiệu.....................................................................................................................................6
1.2. Khảo sát vi điều khiển 8051.........................................................................................................6
1.2.1. Cấu trúc bên trong của vi điều khiển 8051...........................................................................6
1.2.2. Chức năng các chân vi điều khiển 8051................................................................................8
1.2.3. Tổ chức bộ nhớ...................................................................................................................10
1.2.4. Hoạt động của bộ định thời (Timer)...................................................................................19
1.2.5. Hoạt động port nối tiếp......................................................................................................22
1.2.6. Tập lệnh của 8051...............................................................................................................25
CHƯƠNG 2...........................................................................................................................................30
CÁC LINH KIỆN TRONG MẠCH ĐỒNG HỒ CÓ HẸN GIỜ.........................................................................30
2.1. IC thời gian thực DS1307...........................................................................................................30
2.1.1. Chức năng các chân............................................................................................................30
2.1.2. Một vài thông số kỹ thuật...................................................................................................30
2.1.3. Sơ đồ khối của DS1307.......................................................................................................31
2.1.4. Truyền dữ liệu trên bus 2 dây nối tiếp................................................................................35
2.1.5. Hai chế độ hoạt động của DS1307......................................................................................36
2.2.1. Chức năng các chân của LCD..............................................................................................38
2.2.2. HD44780............................................................................................................................40
2.2.3. Mã lệnh của LCD.................................................................................................................42
CHƯƠNG 3...........................................................................................................................................43
THIẾT KẾ MẠCH ĐỒNG HỒ CÓ HẸN GIỜ...............................................................................................43
3.1. Giới thiệu đề tài.........................................................................................................................43
3.2. Yêu cầu bài toán........................................................................................................................43
3.3. Sơ đồ khối..................................................................................................................................43



3.4. Chức năng các khối....................................................................................................................44
3.5. Sơ đồ mạch đồng hồ có hẹn giờ................................................................................................44
3.5.1. Khối nút nhấn.....................................................................................................................44
3.5.2. Khối thời gian thực.............................................................................................................45
3.5.3. Khối vi điều khiển................................................................................................................46
3.5.4. Khối chuông báo.................................................................................................................46
3.5.5. Khối hiển thị........................................................................................................................47
3.5.6. Sơ đồ mạch mô phỏng bằng proteus..................................................................................48
3.5.7. Sơ đồ mạch in.....................................................................................................................49
3.6. Lưu đồ chương trình..................................................................................................................50
3.6.1. Lưu đồ chương trình chính.................................................................................................50
3.6.2. Chương trình con................................................................................................................51
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN......................................................................................................57
TÀI LIỆU THAM KHẢO...........................................................................................................................58


DANH MỤC HÌNH
Hình 1.1: sơ đồ khối 8051.......................................................................................................................7
Hình 1.2: Sơ đồ chân 8051......................................................................................................................8
Hình 1.3: Giao tiếp giữa 8051 và EPROM.............................................................................................16
Hình 1.4: giản đồ thời gian đoc bộ nhớ chương trình ngoài.................................................................17
Hình 1.5: Giao tiếp giữa 8051 và RAM..................................................................................................18
Hình 1.6: Giản đồ thời gian của lệnh MOVX.........................................................................................18
Hình 1.7: Mạch Reset hệ thống............................................................................................................19
Hình 2.1: Sơ đồ chân của DS1307.........................................................................................................30
Hình 2.2: Sơ đồ khối của DS1307..........................................................................................................31
Hình 2.3: Cấu hình bus 2 dây điển hình................................................................................................34
Hình 2.4: Truyền dữ liệu trên bus 2 dây...............................................................................................36
Hình 2.5: Chế độ slave nhận.................................................................................................................37
Hình 2.6: Chế độ slave phát..................................................................................................................37

2.2. LCD (Liquid Crystal Display)...........................................................................................................37
Hình 2.7: Sơ đồ chân của LCD...............................................................................................................38
Hình 2.8: Sơ đồ khối của HD44780.......................................................................................................40
Hình 3.1: Sơ đồ khối.............................................................................................................................43
Hình 3.2: Khối nút nhấn........................................................................................................................44
Hình 3.3: Khối thời gian thực................................................................................................................45
Hình 3.4: Khối vi điều khiển..................................................................................................................46
Hình 3.5: Khối chuông báo....................................................................................................................46
Hình 3.6: Khối hiển thị..........................................................................................................................47
Hình 3.7: Sơ đồ mạch mô phỏng bằng proteus....................................................................................48
Hình 3.8: Sơ đồ mạch in........................................................................................................................49
Hình 3.9: Mạch hoàn chỉnh đã nạp chương trình.................................................................................49


DANH MỤC BẢNG
Bảng 1.1: Chức năng của các chân trên port 3........................................................................................9
Bảng 1.2: thanh ghi trạng thái trương trình PSW.................................................................................15
Bảng 1.3: Trạng thái các thanh ghi sau khi reset...................................................................................19
Bảng 1.4: Thanh ghi chức năng đặc biệt dùng timer.............................................................................21
Bảng 1.5: Tóm tắt thanh ghi TMOD......................................................................................................21
Bảng 1.6: Chế độ chọn mode cho Timer...............................................................................................21
Bảng 1.7: Tóm tắt thanh ghi TCON.......................................................................................................22
Bảng 1.8: Tóm tắt thanh ghi chế độ port nối tiếp SCON.......................................................................23
Bảng 1.9: Các chế độ port nối tiếp........................................................................................................24
Bảng 2.1: Mô tả thanh ghi thời gian thực.............................................................................................32
Bảng 2.2: Địa chỉ bit của các thành phần trong DS1307.......................................................................32
Bảng 2.3: Thanh ghi điều khiển hoạt động chân SQW/OUT.................................................................33
Bảng 2.4: Chế độ chọn tần số...............................................................................................................33
Bảng 2.5: Chức năng các chân của LCD.................................................................................................39
Bảng 2.6: Chế độ chọn RS, RW.............................................................................................................41

Bảng 2.7: Mã lệnh của LCD...................................................................................................................42


LỜI MỞ ĐẦU
Ngày nay cùng với sự tiến bộ của khoa học kỹ thuật công nghệ điện tử đã đang
và sẽ phát triển ngày càng rộng rãi đặc biệt là trong kỹ thuật số. Hầu hết các thiết bị
kỹ thuật từ phức tạp cho đến đơn giản như thiết bị điều khiển tự động, thiết bị văn
phòng cho đến các thiết bị gia đình đều dùng các bộ vi điều khiển. Các ứng dụng của
mạch số như đồng hồ số, mạch đếm sản phẩm, mạch đo nhiệt độ... Trong các trường
học công sở, cơ quan xí nghiệp... Đồng hồ số được dùng để xem giờ và báo giờ. Mục
đích chính của đồ án này là “Tìm hiểu 8051 và xây dựng đồng hồ thời gian thực
trên cơ sở DS1307 và ứng dụng điều khiển”, vẫn lưu được thời gian khi mất nguồn
cung cấp và có chế độ báo giờ hẹn.
Mục tiêu và nội dung của đồ án.
Mục tiêu: Tìm hiểu cấu tạo và chức năng của vi điều kiển 8051 và các linh kiện
liên quan. Xây dựng và thiết kế một mạch đồng hồ số có chức năng xem giờ và báo
giờ.
Nội dung của đồ án bao gồm 3 phần chính:
Chương 1: Tìm hiểu vi điều khiển 8051
Chương 2 : Các linh kiện trong mạch đồng hồ có hẹn giờ
Chương 3: Thiết kế mạch đồng hồ có hẹn giờ


CHƯƠNG 1
TÌM HIỂU VI ĐIỀU KHIỂN 8051
1.1. Giới thiệu
Bộ vi điều khiển viết tắt là Micro-controller, là mạch tích hợp trên một chip có
thể lập trình được, dùng để điều khiển hoạt động của một hệ thống. Theo các tập lệnh
của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin,
đo thời gian và tiến hành đóng mở một cấu tạo nào đó.

Trong các thiết bị điện và điện tử dân dụng, các bộ vi điều khiển, điều khiển
hoạt động của tivi, máy giặt, đầu đọc laser, điện thoại, lò vi ba… Trong hệ thống sản
xuất tự động, bộ vi điều khiển được sử dụng trong robot, dây truyền tự động. Các hệ
thống càng “thông minh” thì vai trò của hệ vi điều khiển càng quan trọng.
1.2. Khảo sát vi điều khiển 8051
Vi điều khiển 8051 thuộc họ MCS51 có đặc điểm sau:
-

4k byte ROM.

-

128 byte RAM.

-

4 port I/O 8 bit.

-

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

-

Giao tiếp nối tiếp.

-

64K byte không gian bộ nhớ chương trình mở rộng.


-

64K byte không gian bộ nhớ dữ liệu mở rộng.

-

Một bộ xử lý luận lý (thao tác trên các bit đơn).

-

210 bit có khả năng định vị riêng biệt trong RAM nội.

-

5 nguồn ngắt với 2 mức ưu tiên.

1.2.1. Cấu trúc bên trong của vi điều khiển 8051
Phần chính của vi điều khiển 8051 là bộ xử lý trung tâm (CPU: central
processing unit) bao gồm:
-

Thanh ghi tích lũy A.

-

Thanh ghi tích lũy phụ B, dùng cho phép nhân chia.

-

Đơn vị logic học (ALU: Arithmetic Logical Unit).


-

Từ trạng thái trương trình (PSW: Program Status Word).

-

Bốn băng thanh ghi.

-

Con trỏ ngăn xếp.


-

Ngoài ra còn có bộ nhớ chương trình, bộ giải mã lệnh, bộ điều khiển
thời gian logic.

Đơn vị xử lí trung tâm nhận trực tiếp xung từ bộ giao động, ngoài ra còn có khả
năng đưa tín hiệu giữ nhịp từ bên ngoài.
Chương trình đang chạy có thể dừng lại nhờ một khối điều khiển ngắt ở bên
trong. Các nguồn ngắt có thể là: các biến cố ở bên ngoài, sự tràn bộ đếm định thời
hoặc cũng có thể là giao diện nối tiếp.
Hai bộ định thời 16 bit hoạt động như một bộ đếm.
Các cổng (port0, port1, port2, port 3) sử dụng vào mục đích điều khiển.
Ở cổng 3 có thêm các đường dẫn điều khiểu dùng để trao đổi với một bộ nhớ bên
ngoài, hoặc để đầu nối giao diện nối tiếp, cũng như các đường ngắt dẫn bên.

Hình 1.1: sơ đồ khối 8051

Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ, làm
việc độc lập với nhau. Trong vi điều khiển 8051 có hai thành phần quan trọng khác đó
là bộ nhớ ngoài và các thanh ghi.
Bộ nhớ bao gồm: có bộ nhớ RAM và bộ nhớ ROM dùng để lưu trữ dữ liệu và
mã lệnh. Các thanh ghi sử dụng để lưu thông tin trong quá trình xử lý. Khi CPU làm
việc nó làm thay đổi nội dung của các thanh ghi.


1.2.2. Chức năng các chân vi điều khiển 8051
a. Port 0
Port 0 gồm các chân từ 32 ÷ 39. Port 0 có chức năng I/O trong các thiết kế cỡ
nhỏ (không dùng bộ nhớ mở rộng). Đối với các thiết kế lớn với bộ nhớ rộng, nó được
hợp kênh giữa bus địa chỉ và bus dữ liệu.
b. Port 1
Port 1 là một port I/O trên các chân 1-8. Các chân được ký hiệu P1.0, P1.1,
P1.2…Có thể dùng cho các thiết bị ngoài nếu cần. Port 1 không có chức năng khác, vì
vậy chúng ta chỉ được dùng trong giao tiếp với các thiết bị ngoài.
c. Port 2
port 2 là một port công dụng kép trên các chân 21-28 được dùng như các đường
xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ nhớ mở rộng.

Hình 1.2: Sơ đồ chân 8051
d. Port 3
port 3 là một port công dụng kép trên các chân 10-17. Các chân của port này có
nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tính đặc biệt của
8051 như bảng sau.
bit

Tên


Địa chỉ bít

Chức năng chuyển đổi

P3.0
P3.1
P3.2
P3.3
P3.4

RXD
TXD
INT0\
INT1\
T0

B0H
B1H
B2H
B3H
B4H

Dữ liệu nhận cho port nối tiếp
Dữ liệu phát cho port nối tiếp
Ngắt 0 bên ngoài
Ngắt 1 bên ngoài
Ngõ vào của timer/counter 0


P3.5

P3.6
P3.7

T1
WR\
RD\

B5H
Ngõ vào của timer/counter 1
B6H
Xung ghi bộ nhớ dữ liệu ngoài
B7H
Xung đọc bộ nhớ dữ liệu ngoài
Bảng 1.1: Chức năng của các chân trên port 3

e. PSEN (Program Store Enable): 8051 có 4 tín hiệu điều khiển
PSEN là tín hiệu ra trên chân 29. Nó là tín hiệu điều khiển để cho phép bộ nhớ
chương trình mở rộng và thường được nối đến chân OE (Output Enble) của một
EPROM để cho phép đọc các bytes mã lệnh.
PSEN sẽ ở mức thấp trong thời gian lấy lệnh. Các mã nhị phân của trương trình
được đọc từ EPROM qua bus và được chốt vào thanh ghi lệnh của 8051 để giải mã
lệnh. Khi thi hành chương trình ROM nội (8051) PSEN sẽ ở mức thụ động (mức cao).
f. ALE (Address Latch Enable)
Tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lý
8858, 8088, 8086, 8051 dùng ALE một cách tương tự cho làm việc giải các kênh các
bus địa chỉ và dữ liệu khi port 0 được dùng trong chế độ chuyển đổi của nó: vừa là bus
dữ liệu vừa là bus thấp của địa chỉ, ALE là tín hiệu để chốt địa chỉ vào một thanh ghi
bên ngoài trong nửa đầu của chu kỳ bộ nhớ. Sau đó, các đường port 0 dùng để xuất
hoặc nhập dữ liệu trong nửa sau chu kỳ của bộ nhớ.
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có

thể dùng làm nguồn xung nhịp cho các hệ thống. Nếu xung trên 8051 là 12MHz thì
ALE có tần số 2MHz. Chỉ ngoại trừ khi thi hành lệnh MOVX, một xung ALE sẽ bị
mất. Chân này cũng được làm ngõ vào cho lập trình cho EPROM trong 8051.
g. EA (External Access)
Tín hiệu vào EA trên chân 31 thường được mắc lên mức cao (+5V) hoặc mức
thấp (GND). Nếu ở mức cao, 8051 thi hành chương trình từ ROM nội trong khoảng
địa chỉ thấp (4K). Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng.
Nếu EA được nối mức thấp bộ nhớ bên trong chương trình 8051 sẽ bị cấm và chương
trình thi hành từ EPROM mở rộng. Người ta còn dùng chân EA làm chân cấp điện áp
21V khi lập trình cho EPROM trong 8051.
h. RST (Reset)
Ngõ vào RST trên chân 9 là ngõ reset của 8051. Khi tín hiệu này được đưa lên
mức cao (trong ít nhất 2 chu kỳ máy), các thanh ghi trong 8051 được tải những giá trị
thích hợp để khởi động hệ thống.
i. Các ngõ vào bộ dao động trên chip


Như đã thấy trong các hình trên, 8051 có một bộ dao động trên chip. Nó thường
được nối với thạch anh giữa hai chân 18 và 19. Tần số thạch anh thông thường là
12MHz.
j. Các chân nguồn
8051 vận hành với nguồn đơn +5V, Vcc được nối vào chân 40 và GND được
nối vào chân 20.
1.2.3. Tổ chức bộ nhớ
8051 có bộ nhớ theo cấu trúc Harvard: có vùng nhớ riêng biệt cho chương trình
và dữ liệu, cả chương trình và dữ liệu có thể ở bên trong 8051. Dù vậy chúng có thể
được mở rộng bằng các thành phần ngoài lên đến tối đa 64K byte bộ nhớ chương trình
và 64K byte bộ nhớ dữ liệu.
Bộ nhớ bên trong bao gồm ROM và RAM trên chip, RAM trên chip bao gồm
nhiều phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi

và các thanh ghi chức năng đặc biệt.
Hai đặc tính cần lưu ý là:
-

Các thanh ghi và các Port xuất nhập đã được xếp trong bộ nhớ và có thể được

truy xuất trực tiếp giống như các địa chỉ bộ nhớ khác.
-

Ngăn xếp bên trong RAM nội nhỏ hơn so với Ram ngoài như trong các bộ vi

xử lý khác.
 Chi tiết về bộ nhớ Ram trên chip:
Ram bên trong 8051 được phân chia giữa các bank thanh ghi (00H-1FH), Ram
địa chỉ hóa từng bit (20H-2FH), Ram đa dụng (30H-7FH) và các thanh ghi chức năng
đặc biệt (80H-FFH).
1.2.3.1. Ram đa dụng
Mọi địa chỉ trong vùng RAM đa dụng đều có thể được truy xuất tự do dùng
cách đánh địa chỉ trực tiếp hoặc gián tiếp. Ví dụ, để đọc nội dung ở địa chỉ 5FH của
RAM nội vào thanh ghi tích lũy lệnh sau sẽ được dùng:
MOV A, #5FH
Lệnh này di chuyển một bit dữ liệu dùng cách đánh địa chỉ trực tiếp để xác định
“địa chỉ nguồn” (5FH). Đích nhận dữ liệu được ngầm xác định trong mã lệnh là thanh
ghi tích lũy A.


RAM bên trong cũng có thể được truy xuất dùng cách đánh địa chỉ gián tiếp
qua R0 hay R1. Ví dụ, sau khi thi hành cùng nhiệm vụ như lệnh đơn ở trên:
MOV R0, #5FH
MOV A, @R0

Lệnh đầu dùng địa chỉ tức thời để di chuyển giá trị 5FH vào thanh ghi R0 và
lệnh thứ hai dùng địa gián tiếp để di chuyển dữ liệu “được trỏ bởi R0” vào thanh ghi
tích lũy.
1.2.3.2. RAM địa chỉ hóa từng bit
8051 chứa 210 bit được địa chỉ hóa, trong đó 128 bit là ở các địa chỉ byte 20H
đến 2FH, và phần còn lại trong các thanh ghi chức năng đặc biệt.
Ý tưởng truy xuất từng bit riêng rẽ bằng mềm là một đặc tính tiện lợi của vi
điều khiển nói chung. Các bit có thể được đặt, xóa, AND, OR …với một lệnh đơn. Đa
số các chip xử lí đòi hỏi một chuỗi lệnh đọc–sửa–ghi để đạt được hiệu quả tương tự.
Hơn nữa, các port I/0 cũng được địa chỉ từng bit làm đơn giản phần mềm xuất nhập
từng bit.
Có 128 bit được địa chỉ hóa đa dụng ở các byte 20H đến 2FH. Các địa chỉ này
được truy xuất như các byte hoặc các bit phụ thuộc vào lệnh được dùng. ví dụ, để đặt
bit 67H, ta dùng lệnh sau:
SETB 67H
Chú ý rằng “địa chỉ bit 67H” là bit có trọng số lớn nhất (MSB) ở “địa chỉ byte
2CH” lệnh trên sẽ không tác động đến các bit khác của địa chỉ này.
1.2.3.3. Các bank thanh ghi
32 byte thấp nhất của bộ nhớ nội là dành cho các bank thanh ghi. Bộ lệnh của
8051 hỗ trợ 8 thanh ghi (R0 đến R7) và theo mặc định (sau khi Reset hệ thống) các
thanh ghi này ở các địa chỉ 00H-07H. Lệnh sau đây sẽ đọc nội dung ở địa chỉ 05H vào
thanh ghi tích lũy.
MOV A, R5
Đây là lệnh một byte dùng địa chỉ thanh ghi. Tất nhiên, thao tác tương tự có thể
được thi hành bằng lệnh 2 byte dùng địa chỉ trực tiếp nằm trong byte thứ hai:
MOV A, 05H
Các lệnh dùng các thanh ghi R0 đến R7 thì sẽ ngắn hơn và nhanh hơn các lệnh
tương ứng nhưng dùng địa chỉ trực tiếp. Các giá trị dữ liệu được dùng thường xuyên
nên dùng một trong các thanh ghi này.



Bank thanh ghi tích cực có thể chuyển đổi bằng cách thay đổi các bit chọn bank
thanh ghi trong từ trạng thái chương trình (PSW). Giả sử rằng bank thanh ghi 3 được
tích cực, lệnh sau sẽ ghi nội dung của thanh ghi tích lũy vào địa chỉ 18H:
MOV R0, A
Ý tưởng dùng “các bank thanh ghi” cho phép “chuyển hướng” chương trình
nhanh và hiệu quả (từng phần riêng rẽ của phần mềm sẽ có một bộ thanh ghi riêng
không phụ thuộc vào các phần khác).
1.2.3.4. Các thanh ghi chức năng đặc biệt
Các thanh ghi trong 8051 được định dạng như một phần của RAM trên chip. Vì
vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi trực tiếp, sẽ không có lợi khi
đặt chúng vào trong RAM trên chip). Đó là lý do để 8051 có nhiều thanh ghi. Cũng
như R0 đến R7, có 21 thanh ghi chức năng đặc biệt (SFR: Special Funtion Register) ở
vùng trên của RAM nội, từ địa chỉ 80H đến FFH. Chú ý rằng hầu hết 128 địa chỉ từ
80H đến FFH không được định nghĩa. Chỉ có 21 địa chỉ SFR là được định nghĩa.
Ngoại trừ tích lũy (A) có thể được truy xuất ngầm như đã nói, đa số các SFR
được truy xuất dùng địa chỉ trực tiếp. Chú ý rằng một vài SFR có thể được địa chỉ hóa
bit hoặc byte. Người thiết kế phải thận trọng khi truy xuất bit và byte. Ví dụ lệnh sau:
SETB 0E0H
Sẽ set bit 0 trong thanh ghi tích lũy, các bit khác không thay đổi. Ta thấy rằng
E0H đồng thời là địa chỉ byte của thanh ghi tích lũy và là địa chỉ bit có trọng số nhỏ
nhất trong thanh ghi tích lũy. Vì lệnh SETB chỉ tác động trên bit, nên chỉ có địa chỉ bit
là có hiệu quả.
a. Các thanh ghi port xuất nhập
Các port của 8051 bao gồm port 0 ở địa chỉ 80H, port 1 ở địa chỉ 90H, port 2 ở
địa chỉ A0H và port 3 ở địa chỉ B0H. Tất cả các port đều được địa chỉ hóa từng bit.
Điều đó cung cấp một khả năng giao tiếp thuận lợi.
b. Các thanh ghi timer
8051 chứa 2 bộ định thời đếm 16 bit được dùng trong việc định thời hoặc đếm
sự kiện. Timer 0 ở địa chỉ 8AH (TL0: byte thấp) và 8CH (TH0: byte cao). Timer 1 ở

địa chỉ 8BH (TL1: byte thấp) và 8DH (TH1: byte cao). Việc vận hành timer được set
bởi thanh ghi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi điều khiển timer
(TCON) ở địa chỉ 88H. Chỉ có TCON được địa chỉ hóa từng bit.
c. Các thanh ghi nối tiếp


8051 chứa một port nối tiếp trên chip dành cho việc trao đổi thông tin với các
thiết bị nối tiếp như máy tính, modem hoặc cho việc giao tiếp với các IC khác có giao
tiếp nối tiếp (có bộ chuyển đổi A/D, các thanh ghi dịch…). Một thanh ghi gọi là bộ
đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ được giữ cả hai dữ liệu truyền và nhận.
Khi truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF. Các mode vận
hành khác nhau được lập trình qua thanh ghi điều khiển port nối tiếp (SCON được địa
chỉ hóa từng bit) ở địa chỉ 98H.
d. Thanh ghi ngắt
Thanh ghi IE (Interrupt Enable: Cho phép ngắt) có địa chỉ byte A8H và địa chỉ
bit A8H – AFH có công dụng cho phép hoặc không cho phép các ngắt hoạt động (có
thể từng ngắt riêng rẽ hoặc tất cả các ngắt).
Thanh ghi IP (Interrup Priority: Ưu tiên ngắt) có địa chỉ byte B8H và địa chỉ bit B8H –
BCH có công dụng thiết lập mức ưu tiên cho các ngắt (ưu tiên thấp hoặc ưu tiên cao).
e. Thanh ghi diều khiển nguồn
Thanh ghi PCON (Power Control: Điều khiển nguồn) không có bit định vị. Nó
ở địa chỉ 87H chứa nhiều bit điều khiển. Thanh ghi PCON được tóm tắt như sau:
- Bit 7 (SMOD) → cho phép tăng gấp đôi tốc độ truyền dữ liệu nối tiếp (tốc độ
baud) khi SMOD = 1.
- Bit 6, 5, 4 → không có địa chỉ.
- Bit 3, 2 (GF1, GF0) → cho phép người lập trình dùng với mục đích riêng.
- Bit 1 (PD) → dùng để quy định chế độ nguồn giảm.
- Bit 0 (IDL) → dùng để quy định chế độ nghỉ.
Các bit điều khiển Power Down và Idle có tác dụng chính trong tất cả các IC họ
MCS – 51 nhưng chỉ được thi hành trong sự biên dịch của CMOD.

f. Thanh ghi A
Thanh ghi A là thanh ghi tích lũy có công dụng chứa dữ liệu của các phép toán
mà vi điều khiển xử lý. Ví dụ lệnh MUL AB sẽ nhân những giá trị không dấu 8 bit có
trong hai thanh ghi A và B, rồi trả về kết quả 16 bit trong A (byte thấp) và B (byte
cao). Lệnh DIV AB sẽ lấy A chia B, kết quả số nguyên đặt vào A, số dư đặt vào B.
Thanh ghi A có địa chỉ byte là E0H và địa chỉ bit từ E0H – E7H.
g. Thanh ghi B


Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi A cho các phép toán
nhân chia.
Thanh ghi B có thể được dùng như một thanh ghi đệm trung gian đa mục đích.
Nó là những bit định vị thông qua những địa chỉ từ F0H – F7H.
h. Thanh ghi SP
Con trỏ ngăn xếp (SP: Stack Pointer) là một thanh ghi 8 bit ở địa chỉ byte là
81H, dùng để lưu trữ tạm thời các dữ liệu. Đây là thanh ghi không định địa chỉ bit.
Thanh ghi này chứa địa chỉ của byte dữ liệu hiện hành trên đỉnh ngăn xếp. Các lệnh
trên ngăn xếp bao gồm lệnh cất dữ liệu vào ngăn xếp (PUSH) và lệnh lấy dữ liệu ra
khỏi ngăn xếp (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à lệnh lấy ra khỏi ngăn xếp sẽ làm giảm SP. Đối với chip 8051 thì vùng nhớ
được dùng để làm ngăn xếp được lưu giữ trong RAM nội.
Để sử dụng ngăn xếp thì ta phải khởi động thanh ghi SP (nghĩa là nạp giá trị
cho thanh ghi SP) → vùng nhớ của ngăn xếp có địa chỉ bắt đầu là (SP) +1 và địa chỉ
kết thúc là 7FH.
Sau khi reset IC, SP sẽ mang giá trị mặc định là 07H và dữ liệu đầu tiên sẽ được
cất vào ô nhớ ngăn xếp có địa chỉ 08H. Nếu phần mềm ứng dụng không khởi động SP
một giá trị mới thì dãy thanh ghi 1, có thể cả 2 và 3 sẽ không dùng được vì vùng RAM
này đã được dùng làm ngăn xếp. Ngăn xếp được truy xuất trực tiếp bằng các lệnh
PUSH và POP để lưu trữ tạm thời và lấy lại dữ liệu, hoặc truy xuất ngầm bằng lệnh
gọi chương trình con (ACALL, LCALL) và các lệnh trở về (RET, RETI) để lưu trữ giá

trị của bộ đếm chương trình khi bắt đầu thực hiện chương trình con và lấy lại khi kết
thúc chương trình con.


i. Thanh ghi DPTR
Con trỏ dữ liệu (DPTR: Data Pointer Register) là thanh ghi 16 bit chứa địa chỉ
của ô nhớ cần truy xuất thuộc ROM trong hoặc ngoài và RAM ngoài.
Thanh ghi DPTR có địa chỉ byte là 82H (DPL: byte thấp) và 83H (DPH: byte
cao). Thanh ghi này không định địa chỉ bit.
j. Thanh ghi trạng thái trương trình PSW (Program Status Word)
Bit

Ký hiệu

Địa chỉ

Mô tả bit

PSW.7

CY

D7H

Cờ nhớ

PSW.6

AC


D6H

Cờ nhớ phụ

PSW.5

F0

D5H

Cờ 0

PSW.4

RS1

D4H

Chọn dãy thanh ghi (bit 1)

PSW.3

RS0

D3H

PSW.2

OV


D2H

Cờ tràn

PSW.1

-

D1H

Dự trữ

PSW.0

P

D0H

Cờ kiểm tra chẵn lẻ

Bảng 1.2: thanh ghi trạng thái trương trình PSW
-

Cờ nhớ (CY): bit địa chỉ là D7H, cờ nhớ được set lên 1 nếu có nhớ ở bit thứ 7

trong phép toán cộng hay có mượn ở bit thứ 7 trong phép toán trừ.
-

Cờ nhớ phụ: Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết quả của


4 bit thấp trong khoảng 0AH đến 0FH. Nếu các giá trị cộng được là số BCD, thì sau
lệnh cộng cần có DA A (hiệu chỉnh thập phân thanh ghi tích lũy) để mang kết quả lớn
hơn 9 trở về tâm từ 0÷9.
-

Cờ 0 (F0): là một bit cờ đa dụng dành các ứng dụng của người dùng.

-

Các bit chọn bank thanh ghi (RSO và RS1): xác định bank thanh ghi được tích

cực. Chúng được xóa sau khi reset hệ thống và được thay đổi bằng phần mềm nếu cần.
Ví dụ, ba lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của thanh ghi R7
đến thanh ghi tích lũy A:
SETB RS1
SETB RS0
MOV A, R7


-

Cờ Tràn: Cờ tràn (OV) được set một lệnh cộng hoặc trừ nếu có một phép toán

bị tràn. Khi các số có dấu được cộng hoặc trừ với nhau, phần mềm có thể kiểm tra bit
này để xác định xem kết quả của nó có nằm trong tầm xác định không. Khi các số
không dấu được cộng, bit OV có thể được bỏ qua. Các kết quả lớn hơn +127 hoặc nhỏ
hơn –128 sẽ set bit OV.
1.2.3.5. Bộ nhớ ngoài
Khi dùng bộ nhớ ngoài, port 0 không còn là một port I/O thuần túy nữa. Nó
được hợp kênh giữa bus địa chỉ (A0-A7) và bus dữ liệu (D0-D7) với tín hiệu ALE để

chốt byte thấp của địa chỉ khi bắt đầu mỗi chu kỳ bộ nhớ. Port 2 thông thường được
dùng cho byte cao của bus địa chỉ.
Trong nửa đầu của mỗi chu kỳ bộ nhớ, byte thấp của địa chỉ được cấp trong
port 0 và được chốt bằng xung ALE. Một IC chốt 74HC373 (hoặc tương đương) sẽ giữ
byte địa chỉ thấp trong phần còn lại của chu kỳ bộ nhớ. Trong nửa sau của chu kỳ bộ
nhớ port 0 được dùng như bus dữ liệu và được đọc hoặc ghi tùy theo lệnh.
a. Truy xuất bộ nhớ chương trình ngoài
Bộ nhớ chương trình ngoài là một IC ROM được phép bởi tín hiệu PSEN. Hình
1.3 mô tả cách nối một EPROM vào 8051:

Hình 1.3: Giao tiếp giữa 8051 và EPROM


Hình 1.4: giản đồ thời gian đoc bộ nhớ chương trình ngoài
Một chu kỳ máy của 8051 có 12 chu kỳ xung nhịp. Nếu bộ dao động trên chip
được dùng bởi một thạch anh 12MHz thì chu kỳ máy kéo dài 1µs. Trong một chu kỳ
máy sẽ có 2 xung ALE và 2 byte được đọc từ bộ nhớ chương trình (nếu lệnh hiện hành
là một byte thì byte thứ hai sẽ được loại bỏ). Giản đồ thời gian của một lần lấy lệnh
được vẽ ở hình 1.4.
b. Truy xuất bộ nhớ dữ liệu ngoài
Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được cho phép ghi/đọc bằng các tín
hệu WR và RD (các chân P3.6 và P3.7 thay đổi chức năng). Chỉ có một cách truy xuất
bộ nhớ dữ liệu ngoài là với lệnh MOVX dùng con trỏ dữ liệu (DPTR) 16 bit hoặc R0
và R1 xem như thanh ghi địa chỉ. Kết nối bus địa chỉ và bus dữ liệu giữa RAM và
8051cũng giống EPROM và do đó cũng có thể lên đến 64 byte bộ nhớ RAM. Ngoài
ra, chân RD của 8051 được nối tới chân cho phép xuất (OE) của RAM và chân WR
được nối tới chân ghi (WR) của RAM.
Giản đồ thời gian cho lệnh đọc bộ nhớ dữ liệu ngoài được vẽ trên hình 1.5 đối
với lệnh MOVX A, @DPTR:



Hình 1.5: Giao tiếp giữa 8051 và RAM

Hình 1.6: Giản đồ thời gian của lệnh MOVX
Giản đồ thời gian cho lệnh ghi (MOV X @DPTR, A) cũng tương tự chỉ khác
đường WR sẽ thay vào đường RD và dữ liệu được xuất ra trên port 0 (RD vẫn giữ mức
cao) ở hình1.6.
1.2.3.6. Lệnh reset
8051 được reset bằng cách giữ chân RST ở mức cao ít nhất trong 2 chu kỳ máy
và trả nó về múc thấp. RST có thể được kích khi cấp điện dùng một mạch R-C.
Trạng thái của tất cả các thanh ghi của 8051 sau khi reset hệ thống được tóm tắt
trong bảng 1.4:


Hình 1.7: Mạch Reset hệ thống
Thanh ghi
Đếm chương trình

Nội dung
0000H

Tích lũy

00H

B

00H

PSW


00H

SP

07H

DPTR

0000H

Port 0-3

FFH

IP

XXX00000B

IE

0XX00000B

Các thanh ghi định thời

00H

SCON

00H


SBUF

00H

PCON(HMOS)

0XXXXXXB

PCON(CMOS)
0XXX0000B
Bảng 1.3: Trạng thái các thanh ghi sau khi reset
Quan trọng nhất trong các thanh ghi trên là thanh ghi đếm chương trình, nó
được đặt lại 0000H. Khi RST trở lại mức thấp, việc thi hành chương trình luôn bắt đầu
ở địa chỉ đầu tiên trong bộ nhớ trong chương trình: địa chỉ 0000H. Nội dung của RAM
trên chip không bị thay đổi bởi lệnh reset.
1.2.4. Hoạt động của bộ định thời (Timer)
1.2.4.1. Giới thiệu
Một định nghĩa đơn giản của timer là một chuỗi các flip-flop chia đôi tần số
nối tiếp với nhau, chúng nhận tín hiệu vào làm nguồn xung nhịp. Ngõ ra của tần số
cuối làm nguồn xung nhịp cho flip-flop báo tràn của timer (flip-flop cờ). Giá trị nhị


phân trong các flip-flop của timer có thể xem như số đếm số xung nhịp (hoặc các sự
kiện) từ khi khởi động timer. Ví dụ timer 16 bit sẽ đếm từ 0000H đến FFFFH. Cờ báo
tràn sẽ lên 1 khi số đếm tràn từ FFFFH đến 0000H. 8051 có 2 timer 16 bit, mỗi timer
có bốn cách làm việc. Người sử dụng các timer để: Định khoảng thời gian, đếm sự
kiện hoặc tạo tốc độ baud cho port nối tiếp trong 8051.
Trong các ứng dụng định khoảng thời gian, người lập trình timer ở một khoảng
đều đặn và đặt cờ tràn timer. Cờ được dùng để đồng bộ hóa chương trình để thực hiện

một tác động kiểm tra trạng thái của các cửa ngõ vào hoặc các sự kiện ra các ngõ ra.
Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer để đo thời
gian trôi qua giữa hai sự kiện (ví dụ: đo tốc độ xung).
Đếm sự kiện dùng xác định số lần xẩy ra của một sự kiện. Một “sự kiện” là bất
cứ tác động ngoài nào có thể cung cấp một chuyển trạng thái trên một chân của 8051.
Các timer cũng có thể cung cấp xung nhịp tốc độ baud cho port nối tiếp trong 8051.
Truy xuất timer của 8051 dùng 6 thanh ghi chức năng đặc biệt cho trong bảng
sau:


SFR

Mục đích

Địa chỉ

Địa chỉ hóa từng bit

TCON

Điều khiển timer

88H



TMOD

Chế độ timer


89H

Không

TL0

Byte thấp của timer 0

8AH

Không

TL1

Byte thấp của timer 1

8BH

Không

TH0

Byte cao của timer 0

8CH

Không

TH1


Byte cao của timer 1

8DH

không

Bảng 1.4: Thanh ghi chức năng đặc biệt dùng timer
1.2.4.2. Thanh ghi chế độ timer (TMOD)
Thanh ghi TMOD chứa hai nhóm 4 bit dùng để đặc chế độ làm việc cho timer 0
và timer 1.
bit
7
6

Tên
GATE
C/T

Timer
1
1

Mô tả
khi GATE=1, timer chỉ làm việc khi INT1=1
Bit cho đếm sự kiện hay ghi giờ
C/T=1: Đếm sự kiện

5
4
3

2
1
0

M1
M0
GATE
C/T
M1
M0

C/T=0: Ghi giờ đều đặn
1
Bit chọn mode của Timer 1
1
Bit chọn mode của Timer 1
0
Bit cổng của Timer 0
0
Bit chọn Counter/Timer của Timer 0
0
Bit chọn mode của Timer 0
0
Bit chọn mode của Timer 0
Bảng 1.5: Tóm tắt thanh ghi TMOD

Hai bit M0 và M1 của TMOD để chọn mode cho Timer 0 hoặc Timer 1.
M0
0
0

1
1

M1
0
1
0
1

MODE
0
1
2
3

Mô tả
Mode Timer 13 bit (mode 8048)
Mode Timer 16 bit
Mode tự động nạp 8 bit
Mode Timer tách ra:
Timer 0: TL0 là Timer 8 bit được điều khiển bởi
các bit của Timer 0. TH0 tương tự nhưng được
điều khiển bởi các bit của mode Timer 1.

Timer 1: Được ngừng lại
Bảng 1.6: Chế độ chọn mode cho Timer
TMOD không có bit định vị, nó thường được LOAD một lần bởi phần mềm ở
đầu chương trình để khởi động mode Timer. Sau đó sự định giờ có thể dừng lại, được



khởi động lại như thế bởi sự truy xuất các thanh ghi chức năng đặc biệt của Timer
khác.
1.2.4.3. Thanh ghi điều khiển Timer (TCON)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho timer 0 và
timer 1.
Bit
Ký hiệu
TCON.7
TF1

địa chỉ bit
Mô tả
8FH
Cờ tràn Timer 1 được set bởi phần cứng ở
sự tràn, được xoá bởi phần mềm hoặc bởi
phần cứng khi các vectơ xử lý đến thủ tục

TCON.6

TR1

8EH

phục vụ ngắt ISR
Bit điều khiển chạy Timer 1 được set hoặc
xoá bởi phần mềm để chạy hoặc ngưng

TCON.5
TCON.4
TCON.3


TF0
TR0
IE1

8DH
8CH
8BH

chạy timer
Cờ tràn Timer 0 (hoạt động tương tự TF1)
Bit điều khiển chạy Timer 0 (giống TR1)
Cờ kiểu ngắt 1 ngoài. Khi cạnh xuống xuất
hiện trên INT1 thì IE1 được xoá bởi phần
mềm hoặc phần cứng khi CPU định hướng

TCON.2

IT1

8AH

đến thủ tục phục vụ ngắt ngoài.
Cờ kiểu nhắt 1 ngoài được set hoặc xoá
bằng phần mềm bởi cạnh kích hoạt bởi sự

TCON.1
TCON.0

IE0

IT0

ngắt ngoài.
89H
Cờ cạnh ngắt 0 ngoài
88H
cờ kiểu ngắt 0 ngoài
Bảng 1.7: Tóm tắt thanh ghi TCON

1.2.5. Hoạt động port nối tiếp
1.2.5.1. Giới thiệu
8051 có một port nối tiếp trong chip có thể hoạt động ở nhiều chế độ khác trên
một dãy tần số rộng. Chức năng chủ yếu của một port nối tiếp là thực hiện chuyển đổi
song song sang nối tiếp với dữ liệu xuất và chuyển đổi nối tiếp sang song song với dữ
liệu nhập.
Truy xuất phần cứng đến port nối tiếp qua các chân TXD và RXD. Các chân
này có các chức năng khác với hai bit của port 3. P3.1 ở chân 11 (TXD) và P3.0 ở
chân 10 (RXD). Port nối tiếp cho hoạt động song song (full duplex : thu và phát đồng
thời) và đệm lúc thu (receiver buffering) cho phép một ký tự sẽ được thu và được giữ


trong khi ký tự thứ hai được nhận. Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ hai
được thu đầy đủ thì dữ liệu sẽ không bị mất.
Hai thanh ghi chức năng đặc biệt cho phép phần mềm truy xuất đến port nối
tiếp là : SBUF và SCON. Bộ đếm port nối tiếp (SBUF) ở địa chỉ 99H thật sự là hai bộ
đếm. Viết vào SBUF để truy xuất dữ liệu thu được. Đây là hai thanh ghi riêng biệt
thanh ghi chỉ ghi để phát và thanh ghi để thu.
Thanh ghi điều khiển port nối tiếp (SCON) ở địa chỉ 98H là thanh ghi có địa chỉ
bit chứa các bit trạng thái và các bit điều khiển. Các bit điều khiển đặt chế độ hoạt
động cho port nối tiếp, và các bit trạng thái báo cáo kết thúc việc phát hoặc thu ký tự.

Các bit trạng thái có thể được kiểm tra bằng phần mềm hoặc có thể được lập trình để
tạo ngắt. Tần số làm việc của port nối tiếp còn gọi là tốc độ baund có thể cố định (lấy
từ bộ giao động của chip). Nếu sử dụng tốc độ baud thay đổi, timer 1 sẽ cung cấp xung
nhịp tốc độ baud và phải được lập trình.
1.2.5.2. Thanh ghi điều khiển port nối tiếp
Chế độ hoạt động của port nối tiếp được đặt bằng cách ghi vào thanh ghi chế độ
port nối tiếp (SCON) ở địa chỉ 98H. Sau đây các bảng tóm tắt thanh ghi SCON và các
chế độ của port nối tiếp:
Bit
SCON.7
SCON.6
SCON.5

Ký hiệu
SM0
SM1
SM2

Địa chỉ
9FH
9EH
9DH

Mô tả
Bit 0 của chế độ port nối tiếp
Bit 1 của chế độ port nối tiếp
Bit 2 của chế độ port nối tiếp. Cho phép
truyền thông đã xử lý trong các chế độ
2 và 3; RI sẽ không bị tác động nếu bit


SCON.4
SCON.3

REN
TB8

9CH

thứ 9 thu được là 0
Cho phép bộ thu phải đặt lên 1 để thu

9BH

(nhận) các ký tự
Bit 8 phát, bit thứ 9 được phát các chế
độ 2 và 3; được đặt và xóa bằng phần

SCON.2
SCON.1
SCON.0

RB8
TI
RI

9AH
99H

mềm
Bit 8 thu, bit thứ 9 thu được

Cờ ngắt phát. Đặt lên 1 khi kết thúc

98H

phát ký tự; được xóa phần mềm
Cờ ngắt thu. Đặt lên 1 khi Kết thúc thu

ký tự; được xóa Bằng phần mềm
Bảng 1.8: Tóm tắt thanh ghi chế độ port nối tiếp SCON


SM0
0
0
1

SM1 Chế độ
Mô tả
Tốc độ baud
0
0
Thanh ghi dịch Cố định (Fosc/12)
1
1
UART 8 bit
Thay đổi (đặt bằng Timer)
0
2
UART 9 bit
Cố định (Fosc/12 hoặc Fosc/64)

Bảng 1.9: Các chế độ port nối tiếp

Trước khi sử dụng port nối tiếp, phải khởi động SCON cho đúng chế độ. Ví dụ,
lệnh sau:
MOV SCON,#01010010B
Khởi động port nối tiếp cho chế độ 1 (SM0/SM1=0/1), cho phép bộ thu
(REN=1) và đặt cờ ngắt phát (TP=1) để chỉ bộ phát sẵn sàng hoạt động.
1.2.5.3. Khởi động và truy xuất các thanh ghi cổng nối tiếp
a. Cho phép thu
Bit cho phép bộ thu (REN = Receiver Enable) trong SCON phải được đặt lên 1
bằng phần mềm để cho phép thu các ký tự. Thông thường thực hiện việc này ở đầu
chương trình khi khởi động cổng nối tiếp, timer...Có thể thực hiện việc này theo hai
cách. Lệnh:
SETB REN
Sẽ đặt REN lên 1, hoặc lệnh:
MOV SCON,#xxx1xxxxB
Sẽ đặt REN 1 và đặc hoặc xóa đi các bit khác trên SCON khi cần (các x phải là
0 hoặc 2 để đặc chế độ làm việc).
b. Bit dữ liệu thứ 9
Bit dữ liệu thứ 9 cần phát trong các chế độ 2 và 3, phải được nạp vào trong TB8
bằng phần mềm. Bit dữ liệu thứ 9 thu được đặt ở RBS. Phần mềm có thể cần hoặc
không cần bit dữ liệu thứ 9, phụ thuộc vào các đặc tính kỹ thuật của thiết bị nối tiếp sử
dụng (bit dữ liệu thứ 9 cũng đóng vai một trò quan trọng trong truyền thông đa xử lý).
c. Thêm 1 bit parity
Thường sử dụng bit dữ liệu thứ 9 để thêm parity vào ký tự. Bit P trong từ trạng
thái chương trình (PSW) được đặt lên 1 hoặc bị xóa bởi chu kỳ máy để thiết lập kiểm
tra chẵn với 8 bit trong thanh tích lũy.
d. Các cờ ngắt
Hai cờ ngắt thu và phát (RI và TI) trong SCON đóng một vai trò quan trọng
truyền thông nối tiếp dùng 8051. Cả hai bit được đặt lên 1 bằng phần cứng, nhưng

phải được xóa bằng phần mềm.


1.2.6. Tập lệnh của 8051
Tập lệnh 8051 có 255 lệnh gồm 139 lệnh 1 byte, 92 lệnh 2 byte và 24 lệnh 3
byte.
Các nhóm lệnh của 8051:
Tập lệnh của 8051 được chia thành 5 nhóm:
- Số học.
- Luận lý.
- Chuyển dữ liệu.
- Chuyển điều khiển.
Các chi tiết thiết lập lệnh:
Rn

: Thanh ghi R0 đến R7 của bank thanh ghi được chọn.

Data

: 8 bit địa chỉ vùng dữ liệu bên trong. Nó có thể là vùng RAM dữ liệu

trong (0-127) hoặc các thanh ghi chức năng đặc biệt.
@Ri

: 8 bit vùng RAM dữ liệu trong (0-125) được đánh giá địa chỉ gián tiếp

qua thanh ghi R0 hoặc R1.
#data

: Hằng 8 bit chứa trong câu lệnh.


#data 16

: Hằng 16 bit chứa trong câu lệnh.

Addr16

: 16 bit địa chỉ đích được dùng trong lệnh LCALL và LJMP.

Addr11

: 11 bit địa chỉ đích được dùng trong lệnh LCALL và AJMP.

Rel

: Byte offset 8 bit có dấu được dùng trong lệnh SJMP và những lệnh

nhảy có điều kiện.
Bit

: Bit được định địa chỉ trực tiếp trong RAM dữ liệu nội hoặc các thanh

ghi chức năng đặc biệt.
a. Nhóm lệnh xử lý số học
ADD A,Rn (1 byte, 1 chu kỳ máy) : cộng nội dung thanh ghi Rn vào thanh ghi A.
ADD A,data

(2,1): Cộng trực tiếp 1 byte vào thanh ghi A.

ADD A,@Ri


(1,1): Cộng gián tiếp nội dung RAM chứa tại địa chỉ được khai

báo trong Ri vào thanh ghi A.
ADD A,#data

(2,1): Cộng dữ liệu tức thời vào A.

ADD A,Rn

(1,1): Cộng thanh ghi và cờ nhớ vào A.

ADD A,data

(2,1): Cộng trực tiếp byte dữ liệu và cờ nhớ vào A.

ADDC A,@Ri

(1,1): Cộng gián tiếp nội dung RAM và cờ nhớ vào A.


×