Điều Khiển Thiết Bị Qua PC - Pdf 33



Trang 1
LỜI MỞ ĐẦU

Với việc phát triển của kĩ thuật vi xữ lý hiện nay thì việc áp dụng vào thực tiễn
đời sống là một nhu cầu cần thiết của con ngƣời. Với xu hƣớng hiện đại hóa nhƣ hiện
nay thì việc điều khiển thiết bị bởi một hệ thống sẽ giúp việc điều khiển thiết bị đơn
giản và dễ sử dụng cho ngƣời dùng.
Nắm bắt đƣợc tình hình nhóm sinh viên chúng em lựa chọn đề tài “Điều Khiển
Thiết Bị Qua PC” nhằm nghiên cứu để cung cấp cho ngƣời dùng một hệ thống điều
khiển đơn giản mà hiệu quả, đó là hệ thống điều khiển nhiều thiết bị tại chỗ qua việc
kết nối với cổng COM máy tính, chúng ta có thể điều khiển đƣợc các thiết bị dân dụng
nhƣ đèn dây tóc, đèn huỳnh quang, và các thiết bị đƣợc đƣợc điều khiển bằng chức
năng ON/OFF.
Thông qua việc nghiên cứu vi điều khiển AT89S8252, các cổng giao tiếp máy
tính và các linh kiện điện tử, đề tài sẽ mang lại một hệ thống ổn định, chính xác và an
toàn với ngƣời sử dụng.
Với sự hƣớng dẫn của cô Nguyễn Lan Anh đã giúp chúng em hoàn thành tốt đề
tài này.
Trong quá trình tìm hiểu không thể không có những điều thiếu sót, mong quý
Thầy Cô và ngƣời đọc góp ý, chình sửa để đề tài của chúng em đƣợc hoàn thiện tốt
hơn. Nhóm Sinh Viên
Điều khiển thiết bị qua PC Mục lục


Interface) .................................................................................................................... 20
2.4 TÓM TẮT TẬP LỆNH CỦA AT89S8252 ......................................................... 21
2.4.1 Các chế độ định vị ( addressing mode ) ....................................................... 21
2.4.1.1 Sự định vị thanh ghi ( Register Addressing) ............................................ 21
2.4.1.2 Sự định địa chỉ trực tiếp ( Direct Addressing ) ........................................ 22
2.4.1.3 Sự định vị địa chỉ gián tiếp ( Indirect Addressing) ................................. 22
Điều khiển thiết bị qua PC Mục lục Trang 3
2.4.1.4 Sự định vị địa chỉ tức thời (Immediate Addressing) ............................... 23
2.4.1.5 Sự định vị địa chỉ tƣơng đối ....................................................................... 23
2.4.1.6 Sự định địa chỉ tuyệt đối ( Absolute Addressing) ................................... 24
2.4.1.7 Sự định vị địa chỉ dài ( Long Addressing ) .............................................. 24
2.4.1.8 Sự định địa chỉ phụ lục (Index Addressing )............................................ 24
2.4.2 Các kiểu lệnh (instruction types) ................................................................... 25
2.4.2.1 Các lệnh số học (Arithmetic Instrustion): ................................................ 25
2.4.2.2 Các hoạt động logic (Logic Operation): ................................................... 26
2.4.2.3 Các lệnh rẽ nhánh ........................................................................................ 27
2.4.2.4 Các lệnh dịch chuyển dữ liệu. .................................................................... 29
2.4.2.5 Các lệnh luận lý (Boolean Instruction) ..................................................... 30
2.5 HOẠT ĐỘNG CỦA PORT NỐI TIẾP AT89S8252. ........................................ 31
2.5.1 Giới thiệu .......................................................................................................... 31
2.5.2 Thanh ghi điều khiển port nối tiếp SCON (Serial Port Control Register) 32
2.5.3 Các mode hoạt động (Mode Of Operation) ................................................. 33
2.5.4 Sự khởi động, truy xuất các thanh ghi port nối tiếp .................................... 34
2.5.4.1 Sự cho phép bộ thu (Recive Enable) ......................................................... 34
2.5.4.2 Bit data thứ 9 ( the 9
th
data bit) .................................................................. 34

CHƢƠNG 3: TÌM HIỂU CÁC CỔNG GIAO TIẾP................................................... 51
3.1 GIAO TIẾP CỔNG SONG SONG (CỔNG MÁY IN) ..................................... 51
3.1.1 Tên gọi .............................................................................................................. 51
3.1.2 Mức điện áp cổng ............................................................................................ 51
3.1.3 Khoảng cách ghép nối .................................................................................... 51
3.1.4 Tốc độ truyền dữ liệu ...................................................................................... 51
3.1.5 Cấu trúc cổng song song................................................................................. 51
3.1.6 Các thanh ghi ở cổng song song. ................................................................... 53
3.2 GIAO TIẾP CỔNG NỐI TIẾP (RS232) ............................................................. 53
3.2.1 Cấu trúc cổng nối tiếp. .................................................................................... 53
3.2.2 Truyền thông nối tiếp giữa 2 nút. .................................................................. 56
3.3 TÌM HIỂU VỀ USB ............................................................................................... 57
3.3.1 Khái niệm ......................................................................................................... 57
3.3.2 Kết nối qua USB.............................................................................................. 58
3.3.3 Mở rộng cổng USB ......................................................................................... 58
3.3.4 Các đặt tính của USB ...................................................................................... 59
3.3.5 USB 2.0 ............................................................................................................ 60
3.3.6 USB 3.0 ............................................................................................................ 60
CHƢƠNG 4: CHUẨN TRUYỀN THÔNG NỐI TIẾP RS232.................................. 62
4.1 ĐẶT VẤN ĐỀ. ....................................................................................................... 62
4.2 ƢU ĐIỂM CỦA GIAO DIỆN NỐI TIẾP RS232. ............................................. 62
4.3 NHỮNG ĐẶC ĐIỂM CẦN LƢU Ý TRONG CHUẨN RS232. ..................... 62
4.4 CÁC MỨC ĐIỆN ÁP ĐƢỜNG TRUYỀN......................................................... 62
4.5 CỔNG RS232 TRÊN PC....................................................................................... 63
4.6 QUÁ TRÌNH DỮ LIỆU. ....................................................................................... 64
Điều khiển thiết bị qua PC Mục lục Trang 5
4.6.1 Tốc độ Baud. .................................................................................................... 65

ngày càng đa dạng và phong phú cho đời sống con ngƣời, việc nghiên cứu và phát
triển các sản phẩm điều khiển tự động thay thế sức lao động cùa con ngƣời là một
nhiệm vụ rất cần thiết.
Viêc giám sát và điều khiển các thiết bị từ xa qua hệ thống gồm các phần tử nối
với nhau bằng dây dẫn thông qua chuẩn RS232 đã đem lại một lợi ích hết sức to lớn
cho nhu cầu phát triển của xã hội, tiết kiệm đƣợc rất nhiều thời gian, sức lực và mang
lại hiệu quả kinh tế lớn.
Nắm bắt đƣợc tình hình quan trọng, với quyết định lựa chon đề tài “Điều khiển
thiết bị qua PC” nhằm góp phần mang lại sự tiện nghi, tiện ích cho cuộc sống ngày
nay.
1.2 MỤC ĐÍCH NGHIÊN CỨU ĐỀ TÀI
Đề tài sử dụng điều khiển các thiết bị dân dụng trong gia đình nhƣ đèn, quạt,..
thông qua ngôn ngữ lập trình phổ biến hiện nay. Từ viêc tìm hiểu về các thiết bị giao
tiếp cho đến việc thiết kế mạch nhằm giúp ngƣời đọc dễ dàng tiếp nhận và muốn cung
cấp hệ thống điều khiển cho ngƣời sử dụng.
1.3 ĐỐI TƢỢNG NGHIÊN CỨU VÀ PHẠM VI NGHIÊN CỨU
1.3.1 Đối tƣợng nghiên cứu.
Tìm hiểu về các cổng giao tiếp: cổng nối tiếp, cổng song song, cổng USB,
chuẫn kết nối RS232, khảo sát vi điều khiển AT89S8252.
1.3.2 Phạm vi nghiên cứu.
Thực hiện viêc kết nối thiết bị điều khiển với PC thông qua RS232, điều khiển
các thiết bị dân dụng.

Điều khiển thiết bị qua PC Chƣơng 2: Tìm hiểu VDK AT89S8252 Trang 7
CHƢƠNG 2: TÌM HIỂU VI ĐIỀU KHIỂN AT89S8252
2.1 MÔ TẢ
AT89S8252 là một vi điều khiển do ATMEL sản xuất, chế tạo theo công nghệ

Trang 8

Hình 2.1: Sơ đồ chân AT89S8252
Từ chân 1†8 Port 1 (P1.0, P1.1, …, P1.7) dùng làm Port xuất nhập I/O để giao
tiếp bên ngoài với điện trở kéo lên bên trong. Các bộ đệm xuất của Port 1 có thể
cấp/hút dòng cho 4 ngõ vào TTL loại LS. Các chân Port 1 có các bit 1 đƣợc ghi để
đƣợc kéo lên mức cao bởi các điện trở kéo lên bên trong và trong trạng thái này chúng
đƣợc dùng làm các ngõ nhập. Khi là Port nhập các chân của Port 1 đang đƣợc kéo
xuống mức thấp do bên ngoài sẽ cấp dòng do các điện trở bên trong kéo lên. Các chân
P1.0 và P1.1 của Port 1 cũng đƣợc dùng cho các chức năng T2 và T2EX. Các chân
P1.5, P1.6, P1.7 là các chân đƣợc dùng cho các chức năng MOSI, MISO, SCK để điều
khiển truyền và xuất dữ liệu cho vi điều khiển. Công dụng chuyển đổi có liên hệ với
các đặt tính của AT89S8252 nhƣ sau:
Bảng 2.1: Chức năng chuyển đổi ở Port 1
Bit Tên Chức năng chuyển đổi
P1.0 T2 Ngõ vào của bộ định thời/đếm 2
P1.1 T2EX Nạp lại/thu nhận của bộ định thời 2
P1.4 

Ngõ vào lựa chọn cổng Slave
P1.5 MOSI Chân xuất dữ liệu Master, nhập dữ liệu Slave
P1.6 MISO Chân nhập dữ liệu Master, xuất dữ liệu Slave
P1.7 SCK Ngõ ra xung clock của Master, ngõ vào xung clock Slave

Điều khiển thiết bị qua PC Chƣơng 2: Tìm hiểu VDK AT89S8252 Trang 9
Chân 9 (RST) là chân đề RESET cho AT89S8252. Bình thƣờng các chân này ờ
mức thấp. Khi ta đƣa tín hiệu lên mức cao (tối thiểu 2 chu kỳ máy), thì những thanh


Hình 2.2 Dao động trên chip với thạch anh
Chân 20 (Vss) nối đất (Vss = 0).
Từ chân 21†28 là Port 2 ( P2.0, P2.1, …, P2.7) dùng vào hai mục đính: dùng
làm Port xuất nhập I/O hoặc dùng làm byte cao của bus địa chỉ thì nó không còn tác
Điều khiển thiết bị qua PC Chƣơng 2: Tìm hiểu VDK AT89S8252 Trang 10
dụng I/O nữa. Bởi vì ta muốn EPROM và RAM ngoài nên phải sử dụng Port 2 làm
byte cao của bus địa chỉ.
Chân 29 (

) là tín hiệu điều khiển xuất ra của AT89S8252, nó cho phép
chọn bộ nhớ ngoài và đƣợc nối chung với chân của OE (Out Enable) của EPROM
ngoài để cho phép đọc các byte của chƣơng trình. Các xung tín hiệu 

hạ thấp
trong suốt thời gian thi hành lệnh. Những mã nhị phân của chƣơng trình đƣợc đọc từ
EPROM đi qua bus dữ liệu và đƣợc chốt vào thanh ghi lệnh IR của AT89S8252 bởi
mã lệnh. Khi thi hành chƣơng trình trong ROM nội 

sẽ ở mức thụ động (mức
cao). Khi AT89S8252 đang thực thi lệnh từ bộ nhớ chƣơng trình ngoài, 

đƣợc
tích cực hai lần cho mỗi chu kỳ máy, ngoại trừ thời gian mỗi lần truy xuất bộ nhớ
dữ liệu ngoài, hai lần tích cực của 

đƣợc bỏ qua.

30
RAM đa dụng
2F 7F 7E 7D 7C 7B 7A 79 78
2E 77 76 75 74 73 72 71 70
2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60
2B 5F 5E 5D 5C 5B 5A 59 58
2A 57 56 55 54 53 52 51 50
29 4F 4E 4D 4C 4B 4A 49 48
28 47 46 45 44 43 42 41 40
27 3F 3E 3D 3C 3B 3A 39 38
26 37 36 35 34 33 32 31 30
25 2F 2E 2D 2C 2B 2A 29 28
24 27 26 25 24 23 22 21 20
23 1F 1E 1D 1C 1B 1A 19 18
22 17 16 15 14 13 12 11 10
21 0F 0E 0D 0C 0B 0A 09 08
20 07 06 05 04 03 02 01 00
1F
18
Bank 3
17
10
Bank 2
0F
08
Bank 1
07
00
Bank thanh ghi 0

đơn. Trong khi đó đa số các vi xử lý đòi hỏi một chuỗi lệnh đọc-sửa-ghi để đạt
hiệu quả tƣơng tự. Hơn nữa các port I/O cũng đƣợc địa chỉ hóa theo bit địa chỉ làm
đơn giản hóa phần mềm để xuất nhập từng bit.
Có 128 bit đa dụng đƣợc địa chỉ hóa ở các byte 20H đến 2FH (8bit/byte x
16 bytes = 128 bits). Các địa chỉ này đƣợc truy cập nhƣ các byte hoặc nhƣ các bit tùy
theo lệnh sử dụng. Ví dụ, để đặt bit 67H lên giá trị 1, có thể 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 ở địa chỉ này.
2.3.3 Các băng thanh ghi (Register Banks).
32 vị trí nhớ cuối cùng của bộ nhớ từ địa chỉ byte 00H÷1FH chứa các dãy thanh
ghi. Tập hợp các lệnh của AT89S8252 cung cấp 8 thanh ghi từ R0÷R7 ở địa chỉ
00H÷07H nếu máy tính mặc nhiên chọn để thực thi. Những lệnh tƣơng đƣơng dùng sự
định vị trực tiếp. Những giá trị dữ liệu dƣợc dùng thƣờng xuyên chắc chắn sẽ sử dụng
một trong các thanh ghi này.
Điều khiển thiết bị qua PC Chƣơng 2: Tìm hiểu VDK AT89S8252 Trang 13
Lệnh sau sẽ đọc địa chỉ 05H vào thanh ghi tích lũy:
MOV A, R5
Đây là lệnh 1 byte dùng cách định địa chỉ thanh ghi. Dĩ nhiên, cùng tác vụ
có thể thực hiện bằng lệnh hai byte dùng địa chỉ trực tiếp nằm trong byte thứ hai:
MOV A, 05H
Các lệnh dùng 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
cách định địa chỉ trực tiếp. Các giá trị dữ liệu

Từ trạng thái chƣơng trình ở địa chỉ D0H đƣợc tóm tắt nhƣ sau:
Bảng 2.3: Tóm tắt thanh ghi PSW
BIT SYMBOL ADDRESS DESRIPTION
PSW.7 CY D7H Carry Flag
PSW.6 AC D6H Auxiliary Carry Flag
Điều khiển thiết bị qua PC Chƣơng 2: Tìm hiểu VDK AT89S8252 Trang 15
PSW.5 F0 D5H Flag 0
PSW.4 RS1 D4H Register Bank Select 1
PSW.3 RS0 D3H Register Bank Select 0
00: Bank 0; Address 00H÷07H
01: Bank 1; Address 08H÷0FH
10: Bank 2; Address 10H÷17H
11: Bank 3; Address 18H÷1FH
PSW.2 OV D2H Overlow Flag
PSW.1 - D1H Reserved
PSW.0 P D0H Even Parity Flag
Chức năng từng bit trạng thái chƣơng trình.
 Cờ Carry CY (Carry Flag):
Cờ Carry đƣợc set lên 1 nếu có sự tràn ở bit 7 trong phép cộng hoặc có sự
mƣợn vào bit 7 trong phép trừ.
Cờ Carry cũng là 1 “thanh ghi tích lũy luận lý”, nó đƣợc dùng nhƣ một thanh
ghi 1 bit thực thi trên các bit bởi nhựng lệnh luận lý. Ví dụ lệnh: ANL C,25H sẽ AND
bit 25H với cờ Carry và cấp kết quả vào cờ Carry.
 Cờ Carry phụ AC (Auxiliary Carry Flag):
Khi cộng những giá trị BCD (Binary Code Decimal), cờ nhớ phụ AC đƣợc set
nếu có sự tràn từ bit 3 sang bit 4 hoặc 4 bit thấp nằm trong phạm vi 0AH÷0FH.
 Cờ 0 (Flag 0):

Data Pointer đƣợc để truy xuất bộ nhớ mà ngoài hoặc bộ nhớ dữ liệu ngoài, nó
là hai thanh ghi 16 bit mà byte thấp là DP0L ở địa chỉ 82H còn byte cao là DP0H ở địa
chỉ 83H, 84H (DP1L là byte thấp) và 85H (DP1H là byte cao). Để đƣa nội dung 55H
vào RAM ngoại có địc chỉ 1000H ta dùng 3 lệnh sau:
MOV A,#55H
MOV DPTR,#1000H
MOVX @ DPTR,A
Lệnh thứ nhất dùng sự định vị trực tiếp đƣa hằng số 55H vào A. Lệnh thứ hai
cũng tƣơng tự lệnh thứ nhất đƣa hằng số dữ liệu 1000H vào trong DPTR. Lệnh cuối
cùng dùng sự định vị gián tiếp để chuyển dịch giá trị 55H trong A vào vùng nhớ RAM
ngoại nằm trong DPTR.
2.3.4.5 Các thanh ghi Port (Port Register):
Các Port 0, Port 1, Port 2, Port 3 có các địa chỉ tƣơng ứng 80H, 90H, A0H,
B0H. Các Port 0, Port 1, Port 2, Port 3 không còn tác dụng xuất nhập nữa nếu bộ nhớ
ngoài đƣợc dùng hoặc một vài cá tính đặc biệt của AT89S8252 đƣợc dùng (nhƣ
Interrupt, Port nối tiếp,...). Do vậy chỉ còn có Port 1 có tác dụng xuất nhập I/O.
Tất cả các Port đều có bit địa chỉ, do đó nó có khả năng giao tiếp với bên ngoài
mạnh mẽ.
2.3.4.6 Các thanh ghi Timer (Timer Register):
AT89S8252 chứa 3 bộ định thời / đếm 16 bit đƣợc dùng cho việc định thời
hoặc đếm sự kiện. Timer 0 ở địa chỉ 8AH (TL0 là byte thấp) và 8CH (TH0 là byte
cao). Timer 1 ở địa chỉ 8BH (TL1 là byte thấp) và 8DH (TH1 là byte cao). Timer 2 ở
địa chỉ CCH (TL2 là byte thấp) và CDH (TH2 là byte cao).
Điều khiển thiết bị qua PC Chƣơng 2: Tìm hiểu VDK AT89S8252 Trang 17
Hoạt động của Timer 0 và Timer 1 của AT89S8252 thì giống nhƣ hoạt động
của Timer 0 và Timer 1 của AT89C51. Hoạt động của Timer 0 và Timer 1 đƣợc
đặt bởi thanh ghi Timer Mode (TMOD) ở địa

cho phép ngắt, nếu EA=1 mỗi nguồn ngắt sẽ đƣợc
kích hoạt hay tắt bởi việc thiết lập hay xóa các bit cho
phép của nó.
- IE.6 Reserved
ET2 IE.5 Bit cho phép Timer 2 ngắt
ES IE.4 Bit cho phép ngắt SPI và UART
ET1 IE.3 Bit cho phép Timer 1 ngắt.
Điều khiển thiết bị qua PC Chƣơng 2: Tìm hiểu VDK AT89S8252 Trang 18
EX1 IE.2 Bit cho phép ngắt ngoài 1
ET0 IE.1 Bit cho phép Timer 0 ngắt.
EX0 IE.0 Bit cho phép ngắt ngoài 0

2.3.4.9 Thanh ghi điều khiển nguồn PCON (Power Control Register):
Thanh ghi PCON không có bit định vị. Nó ở địa chỉ 87H bao gồm các bit tổng
hợp. Các bit PCON đƣợc tóm tắt nhƣ sau:
Bảng 2.5: Tóm tắt thanh ghi PCON
Bit Ký hiệu Mô tả bit
7 SMOD
Bit tăng gấp đôi tốc độ baud; khi đƣợc đặt lên 1 thì tốc độ
baud đƣợc tăng gấp đôi trong chế độ cổng nối tiếp 1, 2 hoặc
3.
6 - Không đƣợc định nghĩa.
5 - Không đƣợc định nghĩa.
4
POF

Cờ ngắt nguồn (Power Off Flag). POF = 1 khi nguồn tăng.

 Tất cả các chức năng bị dừng.
 Tất
cả

các
nội dung của RAM trên chip đƣợc giữ nguyên.
 Các chân ở cổng cũng giữ nguyên các mức logic của chúng.
 Tín hiệu ALE và đƣợc giữ ở mức thấp.
Cách duy nhất thoát khỏi chế độ này là reset hệ thống.
Trong chế độ tắt nguồn, Vcc có thể thấp cỡ 2V. Chú ý là chỉ có thể hạ Vcc
sau khi đã vào chế độ tắt nguồn và phục hồi V
cc
về 5V ít nhất 10 chu kỳ dao động
trƣớc khi chân RST xuống thấp lần nữa (khi rời
khỏi

chế
độ tắt nguồn).
2.3.4.10 Thanh ghi điều khiển bộ nhớ và kiểm soát giờ (WMCON)
Thanh ghi WMCON (Watchdog And Memory Control Register) ở địa chỉ 96H
chứa các bit điều khiển cho Watchdog Timer đƣợc trình bày ở bảng sau. Các bit
EEMEN và EEMWE đƣợc sử dụng để lựa chọn 2 KB trên chip EEPROM và có thể
ghi byte. Bit DPS đƣợc sử dụng để lựa chọn 1 trong 2 thanh ghi con trỏ dữ liệu.
Bảng 2.6: Thanh ghi điều khiển bộ nhớ và Watchdog
Bit Ký hiệu Chức năng
7
6
5
PS2
PS1

Flag). Mỗi lần bit này đƣợc đặt lên 1 bằng phần
mềm thì sẽ có một xung phát ra để reset định thì watchdog.
Khi đó, bit WDTRST sẽ tự động reset về 0 trong chu kỳ lệnh
Điều khiển thiết bị qua PC Chƣơng 2: Tìm hiểu VDK AT89S8252 Trang 20
kế tiếp. Bit WDTRST là bit chỉ dùng để ghi. Bit này cũng là
cờ báo sẵn sàng/bận RDY/

dùng trong bộ nhớ chỉ đọc
trong suốt quá trình ghi EEPROM. RDY/

= 1, EEPROM
sẵn sàng để đƣợc lập trình. Trong khi hoạt động lập trình
đang đƣợc thực hiện, bit RDY/

sẽ bằng “0” và tự động
reset về “1” khi lập trình kết thúc.
0 WDTEN
Bit cho phép định thời watchdog (Watchdog Timer Enable
Bit). WDTEN = 1 cho phép định thời watchdog, WDTEN = 0
không cho phép định thời watchdog
2.3.4.11 Thanh ghi giao tiếp nối tiếp bên ngoài SPI (Serial Peripheral
Interface)
Bit trạng thái và điều khiển cho SPI đƣợc chứa trong thanh ghi SPCR ở địa
chỉ D5H trình bày ở bảng 2.6 và SPSR ở địa chỉ AAH trình bày ở bảng 2.7. Các bit dữ
liệu SPI chứa trong thanh ghi SPDR ở địa chỉ 86H. Thanh ghi dữ liệu SPI sẽ ghi dữ
liệu trong suốt quá trình truyền dữ liệu nối tiếp đặt vào bit WCOL (Write Collition)
trong thanh ghi SPSR. Thanh ghi SPDR là bộ đệm đôi để ghi và giá trị trong SPDR


Trang 21
0 0 4
0 1 16
1 0 64
1 1 128
Bảng 2.8: Thanh ghi trạng thái SPI
Bit Ký hiệu Chức năng
7 SPIF Cờ ngắt SPI (SPI Interrupt Flag). Khi sự truyền dữ liệu nối tiếp
hoàn tất, bit SPIF đƣợc đặt và một xung ngắt phát ra nếu SPIE = 1
và ES = 1.
6 WCOL Bit WCOL đƣợc đặt nếu thanh ghi dữ liệu SPI đƣợc ghi trong khi
dữ liệu đƣợc truyền. Trong khi truyền dữ liệu, kết quả đọc của
thanh ghi SPDR có thể không đúng và quá trình ghi không bị ảnh
hƣởng.
2.4 TÓM TẮT TẬP LỆNH CỦA AT89S8252
Các chƣơng trình đƣợc cấu tạo từ nhiều lệnh , chúng đƣợc xây dựng logic,sự
nối tiếp của các lệnh đƣợc nghĩ ra một cách hiệu quả và nhanh,kết quả của chƣơng
trình thì khả quan.
Tập lệnh họ MSC-51 đƣợc sự kiểm tra của các mode định vị và các lệnh của
chúng có các Opcode 8 bit.Điều này cung cấp khả năng 2
8
=256 lệnh đƣợc thi hành và
một lệnh không đƣợc định nghĩa. Vài lệnh có 1 hoặc 2 byte bởi dữ liệu hoặc địa chỉ
thêm vào Opcode. Trong toàn bộ các lệnh có 139 lệnh 1 byte,92 lệnh 2 byte và 24 lệnh
3 byte.
2.4.1 Các chế độ định vị ( addressing mode )
Các mode định vị là một bộ phận thống nhất của tập lệnh mỗi mày tính. Chúng
cho phép định rõ nguồn hoặc nơi gửi tới của dữ liệu ở các đƣờng khác nhau tùy thuộc
vào trạng thái của lập trình. AT89S8252 có 8 mode định vị đƣợc dùng nhƣ sau:

vị trí đƣợc dùng nhƣ sau:
Tùy thuộc các bit bậc cao của địa chỉ trực tiếp mà 1 trong 2 vùng nhớ đƣợc
chọn. Khi bit 7 = 0, thì địa chỉ trực tiếp ở trong khoảng 0÷127 (00H÷7FH) và 128 vị trí
nhớ thấp của RAM trên Chip đƣợc chọn. Tuy nhiên,
tất

cả
các I/O và các SFR, các
thanh ghi trạng thái, điều khiển có địa chỉ trong khoảng 80H – FFH. Khi MSB của địa
chỉ trực tiếp là 1 thì truy cập đến các SFR. Thí dụ cổng P0 và P1 có địa chỉ trực tiếp
tƣơng ứng là 80H và 90H. Không nhất thiết nhớ các địa chỉ này vì trình hợp ngữ
cho phép và hiểu các viết tắt gợi nhớ cho chúng (ví dụ P0 chỉ Port 0, TMOD chỉ
thanh ghi chế độ timer, …).
2.4.1.3 Sự định vị địa chỉ gián tiếp ( Indirect Addressing)
Sự định vị địa chỉ gián tiếp đƣợc tƣợng trƣng bởi ký hiệu @ đƣợc đặt trƣớc R0,
R1 hay DPTR. R0 và R1 có thể hoạt động nhƣ một thanh ghi con trỏ mà nội dung của
nó cho biết một địa chỉ trong RAM nội ở nơi mà dữ liệu đƣợc ghi hoặc đƣợc đọc. Bit
có trọng số nhỏ nhất của Opcode lệnh sẽ xác định R0 hay R1 đƣợc dùng con trỏ
Pointer.
Opcode
Opcode
Direct Addressing
Điều khiển thiết bị qua PC Chƣơng 2: Tìm hiểu VDK AT89S8252



Opcode
Opcode
Immediate Data
Opcode
Relative Offset
Điều khiển thiết bị qua PC Chƣơng 2: Tìm hiểu VDK AT89S8252 Trang 24
Sự định vị tƣơng đối đem lại thuận lợi cho việc cung cấp mã vị trí độc lập,
nhƣng bất lợi là chỉ nhảy ngắn trong phạm vi -128 ÷ 127 byte.
2.4.1.6 Sự định địa chỉ tuyệt đối ( Absolute Addressing)
Sự định địa chỉ tuyệt đối đƣợc dùng với các lệnh ACALL và AJMP. Các lệnh 2
byte cho phép phân chia trong trang 2K đang lƣu hành của bộ nhớ mã của việc cung
cấp 11 bit thấp nhất để xác định địa chỉ trong trang 2K (A0÷A10 gồm A10÷A8 trong
Opcode và A7†A0 trong byte ) và 5 bit cao để chọn trang 2K (5 bit cao đang lƣu hành
trong bộ đếm chƣơng trình là 5 bit Opcode).

PC (or DPTR)
ACC
Điều khiển thiết bị qua PC Chƣơng 2: Tìm hiểu VDK AT89S8252 Trang 25

Index Addressing
2.4.2 Các kiểu lệnh (instruction types)
AT89S8252 chia ra 5 nhóm lệnh chính:
 Các lệnh số học.
 Lệnh logic.
 Dịch chuyển dữ liệu.
 Lý luận.
 Rẽ nhánh chƣơng trình.
Từng kiểu lệnh đƣợc mô tả nhƣ sau:
2.4.2.1 Các lệnh số học (Arithmetic Instrustion):
 ADD A, <src, byte>
ADD A, Rn : (A) ← (A) + (Rn)
ADD A, direct : (A) ← (A) + (direct)
ADD A, @ Ri : (A) ← (A) + ((Ri))
ADD A, # data : (A) ← (A) + # data
ADDC A, Rn : (A) ← (A) + (C) + (Rn)
ADDC A, direct : (A) ← (A) + (C) + (direct)
ADDC A, @ Ri : (A) ← (A) + (C) + ((Ri))
ADDC A, # data : (A) ← (A) + (C) + # data
 SUBB A, <src, byte>
SUBB A, Rn : (A) ← (A) – (C) – (Rn)
SUBB A, direct : (A) ← (A) – (C) – (direct)
SUBB A, @ Ri : (A) ← (A) – (C) – ((Ri))


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