giao tiếp pc và vi xử lý trong hệ thống scada - Pdf 13

MỤC LỤC:
NỘI DUNG trang
Giới thiệu chung 01
CHƯƠNG 1: GIAO THỨC TRUYỀN THÔNG 03
I. Giới thiệu 03
II. Protocol 05
1. Khái niệm 05
2. Xây dựng Protocol 06
a) Cấu trúc frame dữ liệu 06
b) Xây dựng Protocol 08
III. Truyền thông nối tiếp 09
1 Thanh ghi diều khiển đường truyền 10
2 Thanh ghi điều khiển MODEM 11
3 Thanh ghi trạng thái đường dây 12
4 Chuẩn giao tiếp RS-232 13
5 Giới thiệu IC Max_232 15
CHƯƠNG 2: CƠ LƯỢC AT89C51 17
I. Khái quát về họ IC MCS-51 17
II. Giới thiệu AT89C52 18
1. Những đặc trưng cơ bản 20
2. Cấu hình chân 20
III. Tổ chức bộ nhớ 25
1. RAM đa dụng 25
2. RAM địa chỉ hoá từng bit 27
3. Các bank thanh ghi 27
IV. Các thanh ghi chức năng đặc biệt 29
1 Từ trạng thái chương trình 30
2 Thanh ghi B 32
3 Con trỏ ngăn xếp 32
4 Con trỏ dữ liệu 33
5 Các thanh ghi port xuất nhập 33

Chương trình xử lý tập lệnh 81
Chương trình đóng gói dữ liệu 83
Chương trình Demo-Kit 85
Phần 3: Chương trình 88
Báo cáo kết quả 146
Giới thiệu chung :
Như chúng ta đã biết trong điều kiện khoa học kỹ thuật và kinh tế phát
triển như hiện nay thì qui trình tự động hóa trong công nghiệp và sản xuất
hầu như không thể thiếu được . Nó đóng một vai tró hết sức quan trọng
trong việc giúp tăng năng suất , tăng độ chính xác và do đó tăng hiệu quả
sản xuất . Trong đó một vai trò không thể không nhắc đến của qui trình tự
động hóa là thu thập dữ liệu và điều khiển từ xa .
Để kiểm tra tình hình sản xuất cũng như trạng thái hoạt động của từng
phân xưởng ta không thể cứ cho người đến tận nơi , kiểm soát từng hoạt
động và quay về báo cáo nếu có sự cố xảy ra mà nhất thiết phải có một hệ
thống thu thập dữ liệu từ xa . Khi đó, người kỹ sư vận hành chỉ cần ngồi tại
bàn điều khiển và quan sát những trạng thái được cập nhật về liên tục để có
thể xử lý kịp thời những tình huống xảy ra thông qua quá trình liên kết dữ
liệu, mà không phải mất thời gian đi đến nơi có xảy ra sự cố .
Không dừng ở đó , việc thu thập dữ liệu và điều khiển từ xa còn là một
nhân tố quản lý, một yếu tố tất yếu cho sự phát triển của tất cả các ngành
nghề , các lĩnh vực khác như giao thông vận tải ( theo dõi các trạm giao
thông đường bộ, hàng hải , hàng không … ) , điện lực , y tế . . .
Biết được ý nghĩa và tầm quan trọng của nó nên chúng em quyết định
nghiên cứu và hy vọng có cơ hội mở rộng đề tài này .
Tổng quan về công việc thực hiện như sau :
- Xây dựng một tập lệnh trong giao tiếp giữa Máy tính và micro-
controller.
- Xây dựng một giao thức truyền nhận thông tin (Protocol).
- Sử dụng tập lệnh theo yêu cầu mong muốn .

sóng vào ra một cách đơn giản, mang ý nghĩa mô phỏng cho những gì thực
hiện được trong việc xây dựng chương trình.
Kết quả mong muốn của luận văn là xây dựng được một môi trường
thuận lợi cho quá trình trao đổi thông tin giữa hai đối tượng sử dụng. Hay
nói khác hơn, đây là một tầng đệm về ngôn ngữ giao tiếp, một quá trình
trung gian giúp cho việc liên kết dữ liệu được diễn ra một cách trôi chảy
theo mong muốn của người sử dụng. Các lớp cơ bản được xây dựng trong hệ
thống này là: lớp vật lý, lớp liên kết dữ liệu (datalink ), lớp quản lý truyền tin
và sau cùng là lớp dữ liệu.
- Lớp vật lý: là các yếu tố đặc trưng bởi mức điện áp hay dòng
điện cho các ngõ vào ra. Tiêu biểu cho lớp này là các phương tiện như thiết
bị điện (dây dẫn, chân IC…) hay các chuẩn giao tiếp giúp cho lớp liên kết dữ
liệu được thực hiện. Một trong các thủ tục protocol trong liên kết dữ liệu đơn
giản nhất cho lớp này là sử dụng chuẩn giao tiếp RS-232 trong truyền thông
nối tiếp.
- Lớp liên kết dữ liệu: lớp này quan tâm đến các dạng truyền dữ
liệu (đồng bộ hay bất đồng bộ), tốc độ sử dụng, kiểm tra và sửa lỗi, chế độ
phát lại (echo)… đây là phần trọng tâm của một chương trình liên kết dữ
liệu, xây dựng Protocol cho phần này là thiết lập các thủ tục liên kết và truy
xuất dữ liệu.
- Lớp quản lý truyền tin: lớp này có nhiệm vụ quản lý dữ liệu
(ghi nhận và truy xuất dữ liệu từ các vùng địa chỉ của các tín hiệu vào ra
theo định nghĩa của tập lệnh), phần giới thiệu tập lệnh được thực hiện trong
chương 5.
- Lớp dữ liệu: lớp này đảm nhận vai trò ghi nhận các giá trị dữ
liệu tại đầu mỗi user, bao gồm các dạng tín hiệu điều khiển như dạng xung,
dạng mức và tín hiệu dạng A/D.
Vấn đề cần quan tâm chính của chúng ta là xây dựng một chuẩn cho tầng
liên kết dữ liệu (các thủ tục protocol).
I. PROTOCOL:

Ví dụ : Nếu đầu 1 vừa gởi một frame đến đầu 2 nó sẽ không được phép
gởi frame kế ( chứa một gói dữ liệu mới ) cho đến khi nó nhận được một
frame từ đầu 2 mang theo thông tin trả lời đã nhận tốt . Nếu đầu 1 không
nhận được thông báo này trở về từ đầu 2 trong vòng một khoảng thời gian
nghỉ (timeout) được định trước , nó sẽ truyền lại frame gởi đến đầu 2 và hy
vọng trong thời gian này nó nhận được thông báo đã nhận đúng từ đầu 2 . Và
nếu không thì sau vài lần lặp lại (được định trước ) mà đầu “1” vẫn không
nhận được thông báo nhận đúng từ đầu “2” nó xem như đường truyền bị lỗi
và thông báo ra ngoài.
2. Xây dựng Protocol:
Xây dựng một protocol cho quá trình trao đổi dữ liệu trong trường hợp
mạch vi xử lý đóng vai trò slave và máy tính (PC) đóng vai trò master trong
quá trình truyền nhận thông tin.
a) Cấu trúc frame dữ liệu:
Trong chế độ hoạt động này khối vi xử lý không có yêu cầu gởi cho PC
mà chỉ trả lời kết quả theo yêu cầu nhận được từ PC tuân theo qui tắc của tập
lệnh được xây dựng trong luận văn này . Một Protocol được đặt ra cho liên
kết dữ liệu với một frame truyền được chứa các byte qui định như sau :
Header Mã ID Control fiel Length Các byte DATA
Bốn byte đầu của frame truyền được gọi chung là các byte control fiels
bao gồm :
- Một byte đầu tiên là byte header : là ký tự qui định nhằm đánh dấu
cho đầu mỗi frame truyền.
- Một byte mã ID là mã số thứ tự của frame truyền mỗi khi có một yêu
cầu mới cho vi xử lý (mã ID được đánh số liên tục từ 0-99 và trở về 0). Mã
ID này sẽ mang một ý nghĩa quan trọng cho việc mở rộng đề tài luận văn sau
này (kết nối nhiều frame truyền liên tiếp).
- Một byte control fiel : đây là byte chức năng để kiểm tra thông tin
cho mỗi frame truyền . Byte control fiel được định nghĩa như sau :
X X X X X b2 b1 b0

chương trình được thực hiện song song theo hệ thời gian thực (multitasking),
nên đôi khi khối vi xử lý có thể gởi tín hiệu trả lời ngay khi yêu cầu từ PC
gởi đến chưa được xử lý xong (nếu thời gian xử lý vượt quá khoảng thời
gian quét tối đa qui định cho 1 tác vụ). Khi đó, khối vi xử lý sẽ tạo nên một
frame truyền trả về PC, không mang theo nội dung trả lời cho yêu cầu của
PC mà chỉ có các byte control fiels với mục đích thông báo kết qua vừa nhận
được từ PC là đúng hay sai (nhờ vào bit b2 của byte control fiel).
- Nếu trong một khoảng thời định trước mà PC chưa nhận được tín
hiệu trả lời từ vi xử lý, nó sẽ gởi tiếp một frame khác. Frame này chỉ gồm
các byte control fiels mà không mang theo yêu cầu mới cho vi xử lý nhằm
mục đích nhắc lại frame vừa truyền. Khi nhận được frame này, khối vi xử lý
kiểm tra quá trình xử lý trước đó thực hiện xong chưa và trả lời lại cho PC.
- Nếu sau vài lần gởi mà PC vẫn không nhận được trả lời từ vi xử lý
thì xem như đường truyền bị lỗi. Nếu đường truyền bị lỗi hoặc có thông báo
lỗi từ vi xử lý gởi về thì PC sẽ gởi một frame truyền mới mang đầy đủ
thông tin ban đầu.
Mã ID của frame truyền được đặt ra nhằm mục đích để mở rộng
chương trình sau này. Nếu trong trường hợp truyền nhận chuỗi dữ liệu có độ
dài quá lớn hoặc truyền nhận file, ta không thể truyền một lần trên một
frame mà phải cắt ra thành nhiều frame truyền. Khi đó, việc đánh mã ID
chính xác sẽ giúp cho việc kết chuỗi dữ liệu nhận về không bị xáo trộn. Qui
tắc đánh mã ID là nó chỉ được tăng dần sau mỗi lần trao đổi dữ liệu thành
công, tức PC phải nhận được trả lời từ vi xử lý theo đúng yêu cầu mà nó gởi
đến và kết thúc một chu trình liên kết dữ liệu.
III. TRUYỀN THÔNG NỐI TIẾP:
Ta có thể thực hiện truyền dữ liệu giữa máy tính và vi xử lý theo
nhiều chuẩn khác nhau. Vì trong luận văn này sử dụng đến việc thu phát dữ
liệu theo kiểu nối tiếp nên cần phải khái quát vài nét về các chuẩn truyền
thông.
Truyền thông nối tiếp là việc thu phát dữ liệu ở dạng chuỗi các xung

register
THR 3F8H 2F8H 3E8H 2E8H OUTPUT
Receiver data register RDR 3F8H 2F8H 3E8H 2E8H INPUT
Baud rate divisor (LSB) BRDL 3F8H 2F8H 3E8H 2E8H OUTPUT
Baud rate divisor (MSB) BRDH 3F9H 2F9H 3E9H 2E9H OUTPUT
Interrupt enable register IER 3F9H 2F9H 3E9H 2E9H OUTPUT
Interrupt ID register IID 3FAH 2FAH 3EAH 2EAH INPUT
Line control register LCR 3FBH 2FBH 3EBH 2EBH OUTPUT
Modem control register MDC 3FCH 2FCH 3ECH 2ECH OUTPUT
Line status register LST 3FDH 2FDH 3EDH 2EDH INPUT
Modem status register MSR 3FEH 2FEH 3EEH 2EEH INPUT
1. Thanh ghi điều khiển đường truyền (Line Control
Register):
Bit cao của thanh ghi này gọi là bit chốt truy xuất hệ số chia. Nếu bit
này được đặt lên 1 thì giá trị ở thanh ghi cơ sở được truy xuất làm byte thấp
của thanh ghi hệ số chia chọn tốc độ truyền, và giá trị ở thanh ghi cơ sở +1
sẽ được truy xuất làm byte cao của thanh ghi hệ số chia chọn tốc độ truyền.
Nếu bit này được xóa về 0 thì thanh ghi cơ sở sẽ thành thanh ghi đệm thu
phát.
7 6 5 4 3 2 1 0
Bit Nội dung
Bit 0 Bit
1
00 : 5 bit data ; 01 : 6 bit data
10 : 7 bit data ; 11 : 8 bit data
Bit 2 0 : 1 bit stop
1 : 1,5 hay 2 bit stop
Bit 3 0 : không kiểm tra parity
1 : kiểm tra parity
Bit 4 1 : kiểm tra parity chẵn

7 6 5 4 3 2 1 0
Bit Nội dung
Bit 0 1 : Có dữ liệu trong bộ đệm nhận
Bit 1 1 : Overrun error : dữ liệu bị chồng
Bit 2 1 : sai parity
Bit 3 1 : Framing error ( bit stop không hợp lệ)
Bit 4 1 : Báo ngắt (đường truyền trống )
Bit 5 1 : Thanh ghi phát trống
Bit 6 1 : Thanh ghi dịch và thanh ghi phát
trống
0 : Thanh ghi dịch còn chứa dữ liệu
Bit 7 0
4. Chuẩn RS-232:
Chuẩn RS-232 lần đầu tiên được giới thiệu vào năm 1962 do hiệp hội
kỹ thuật điện tử EIA (Electronics Industries Association) như là chuẩn giao
tiếp truyền thông giữa máy tính và một thiết bị ngoại vi (modem, máy vẽ,
mouse, máy tính khác,……).
Cổng giao tiếp RS-232 là giao diện phổ biến rộng rãi nhất. Người
dùng máy tính PC còn gọi cổng này là COM 1, còn COM 2 để tự do cho các
ứng dụng khác. Giống như cổng máy in, cổng nối tiếp RS-232 được sử dụng
một cách rất thuận tiện cho mục đích đo lường và điều khiển.
Việc truyền dữ liệu qua RS-232 được tiến hành theo cách nối tiếp,
nghĩa là các bit dữ liệu được gửi đi nối tiếp nhau trên một đường truyền dẫn.
Trước hết, loại truyền này có thể dùng cho những khoảng cách lớn hơn, bởi
vì các khả năng gây nhiễu nhỏ đáng kể hơn là dùng cổng song song. Việc
dùng cổng song song có một nhược điểm đáng kể là cáp truyền dùng quá
nhiều sợi, và vì vậy rất đắt tiền. Hơn nữa tín hiệu nằm trong khoảng 0 - 5V
tỏ ra không thích ứng với khoảng cách lớn.
Cổng nối tiếp RS không phải là một hệ thống Bus, nó cho phép dễ
dàng tạo ra liên kết dưới hình thức điểm nối điểm giữa hai máy cần trao đổi

RxD _ Receive Data (Lối vào)
TxD _ Transmit Data (Lối ra)
DTR _ Data Terminal Ready (Lối ra)
GND _ Ground (Nối đất)
DSR _ Data Set Ready (Lối vào)
RTS _ Request to Send (Lối ra)
CTS _ Clear to Send (Lối vào)
RI _ Ring Indicator (Lối ra)
Việc truyền dữ liệu xảy ra trên hai đường dẫn. Qua chân cắm ra TxD,
máy tính gởi dữ liệu của nó đến các thiết bị khác. Trong khi đó dữ liệu mà
máy tính nhận được, lại được dẫn đến chân nối RxD. Các tín hiệu khác đóng
vai trò như là tín hiệu hỗ trợ khi trao đổi thông tin và vì vậy không phải
trong mọi ứng dụng đều dùng đến.
Các bit dữ liệu được gởi đi theo kiểu đảo ngược, nghĩa là các bit có giá
trị “1” sẽ có mức điện áp LOW, các bit có giá trị “0” sẽ có mức điện áp
HIGH. Mức tín hiệu nhận và truyền qua chân RxD và TxD thông thường
nằm trong khoảng –12V đến +12V. Mức điện áp đối với mức HIGH nằm
giữa +3V đến +12V.
Ở trạng thái tĩnh trên đường dây vẫn có điện áp –12V. Một bit khởi động
(Start bit) sẽ mở đầu việc truyền dữ liệu. Tiếp sau đó là các bit riêng lẻ đến,
trong đó các bit có giá trị thấp được gửi trước tiên. Con số của các bit dữ liệu
thay đổi giữa năm và tám. Ở cuối dòng dữ liệu còn có một bit dừng (Stop
bit) để đặt lại trạng thái lối ra (-12V).
Tốc độ Baud có giá trị thông thường là : 300; 600; 1200; 4800; 9600;
19200 Baud. Ký hiệu Baud tương ứng với số bit truyền trong 1 giây (bit per
second _ bps). Chẳng hạn như khi tốc độ Baud bằng 9600 có nghĩa là có
9600 bit dữ liệu được truyền trong 1 giây. Vì mỗi byte dữ liệu có một bit bắt
đầu và một bit được dùng gởi kèm theo, do đó khi truyền một byte dữ liệu đã
có 10 bit được gửi đi. Với tốc độ Baud thông thường, mỗi giây cho phép
truyền nhiều nhất từ 30 đến 1920 byte dữ liệu, vì vậy nhược điểm lớn nhất

1
2
3
4
5
6
7
8
15
14
13
12
11
10
9
MAXIM
232E
C1+
V+
C1-
C2+
C2-
V-
T2OUT
R2IN
VCC
GND
T1OUT
R1IN
R1OUT

T2OUT
T2IN
INPUT
Hình 2
GND
R2OTUT
R1OUT
R2IN
R1IN
RS-232
T1IN
C2-
C2+
C1-
T1OUT
V-
C1+
VCC
V+
RS-232
Chương 2:
SƠ LƯỢC AT89C51
I. GIỚI THIỆU KHÁI QUÁT VỀ HỌ IC MCS-51™:
MCS-51 là một họ IC vi điều khiển do Intel phát triển và sản xuất.
Một số nhà sản xuất được phép cung cấp các IC tương thích với các sản
phẩm MCS-51 của Intel là Siemens, Advanced Micro Devices, Fujitsu,
Philips, Atmel…
Các IC của họ MCS-51 có các đặc trưng chung như sau:
• 4 port I/O 8 bit
• Giao tiếp nối tiếp

2
8032
8052
8752
8952
0K
8K ROM
8K EPROM
8K FLASH
256 byte
256 byte
256 byte
256 byte
3
3
3
3
II. GIỚI THIỆU AT89C52 :
AT89C52 là một Microcomputer 8 bit, họ CMOS, có tốc độ cao và
công suất thấp với bộ nhớ Flash có thể lập trình được. Nó được sản xuất với
công nghệ bộ nhớ không bay hơi mật độ cao của hãng Atmel, và tương thích
với chuẩn công nghiệp của 80C51 và 80C52 về chân ra và bộ lệnh. Vì lý do
đó, kể từ đây về sau ta sẽ dùng thuật ngữ “80C51” (hoặc "8051")
Với sự kết nối linh hoạt 8 bit CPU với flash trên chip, AT89C52 của
Atmel là một micro-computer tuyệt vời với độ linh hoạt cao và giải quyết
hiệu quả nhiều chương trình điều khiển ghi vào nó .
Sơ đồ khối của AT89C51
1 Những đặc trưng của AT89C52.
+ Tương thích với các sản phẩm MCS-51
+ 8KByte bộ nhớ Flash có thể lập trình lại với 1000 chu kỳ đọc/xoá

Port 1 là một port xuất/nhập song hướng 8 bit có các điện trở
pullup bên trong. Các bộ đệm ngõ ra của port 1 có thể kéo hoặc cung cấp 4
ngõ nhập TTL. Khi mức 1 được viết vào các chân của port 1, chúng được
kéo lên cao bởi các điện trở pullup nội và có thể được dùng như là các ngõ
nhập. Nếu đóng vai trò là các ngõ nhập, các chân của port 1 (được kéo
xuống thấp qua các điện trở bên ngoài) sẽ cấp dòng I
IL
do các điện trở
pullup bên trong.
•Port 2
Port 2 là một port xuất/nhập song hướng 8 bit có các điện trở
pullup bên trong.
Các bộ đệm ngõ ra của port 2 có thể kéo hoặc cung cấp 4 ngõ vào
TTL. Khi các mức 1 được viết vào các chân của port 2 thì chúng được kéo
lên cao bởi các điện trở pullup nội và có thể được dùng như các ngõ vào.
Khi được dùng như các ngõ vào, các chân của port 2 (được kéo xuống qua
các điện trở bên ngoài) sẽ cấp dòng I
IL
do có các điện trở kéo lên bên trong.
Port 2 phát ra byte cao của địa chỉ khi đọc từ bộ nhớ chương trình
ngoài và khi truy cập bộ nhớ dữ liệu ngoài dùng các địa chỉ 16 bit (MOVX
@DPTR). Trong ứng dụng này, nó dùng các điện trở pullup nội "mạnh" khi
phát ra các mức 1. Khi truy cập bộ nhớ dữ liệu ngoài dùng các địa chỉ 8 bit
(MOVX @RI), port 2 phát ra các nội dung của thanh ghi chức năng đặc
biệt P2.
Port 2 cũng nhận các bit cao của địa chỉ và một vài tín hiệu điều
khiển khi lập trình và kiểm tra Flash.
•Port 3
Port 3 là một port xuất-nhập song hướng 8 bit có điện trở pullup
nội bên trong.

Ngõ vào Timer/Counter 0
Ngõ vào Timer/Counter 1
Xung ghi bộ nhớ dữ liệu ngoài
Xung đọc bộ nhớ dữ liệu ngoài
Các chức năng chuyển đổi trên Port 3
•RST (chân 9)
Ngõ vào reset. Một mức cao trên chân này khoảng hai chu kỳ
máy trong khi bộ dao động đang chạy sẽ reset thiết bị.
•ALE/
PROG
ALE là một xung ngõ ra để chốt byte thấp của địa chỉ trong khi
truy cập bộ nhớ ngoài. Chân này cũng là ngõ nhập xung lập trình (
PROG
)
khi lập trình Flash.
Khi hoạt động bình thường, ALE được phát với một tỷ lệ không
đổi là 1/6 tần số bộ dao động và có thể được dùng cho các mục đích timing
và clocking bên ngoài. Tuy nhiên, lưu ý rằng một xung ALE sẽ bị bỏ qua
mỗi khi truy cập bộ nhớ dữ liệu ngoài.
Nếu muốn, hoạt động ALE có thể cấm được bằng cách set bit 0
của SFR tại địa chỉ 8Eh. Nếu bit này được set, ALE chỉ dược hoạt động
khi có một lệnh MOVX hoặc MOVC. Ngược lại, chân này được kéo lên
cao bởi các điện trở pullup "nhẹ". Việc set bit cấm-ALE không có tác dụng
khi bộ vi điều khiển đang ở chế độ thi hành ngoài.

PSEN
PSEN (Program Store Enable) là xung đọc bộ nhớ chương trình
ngoài. Khi AT89C52 đang thi hành mã (code) từ bộ nhớ chương trình
ngoài,
PSEN

thành phần ngoài lên đến tối đa 64 Kbytes bộ nhớ chương trình và 64 Kbytes
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:
Theo hình vẽ sau, RAM bên trong 8051/8031 đượ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 RAM đa dụng:
Mặc dù trên hình cho thấy 80 byte RAM đa dụng chiếm các địa chỉ từ
30H–7FH, 32 byte dưới cùng từ 00H đến 1FH cũng có thể được dùng với
mục đích tương tự (mặc dù các địa chỉ này đã có mục đích khác).
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 1 byte 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ụ, hai lệnh sau thi hành cùng nhiệm vụ như lệnh đơn ở
trên :
MOV R0, #5FH
MOV A, @R0

E
6F
6E
6D 6C 6B 6A
69 68
2
D
67
66 65 64 63 62 61 60
2
C
5F
5E
5D 5C 5B 5A
59 58
2
B
57
56 55 54 53 52 51 50
2
A
4F
4E
4D 4C 4B 4A
49 48
29
47
46 45 44 43 42 41 40
28
3F

1
00
20
Bank 31F
18
Bank 2
17
10
Bank 1
0F
08
Bank thanh ghi 0
(mặc định cho R0-R7)
07
00
RAM đa dụng
7F
30
RAM
Địa chỉ bit
Địa chỉ
byte
87 86 85 84 83 82 81 80
80
P0
không được địa chỉ hóa bit
81
SP
không được địa chỉ hóa bit
82

9F 9E
9D 9C 9B 9A
99 98
98
SCON
không được địa chỉ hóa bit
99
SBUF
A7 A6 A
5
A4 A3 A2 A1 A0
A
0
P2
AF – – A
C
A
B
A
A
A9 A8
A
8
IE
– – – BC BB B
A
B9 B8
B
8
IP

byte
Địa chỉ bit
không được địa chỉ hóa bit
8
D
TH1
F
F
Tóm tắt bộ nhớ dữ liệu trên chip


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status