Năm 1965, có thể coi là cái mốc cơ bản trong sự phát triển các dạng dịch vụ khác nhau, khi đó hệ thống chuyển mạch có điểu khiển theo chương trình ghi sẵn lần đầu tiên được đưa vào khai
Trang 1
MUC LUC PHAN I: LY THUYET CHUNG TONG DAI
CHUONG I: NGHIEN CUU LY THUYET VE CHUYEN MACH DIEN TU
GIGI THIEU CHUNG
UƯ CHUYỂN MẠCH KHÔNG GIAN ccccecererersrsrsrsrseserscerses Ï
Il/ CHUYEN MACH PHAN KENH CHIA THEO THOIGIAN 2-3
CHƯƠNG II: LÝ THUYẾT CHUNG VỀ TỔNG ĐÀI ĐIỆN THOẠI
( Private Autumative Branch Exchange )
L/ ĐỊNH NGHĨA 22112121111 nnHnnnnn000111 n5 n0 4
H/ THÔNG TIN ĐIỆN THOAI
II CÁC LOẠI TỔNG ĐÀI ĐIỆN THOẠI -cccccc+vccccvvvrrr 4
IV/ CÁC ÂM HIỆU VÀ TÍN HIỆU QUA Y SỐ -2 e¿ 5-7
V/KHÁI NỆM CÁC LOẠI TRUNG KẾ [ TRUNK | - 7
CHUONG III: GIỚI THIỆU VI XỬ LÝ 8031 —8051
U TÓM TẮT PHẦN CỨNG . -22-©CE222ee+2EEE2EE222E22ZEevrrre 8-18
I/ HOẠT ĐỘNG CỦA BỘ ĐỊNH THỜI(TIMER) 2 19-23 HI/INTERRUPT(NGẮTT) 2 - 222222222eetEEEEEE2552EertrcEEEzzcced 23-31
IV/ TẬP LỆNH 8051/8031 o.0 ccsccccesceccecceccecsecececsessecsecsecsecsecsecsecasees 31-36 PHAN I: THIET KE TONG DAI DIEN THOAI PABX 8 THUE BAO 3
TRUNG KE [ 308 | (PRITVATE AUTOMATIC BRANCH EXCHANGE)
CHƯƠNG I:SƠ ĐỒ KHỐI TỔNG ĐÀI
1 CHỌN PHƯƠNG ÁN CHUYỂN MẠCH ss 37
II SƠ ĐỒ KHỔI TỔNG ĐÀI ĐIỆN THOẠI PABX 308 37-38
CHƯƠNGHI: THIẾT KẾ HỆ THỐNG VI XỬ LÝ TRONG TỔNG DAI
ĐIỆN THOẠI PABX 308
A SƠ ĐỒ KHỐI HỆ THỐNG .Ỏ ST SSE9EE541E551255122552E531255eE 39
B BO XU LY TRUNG TAM [CENTRAL PROCESSOR ] 39-40
C THIET KE MACH XU LY TRUNG TAM crosscccssssessscessscssesssssessssseeoe 40
(CENTRAL PROCESSING UNIT )
1/ MACH CPU(Controller processing unÏÝ) . -s-««sss<e 41 2/ MACH TAO XUNG CLOCK cccescssssssscsssncssscseessessesessessseeeseees 41
Trang 2
3/ MẠCH RESET HỆ THỐNG 22- s2 EEE2EEEEEEZE2EEZzzZ2 42
4/ MACH REAL TIME CLOCK .cccccsssssssssssssessssssssssscssssssececcesseees 42 5/ MẠCH GIẢ I MÃ ` ¬ 43
D BỘ NHỚ [ MEMORY | 2G <4 Set ve cececeEeEreeeretererererzrzeereee 43
CHƯƠNG II: KHOI CAMBIEN TRANG THAI VA DIEU KHIEN
THUE BAO - TRUNG KE
A KHOI CAM BIEN TRANG THÁI .- 2 5< 5s e£EeEEexeeks+kexeexee 44 1/ SƠ ĐỒ KHỐI CC22EZ222+eet212222221221523%22222222222222222sszrrrrrr 44 I/ CHỌN LINH KIỆN .-2- 6 s£Es+E*+E€EEES+keEEeErkerkerererresree 44 I/ NGUYÊN LÝ HOẠT ĐỘNG
B KHỐI ĐIỀU KHIỂN MẠCH THUÊ BAO VÀ TRUNG KẾ 45 L/ SƠ ĐỒ KHỐI -2222+2+t+t92912221225225212221122222212221122se.-rrr 45 I/ CHỌN LINH KIỆN - © << St Ev€EkvverkeEkcrerxsexseree 45 HI/ HOẠT ĐỘNG . - TH 1110111111 esecesevaseees 45
1 SƠ ĐỒ KHỐI MẠCH THUÊ BAO se +46 1U SƠ ĐỒ MẠCH THUÊ BAO - 2 <5 s£E<+k*+EeEeEEe+keEsrxereeree 46 HI/ NGUYÊN LÝ HOẠT ĐỘNG CỦA MẠCH 5- cccescce 47
IV/ THIẾT KẾ MẠCH ¿©EEEE++EEEEEEEE£EEEE£E2EEeeEEzsrtreeei 47-48
CHUONG V: MACH PHAT CHUONG ( RING SIGNAL GENERATOR )
U CHON SO DO-MACHhccsccccssssccccssssscscssssesesssesesccesseccssssessesssucesssssecessuccees 49
HI/ HOAT DONG .cccccccccscssscsscscscecsesscscscsecsesssecaesesscacassssscasansscacacacscecsesees 49
CHUONG VI: MACH TRUNG KE ( TRUNK CIRCUIT )
VSO DO MACH TRUNG KE coccccccsssssssssssssscsssesessssssesessssesssssssesesssessssvecens 50
H/ NGUYÊN LY HOAT DOWNG cccccccccsssccssccesscsessesscsesssesscsesscsesesscsecsees 50 II/ THIẾT KE MACH .cccccccccccsccsssessssssessssesesecsssesscseccscsssssecscacacsees 51-52
CHƯƠNG VII: MẠCH TẠO TÍN HIỆU BÁO HIỆU VÀ CHUYỂN MANG TONE (TONE GENERATOR&TONE NETWORK)
I/ MẠCH TẠO DIAL, TONE HH ng ng ng ng ng 53 II/ MACH TAO TIN HIEU RING BACK TONE .ccsccssssessessssstesseesees 53 TIT/ MACH TAO BSY TONE c.cccssssessssssssesssssesessessesessesseesesesssserseaeenss 54 IV/ CHUYEN MẠNG TONE (TONE NETWORK) 55-56
Trang 3
CHUONG VIII: CHUYEN MACH MANG
Ư SƠ ĐỒ MẠCH ceeveerrrrrrrrrrrrriiiiiiiiiiriie 57 I/ CẤU TẠO IC CHUYỂN MẠCH ANALOG M3494 57 [ SPACE DIVISION EXCHANGE ]
HL/ HOẠTT ĐỘNG - 5-5541 T111 kh cv reesee 58-60
CHUONG IX: MACH PHAT DTMF [ DTMF SENDER (MES) CIRCUIT ]
1 GIỚI THIỆU Hee — 61
Il/ SO BO MACH PHAT DTMF(DTMF SENDER CIRCUIT) .+ 61
IIl/ HOAT DONG ¬ ÔỎ 62
CHUONG X: MACH THU DTMF (GIAI MA DTMF)
[ DIMF RECEIVER CIRCUIT ]
T/ GIOT THIEU 22G S3 SE SEESESEEEEEEEESEEEEEESEEEErEeErrererrererrrrreerrrx 63 I/ SƠ ĐỒ CHÂN MT8870CE VÀ HOẠT ĐỘNG 63-64
IH/ SƠ ĐỒ MACH VÀ HOẠATT ĐỘNG cccccccecrvrererereeeeree 65-66
PHAN III: PHAN MEM DIEU KHIỂN
A XÂY DỰNG PHẦN MỀM ĐIỂU KHIỂN 67
CHUONG I: HOAT ĐỘNG ĐIỂU KHIỂN - 556552 67 1/ ĐIỀU KHIỂN CUỘC GỌI NỘI BÀI ccceerree 67
1U ĐIỀU KHIỂN CUỘC GỌI RA NGOÀI 67 11/ ĐIỂU KHIỂN CUỘC GỌI TỪ NGOÀI VÀO sccccccece 68
CHƯƠNG II: ĐIỀU KHIỂN HỆ THỐNG
I/ GIỚI 'T'HIŸỆ U - SG St 1E SE E1 E71 1E T111 Tkekerkrkereee 69
I/ LƯU ĐỒ ĐIỀU KHIỂN HỆ THỐNG 22.-222czzcceccze 69-88
B CHƯƠNG TRÌNH MINH HỌA S55 csccersctsreeekeeecra 89-134 BÁO CÁO THỊ CÔNG, ch tS ngưng ng uc 135
PHẦN IV: PHỤ LỤC A/ CÁC TỪ VIẾT TẮT VÀ TỪ CHUYÊN MÔN
B/ CAC IC CHUYEN DUNG CHO VIEN THONG
PHẦN V: TÀI LIỆU THAM KHẢO
Trang 4
LOI NOI DAU
Việc thông tin liên lạc là một vấn để không thể thiếu đựơc trong xã hội Nó
không phải là đặc trưng mà là một vấn để phải có trong một quân thể Xã hội văn minh
lãnh vực thông tin liên lạc không thể lạc hậu
Người ta tính rằng kỹ thuật thông tin thị trường thế giới sẽ tăng từ 500 tỷ Osi ở
năm 1989 đến khoảng 16.000.000 trong năm 2000
Ngày nay, với sự phát triển của kỹ thuật Điện- Điện Tử đặc biệt với các thành quả của ngành vi xử lí,mạng thông tin liên lạc và viễn thông đã phát triển và mở ra
nhiều phương diện ngày càng hiện đại và tối ưu hóa
Với mục đích tìm hiểu và ngày càng hoàn thiện trên lĩnh vực thông tin liên lạc, luận án tốt nghiệp được trình bày với để tài “TỔNG ĐÀI NỘI BỘ 8 THUÊ BAO 3
Tập luận án bao gồm 5 phần:
PHẦN I : LÝ THUYẾT CHUNG VỀ TỔNG ĐÀI
PHAN V _ : TÀI LIỆU THAM KHẢO
THÀNH PHỐ HỒ CHÍ MINH
- NĂM 2000
Trang 5» GIỚI THIỆU CHUNG :
Các hệ thống chuyển mạch là một trong ba thành phần cơ bản nhất của mạng thông tin (các thiết bị đầu cuối, các phương tiện truyền dẫn và các hệ thống chuyển mạch), đóng
một vai trò rất quan trọng đối với khách hàng xét theo quan điểm sử dụng các địch vụ
thông tin
Năm 1965, có thể coi là cái mốc cơ bản trong sự phát triển các dạng dịch vụ khác nhau, khi đó hệ thống chuyển mạch có điểu khiển theo chương trình ghi sẵn lần đầu tiên
được đưa vào khai thác trên mạng điện thoại công cộng của Mỹ Việc điều khiển theo
chương trình ghi sẵn cho phép thực hiện nhiều dịch vụ thông tin cho người sử dụng mà
trước đó chưa ai biết, cũng như phương tiện cho phép làm đơn giản đáng kể việc tổ chức
khai thác các hệ thống chuyển mạch và các chức năng hành chính
Việc sử dụng máy tính điện tử điểu khiển các quá trình chuyển mạch ở các trạm
trung tâm đã dẫn đến sự xuất hiện thuật ngữ < chuyển mạch điện tử > Ví dụ : hệ thống
chuyển mạch điện tử (Electronic Swiiching System - ESS) hoặc trạm điện thoại điện tử tự
động (Electronic Automatic Exchange - EAE) Nhưng các sơ đổ chuyển mạch điện tử thế
hệ thứ nhất này được thực hiện trên các thiết bị chuyển mạch cơ bản
Từ năm 1978, nhiều hãng điện thoại của Mỹ bắt đầu sử dụng hệ thống chuyển mạch số ở các cấp trạm đầu cuối Đây là biện pháp chính thay thế các thiết bị từng nấc quá
cũ Trên thực tế, hiện nay tất cả các nhà sản xuất thiết bị chuyển mạch ở Mỹ cũng như các
nước khác cũng đã hoặc là bắt đầu sản xuất các hệ thống chuyển mạch số để áp dụng
chúng tiếp theo ở trạm cuối
Thế hệ mới này của các thiết bị chuyển mạch bước đầu sẽ đảm bảo cung cấp các
dịch vụ thông tin mà đã qui định ở các hệ thống trước đó có điều khiển theo chương trình
ghi săn đảm bảo truyền số liệu tốc độ lớn và chất lượng cao
Trong chương này chúng tôi trình bày các nguyên tắc chuyển mạch trong tổng đài điện thoại
e Chuyển mạch không gian
e Chuyển mạch kênh phân theo thời gian
I CHUYỂN MẠCH KHÔNG GIAN :
Cấu trúc của mạng chuyển mạch không gian có thể biểu diễn ở dạng ma trận với N đầu vào và M đầu ra Một đầu vào bất kỳ trong N đầu vào có thể kết nối với bất kỳ đầu ra
nào trong M đầu ra Các điểm nối là các tiếp điểm vật lý Song vẫn được coi là điểm nối
về mặt logic Số điểm nối trong ma trận chuyển mạch là (N x M) điểm
Trang 6
- KhiN=M:tacé chuyén mạch tiếp hoàn toàn
- KhiN#M:: ta có chuyển mạch tiếp thông không hoàn toàn
s* Ưu và nhược điểm :
- - Du điểm :
e Đơn giản, dễ thiết kế
e Giá thành rẻ (hiện nay xuất hiện rất nhiễu các vi mạch chuyên dụng về chuyển mạch không gian)
- - Nhược điểm :
e© Số tiếp điểm lớn
e Mỗi đầu vào chỉ có một tiếp điểm liên kết với mỗi đầu ra, nếu tiếp điểm này hỏng
thì không thể liên tiếp được
e Không thích hợp với mạng ISDN là mạng trong tương lai
* Ứng dụng chuyển mạch không gian nhiều tầng sẽ khắc phục được một vài nhược
điểm trên
II CHUYỂN MẠCH KÊNH PHÂN THEO THỜI GIAN :
Chuyển mạch kênh phân theo thời gian làm việc theo nguyên tắc phân chia thời gian chiếm dụng một kênh vật lý duy nhất cho các đầu vào, ở các đầu ra các tín hiệu theo
thời gian của kênh vật lý lại được phân cho các đầu ra Như vậy ta chỉ việc đồng bộ giữa
đầu vào và đầu ra của mạng chuyển mạch là sẽ có được những kết nối cần thiết
Số tiếp đểm cần thiết cho mạng chuyển mạch (MxN) chỉ còn là (M+N)
Việc đóng ngắt tiếp điểm để phân chia tín hiệu theo thời gian được gọi là kỹ thuật lấy mẫu (Sampling) Để tín hiệu đâu ra được phục hổi nguyên vẹn từ các mẫu nhận được
thì theo Naiquyt : tân số lấy mẫu phải lớn hơn hoặc bằng 2 lần tần số cao nhất của tín hiệu
cần lấy mẫu Trong ngành điện thoại tần số lấy mẫu theo quy định là 8 Kh; (8.000 mẫu
được lấy trong một giây)
Với kỹ thuật điện tử hiện đại việc chế tạo ra các tiếp điểm có dòng mở cao không còn là việc khó khăn, do vậy việc chuyển mạch phân chia theo thời gian đã thay thế các
chuyển mạch không gian
Các kỹ thuật điều chế tín hiệu trong chuyển mạch kênh phân theo thời gian :
Trang 7
I Diéu ché bien xung (PAM): Pulse Amplitude Modulation
Tín hiệu tương tự được lấy mẫu với tần số thoả định lý Naiquyt Tin hiéu sau khi
lấy mẫu sẽ liên tục về biên độ và rời rạc về thời gian Sau đó được truyền trên kênh truyền
2 Điều chế mã xung (PCMI) : Pulse Code Modulation
Tín hiệu được điểu chế qua 3 bước:
e Bước I: lấy mẫu (PAM ) thoả dịnh lý Naiquyt
Tín hiệu liên tục về biên độ và rời rạc về thời gian
e_ Bước 2 : lượng tử hoá
Từng mẫu rời rạc sau khi lấy mẫu được so sánh và gán với một mức nào đó của bộ lượng tử hoá sao cho sai số là nhỏ nhất
Trang 8
CHƯƠNGII:LÝ THUYẾT CHUNG VỀ TỔNG ĐÀI ĐIỆN THOẠI PABX 308
(PRIVATE AUTOMATIC BRANCH EXCHANGE)
I ĐỊNH NGHĨA:
Tổng đài điện thoại là một hệ thống chuyển mạch, nó có nhiệm vụ kết nối các cuộc liên lạc từ thiết bị đầu cuối gọi( calling side) đến thiết bị đầu cuối bị gọi (called side)
II THONG TIN DIEN THOẠI:
s» Nhiệm vụ của máy điện thoại
- Khi nhấc máy lên nó phát ra yêu cầu sử dụng
- Có khả năng biểu thị tình trạng sẵn sàng nhận điện đàm bằng cách ghi nhận âm
hiệu mời quay số
- Có khả năng chuyển đi các con số của máy bị gọi bằng cách quay số hoặc nhấn nút
- Có khả năng phát hiện tình trạng của thuê bao
- Có khả năng báo hiệu có điện đàm gọi đến
- Có khả năng chuyển đổi tiếng nói thành tín hiệu điện truyền đi và nhận tín hiệu đến để phát ra tiếng nói
- Có khả năng tự động điều tiết nguồn điện cung cấp cho nó
- Có khả năng báo cho tổng đài khi gác máy
% Các thông số và giới hạn của máy điện thoại:
Thông số Các giá trị kiểu mẫu Các giá trị sử dụng
II CÁC LOẠI TỔNG ĐÀI ĐIỆN THOẠI:
Hiện nay trên mạng viễn thông Việt Nam có 5 loại tổng đài như sau:
I Tổng đài cơ quan PABX(Private Automatic Branch Exchange)
Tổng đài PABX được sử dụng trong các cơ quan, khách sạn và chỉ sử dụng các trung kế CO —L.INE
2 Tổng đài nông thôn RE (Rural Exchange)
Tổng này được sử dụng ở các xã, khu dân cư đông ,chợ và có thể sử dụng tất cả
Trang 9
Tổng đài LE được đặt ở các trung tâm huyện, tỉnh và sử dụng tất cả loại trung kế
4.Tổng đài đường dài TE ( Toll Exchange)
Tổng đài TE dùng để kết nối các tổng đài nội hạt ở các tỉnh trong nước với nhau, chuyển mạch các cuộc gọi đường dài trong nước không có mạch thuê bao
5 Tổng đài cửa ngõ quốc tế (Gate Way Exchange):
Tổng đài này được đùng chọn hướng chuyển mạch cuộc gọi vào mạng quốc tế,
để nối các mạng quốc gia với nhau có thể chuyển quá giang các cuộc gọi
IV CÁC ÂM HIỆU VÀ TÍN HIỆU QUAY SỐ: (Pulse/Tone)
Tổng đài điện thoại phải có đầy đủ những chức năng sau:
1 Âm hiệu mời quay số (dial tonne) bận(busy tone), hồi âm(ring back tone)
Các âm hiệu ( tones) là các tín hiệu âm thanh mà tổng đài gửi đến cho các thuê bao
để thông báo các âm hiệu sau:
* Âm hiệu mời quay số( Dial tone) : Âm hiệu này báo cho thuê bao biết tổng đài sẵn sàng nhận số quay từ thuê bao
* Âm hiệu báo bận ( Busy tone): Âm hiệu này được tổng đài gửi đến báo thuê bao bị
gọi bận, quay số sai, trung kế bận, hết thời gian quay số
* Hồi âm chuông (Ring back tone): Tổng đài báo cho thuê bao biết đang chuông đối phương
* Các thông báo tiếng nói: Ngoài các âm hiệu được nêu trên trong tổng đài điện
`
thoại còn dùng các câu thông báo tiếng nói được ghi sẵn
2 Quay số xung thập phân (pulse)
Nhấc máy
Vv 33mS 66mS
Trang 10
3 Quay số bằng tin hi@u da tin DTMF (Dial tone multiplexing frequency)
- Các tần số này được sử dụng nằm trong đãi tần của điện thoại (300Hz + 3400Hz)
- Các tần số được chọn không bao giờ trùng với tần số của bất kỳ âm hiệu nào
Trang 11V KHÁI NIỆM CÁC LOẠI TRUNG KẾ:
1 Định nghĩa: Trung kế là đường dây liên lạc giữa hai tổng đài
TRUNG KE
Trên mạng viễn thông có các loại trung kế sau:
2 Trung kế CO - LINE : (Central - office - line)
-Kết nối trên 2 dây cable
-Sử dụng đường dây thuê bao của tổng đài khác làm trung kế của tổng đài mình -Có chức năng như một máy điện thoại (nhận chuông , quay số )
3 Trung kế tự động 2 chiều E và M : (Ear and Mouth Trunk)
- Kết nối trên 4 dây cable
- Hai dây để tín hiệu thoại
- Một dây để phát tín hiệu trao đổi
- Một dây để thu tín hiệu trao đổi
- Các tín hiệu trao đổi gồm: Chiếm, quay số, xác nhận, thiết lập cuộc gọi, tính cước
4 Trung kế số: (Digital trunk)
Tín hiệu thoại và các tín hiệu trao đổi giữa hai tổng đài không phải dạng tương tự
mà được chuyển thành dạng nhị phân v
CHƯƠNG III: GIỚI THIỆU uụP 8031/ 8051
I TÓM TẮT PHẦN CỨNG:
Trang 12
LUAN AN TOT NGHIEP
I Giới thiệu chung về uP 8031/8051 :
HP 8031 là một trong các IC tiêu biểu của họ IC vi điều khiển MCS51 do Intel sản xuất có các đặc điểm như sau
-4 Kbyte ROM nội (được lập trình bởi nhà sản xuất) -128 byte RAM nội
-4 port I/O 8 bịt
-2 bộ định thời 16 bít
-Giao tiếp nối tiếp -64Kbyte không gian bộ nhớ chương trình mở rộng -64Kbyte 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 bít đơn )
-210 bit được địa chỉ hóa
-Bộ nhân chia 4 ps
INT1 INTO
TONG DAI PABX 308
Tạo dao Điều khiển , Port nối
Trang 13
2 Sơ lược về các chân của 8031 :
P20 a ee
T59 INTO P2.2 age eee INTY 2 14742 P2.9 beget 25 = eed 14 P25 27
Port 0 là một port có hai chức năng trên các chân 32 - 39 Trong các thiết kế cỡ nhỏ
nó có các chức năng như đường IO Đối với các thiết kế lớn nó được hợp kênh giữa bus địa
chỉ và bus dữ liệu
b/ Port 1:
Port 1 1a 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 giao tiếp với các thiết bị ngoài nếu cần Port 1 không có các chức năng khác,
vì vậy chúng chỉ được dùng cho 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 của bus địa chỉ đối với các thiết kế dùng bộ nhớ mở rộng
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 8031
như ở bảng sau :
Trang 14
P3.0 RXD Dữ liệu nhận cho port nối tiếp P3.1 TXD Dữ liệu phát cho port nối tiếp P3.2 INTO | NgắtO bên ngoài
P3.3 INTI Ngắt 1 bên ngoài
P3.4 TO Ngõ vào của timer /counter0
P3.6 WR Xung ghi bộ nhớ dữ liệu ngoài P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài
e/ PSEN (Program Store Enable)
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 enable ) của một EPROM
để cho phép đọc các byte mã lệnh
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 vi xử lý 8085,8088,8086,8051 dùng ALE một cách tương tự cho việc giải kênh trên các bus địa chỉ
và đữ 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à
byte thấp của bus đị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 chu kỳ đầu của bộ nhớ Sau đó, các đường port 0 dùng để xuất, nhập đữ liệu
trong nửa chu kỳ sau của chu kỳ 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ể được dùng làm nguễn xung nhịp cho các phần khác của hệ thống Chỉ ngoại trừ khi thi
hành lệnh MOVX, một xung ALE sẽ bị mất
g/ EA (External Access)
Tín hiệu vào EA trên chân 31 thường mắc lên mức cao (+5V) hoặc mức thấp (GND) Nếu ở mức cao sẽ thi hành chương trình trong ROM nội, ở mức thấp chương trình
chỉ được thi hành ở bộ nhớ mở rộng Đối với 8031 chân EA luôn ở mức thấp Người ta còn
dùng EA làm chân cấp điện áp 12V 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 8031 Khi tín hiệu này được đưa lên mức cao (trong ít nhất hai chu kỳ máy ), các thanh ghi bên trong 8031 được tải những giá trị
thích hợp để khởi động hệ thống
8031 có một bộ dao động trên chip Nó thường được nối với một thạch anh giữa hai chân 18 và 19 Các tụ giữ cũng cần thiết như đã vẽ Tần số thạch anh thông thường là 12
Mhz
Trang 15
LUAN AN TOT NGHIEP TONG DAI PABX 308
j/ Cac chan nguén:
8031 vận hành với nguồn đơn +5V Vcc được nối vào chân 40 và Vss(GND) được nối vào chân 20
3.Tổ chức vùng bộ nhớ:
' '
'
' ' '
BO A8
F7 | Fo | FS |F4 |F3 |F2 | Fl | FO E7 |E6 |E5 |B4 |E3 |E2 |EI |E0 D7 |D6 |D5 |D4 |D3 |D2 |DI |Do
- | - | - |BC |BB |BA |B9 |B8 B7 |Bo [BS |B4 |B3 |B2 |BI |B0
AE | - | - |AC |AB |AA |A9 |A8 A7 |A6 |A5 |A4 |A3 |A2 |AI |A0 Không được địa chỉ hóa bit
9F | 9E|9D |9C |9B | 9A|99 |98
97 |96 |95 |94 |93 |92 |91 |90
Không được địa chỉ hóa bit
Không được địa chỉ hóa bit 8F |8E | 8D | 8C | 8B E [89 | 88 Không được địa chỉ hóa bit |
Không được địa chỉ hóa bịt
Trang 16
a/ Ving RAM ding cho muc dich chung :
Nằm từ địa chỉ 30H-7FH Vùng này được truy xuất tự do nhờ chế độ định vị trực tiếp hoặc gián tiếp Ví dụ để đọc nội dung của RAM nội tại địa chỉ 5FH vào thanh ghi A,
thực hiện lệnh sau đây:
MOV A,5FH hoặc tương đương :
MOYV R0,#5FH MOV A,@RO b/ Ving RAM dinh vi theo bit :
8031 có 210 ô nhớ định vị theo bít, trong đó có 128 ô nhớ (16 byte) nim tai “dia chi byte” 20H-2FH , cdc ô nhớ còn lại nằm ở các thanh ghi chức năng đặc biệt Vùng này có
thể truy xuất theo byte hoặc theo bit tùy thuộc vào lệnh được ding Vi du dé set bit 67H,
thực hiện lệnh sau :
SETB 67H Hoặc tương đương -
MOV A,2CH ORL A,10000000B MOV 2CH,A c/ Các băng thanh phi :
8031 có 4 băng thanh ghi bắt đầu từ địa chỉ O0-1FH, tại một thời điểm chỉ có một băng tích cực Lựa chọn băng thanh ghi bằng cách nạp các giá trị thính hợp vào các bit lựa
chọn băng trong thanh ghi PSW (Program Status Word).Mỗi băng gồm có 8 thanh ghi RO-
R7
4 /Các thanh ghỉ chức năng đặc biệt :
Thanh ghi PSW (Program Status Word) : Thanh ghi PSW nằm tai dia chi DOH chứa các bit trạng thái ,tóm tắt như sau :
CY AC FO RS1 RSO OV - P
PSW.7 : Cờ nhớ (Carry Flag,CY) nó được lập hay được xóa bởi phần cứng hoặc phần mềm trong những lệnh Logic hay những phép tính chính xác Cờ này có 2 mục đích,
nó được dùng trong kiểu truyền thống cho các toán hạng, nó được set khi có Carry out
trong quá trình ADD hoặc được set khi có mượn trong quá trình trừ Ví dụ : nội dung thanh
ghi A là FEFH thì khi có lệnh là :
ADD A,#1 Kết quả là nội dung trong thanh ghi A là 00H và khi đó cờ Carry được set lên 1
Cờ CY cũng là thanh ghi luận lý phục vụ như là I bit thanh ghi cho lệnh toán hạng luận lý
PSW.6 : Cờ nhớ phụ trợ(Auxilary Carry Flag ,AC)
Trang 17
Khi cộng giá trí BCD cờ AC được set, nếu cờ đã phát sinh ở bit 3 OR ở ngõ vào bit
4 hay nếu kết quả nằm trong các bit thấp nhất thì nó nằm trong khoảng OAH-OFH Nếu
giá trị cộng là BCD, thì lệnh cộng phải hiệu chỉnh bởi lệnh DAA
PSW.5 : Cờ dành cho người sử dụng(FO) PSW.4 - PSW.3 : La chọn băng thanh ghi Rn
00 : Bang 0 - dia chi 00-07H
01 : Bang 1 - dia chi 08-OfH
10: Bang 2 - dia chi 10-17H
11 : Bang 3 - dia chi 18-1FH
Những bit lựa chọn băng thanhghi (RS1,RSO)quyét định băng thanh ghi nào hoạt động Chúng được xóa sau khi Reset hệ thống và được thay đổi bằng phần mềm khi cần
PSW.2 : Cờ tràn (0V) được set sau khi toán hạng cộng hoặc trừ, nếu có một phép toán tràn Phần mễm có thể kiểm tra bit này để xác định, nếu kết qủa nằm trong khoảng
thích hợp Nếu kết qủa lớn hơn +127 hay nhỏ hơn -128 khi đó bít 0V sẽ được set
PSW.I : Không sử dụng
PSW.0 : Cờ parity (P).Bit parity được set hay clear một cách tự động sau mỗi chu
kỳ máy để thiết lập tính chấn cho thanh ghi A
Thanh phi B :
Được dùng trong các phép toán nhân hoặc chia (kèm với thanh ghi A) Lệnh MUL, AB thì nó nhân 8 bít giữa giá trị trong thanh ghi A và B kết qủa là 16 bít, 8 bit thấp nằm trong thanh ghi A, 8 bit cao nim trong thanh ghi B Với lệnh chia thì
thương số này trong thanh ghi A, còn số dư thì nằm trong thanh ghi B
Thanh ghi SP (Stack Pointer) :
SP là thanh ghi 8 bít, dùng làm con trỏ Stack nằm ở địa chỉ 81H, nó chứa dia chỉ của Data trên đỉnh Stack Khi PUSH Stack thì nó sẽ tăng thanh ghi SP trước khi ghi Data
vào và POP từ Stack ra thì nó sẽ giảm SP trước khi đọc Data từ Stack Vùng Stack chỉ nằm
ở vùng RAM nội, và nó giới hạn việc truy xuất địa chỉ bằng địa chỉ gián tiếp để khởi động
SP, nó bắt đầu ở địa chỉ 60H, lệnh cho phép dùng
Cac thanh ghi Timer :
8031 có 2 bộ đếm 16bit Bộ đếm TimerO nằm tại dia chi 8AH(TLO) va 8CH(THO)
Bộ đếm Timer1 nằm tại địa chỉ 8BH(TL1) và 8DH(THI).Hoạt động của 2 bộ Timer được
set bằng thanh ghi TMOD tại địa chỉ 89H và thanh ghi điểu khiển TCON tại địa chỉ 88h
Các thanh ghi Port nối tiếp :
Có 2 thanh ghi đệm thu và đệm phát nằm cing tai dia chi 99H (SBUF) Cac mode hoạt động khác nhau của Port nối tiếp có thể lập trình được qua thanh ghi SCON tại địa chỉ
98H -
Trang 18
LUAN AN TOT NGHIEP TONG DAI PABX 308
Thanh ghi diéu khién cng sudt (PCON : Power Control Register) : Thanh ghi diéu khién céng sudt (PCON) 6 dia chi 87H chtta nhiéu bit diéu khién
Các thanh ghỉ ngắt :
8031 có 5 nguồn ngắt và có mạch giải quyết ưu tiên (2 mức ưu tiên) Việc cho phép
ngắt và cấm ngắt thông qua thanh ghi IE tại địa chỉ ASH Mức ưu tiên được set qua thanh
ghi IP tai dia chi B8H
7 SMOD_ | Bit gấp đôi tốc độ Baud trong các mode 1,2,3
1 PD Giảm công suất khi set và thoát khi Reset
0 IDL | Mode chờ và chỉ thoát khi có ngắt hoặc Reset hệ thống
5/ B6 nhé ngodi (External Memory) :
uP 8031/8051 có khả năng mở rộng bộ nhớ lên đến 64Kbyte bộ nhớ chương trình
và 64Kbyte bộ nhớ dữ liệu ngoài Do đó khi thiết kế ta có thể dùng thêm ROM và RAM
nếu cần
Khi dùng bộ nhớ ngoài, Port 0 không con 1a port I/O thuần túy nữa Nó được hợp kênh giữa bus địa chỉ (A0 — A7) và bus đữ liệu (DO - 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ỳ nhớ Port 2 thông thường được dùng cho byte cao
của bus địa chỉ
Giản đồ truy xuất bộ nhớ ngoài
Trong nữa chu kỳ đầu của bộ nhớ, byte thấp của địa chỉ được cấp trong port 1 và được chốt bằng xung ALE Một IC đệm chốt 74HC 373 sẽ giữ byte địa chỉ thấp trong phần
SVTH: NGUYEN VAN HUE & TRANG NHUT LINH 14 |
Trang 19LUAN AN TOT NGHIEP TONG DAI PABX 308
còn lại của chu kỳ bộ nhớ Trong nữa chu kỳ sau của chu kỳ bộ nhớ port 0 được dùng như
bus đữ liệu và được đọc hoặc ghi tùy theo lệnh
A/ truy xuất bộ nhớ chương trình ngoai (Accessing External Code Memory) :
Ị Bộ nhớ chương trình ngoài là một IC ROM được cho phép bởi tínhiệu PSEN
PCH ! X IPCH (Byte cao )
1 ‡
Port O
Giản đồ thời gian truy xuất chương trình bộ nhớ ngoài
Trang 20
Một chu kỳ máy của HP 8031/8051 có 12 chu kỳ xung nhịp Nếu bộ đao động trên chip được lái bởi một thạch anh 12MHz thì mét chu ky may kéo dai Ips trong mét chu ky máy sẽ có hai xung ALE và 2 byte được đọc từ bộ nhớ chương trình (Nếu lệnh hiện hành
là lệnh 2 byte thì byte thứ 2 sẽ được loại bỏ )
B/ Truy xuất bộ nhớ dữ liệu ngoài :
Bộ nhớ ngoài là một bộ nhớ RAM được cho phép ghi đọc bằng các tín hiệu WR và
RD (tích cực mức thấp) Chỉ có một cách truy xuất đữ liệu ngoài : đó là dùng lệnh MOVX dùng con trỏ đữ liệu DTPR (16 bit) hoặc R0 và R1 xem như thanh ghi địa chỉ
Việc kết nối bus địa chỉ và bus đữ liệu giữa bộ nhớ truy xuất ngẫu nhiên RAM và
uP 8031/8051 cũng giống như cách nối với bộ nhớ chỉ đọc ROM và do đó có thể truy xuất lên đến 64 Kbyte bộ nhớ RAM Ngoài chân RD của HP 8031/8051 được nối với chân cho phép xuất OE của RAM, chân WR cilia uP 8031/8051 được nối với chân WR của RAM
Giản đô trên cho thấy lệnh đọc bộ nhớ đữ liệu ngoài bởi :
Lệnh MOVX A,@DPTR £
Trang 21
LUAN AN TOT NGHIEP TONG BAI PABX 308
S45 Y1
Y2 Y3 v4 Ƒ
VCGE)— ~Ÿ-] G1 Y8 Ƒ
S7 G2A Y6 Ƒ G258 Y7
mã địa chỉ Mạch giải mã địa chỉ cũng tương tự như các hệ vi xử lý khác Ví dụ nếu dùng
Trang 22
nhiều ROM và RAM thì bus địa chỉ cần phải được giải mã để xác định IC nhớ nào dudc chọn
Người ta thường dùng IC 74HC138, 74HC154 với các ngõ ra được nối tới các ngõ vào chọn chip (CS - CE) trên các IC nhớ
D/ Xếp chồng các vùng bộ nhớ chương trình và dữ liệu bên ngoài :
Vì bộ nhớ chương trình là ROM nên nảy sinh một vấn để bất tiện khi phái triển phần mềm cho pP 8031/8051 Dé 1a 1am thé nao phan mém có thể sữa đối chương trình và
ghi trở lại khi nó được chứa trong bộ nhớ “chỉ đọc ” Cách giải quyết là xếp chồng các vùng nhớ chương trình và dữ liệu Một IC RAM hay một IC EPROM có thể chứa cả chương trình và dữ liệu bằng cách nối đường OE của RAM là ngõ ra của mạch AND của 2 ngõ vào PSEN và RD của EPROM Mạch theo hình sau cho phép một IC RAM được dùng
uP 8031/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 Reset có thể kích bằng tay dùng một nút bấm hoặc có thể được
kích khi cấp nguồn điện dùng một mạch R-C
Trang 23LUAN AN TOT NGHIEP TONG DAI PABX 308
Trạng thái của tất cả các thanh ghi của wP 8031/8051 sau khi Reset hệ thống được tóm tắt trong bảng sau :
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 (Reset) 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ớ chương trình : địa chỉ 0000H
Nội dung trong RAM trên chip không bị thay đổi bởi lệnh Reset
II HOAT ĐỘNG CỦA BỘ ĐỊNH THỜI (TIMER) :
s* Thanh ghỉ TMOD :
Thanh ghi TMOD chứa 2 nhóm 4 bịt Set các mode hoạt động cho TIMERO và TIMERI1 Các bit của thanh ghi TMOD được mô tả trong bảng sau :
BIT | NAME | TIMER DESCRIPTION
7 Gate 1 Khi set TIMERI chỉ chạy néu INT1 6 mifc cao
5 MI 1 MO và MI là 2 bit lựa chọn bộ đếm
3 Gate 0 Khi set, TIMERO chỉ chạy nếu INT0 ở mức cao
SVTH: NGUYỄN VĂN HUỆ & TRANG NHỰT LINH
Trang 24LUAN AN TOT NGHIEP TONG DAI PABX 308
s Thanh ghi TCON :
Thanh ghi TCON chứa các bit trạng thái và điều khiển cho TIMERO và TIMERI
BIT SYMBOL DESCRIPTION
TCON.7 TF1 Set khi bộ đếm TIMERI tràn
Clear bằng phần mềm hoặc CPU đáp ứng ngắt
TCON.6 | TRI Cho phép hoặc cấm bộ đếm 1
TCON.5 TRO Set khi bộ đếm TIMERO tràn
Clear bing phần mềm hoặc CPU đáp ứng ngắt TCON.4 | TRO Cho phép hoặc cấm bộ đếm 0
TCON.3 | IEl Cạnh xuống tại chân INTI sẽ set bit này
Clear bằng phần mềm hoặc CPU đáp ứng ngắt INTI TCON.2 |TTI 1 ngắt ngoài số 1 kích bằng cạnh
0 ngắt ngoài số 1 kích bằng mức TCON.1 |IEO Cạnh xuống tại chân INTO sẽ set bit này
Clear bing phần mềm hoặc CPU đáp ứng ngắt INTO
TCON.0 | ITO 1 ngắt ngoài số 0 kích bằng cạnh
a) Mode Timer 13 bit (mode 0) : Mode 0 có bộ đếm 13 bit, 8 bit ở THx, 5bit ở TLx, TFx = 1, khi bộ đếm từ 1FFFH xuống 0000H, đồng thời ngắt CPU nếu cho phép
Trang 25LUAN AN TOT NGHIEP TONG DAI PABX 308
Byte thấp của bộ đếm (TLx) hoạt động như một bộ đếm 8 bit,trong khi byte cao của
bộ đếm (THx) chứa giá trị nạp lại
Khi bộ nhớ tràn từ FFH xuống 00H TFx được set, giá trị THx được nạp vào TLx ( ngắt CPU nếu cho phép)
d) Slipt timer mode (mode 3):
OG mode này TIMERI bị cấm trong khi TIMERO được chia thành 2 bộ đếm 8 bit.TLO tác động đến TL1
Nếu TIMERO được set ở mode 3 thì TIMER1 được set ở mode khác hoặc là bộ phát tốc độ Baud, nhưng không thể gây ngắt CPU
uP 8031/8051 có 2 nguồn tạo xung nhịp, chúng có thể chọn được bằng cách ghi vào bit C/T (Counter / Timer ) trong thanh ghi TMOD khi khởi động timer Một nguồn tạo xung nhịp dùng cho định khoảng thời gian, một nguồn xung nhịp cho đếm sự kiện
Trang 26Chan TO Hay T1 Nguồn tạo xung nhịp
% Định khoảng thời gian (Interval Timing ) :
Nếu C /T= 0 Timer được dùng cho việc định khoảng thời gian Timer lấy xung nhịp từ bộ đao động trên chip qua bộ chia 12 để giảm tân số xung nhịp đến giá trị thích hợp
là 1 MHz (tức là 1 hs cho một chu kỳ xung nhịp) Báo tràn timer sau một sự cố (cố định) xung nhịp, phụ thuộc vào giá trị ban đầu được nạp vào thanh ghi TL„ và TH
% Đếm sự kiện (Event Counting) :
Nếu C / T= 1 Timer lấy xung nhịp từ bên ngoài Trong hầu hết các ứng dụng, nguồn bên ngoài này cung cấp cho timer một xung khi xãy ra một sự kiện Số sự kiện được xác định bằng phần mềm bằng cách đọc thanh ghi TL„ và TH, vì giá trị 16 bít trong thanh ghi này tăng lên 1 cho mỗi sự kiện
Nguồn xung nhịp bên ngoài có được từ sự thay đổi chức năng của các port Bit P3.4 dùng làm ngõ vào xung nhịp bên ngoài cho timer 0 va Bit P3.5 là ngõ vào xung nhịp cho timer 1
Trong các ứng dụng bộ đếm các thanh ghi được tăng thêm 1 tương ứng với sự chuyển đổi mức logic từ 1 xuống 0 ở ngõ vào bên ngoài Ngõ vào bên ngoài được lấy mẫu trong S5P2 của mọi chu kỳ máy Như vậy ngõ vào cao trong một chu kỳ và thấp trong một
chu kỳ kế thì số đếm được tăng thêm 1
Giá trị mới trong các thanh ghi trong S3P1 của chu kỳ theo sau chu kỳ trong đó phát hiện sự chuyển tiếp Do đó mất 2 chu kỳ máy (is) để ghi nhận một sự chuyển đối từ 1 sang
0, tần số tối đa là 500KHz
Đối với HP 8031/8051 hoạt động với tần số 12MHz Sau khi qua bộ chia 12 sẽ cho
ra tần số xung nhịp dùng cho timer là IMHz Do đó khoảng thời gian ngắn nhất của timer
bị giới hạn không những bởi phần cứng mà còn bởi phần mềm Lệnh ngắn nhất của uP 8031/8051 14 lps, c4c lệnh khác nhau có thời gian thực hiện khác nhau, các lệnh của uP
Trang 27
LUAN AN TOT NGHIEP TONG DAI PABX 308
8031/8051 dài từ 1 chu kỳ máy đến 6 chu kỳ máy Bảng tóm tắt dưới đây cho các thông số
kỹ thuật cho việc tạo ra những khoảng thời gian khác nhau được giả sử xung nhịp sử dụng cho HP 8031/8051 có tần số 12MHz
REPEAT :
MOV A,THI
MOV R4,TLI CJNZ A,TH1,REPEAT MOV RS5,A
sự kiện đó trong khi một chương trình khác đang thực thi
Một hệ thống được điều khiển bằng Interrupt cho ta ảo giác là làm được nhiều việc đồng thời Dĩ nhiên CPU mỗi lần không thể thực thi hơn một lệnh Nhưng nó có thể tạm
treo việc thực thi một chương trình để thực thi chương trình khác rồi quay về chương trình
cũ thực thi tiếp Theo cách này Interrupt giống như một chương trình con, nhưng có một sự khác biệt trong hệ thống được điều khiển là sự ngắt quảng không xãy ra như kết quả của
một lệnh (lệnh CALL subroutine), mà đáp ứng với một sự kiện xãy ra bất đồng bộ với
chương trình chính Người ta không biết lúc nào và ở đâu chương trình chính bị ngắt quảng
Chương trình giải quyết ngắt được gọi là chương trình phục vụ ngắt (ISR : Interrupt Service Routine) hoặc bộ xử lý ngắt ISR thực thi khi đáp ứng ngắt và thông thường thực hiện tác vụ nhấp hay xuất với một thiết bị Khi ngắt xãy ra chương trình chính tạm treo và
Trang 28LUAN AN TOT NGHIEP TONG DAI PABX 308
rẻ nhánh đến ISR ISR thực thi và kết thúc bằng lệnh trở về từ ngắt, chương trình chính tiếp tục thực thi ở chổ mà nó tạm dừng Thường người ta xem chương trình chính thực thi ở mức nên (cơ bản) và các ISR thực thi ở ngắt Hình sau khái quát các ngắt trong khi thực thi chương trình chính
Có tất cả 5 nguồn ngắt ở HP 8031/8051 : 2 ngắt ngoài, 2 ngắt từ Timer và một ngắt
Port nối tiếp Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi Reset hệ thống và được
* Thanh ghỉ cho phép ngắt IE :
BIT SYMBOL DESCRIPTION
IE.7 EA Cấm tất cả các ngắt (IE=0), nếu IE=1 mỗi nguồn ngắt được cho
phép hoặc cấm bằng set hoặc Clear các bit tương ứng
IE.4 ES Cho phép ngắt port nối tiếp
IE.3 ETI Cho phép ngắt timer 1
IE.2 EXI Cho phép ngắt ngoài 1
IE.1 ETO Cho phép ngắt timer 0
Trang 29
LUAN AN TOT NGHIEP TONG DAI PABX 308
Muốn cho phép bất kỳ một ngắt nào thì việc đầu tiên là phải set bit cho phép ngắt /cấm toàn bộ, kế đó mới set bit cho phép ngắt mong muốn Ví dụ để cho phép ngắt Timer
SETBEA ; Đặt bit cho phép toàn bộ
SETB ETI ; Cho phép ngắt từ Timerl
Mặc dù 2 cách này có cùng hiệu gủa sau khi Reset hệ thống, nhưng hiệu qua sẽ khác nếu như IE được ghi giữa chương trình
* Thanh ghỉ cho phép ngắt IP :
Mỗi nguồn ngắt có thể được lập trình với một trong hai mức ưu tiên ngắt qua thanh ghi chức năng đặc biệt IP ở địa chỉ BSH
IP.1 TPO Ng&t TIMER 0
IP bị xóa sau khi Reset hệ thống để (mặc nhiên) đặt các ngắt ở các mức ưu tiên
thấp hơn Ý tưởng ưu tiên cho phép mốt ISR sẽ được ngắt bởi một ngắt có độ ưu tiên cao hơn ngắt đang phục vụ Điều này thì rõ ràng trên HP8031/8051, vì chỉ có 2 mức ưu tiên Nếu 1 ISR có mức ưu tiên thấp hơn đang thực thi khi một ngắt ưu tiên cao xãy ra thì ISR bị ngắt Còn ngược lại thì ISR cao hơn không bị ngắt
Chương trình chính thực thi ở mức nên và không liên hệ với bất cứ ngắt nào, có thể
luôn luôn bị ngắt quảng bất chấp ưu tiên của ngắt Nếu 2 ngắt có mức ưu tiên khác nhau
cùng xãy ra đồng thời thì ngắt có độ ưu tiên cao hơn sẽ được phục vụ trước
Nếu 2 ngắt có cùng độ ưu tiên sẽ ra đồng thời, sự hỏi vòng tuần tự sẽ xác định cái nào phục vụ trước tiên Hỏi vòng tuần tự là Ngắt ngoài O,Timer 0, ngắt ngoài 1, Timer 1,
port nối tiếp và Timer 2
Trang 30
LUAN AN TOT NGHIEP TONG DAI PABX 308
Port nối tiếp TI SCON.1
- Nap vao PC dia chi vector cia ISR
- ISR thuc thi
ISR thực thi và đáp ứng ngắt ISR hoàn tất bằng lệnh RETI (quay về từ ngắt) Điều
này làm lấy lại giá trị cũ của PC từ ngắn xếp và lấy lại trạng thái ngắt cũ Thực thi chương
trình ở chỗ mà nó bị dừng
* Các vector ngắt (Interrupt vector): Khi chấp nhận ngắt Giá trị nạp vào PC được gọi
là vector ngắt nó là địa chỉ bắt đầu của ISR cho nguồn tạo ngắt Các vector được cho ở
Vector Reset hệ thống được để trong bảng này vì theo nghĩa này thì nó giống ngắt
(nó ngắt chương trình chính và nạp giá trị mới vào cho PC)
Trang 31
Khi “chỉ đến một ngắt”, cờ gây ra ngắt tự động bị xóa bởi phần cứng Ngoại lệ là
RI và TI với các ngắt port nối tiếp và TF2 và EXE2 với các ngắt Timer Vì có 2 nguồn có
thể cho ngắt này, không thực tế để CPU xóa cờ ngắt Các bit này phải được kiểm tra trong
ISR để xác định nguồn ngắt và cờ tạo ngắt sẽ được xóa bằng phần mềm Thông thường
một rẽ nhánh sẽ xãy ra với một phản ứng thích hợp, phụ thuộc vào nguồn ngắt
Vì các vector ngắt ở phần đầu của bộ nhớ chương trình, nên lệnh thứ nhất của chương trình chính thường là lệnh nhảy qua chương trình chính này, ví dụ như lệnh LIMP
0030H
* Thiết kế chương trình dùng các ngắt :
Các ví dụ trong các mục trước đã không sử dụng các ngắt như đã có “vòng lặp đợi”
để kiểm tra các cờ báo tràn TF0 hoặc TFI1 hoặc các cờ thu hoặc cờ phát port nối tiếp TI
hoặc RI Vấn để trong phương pháp này là thời gian thực thi có giá trị của CPU hoàn toàn
bị tiêu tốn trong việc chờ các cờ Điều này hoàn toàn không thích hợp với các ứng dụng
cho vi điểu khiến trong đó bộ vi điểu khiển phải tương tác với nhiều thiết bị nhập xuất
đồng thời
Trong phân này ta khảo sát cách phát triển chương trình đùng trong vi điều khiến
LIMP MAIN
:Các điểm vào ISR
ORG 0030H ; Điểm vào chương trình chính
Trang 32
A/ Chương trình phục vụ ngắt có kích thước nhỏ :
Các chương trình phục vụ ngắt phải bắt đầu ở gần phần đầu của bộ nhớ chương trình ở các địa chỉ trong bảng các vector ngắt Mặc dù chỉ có 8 byte ở các điểm vào ngắt, thường đủ bộ nhớ để thực hiện các hoạt động mong muốn và quay về chương trình chính từ
RETI MAIN:
Nếu sử dụng nhiễu ngắt phải bảo đảm là chúng bắt đầu ở vị trí đúng và không chạy
quásang ISR kế Vì chỉ có một ngắt được sử dụng trong ví dụ trên chương trình chính có
thể bắt đâu ngay sau lệnh RETI
B/ Các chương trình phục vụ ngắt có kích thước lớn :
Nếu ISR dài hơn 8 byte, có thể cần chuyển nó tới một nơi nà đó trong bộ nhớ
chương trình hoặc có thể để cho nó đi lố qua điểm vào của ngắt kế Tiêu biểu là ISR bắt đầu với lệnh nhảy đến vùng nhớ khác ở đó có thể mở rộng chiều đài các ISR Ví dụ lúc này chỉ xét TimerO, có thể sử dụng khung sau:
ORG 0000H :Điểm vào Reset LIMP MAIN
ORG 000BH ;Các vector ngắt tiếp theo
MAIN:
TO_ISR:
sISR cho Timer 0
RETI :Quay về chương trình chính
Để đơn giản chương trình chính chỉ làm một việc lúc đầu Chương trình khởi động
Timer, Port nối tiếp và các thanh ghi ngắt cho thích hợp và rồi không làm gì cả Công việc hoàn toàn được làm trong ISR Sau các lệnh khởi động, chương trình chính chứa các lệnh sau:
HERE:SJMP HERE
Hay dang viét gon:
SJMP $
Khi ngắt xảy ra, chương trình chính bị ngắt quãng tạm thời trong khi ISR thực thi
Lệnh RETI ở cuối ISR trả điểu khiển về chương trình chính và nó tiếp tục không làm gì
Trang 33
cả Trong nhiều ứng dụng điều khiến, nhiều công việc thật ra được thực hiện hoàn toàn trong ISR
Vì sử dụng ngắt, nên lệnh SIMP (HERE: SJMP HERE) có thể được thay thế bằng các lệnh thực hiện các công việc khác cần trong ứng dụng
%* Các ngắt của uC 8051/8031:
A)Các ngắt Timer:
Các ngắt Timer có địa chỉ vector ngắt là 000BH (TimerO) và 001BH(Timer1) Ngắt Timer xảy ra khi các thanh ghi Timer(TLx/THx) tràn va set cờ bdo tran (TFx) lên 1
Chú ý rằng các cờ Timer(TFx) không bị xóa bằng phần mềm Khi cho phép ngắt, tự động xóa bằng phần cứng khi CPU chuyển đến ngắt
B)Các cổng nối tiếp:
Ngắt cổng nối tiếp xảy ra khi cờ ngắt phát (TD hoặc cờ ngắt thu (RI) được đặt lên 1
Ngắt phát xảy ra khi truyền một ký tự vừa được ghi vào SBUE Ngắt thu xảy ra khi một ký
tự đã được nhận xong và đang đợi trong SBUF để được đọc
Ngắt cổng nối tiếp hơi khác với ngắt Timer Cờ gây ngắt cổng nối tiếp không bị xóa bằng phân cứng khi CPU chuyển tới ngắt Nguyên do là có hai nguồn ngắt cổng nối tiếp:
TI và RI Nguồn ngắt phải được xác định trong ISR và cờ tạo ngắt sẽ được xóa bằng phần mềm
C)Các ngắt ngoài:
Các ngắt ngoài xây ra khi có một mức thấp hoặc cạnh xuống trên chân INTO hoac INTI của uC 8051/8031 Đây là chức năng chuyển đổi của các bịt Port 3: P3.2 (chân 12)
và P3.3 (chân 13)
Các cờ tạo ngắt là các bit IEO và IEI trong TCON Khi quyển điểu khiển đã
chuyển đến ISR, cờ tạo ngắt chỉ được xóa nếu ngắt được tích cực ở cạnh xuống Nếu ngắt được tích cực theo mức, thì nguồn yêu cầu ngắt bên ngoài sẽ điều khiển mức của cờ thay cho phần cứng
Sự lựa chọn ngắt tích cực mức thấp hay tích cực cạnh xuống được lập trình qua các bit ITO và TT1 trong TCON Ví dụ, nếu [T1=0, ngắt ngoài 1 được kích khởi bằng mức thấp
ở chân INT1 Nếu INT1=1, ngắt ngoài 1 sẽ được kích khởi bằng cạnh Trong chế độ này,
nếu các mẫu liên tiếp trên chân I NT1 chỉ mức cao trong một chu kỳ và thấp trong chu kỳ
kế, cờ yêu cầu ngắt IE1 trong TCON được đặt lên 1 Rồi bit IE1 yêu cầu ngắt
Vì các chân ngắt ngoài được lấu mẫu một lần ở mỗi chu kỳ máy, ngõ vào nên được giữ tối thiểu trong 12 _ chu kỳ đao động để bảo đảm lấy mẫu đúng Nếu ngắt ngoài được tác
động theo cạnh xuống, nguồn bên ngoài sẽ giữ chân yêu cầu cao tối thiểu một chu kỳ và
giữ nó ở mức thấp một chu kỳ nữa để bảo đảm phát hiện được cạnh xuống, IEO và IE1 tự
động được xóa khi CPU chuyển tới ngắt
Trang 34
LUAN AN TOT NGHIEP TONG DAI PABX 308
Nếu ngắt ngoài được tác động theo mtfc, nguén bén ngoài phải giữ yêu cầu tác
động cho đến ngắt yêu cầu thực sự được tạo ra Rồi nó phải không tác động yêu cầu trước
khi ISR được hoàn tất , nếu không một ngắt khác sẽ được lập lại Thông thường khi vào
ISR người ta làm nguồn yêu cầu đưa tín hiệu tạo ngắt về trạng thái không tác động
s* Giản đồ thời gian khi xảy ra một ngắt:
Các ngắt được lấu mẫu ở S5P2 của mỗi chu kỳ máy:
4————— Mot chu ky may(1 4s) ————_»
Lấy mẫu ngắt ở S5P2 25us>
Hình1.28: Giản đồ thời gian lấy mẫu các ngắt Chúng được hỏi vòng ở chu kỳ máy kế tiếp và nếu một điểu kiện ngắt tổn tại, nó sẽ
được chấp nhận nếu:
(*) không có ngắt khác có cùng độ ưu tiên bằng hoặc cao hơn xảy ra
(**) chu kỳ hỏi vòng là chu kỳ cuối trong lệnh
(***) lệnh hiện hành không là lệnh RETI hoặc bất cứ truy xuất nào đến IE hoặc IP
Trong hai chu kỳ kế, bộ xử lý cất PC vào ngăn xếp và nạp vào PC địa chỉ vector
ngắt ISR bắt đầu thực thi, lệnh hiện hành không phải là lệnh RETI để đảm bảo có tối
thiểu một lệnh được thực thi sau mỗi chương trình phục vụ ngắt
Trang 35
gian chờ Interrut(ngắt) xấu nhất là 9,25Is (Giả sử ngắt có ưu tiên cao luôn luôn được cho
phép)
IV TAP LENH CUA uC 8051/8031
Tập lệnh cửa uC 8051/8031 gồm có 255 lệnh gồm 139 lệnh 1 byte, 92 lệnh 2 byte |
và 24 lệnh 3 byte
1/ Các chế độ đánh địa chỉ :
Trong: tập lệnh có 8 chế độ đánh địa chỉ:
a)Dia chi thanh ghi (Register Addressing) :
uC 8051/8031 có bốn bank thanh ghi, mỗi bank thanh ghi có 8 thanh ghi đánh dấu từ
RO đến R7 Tại mỗi thời điểm chỉ có một thanh ghi được tích cực Muốn chọn bank thanh
ghi nào ta chỉ cần gán các bit nhị phân thích hợp vào RS1 (PSW.3) và RSO (PSW.4) trong
thanh ghi trạng thái chương trình (PSW)
Ngoài ra,một số thanh ghi chức năng đặc biệt như thanh ghi tích lũy, con trỏ div liệu, cñng được xác định trong các lệnh nên không cần các bit địa chỉ Trong các lệnh này - thanh ghi tích lũy được ký hiệu là “A”, con trỏ dữ liệu là “DPTR”, thanh ghi đếm chương
trình là “PC”, cờ nhớ là “C”, cặp thanh ghi tích lũy là “A,B” -
c) Địa chỉ gián tiếp ( Indirect Addressing) :
R0 và R1 được dùng để chứa địa chỉ ô nhớ mà lệnh tác động đến Người ta qui ước dùng dấu @ trước R0 và R1
Trang 36
Người ta dùng dấu # trước toán hạng tức thời Các toán hạng đó có thể là một hằng
số, một ký số hay một biểu thức toán học Trình hợp dịch sẽ tự động tích toán và thay thế
đữ liệu trực tiếp vào mã lệnh
Dia chi tifc thdi
e) Địa chỉ tương đổi :
Địa chỉ tương đối dùng trong các lệnh nhảy wC 8051/8031 dùng giá trị 8 bít có dấu
để cộng thanh đếm chương trình (PC) Tầm nhảy của lệnh này trong khoảng từ —128 đến
127 ô nhớ Trước khi cộng, thanh ghi PC tăng lên đến địa chỉ của lệnh nhảy rồi tính toán
địa chỉ offset cần thiết để nhảy đến địa chỉ yêu cầu Như vậy địa chỉ mới là địa chỉ tương
đối so với lệnh kế chứ không phải bản thân lệnh nhảy Thường lệnh này có liên quan đến
nhãn được định nghiã trước
Địa chỉ tương đối
Sf) Địa chỉ tuyệt đối (Absolute Addressing) :
Địa chỉ tuyệt đối dùng trong các lệnh ACALL và AIMP Các lệnh 2 byte này dùng
để rẽ nhánh vào vào một trang 2Kbytes của bộ nhớ chương trình bằng cách cap 11 bit di
chỉ thấp (A0 +A10) để xác định địa chỉ đích trong trang mã Còn 5 bit cao của địa chỉ đích
(A11+A15) chính là 5 bít cao hiện hành trong thanh ghi đếm chương trình Vì vậy, địa chỉ
của lệnh theo sau lệnh rẽ nhánh và địa chỉ đích của lệnh rẽ nhánh cần phải cùng trang mã
2 Kbytes (có cùng 5bit địa chỉ cao)
Trang 37
g) Dia chi dai (Long Addressing) :
Địa chỉ đài dùng cho lệnh LCALL và LIMP Các lệnh này chiếm 3 byte va ding 2byte sau (byte 2 va byte 3) dé dinh dia chỉ đích của lệnh (6 bit Ưu điểm của lệnh này là
có thể sử đụng cho toàn bộ vùng nhớ 64 Kbyte Tuy nhiên, lệnh này chiếm nhiều byte và
Địa chỉ tham chiếu dùng một thanh ghi cơ bản (hoặc thanh ghi đếm chương trình
PC hoặc thanh ghi con trỏ đữ liệu DPTR ) và địa chỉ offset (trong thanh ghi tích lũy A) để
tạo địa chỉ được tác động cho các lệnh JMP và MOVC Các bảng nhảy và bảng tìm kiếm
dễ dàng được tạo ra để sử dụng địa chỉ tham chiếu
Địa chỉ tham chiếu
2 Các nhóm lệch của 8051: Tập lệch của 8051 được chia thành 4 nhóm:
Rn : Thanh ghi RO dén R7 của bank thanh ghi được chọc
Data : 8 bit dia chỉ vùng dữ liệu bên trong Nó có thể là vùng RAM đữ liệu trong( 0- 127) hoặc các thanh ghi chức năng đặc biệt
@Ri > 8 bit ving RAM đữ liệu trong (0- 255) được đánh địa chỉ gián tiếp qua thanh ghi RO hoặc R1
#Data : Hằng 8 bit chứa trong câu lệch
#Datal6: Hang 16 bit chứa trong câu lệch
Addr16: 16 bit địa chỉ đích được dùng trong lệch LCALL và LIUMP
Addr11: 11 bit dia chi dich được dùng trong lệch ACALL va AJUMP
Rel : byte offaset 8 bit có dấu được dùng trong lệch SIUMP và nhữnh lệch nhảy
Trang 38
a) Nhém lệch xử lý số học
ADDA,Rn (1 byte I 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, #data (2; 1): Cộng đữ liệu tức thời vào A
ADDC A, Rn (1, 1): Cộng thanh ghi và cờ nhớ vào A
ADDC A,data (2, 1): Cộng trực tiếp byte đữ 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
ADDC A, #data (2, 1): Cộng dữ liệu tức thới và cờ nhớ vào A
SUBB A, Rn (1, 1): Trừ nội dung thanh ghi A cho nội dung thanh ghi Rn và cờ nhớ SUBB A, data (2,1): Trừ trực tiếp A cho mọt số và cờ nhớ
SUBB A, @Ri (1,1) Trừ gián tiếp A cho một số và cờ nhớ
SUBB A, #data (2, 1): Trừ nội dung A cho một số tức thời và cờ nhớ
INC A (1,1): Tăng nội dung thanh ghi A lên I
INC Rn (1,1): Tăng nội dung thanh ghi Rn lên 1
INC data (2,1): Tăng dữ liệu trực tiếp lên 1
INC @Ri (1,1): Tăng gián tiếp nội dung vùng RAM lên 1
DEC A (1,1): Giảm nội dung thanh ghi A xuống 1
DEC Rn (1.1): Giảm nội dung thanh ghi Rn xuéng 1
DEC data (2,1): Giảm đữ liệu trực tiếp xuông 1
DEC @Ri (1,1): Giảm gián tiếp nội dung vùng RAM xuống 1
INC DPTR (1,2): Tăng nội dung con trỏ dữ liệu lên 1
MUL AB (1,4): Nhân nội dung thanh ghi A với nội dung thanh ghi B
DIV AB (1,4): Chia nội dung thanh ghi A cho nội dung thanh ghi B
DA A (1,1): Hiệu chỉnh thập phân thanh ghi A
b)_ Nhóm lệch luận lý:
ANL A,Rn (1,1): AND nội dung thanh ghi A với nội dung thanh ghi Rn
ANL A,data (2,1): ANDnội dữ liệu trực tiếp với thanh ghi A
ANL A, @Ri (1,1): AND nội dung thanh ghi A với đữ liệu gián tiếp trong RAM
ANL A, #data (2,1): AND một đữ liệu trực tiếp với một dữ liệu tức thới
ANL C, bit (2,2): AND cờ nhớ với một bit trực tiếp
ANL C, /Øít (2,2): AND cờ nhớ với bù của một bit trực tiếp
ORL A,Rn (1,1): OR thanh ghi A véi thanh ghi Rn
ORL A,data (2,1): OR thanh ghi A với dữ liệu trực tiếp
ORL A, @Ri (1,1):OR thanh ghi A với một dữ liệu gián tiếp
ORLA,#data ,2):OR một dữ liệu trực tiếp với một dữ liệu tức thời
Trang 39
LUAN AN TOT NGHIEP
ORL C,bit (2,2): OR cờ nhớ với một địa chỉ trực tiếp
ORL C,/it (2,2): OR cờ nhớ với bù của một bit trực tiếp
XRL A,Rn (1,1): XOR thanh ghi A với thanh ghi Rn
XRL A,data (2,1): XOR thanh ghi A với một dữ liệu trực tiếp
XRL A, @Ri (1,1): XOR thanh ghi A với một dữ liệu gián tiếp
XRL A, #data (2,1): XOR thanh ghi A với một đữ liệu tức thời
XRL data,A (2,1):XOR một dữ liệu trực tiếp với một thanh ghi A
XRL data,#data (3,2): XOR một dữ liệu trực tiếp với một dữ liệu tức thời
SETB C (1,1): Đặt cờ nhớ
SETB bit (2,1): Đặt một bít thực tiếp
CLR A (1,1): Xóa thanh ghi A
CLR C (1,1): Xóa cờ nhớ
CPL A (1,1): Bù nội dung thanh ghi A
CPLC (1,1): BU cờ nhớ
CPL bit (2,1): Bù một bịt thực tiếp
RLA (1,1): Quay trái nội dung thanh ghi A
RLC A (1,1): Quay trái nội dung thanh ghi A qua cờ nhớ
RRA (1,1): Quay phải nội dung thanh ghi A
RRCA (1,1) : Quay phải nội dung thanh ghi A qua cờ nhớ
SWAPA (1,1): Quay trái nội dung thanh ghi A 1 nibble(1/2byte)
c) Nhóm lệch chuyển dữ liệu:
MOV A,Rn
‘MOV A,data
MOV A,@Ri
(1,1): Chuyển nội dung thanh ghi Rn vào thanh ghi A
(2,1): Chuyển dữ liệu trực tiếp vào thanh ghi A
(1,1): Chuyển dữ liệu gián tiếp vào thanh ghi A
MOV A,#data (2,1): Chuyển dữ liệu tức thời vào thanh ghi A
MOV Rn, A (1,1): Chuyển nội dung thanh ghi A vao thanh ghi Rn
MOV Rn,data (2,2): Chuyén dif liéu truc tiép vao thanh ghi Rn
MOV Rn, #data (2,1): Chuyển dữ liệu tức thời vào thanh ghi Rn
MOV data ,A (2,1): Chuyển nội dung thanh ghi A vào một dữ liệu trực tiếp
MOYV data,Rn (2,2):Chuyển nội dung thanh ghi Rn vào một dữ liệu trực tiếp
MOV data, data (3,2): Chuyển một đữ liệu trực tiếp vào một đữ liệu trực tiếp
MOV data, @Ri
MOV data,#data (3,2): Chuyển một dữ liệu tức thời vào một đữ liệu trực tiếp
MOV @Ri,A (1,1): Chuyển nội dung thanh ghi A vào một đữ liệu gián tiếp
MOV @Ri,data (2,2):Chuyển một dữ liệu trực tiếp vào một dữ liệu gián tiếp
MOV @Ri, #data (2,1): Chuyển dữ liệu tức thời vào đữ liệu gián tiếp
MOV DPTR,#data16 (3,2): Chuyển một hằng 16 bit vào thanh ghi con trỏ dữ liệu
MOV C,bit (2,1): Chuyển một bịt trực tiếp vào cờ nhớ
(2,2): Chuyển một đữ liệu gián tiếp vào một dữ liệu trực tiếp
TỔNG ĐÀI PABX 308
Trang 40
MOV bit,C_ (2,2):Chuyển cờ nhớ vào một bit trực tiếp
MOV A @A+DPTR (1,2): Chuyển byte bộ nhớ chương trình có địa chỉ là@A+DPTR vào © thanh ghi A
MOVXA,@Ri (1,2): Chuyển dữ liệu ngoài (8 bit địa chỉ) vào thanh ghi A
MOV A,@DPTR (1,2): Chuyển nội dung A ra dữ liệu ngoài (16 bít địa chỉ)
MOVX @Ri/A (1,2): Chuyển nội dung A ra dữ liệu ngoài(8 bit địa chỉ)
MOCX @DPTR,A (1,2): Chuyển nội dung A ra đữ liệu ngoài (16 bịt địa chỉ)
PUSH data (2,2): Chuyển dữ liệu trực tiếp vào ngăn xếp và tăng SP
POP data (2,2): Lấy đữ liệu trực tiếp ra khỏi ngăn xếp và giảm SP
XCH A,jRn (1,1): Trao đổi dữ liệu giữa thanh ghi Rn và thanh ghi A
XCH A,data (2,1): Trao đổi giữa thanh ghi A và đữ liệu trực tiếp
XCH A,@Ri (1,1): Trao đổi giữa thanh ghi A và đữ liệu gián tiếp
XCHD A,@Ri(1,1): Trao đổi giữa nibble thấp (LSN) của thanh ghi A va LSN của đữ liệu - gián tiếp
d) Nhóm lệch chuyển điều khiển:
ACALL addr11 (2,2):Gọi chương trình con dùng địa chỉ tuyệt đối
LCALL, addr16 (3,2): Gọi chương thình con dùng địa chỉ đài
RET (1/2): Trở về từ lệch gọi chương trình con
RETI (1,2): Trở về từ lệnh gọi ngắt
AJMP addr11 (2,2): Nhảy tuyệt đối
LIMP addr16 (3,2):Nhảy dai
SIMP rel (2,2):Nhay ngắn
JMP @A+DPTR (1,2):Nhảy gián tiếp từ con trổ đữ liệu
JZ rel (2,2): Nhảy nếu A bằng 0
INZ rel (2,2): Nhảy nếu A không bằng 0
JN rel - 2.2): Nhảy nếu cờ nhớ được đặt
JNC rel (2,2): Nhảy nếu cờ nhớ không được đặt
JB BIT, rel (3,2): Nhảy tương đối nếu bit trực tiếp được đặt
JNB bịt, rel (3,2): Nhảy tương đối nếu bít trực tiếp không được đặt
JBC bit,rel (3,2): Nhảy tương đối nếu bit trực tiếp được đặt rồi xóa bit
CINE A,data,rel (3,2): So sánh đữ liệu trực tiếp với A và nhảy nếu không bằng
CINE A,#data,rel — (3,2): So sánh đữ liệu tức thời với A VÀ nhảy nếu không bằng
CINE Rn,#datarel (3,2): So sánh dữ liệu tức thời với nội dung thanh ghi Rn và nhảy nếu không bằng
CINE @Ri,#data,rel (3,2): So sánh đữ liệu tức thời với dữ liệu gián tiếp và nhảy nếu không bằng
DJNZ Rn,rel (2,2): Giảm thanh ghi Rn và nhảy nếu không bằng
DINZ data,rel (3,2):Giảm dữ liệu trực tiếp và nhảy nếu không bằng