Tổng quát về IC KS57S2308/2316
Tổng quát về IC KS57S2308/2316
MUÏC LUÏC
PHAÀN I GIÔÙI THIEÄU IC KS57C2308/2316
Chöông 1 TOÅNG QUAÙT VEÀ IC KS57C2308/2316
Chöông 2 CAÙC KHOAÛNG ÑÒA CHÆ
Chöông 3 ADDRESSING MODES
Chöông 4 MEMORY MAP
Chöông 5 SAM47 INSTRUCTION SET
Chöông 6 OSCILLATOR CIRCUITS
Chöông 7 INTERRUPTS
Chöông 8 POWER-DOWN
Chöông 9 RESET
Chöông 10 I/O PORTS
Chöông 11 TIMERS and TIMER/COUNTERS
Chöông 12 LCD CONTROLLER/DRIVER
Chöông 13 SERIAL I/O INTERFACE
Chöông 14 ELECTRICAL DATA
Chöông 15 BAÛNG TOÙM TAÉT LEÄNH CHÖÔNG TRÌNH GÔÕ ROÁI
PHAÀN II HIEÄN THÖÏC CHÖÔNG TRÌNH
PHAÀN III CHÖÔNG TRÌNH NGUOÀN
TAØI LIEÄU THAM KHAÛO
1
PHAÀN I GIÔÙI THIEÄU IC KS57C2308/2316
CHÖÔNG 1
TOÅNG QUAÙT VEÀ IC KS57C2308/2316
Chip ñôn KS57C2308/2316 laø vi maïch ñieàu khieån CMOS ñaõ ñöôïc thieát keá vôùi ñaëc tính kyõ thuaät duøng laøm coát
loõi CPU 4 bít môùi nhaát cuûa SAMSUNG SAM47 .
Vôùi nhöõng ñaëc tính nhö : coù khaû naêng ñieàu khieån LCD tröïc tieáp ,boä ñeám vaø boä ñònh thôøi 8 bít , I/O lieân tieáp.
KS57C2308/2316 ñöa ra moät giaûi phaùp thieát keá vöôït troäi vaø roäng lôùn hôn khaùc nhau veà nhöõng öùng duïng lieân
quan ñeán chöùc naêng LCD
Treân 32 chaân trong soá 80 chaân cuûa khoái coù theå daønh cho I/O .6 vectô ngaét xaùc ñònh nhanh choùng nhöõng söï coá
trong vaø ngoaøi .
Hôn nöõa,kyõ thuaät CMOS tieân tieán KS57C2308/2316 xaùc ñònh ñoái vôùi söï tieâu thuï naêng löôïng thaáp vaø khoaûng
bieán ñoåi volt roäng.
Veà OTP (One Time Programmable) vi maïch ñieàu khieån KS57C2308/2316 cuõng coù saün moät phieân baûn OTP.
KS57C2308/2316 coù moät chip EPROM OTP 16K-byte thay ROM ñaõ ñaùnh daáu . KS57P2308/2316 ñöôïc so
saùnh vôùi KS57C2308/2316 caû hai cuøng coâng duïng vaø soá chaân ñònh daïng.
Nhöõng ñaëc tính IC:
*Boä nhôù:
-512x4bit RAM
-8Kx8bit ROM (2308)
-16Kx8bit ROM (2316)
* Chaân I/O:
chæ nhaäp : 8 chaân
-I/O : 24 chaân
-xuaát : 8 chaân duøng chung vôùi xuaát ñieàu
khieån ñoaïn
*Boä ñieàu khieån/laùi LCD
-Toái ña 16 soá coù theå laùi LCD tröïc tieáp
-32 ñoaïn, 4 chaân duøng chung
-Mode bieåu thò: tónh,
1/2 duty (1/2 bias)
1/3 duty ( 1/2 hay 1/3 bias)
1/4 duty ( 1/3 bias)
*Ñònh thôøi cô baûn 8 bít
-Boä ñònh thôøi noäi coù theå laäp trính
-Ñònh thôøi theo doõi
2
*Boä ñeám boä ñònh thôøi 8 bít
-Boä ñònh thôøi 8 bít coù theå laäp trình
-Boä ñeám söï coá ngoaøi 8 bít
-Ngoõ xuaát taàn soá clock tuøy yù
-Boä taïo clock giao tieáp I/O lieân tieáp
*Ñònh thôøi ñoàng hoà:
-Thôøi gian thöïc vaø ño thôøi gian noäi
-4 ngoõ xuaát taàn soá ra chaân coøi baùo
-Taïo nguoàn clock cho LCD
*Giao tieáp I/O lieân tieáp 8 bít
-Cheá ñoä nhaän 8 bít
-Söï truyeàn LSB hay MSB tröôùc tuøy choïn
-nguoàn clock noäi ngoaïi
*Caùc ngaét:
-3 vectô ngaét noäi
-3 vectô ngaét ngoaïi
-2 vectô ngaét töùc thôøi
*Caáu truùc I/O aùnh xaï boä nhô:ù
-Boä nhôù döõ lieäu bank15
*Hai cheá ñoä nguoàn thaáp:
-Cheá ñoä nghæ (chæ clock CPU ngöøng)
-Cheá ñoä stop (dao ñoäng heä thoáng chính vaø
heä thoáng con bò ngöøng)
*Nhöõng nguoàn dao ñoäng:
-tinh theå,seramic,hay RC ñoái vôùi clock b
heäthoáng chính
-boä dao ñoäng tinh theå hay dao ñoäng ngoaøi
cho clock heä thoáng con
-taàn soá clock heä thoáng chính 4.19MHz
-taàn soá clock heä thoáng phuï 32.768KHz
-maïch chia clock CPU (bôûi 4,8 hay 64)
*Nhöõng thôøi gian thöïc thi leänh
-0.95,1.91,15.3ms taïi 4.19MHz(main)
-122ms taïi 32.768KHz(subsystem)
*Nhieät ñoä hoaït ñoäng:
- -40 ñoäC ñeán +85ñoäC
*Khoaûng Volt hoaït ñoäng:
- 2.0V ñeán 5.5V
*Kieåu ñoùng goùi:
-80 chaân QFP
3
CHÖÔNG 2
CAÙC KHOAÛNG ÑÒA CHÆ
1/ Boä nhôù chöông trình (ROM)
Caùc aùnh xaï ROM ñoái vôùi caùc thieát bò KS57C2308/2316 ñöôïc taïo nhaõn ôû xöôûng saûn xuaát
KS57C2308 coù 8Kx8bit boä nhôù chöông trình vaø
KS57C2316 coù 16Kx8bit boä nhôù chöông trình.
Ngoaøi söï khaùc nhau veà kích thöôùc boä nhôù hai saûn phaåm nhö nhau veà nhöõng ñaë tính khaùc ,h ình daïng chuaån
cuûa chuùng .
Boä nhôù chöông trình 8.192x8bit cuûa thieát bò coù 4 vuøng coù theå ñònh vò ñòa chæ tröïc tieáp bôûi boä ñeám chöông
trình (PC)
-Vuøng 12 byte ñoái vôùi dòa chæ vectô
-36 byte vuøng leänh tham chieáu
-20 byte vuøng duøng muïc ñích chung
-8064 byte vuøng muïc ñích chung ñoái vôùi KS57C2308
-16256 byte vuøng muïc ñích chung ñoái vôùi KS57C2316
* Ñòa chæ vectô:
Vuøng 12 byte ñòa chæ duøng ñeå ghi ñòa chæ vectô yeâu caàu heä thoáng thöïc thi reset vaø ngaét.Ñòa chæ baét ñaàu ñoái
vôùi nhöõng chöông trình con phuïc vuï ngaét ñöôc ghi ôû vuøng naøy,cuøng vôùi nhöõng gía trò cuûa côø cho pheùp choïn
bank boä nhôù (EMB); bank thanh ghi (ERB) ñöôïc duøng ñeå ñaët gía trò khôûi ñaàu chöông trình con phuï vuï töông
öùng
.Vuøng 16 byte coù theå duøng xen keû nhö ROM muïc ñích chung
* Boä nhôù chöông trình muïc ñích chung goàm 2 vuøng 20 byte vaø 8064 bytes.
* Nhöõng leänh tham khaûo : 20H - 7FH ñöôïc duøng nhö moät vuøng tham khaûo cho nhöõng leänh REF 1 byte . Leänh
tham khaûo ñeå giaûm kích thöôùc soá byte cuûa toaùn haïng leänh . Leänh REF coù theå tham khaûo leänh 2 byte 3 byte hay
2 leänh 1 byte
*Vuøng boä nhôù muïc ñích chung:
Vuøng 20 byte ôû ROM 000CH-001FH vaø vuøng 8.064 byte ôû ROM
0080H-1FFFH ñöôïc duøng nhö boä nhôù chöông trình muïc ñìch chung . Nhöõng ñòa chæ khoâng duøng trong vuøng ñòa
chæ vectô hay vuøng leänh tham chieáu coù theå duøng nhö boä nhôù duøng chung.Baèng moïi caùch , phaûi caån thaän khoâng
ghi ñeø döõ lieäu khi ghi chöông trình maø söû duïng nhöõng vuøng ñaëc bieät cuûa ROM.
* Vuøng ñòa chæ vectô:
Vuøng ñòa chæ vectô 12-byte ñöôïc duøng ñeå ghi ñòa chæ vectô ñoái vôùi heä thoáng thöï thi resets vaø ngaét. Ñòa chæ
baét ñaàu cuûa chöông trình con phuïc vuï ngaét ñöôïc ghi ôû vuøng naøy , cuøng vôùi caùc caùc gía trò côø cho pheùp EMB,
ERB
2/ Boä nhôù döõ lieäu:
Boä nhôù döõ lieäu 512x4 bit coù 4 vuøng :
4
-32x4 bit thanh ghi laøm vieäc ôû bank 0
-224x4 bit vuøng muïc ñích chung ôû bank 0 noù cuõng ñöôïc duøng nhö vuøng stack
-22x4 bit vuøng muïc ñích chung bank 1
-32x4 bit vuøng daønh cho döõ lieäu LCD ôû bank 1
-128x4 bit vuøng ôû bank 15 daønh cho ñòa chæ I/O aùnh xaï vaøo boä nhôù.
Ñeå tham khaûo ñeán RAM deã, vuøng boä nhôù döõ lieäu coù 3 bank -bank 0,bank 1 bank 15. Leänh choïn bank (SMB)
ñöôïc duøng ñeå choïn bank baïn muoán choïn boä nhôù döõ lieäu laøm vieäc. Döõ lieäu ñöôïc ghi ôû trong nh öõng vò trí cuûa
RAM laø 1-,4-,vaø 8-bit ñòa chæ cho pheùp.
Ngoaïi tröø vuøng thanh ghi döõ lieäu LCD , noù chæ ghi 1-bit vaø 4-bit ñòa chæ cho pheùp.
Nhöõng gía trò khôûi taïo ñoái vôùi vuøng boä nhôù döõ lieäu khoâng ñònh nghóa bôûi phaàn cöùng ,vaø do ñoù phaûi khôûi taïo bôûi
phaàn meàm chöông trình ,theo sau reset nguoàn .Baèng caùch naøo ñoù , khi tín hieäu reset ñöôïc taïo ôû cheá ñoä nguoàn
thaáp , caùc noäi dung boä nhôù ñöôïc ghi.
* Caùc bank boä nhôù 0,1 vaø 15:
-Bank 0 (000H-0FFH)
32 nibbles thaáp nhaát (000H-01FH) duøng nhö thanh ghi laøm vieäc ;
224 nibbles keá( 020H-0FFH) coù theå duøng caû hai nhö vuøng stack vaø nhö boä nhôù duøng chung.
Söû duïng vuøng stack ñeå thöïc thi goïi vaø trôû veà chöông trình con,vaø ñoái vôùi quaùt trình ngaét .
-Bank 1 (100H-1FFH )
224 nibbles thaáp nhaát bank 1 (100H-1DFH) ñöôïc duøng cho muïc ñích chung , söû duïng 32 nibbles coøn laïi
(1E0H-1FFH) nhö thanh ghi bieåu thò hay nhö boä nhôù duøng chung .
-Bank 15 (F80H-FFFH)
Boä ñieàu khieån vi maïch duøng bank 15 cho I/O ngoaïi vi aùnh xaø vaøo boä nhôù . Noù gaén nhöõng vò trí RAM cho
moãi ñòa chæ phaàn cöùng ngoaøi ñöôïc aùnh xaï vaøo vuøng naøy.
*Mode ñònh ñòa chæ boä nhôù döõ lieäu :
Côø EMB ñieàu khieån cheá ñoä ñònh ñòa chæ cho nhöõng bank boä nhôù döõ lieäu 0,1,15 .
Khi côø EMB =‘0’ vuøng ñòa chæ bò haïn cheá ;tuøy caùch ñònh ñòa chæ tröïc tieáp hay gían tieáp .Vôùi caùch ñònh ñòa
chæ tröïc tieáp baïn coù theå truy xuaát 000H-07FH ôû bank 0 vaø bank 15. Khi ñònh ñòa chæ gían tieáp chæ ñöôïc truy
xuaát .
Khi côø EMB = ‘1’ ñöôïc set ‘1’ caû 3 bank ñöïôc truy xuaát töông öùng gía trò SMB hieän taïi .
*Nhöõng thanh ghi laøm vieäc :
Vuøng thanh ghi laøm vieäc RAM ôû bank 0 ñöôïc chia theâm thaønh 4 bank thanh ghi (bank 0,1 ,2 ,3). Mo ãi
bank thanh ghi coù 8 thanh ghi 4-bits vaø caëp thanh ghi 4-bit ñöôïc ñònh ñòa chæ 8-bit.
Thanh ghi A ñöôïc duøng nhö 1 thanh ghi tích luõy 4-bit vaø caëp thanh ghi EA nhö caëp thanh ghi tích luõy keùo
daøi .Bit côø nhôù coù theå cuõng ñuôïc duøng nhö 1 thanh ghi tích luõy 1 -bit. Nhöõng caëp thanh ghi WX , WL , vaø HL
ñöôïc duøng chung nhö con troû ñòa chæ ñeå xaùc ñònh ñòa f chæ gíaùn tieáp.
*Vuøng thanh ghi döõ lieäu LCD :
Caùc gía trò bit ñoái vôùi ñoaïn döõ lieäu LCD ñöôïc ghi ôû bank 1 boä nho71 lieäu LCD coù theå ñöôïc khôûi taïo duøng
muïc ñích chung.
*Thanh ghi laøm vieäc :
Thanh ghi laøm vieäc aùnh xaï vaøo trong boä nhôù RAM ñòa chæ 000H
5
01FH ôû bank 0 ,ñöôïc duøng ghi taïm keát quaû trong luùc thöïc thi chöông trình. Döõ lieäu thanh ghi laøm vieäc coù
theå ñöôïc taïo nhö ñôn vò 1-bit hay ñôn vò 4-bit, caùc caëp thanh ghi duøng nhö ñôn vò 8-bit.
*Caùc bank thanh ghi laøm vieäc:
Ñoái vôùi muïc ñích ñònh ñòa chæ ,vuøng thanh ghi ñòa chæ 4 bank thanh ghi - bank 0 , bank 1 ,bank 2 ,bank 3
.Moät trong caùc thanh ghi coù theå ñöôïc choïn nhö bank thanh ghi laøm vieäc bôûi leänh SMBn vaø ñaët traïng thaùi côø
ERB.
Toång quaùt bank 0 thanh ghi laøm vieäc ñöôïc duøng cho chöông trình chính ,bank 1 ,2 ,3 cho chöông trình phuïc
vuï ngaét .
*Caùc caëp thanh ghi laøm vieäc :
Moãi bank thanh ñuôïc chia thaønh caùc thanh ghi con 4-bit ,laø
A,Y,Z,W,H,L,E,X , coù theå chuùng ñöôïc duøng rieâng leõ leänh 4-bit, hay cuøng nhau nhö caëp thanh ghi ñeå taïo döõ
lieäu 8-bit.
Caùc teân caëp thanh ghi 8-bit trong moãi bank naøy laø EA , HL , WX , YZ , WL . Caùc thanh ghi A ,L , Z luoân
luoân thaønh nibble thaáp khi thanh ghi ñònh ñòa chæ nhö caëp thanh ghi .
*Thanh ghi laøm vieäc muïc ñích ñaëc bieät :
- thanh ghi A duøng nhö thanh ghi tích luõy 4-bit
- caëp thanhghi EA duøng nhö thanh ghi tích luõy 8-bit.
-côø carry cuõng coù theå duøng nhö tích luõy 1-bit.
-thanh ghi keùp WX ,WL , HL duøng nhö pointer döõ lieäu cho ñòa chæ giaùn tieáp.
*Giôùi thieäu quaù trình xöû lyù nhieàu ngaét :
Neáu nhieàu hôn 4 ngaét ñöôïc xöû lyù ñoàng thôøi taïi moät thôøi ñieåm ,band coù theå traùnh söï maát döõ lieäu ôû thanh ghi
laøm vieäc bôûi vieäc söû duïng leänh PUSH RR ñeå löu noäi dung caùc thanh ghi vaøo stack tröôùc khi chöông tr ình con
thöïc thi ôû bank thanh ghi töông töï .Khi chöông trình con thöïc thi xong , baïn coù theå ghi laïi noäi dung thanh ghi töø
stack vaøo boä nhôù laøm vieäc nhôø leänh POP .
*Hoaït ñoäng Stack:
Stack pointer SP laø thanh ghi 8-bit ñòa chæ duøng ñeå truy xuaát Stack , moät vuøng cuûa boä nhôù döõ lieäu ñaët beân
trong cho vieäc ghi taïm döõ lieäu hay ñia chæ. SP coù theå ñoïc ghi bôûi leänh ñieàu khieån 8-bit .Khi ñònh ñòa chæ SP,
bit 0 luoân luoân phaûi xoùa veà 0.
Coù 2 taùc vuï Stack cô baûn :
-ghi vaøo ñænh stack (push ), ñoïc töø ñænh stack (pop) do SP luoân chæ vaøo döõ lieäu sau cuøng ñöôïc ghi vaøo stack.
*Bit sequential carrier (BSC):
BSC laø thanh ghi chung 16-bit noù coù theå ñöôïc duøng taïo 1-,4- vaø 8-bit RAM caùc leänh ñieàu khieån, RESET xoùa
taát caû gía trò bít veà 0.
Duøng BSC ,baïn coù theå xaùc ñònh caùc ñòa chæ tuaàn töï vaø nhöõng vò trí bit duøng ñònh ñòa chæ giaùn tieáp 1-bit
(memb.@L).Trong caùch naøy chöông trình coù theå xöû lyù döõ lieäu 16-bit bôûi söï di chuyeån tuaàn töï vò trí bit vaø taêng
hay giaûm gía trò cuûa thanh ghi L.
6
BSC Register Organization
Name Address Bit 3 Bit 2 Bit 1 Bit 0
BSC0 FC0H BSC0.3 BSC0.2 BSC0.1 BSC0.0
BSC1 FC1H BSC1.3 BSC1.2 BSC1.1 BSC1.0
BSC2 FC2H BSC2.3 BSC2.2 BSC2.1 BSC2.0
BSC3 FC3H BSC3.3 BSC3.2 BSC3.1 BSC3.0
* Boä ñeám chöông trình (PC) :
Boä ñeám chöông trình 13-bit (PC12-PC0) ghi ñòa chæ cho leänh tìm trong luùc thöïc thi chöông trình (2316 coù
14-bit) .Baát cöù khi naøo taùc vuï reset hay ngaét xaûy ra PC12 ñeán PC0 ñöôïc ñaët vaøo ñòa ch æ vectô.
Thöôøng PC ñöôïc taêng bôïi soá byte cuûa leänh ñöôïc tìm thaáy .Ngoaïi tröø leänh REF 1-byte noù ñöôïc duøng leänh
tham chieáu ñaõ ghi trong ROM
* Töø traïng thaùi chöông trình (PSW):
PSW laø 1 töø 8 bit noù xaùc ñònh traïng thaùi heä thoáng vaø traïng thaùi thöïc thi chöông t rình vaø noù xaùc ñònh moät
quaù trình ngaét ñeå ghi laïi sau moät yeàu caàu ngaét ñaõ ñöôïc phuïc vuï. Caùc gía trò PSW ñöôïc aùnh xaï nhö sau:
PSW
(MSB) (LSB)
FB0H IS1 IS0 EMB ERB
FB1H C SC2 SC1 SC0
IS1,IS0 :côø traïng ngaét
EMB,ERB : côø choïn bank boä nhôù bank thanh ghi
SC2,SC1,SC0: côø ñieàu kieän nhaûy.
C : côø carry.
Program Memory Address Ranges (hình 1)
ROM Area Function Address Ranges Area Size( in Byte)
Vectô address area 0000H-000BH 12
General-purpose program 000CH-001FH 20
memory
REF instruction look-up table 0020H-007FH 96
area
General-purpose program 0080H-1FFFH(2308) 8064 (KS57C2308)
memory 0080H-3FFFH(2316) 16256(KS57C2316)
ROM Address Structure (hình 2)
EMB ERB “0” PC12 PC11 PC10 PC9 PC8
PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0
7
Caáu truùc ñòa chæ ROM
0000H RESET
0002H INTB/INT4
0004H INT0
0006H INT1
0008H INTS
000AH INTT0
000BH
0000H-000BH VECTOR
ADDRESS AREA (12bytes)
000CH GENERAL-PURPOSE
001FH AREA (20 bytes)
0020H INSTRUCTION
REFERENCE AREA
007FH (96 bytes)
0080H GENERAL-PURPOSE
AREA (8.064 bytes
1FFFH 16.256 bytes)
3FFFH (hình 4)
Ñònh ñòa chæ vaø toå chöùc boä nhôù döõ lieäu
Address REGISTER AREAS Bank EMB SMB
Value Value
000H-01FH working registers
020H-0FFH Stack and general-purpose 0 0,1 0
registers
100H-1DFH General-purpose registers
1 1 1
1E0H-1FFH LCD Data registers
F80H-FFFH I/O -mapped harware 15 0,1 15
registers
8
Thanh ghi SP
F80H SP3 SP2 SP1 “0”
F81H SP7 SP6 SP5 SP4
9
CHÖÔNG 3
ADDRESSING MODES
Côø EMB ñieàu khieån 2 mode ñònh ñòa chæ cho boä nhôù döõ lieäu .
Khi côø EMB laø ‘1’ : Baïn coù theå xaùc ñònh ñòa chæ trong vuøng RAM .
Khi côø EMB laø ‘0’ : Vuøng ñòa chæ cho pheùp trong RAM bò haïn cheá taïi nhöõng vò trí xaùc ñònh.
Côø EMB laøm vieäc trong söï lieân quan ñeán leänh choïn bank boä nhôù SMBn , noù duøng ñeå choïn bank RAM 0,1,15.
Vieäc ñaët SMB luoân luoân chöùa trong 4 bit cao cuûa 12 bit ñòa chæ RAM .Caùc caùch ñònh ñòa chæ tröïc tieáp gíaùn tieáp
1-,4- vaø 8-bit coù theå ñöôïc duøng .Nhöõng vò trí RAM rieâng leõ ñöôïc ñònh ñòa chæ ôû moïi thôøi ñieåm , ngoaïi tröø vieäc
ñaët côø EMB hieän taïi.
ÔÛ ñaây coù vaøi höôùng daãn ñeå chuù yù ñoái vôùi vieäc ñònh ñòa chæ boä nhôù döõ lieäu :
-Khi baïn ñònh ñòa chæ nhöõng vò trí phaàn cöùng trong bank 15 , kyù hieäu ñoái vôùi thaønh phaàn phaàn cöùng ngoaïi vi
aùnh xaï vaøo boä nhôù coù theå duøng nhö toaùn haïng ôû nôi cuûa vò trí ñòa chæ thaät.
-Luoân luoân duøng ñòa chæ RAM laø moät soá chaün nhö toaùn haïng trong vieäc ñònh ñòa ch æ tröïc tieáp hay giaùn tieáp
-Vôùi vieäc ñònh ñòa chæ tröïc tieáp , duøng ñòa chæ RAM nhö toaùn haïng leänh vôùi vieäc ñònh ñòa chæ giaùn tieáp , leänh
xaùc ñònh 1 thanh ghi chöùa ñòa chæ toaùn haïng.
*Gía trò khôûi taïo EMB vaø ERB :
Caùc bit côø EMB vaø ERB ñöôïc ñaët töï ñoäng bôûi gía trò cuûa ñòa chæ vectô reset vaø ñòa chæ vectô ngaét .Khi reset
ñöôïc taïo beân trong ,bit 7 cuûa boä nhôù chöông trình 000H ñöôïc ghi vaøo côø EMB ,khôûi taïo noù töï ñoäng .
Khi moät ngaét vectô ñöôïc taïo , bit 7 cuûa ñòa chæ boä nhôù chöông trình ñöôïc ghi vaøo côø EMB .Khi ngaét vectô
ñöôïc taïo , bit 7 baûng ñòa chæ vectô rieâng ñöôïc ghi vaøo EMB. Ñieàu naøy ñaët töï ñoäng traïng thaùi côø EMB cho
chöong trình phuïc vuï ngaét . Khi ngaét ñöôïc phuïc vuï ,gía trò EMB ñöôïc ghi töï ñoäng vaøo stack vaø ghi laïi khi
chöông ngaét ñaõ thöïc thi xong. ÔÛ luùc baét ñaàu chöông trình ,gía trò khôûi taïo côø EMB ERB cho moãi ngaét vectô
phaûi ñöôïc ñaët bôûi vieäc duøng leänh VENT.
* Ñaët bank boä nhôù :
EMB = ‘1’ baïn coù theå ñònh bank boä nhôù döõ lieäu bôûi gía trò bank boä nhôù löïa choïn (0 , 1 , 15 ) duøng leänh 1- , 4- ,
8-bit . Baïn coù theå duøng caû 2 mode ñòa chæ .
EMB = ‘0’ vuøng ñòa chæ ñöôïc ñònh nghóa ñoäc laäp vôùi gía trò SMB, vaø bò giôùi haïn xaùc ñònh vò trí phuï thuoäc khi
mode ñòa chæ tröïc tieáp hay giaùn tieáp ñöôïc duøn g .
*Thanh ghi choïn bank :
SB ñöôïc duøng khôûi taïo bank boä nhôù vaø bank thanh ghi thanh ghi 8 - bit goàm thanh ghi choïn bank 4-bit vaø
thanh ghi choïn bank boä nhôù 4-bit
Thanh ghi SB
SMB (F83H) | SRB (F82H)
SMB 3 SMB 2 SMB 1 SMB 0 0 0 SRB 1 SRB 0
*Leänh choïn bank thanh ghi :
10
Gía trò SRB xaùc ñònh bank thanh ghi naøo ñöôïc duøng nhö bank thanh ghi laøm vieäc ,gía trò SRB ñöôïc ñaët bôûi
leänh ‘SRBn’ , khi n= 0, 1, 2 , 3.
*Leänh choïn bank boä nhôù :
Ñeå choïn 1 trong 4 bank boä nhôù döõ lieäu , baïn phaûi thöïc hieän 1 leänh SMBn xaùc ñònh bôûi soá bank boä nhôù baïn
muoán choïn ( 0 , 1 , 15 )
*Xaùc ñònh ñòa chæ tröïc tieáp hay giaùn tieáp :
Döõ lieäu 1- ,4- ,8-bit ñaõ ghi trong nhöõng vò trí boä nhôù döõ lieäu coù theå ñöôïc xaùc ñònh tröïc tieáp duøng thanh ghi
xaùc ñònh hay ñòa chæ bit nhö toaùn haïng leänh .
Ñòa chæ giaùn tieáp xaùc ñònh 1 vò trí boä nhôù maø noäi dung chöùa laø ñia chæ tröïc tieáp coù lieân quan .Leänh KS57 cho
saün ñòa chæ giaùn tieáp 1- , 4- , 8-bit . Ñoái vieäc ñònh ñòa chæ giaùn tieáp 8-bit ,moät ñòa chæ RAM laø soá chaün phaûi
luoân ñöôïc duøng nhö toaùn haïng leänh .
*Ñònh ñòa chæ 1-bit :
Baûng 3-2( 1-bit direct and indirect RAM addressing)
*Ñònh ñòa chæ 4-bit :
Baûng 3-3( 4-bit direct and indirect RAM addressing)
*Ñònh ñòa chæ 8-bit :
Baûng 3-4( 8-bit direct and indirect RAM addressing)
11
CHÖÔNG 4
MEMORY MAP
Chöông trình coù saün ñieàu khieån ngoaïi vi , ñòa chæ I/O cho ngoaïi vi ñöôïc aùnh xaï boä nhôù ôû bank 15 cuûa RAM
.AÙnh xaï boä nhôù cho pheùp baïn duøng moät kyù hieäu nhö toaùn haïng leänh ôû nôi cuûa vò trí boä nhôù xaùc ñònh .
Truy xuaát ñeán bank 15 ñöôïc ñieàu khieån bôûi leänh SMB vaø bôûi ñaët EMB
Neáu côø EMB laø ‘0’ bank coù theå ñöôïc ñònh ñòa chæ duøng ñòa chæ tröïc tieáp ,baát chaáp gía trò SMB hieän taïi .
*Aùnh xaï I/O cho caùc thanh ghi phaàn cöùng :
Baûng 4-1 cho bieát chi tieát thoâng tin veà aùnh xaï I/O cho phaàn cöùng ngoaïi vi trong bank 15 . Duøng aùnh xaï I/O
nhö moät nguoàn tham chieáu nhanh khi vieát chöông trình öùng duïng . Aùnh xaï I/O cho baïn thoâng tin sau:
-Ñòa chæ thanh ghi
-Teân thanh ghi ( kyù hieäu cho ñònh ñòa chæ chöông trình )
-Caùc gía trò bit ( caû hai dòa chæ coù theå vaø khoâng ñöôïc taïo)
-Chò ñoïc , chæ ghi , hay ñoïc ghi ñòa chæ cho pheùp.
-Taïo döõ lieäu 1-bit,4-bit,8-bit rieâng bieät.
Baûng 4-1 I/O Map for Memory Bank 15.
-35 thanh ghi ñieàu khieån
-8 thanh ghi port
*Moâ taû thanh ghi :
Ngöôøi laäp trình söû duïng phaàn naøy nhö nguoàn tham chieáu nhanh khi vieát caùc chöông tr ình öùng duïng .
* Moâ taû caùc thanh ghi :
-BMOD : Thanh ghi cheá ñoä ñònh thôøi cô baûn (4-bit)
-CLMOD : Thanh ghi cheá ñoä xuaát clock (4-bit)
-IE0,1,IRQ0,1 : Thanh ghi chöùa caùc côø yeâu caàu ngaét vaø cho pheùp ngaét IE1,IE0,IRQ1,IRQ0 (4 -bit) .
- IE2 , IRQ2 : Thanh ghi chöùa caùc côø yeâu caàu ngaét vaø cho pheùp ngaét IE2 , IRQ2 (4-bit) .
- IE4 , IRQ4 , IEB , IRQB : Thanh ghi chöùa caùc côø yeâu caàu ngaét vaø cho
pheùp ngaét IE4 , IRQ4 , IEB , IRQB (4-bit) .
- IES , IRQS : Thanh ghi chöùa caùc côø yeâu caàu ngaét vaø cho pheùp ngaét
IES , IRQS (4-bit) .
- IET0 , IRQT0 : Thanh ghi chöùa caùc côø yeâu caàu ngaét vaø cho pheùp ngaét
IET0 , IRQT0 (ngaét INTT0) (4-bit) .
- IEW , IRQW : Thanh ghi chöùa caùc côø yeâu caàu ngaét vaø cho pheùp ngaét
IEW , IRQW ( ngaét INTW ) (4-bit).
-IMOD0 : Thanh ghi mode ngaét ngoaïi (INT0) (4-bit)
-IMOD1 : Thanh ghi mode ngaét ngoaïi (INT1) (4-bit)
-IMOD2 : Thanh ghi mode ngaét ngoaïi (INT2) (4-bit)
-IPR : Thanh ghi öu tieân ngaét (4-bit)
-LCON : Thanh ghi ñieàu khieån xuaát LCD (4-bit)
12
-LMOD : Thanh ghi mode LCD (8-bit)
-PCON : Thnah ghi ñieàu khieån nguoàn (4-bit)
-PMG1 : Thanh ghi chöùa caùc côø mode I/O port (Nhoùm 1 :ports 3 vaø ports 6) (8-bit)
-PMG2 : Thanh ghi chöùa caùc côø mode I/O port (Nhoùm 2 :ports 2 , 4 , 5 vaø ports 7) (8 -bit)
-PNE : Thanh ghi mode oáng môû n keânh (8-bit)
-PSW : Töø traïng thaùi chöông trình (8-bit) .
-PUMOD : Thanh ghi mode trôû khaùng pull-up (8-bit)
-SCMOD : Thanh ghi ñieàu khieån mode clock heä thoáng (4-bit).
-SMOD : Thanh ghi mode I/O lieân tieáp (8-bit)
-TMOD0 : Thanh ghi mode boä ñeám 0 boä ñònh thôøi (8-bit)
-TOE : Thanh ghi cho pheùp xuaát ñònh thôøi (4-bit)
-WDFLAG : Thanh ghi côø xoùa boä ñeám chöông trình boä ñònh thôøi theo doõi (4-bit) .
-WDMOD : Thanh ghi mode ñònh thôøi theo doõi (8-bit)
-WMOD : Thanh ghi mode ñònh thôøi ñoàng hoà (8-bit)
13
CHÖÔNG 5
SAM47 INSTRUCTION SET
( 50 leänh)
Toång quaùt :
Taäp leänh SAM47 goàm nhöõng leänh 1-bit,4-bit , 8-bit cho vieäc taïo döõ lieäu , taùc vuï luaän lyù tính toùan , ñieàu
khieån chöông trình vaø ñieàu khieån CPU. Nhöõng leänh I/O cho nhöõng thieát bò phaàn cöùng ngoaïi vi laøm cho vieäc
söû duïng linh hoaït deã duøng . Teân phaàn cöùng coù theå ñöôïc thay theá nhö toaùn haïng leänh ôû nôi ñòa ch æ thoâng
thöôøng .Nhöõng ñaëc tính quan troïng cuûa taäp leänh SAM47 goàm :
-Söï tham khaûo 1-byte cuûa nhöõng leänh daøi (REF )
-Söï giaûm nhöõng leänh dö thuøa ( chuoãi thöïc thi)
-Ñaëc tröng nhaûy cho nhöõng leänh ADC vaø SBC .
nhöõng toaùn haïng leänh laøm cho phuø hôïp daïng toaùn haïng ñaõ ñònh nghóa ñoái vôùi moãi leänh . Nhöõng leänh rieâng leõ
coù nhieàu daïng toaùn haïng
Nhöõng gía trò ñònh nghóa tröôùc ñaây hay caùc nhaõn coù theå ñöôïc duøng nhö toaùn haïng leänh khi ñònh ñòa ch æ döõ
lieäu töùc thôøi . Nhieàu kyù hieäu cho nhöõng thanh ghi xaùc ñònh vaø caùc côø cuõng coù theà thay theá nhö caùc nhaõn cho
taùc vuï nhö DA ,mema , memb ,b ,v.v...Caùc nhaõn leänh duøng ghi chöông tr ình ñôn giaûn cao nhaát vaø thöïc hieän
töøng böôùc caùc task
Nhöõng ñaëc ñieåm taäp leänh :
-Vuøng leänh tham khaûo
-Giaûm dö thöøa leänh
-Taïo bit linh ñoäng
-Ñieàu kieän nhaûy leänh ADC vaø SBC
*Vuøng tham khaûo leänh :
Söû duïng leänh 1-byte REF ,baïn coù theå tham khaûo nhöõng leänh ñaõ ghi trong ñòa ch æ 0020H - 007FH cuûa boä
nhôù chöông trình ,ñòa chæ baét ñaàu phaûi luoân ñöôïc bieåu thò baèng soá chaün .
Leänh 3-byte nhö JP hay CALL cuõng coù theå tham khaûo bôûi leänh REF
PC khoâng ñöôïc taêng khi leänh REF ñöôïc thöïc thi , sau khi thöïc thi xong leänh REF PC baét ña àu leänh ngay sau
leänh REF .
Nhôø REF coù theå giaûm toång soá caùc böôùc chöông trình
Leänh REF coù theå duøng theo 3 caùch sau :
- Duøng leänh 1-byte REF ñeå thöïc thi leänh 2-byte hay leänh 1-byte .
- Reõ nhaùnh ñeán nhieàu vò trí bôûi söï tham khaûo ñòa chæ reõ nhaùnh ñieàu naøy ñöôïc ghi ôû baûng quan saùt.
-Goïi chöông trình con taïi nhöõng vò trí bôûi söï tham chieáu ñòa chæ goïi ñöôïc ghi ôû baûng quan saùt.
Baûng 5-1 Toå hôïp leänh 1-byte töông öùng cho REF quan saùt
*Söï giaûm dö thöøa leänh
14
Khi dö thöøa LD A, #im vaø LD EA,#imm ñöôïc duøng lieân tuïc trong söï tuaàn töï chöông trình ,chæ leänh ñaàu
ñöôïc thöïc thi ,leänh dö thöøa theo sau bò lôø ñi chuùng bò coi nhö 1 leänh NOP . Khi leänh LD HL, #imm ñöôïc duøng
lieân tuïc nhöõng leänh dö thöøa cuõng bò lôø ñi .
*Taïo bit linh hoaït :
Theâm vaøo nhöõng leänh taïo bit töï nhieân nhö set vaø clear ,taäp leänh SAM47 cuõng coù theå daïng kieåm tra
bit,truyeàn bit , taùc vuï luaän lyù bit
Nhöõng bit cuõng coù theå ñöôïc taïo vaø xaùc ñònh ñòa chæ bôûi xaùc ñònh mode ñòa chæ .Coù 3 caùch xaùc ñònh ñòa chæ
bit cho pheùp :
-mema.b
-memb.@L
-@H + DA.b
Baûng 5-2 nhöõng tham soá vaø mode ñònh ñòa chæ bit
*Leänh coù ñieàu kieän nhaûy :
Nhöõng leänh ‘ADC A,@HL ‘ vaø ‘SBC A,@HL ‘ coù theå taïo ra tín hieäu nhaûy , vaø set hay clear côø nhôù , khi
chuùng ñöôïc thöïc thi ôû söï toå hôïp vôùi leänh ‘ADS A,#im’.
Neáu 1 leänh ‘ADS A,#im’ theo sau ngay moät leänh ‘ ADC A,@HL’ hay ‘SBC A,@HL ‘ trong chöông trình
tuaàn töï , leänh ADS khoâng nhaûy leänh theo sau ADS , ngay khi neáu coù nhieäm vuï nhaûy , neáu ba èng caùch naøo
ñoù moät leänh ‘ADC A,@HL ‘hay ‘SBC A,@HL ‘ ñöôïc theo sau ngay bôûi leänh ‘ADS A,#im’ ,ADC (hay
SBC) nhaûy khi traøng ( hay vay möôïn ) ñeán ngay sau ADS , vaø chöông trình thöïc thi tieáp tuïc .
Baûng 5.3 Ñieàu kieän nhaûy cho nhöõng leänh ADC SBC
*Moâ taû leänh :
Caùc phaàn thoâng tin cuûa daïng moâ taû leänh nhö sau :
-Teân leänh ( mnemonic)
-Teân leänh ñaày ñuû
-Daïng ñích/nguoàn cuûa toaùn haïng leänh
-Toång quaùt taùc vuï
-Moâ taû daïng text söï thöïc thi cuûa leänh
-Maõ leänh chung
-Caùc thí duï chæ caùch leänh ñöoöïc duøng.
*ADC : Coäng vôùi carry
ADC dst,src
Toaùn haïng src cuøng vôùi côø nhôù ñöôïc coäng vôùi toaùn haïng ñích vaø toång ñöôïc ghi ôû dst ,noäi dung src khoâng
ñoåi .Neáu coù traøng töø bit MSB cuûa keát quaû côø carry bò set ;ngöôïc laïi côø carry bò clear.
Neáu ‘ADC A,@HL’ ñöôïc theo sau bôûi ‘ADS A,#im’ ,ADC nhaûy qua leänh leänh ADS neáu xaûy ra traøng
.Neáu khoâng traøng leänh ADS ñöôïc thöïc thi bình thöôøng .
*ADS : Coäng vaø nhaûy treân söï traøng
15
ADS dst,src
src ñöôïc coäng vaøo dst toång caát ôû dst ,src khoâng ñoåi. Neáu coù traøng ôû MSB cuûa keát quaû tín hieäu nhaûy ñöôïc
taïo vieäc nhaûy ñöôïc thöïc thi nhöng gía trò côø carry khoâng aûnh höôûng.
Neáu ‘ADS A,#im ‘ theo sau ‘ADC A,@HL ‘ trong chöông trình ,ADC nhaûy qua ADS neáu xaûy ra traøng.Neáu
khoâng traøng ,ADS ñöôïc thöïc thi töï nhieân . Neáu söï traøng xaûy ra sau leänh ADS leänh keá khoâng bò nhaûy.
*AND : AND logic
AND dst,src
src and logic vôùi dst keát quaû ghi ôû dst , src khoâng bò aûnh höôûng.
*Söï giaûm dö thöøa leänh
Khi dö thöøa LD A, #im vaø LD EA,#imm ñöôïc duøng lieân tuïc trong söï tuaàn töï chöông trình ,chæ leänh ñaàu
ñöôïc thöïc thi ,leänh dö thöøa theo sau bò lôø ñi chuùng bò coi nhö 1 leänh NOP . Khi leänh LD HL, #imm ñöôïc duøng
lieân tuïc nhöõng leänh dö thöøa cuõng bò lôø ñi .
*Taïo bit linh hoaït :
Theâm vaøo nhöõng leänh taïo bit töï nhieân nhö set vaø clear ,taäp leänh SAM47 cuõng coù theå daïng kieåm tra bit
,truyeàn bit , taùc vuï luaän lyù bit
Nhöõng bit cuõng coù theå ñöôïc taïo vaø xaùc ñònh ñòa chæ bôûi xaùc ñònh mode ñòa chæ .Coù 3 caùch xaùc ñònh ñòa chæ
bit cho pheùp :
-mema.b
-memb.@L
-@H + DA.b
Baûng 5-2 nhöõng tham soá vaø mode ñònh ñòa chæ bit
*Leänh coù ñieàu kieän nhaûy :
Nhöõng leänh ‘ADC A,@HL ‘ vaø ‘SBC A,@HL ‘ coù theå taïo ra tín hieäu nhaûy , vaø set hay clear côø nhôù , khi
chuùng ñöôïc thöïc thi ôû söï toå hôïp vôùi leänh ‘ADS A,#im’.
Neáu 1 leänh ‘ADS A,#im’ theo sau ngay moät leänh ‘ ADC A,@HL’ hay
‘SBC A,@HL ‘ trong chöông trình tuaàn töï , leänh ADS khoâng nhaûy leänh theo sau ADS , ngay khi neáu coù
nhieäm vuï nhaûy , neáu baèng caùch naøo ñoù moät leänh ‘ADC A,@HL ‘hay ‘SBC A,@HL ‘ ñöôïc theo sau ngay bôûi
leänh ‘ADS A,#im’ ,ADC (hay SBC ) nhaûy khi traøng ( hay vai möôïn ) ñeán ngay sau ADS , vaø chöông trình
thöïc thi tieáp tuïc .
Baûng 5.3 Ñieàu kieän nhaûy cho nhöõng leänh ADC SBC
*Moâ taû leänh :
Caùc phaàn thoâng tin cuûa daïng moâ taû leänh nhö sau :
-Teân leänh ( mnemonic)
-Teân leänh ñaày ñuû
-Daïng ñích/nguoàn cuûa toaùn haïng leänh
-Toång quaùt taùc vuï
-Moâ taû daïng text söï thöïc thi cuûa leänh
-Maõ leänh chung
-Caùc thí duï chæ caùch leänh ñöoöïc duøng.
16
*ADC : Coäng vôùi carry
ADC dst,src
Toaùn haïng src cuøng vôùi côø nhôù ñöôïc coäng vôùi toaùn haïng ñích vaø toång ñöôïc ghi ôû dst ,noäi dung src khoâng ñoåi
.Neáu coù traøng töø bit MSB cuûa keát quaû côø carry bò set ;ngöôïc laïi côø carry bò clear.
Neáu ‘ADC A,@HL’ ñöôïc theo sau bôûi ‘ADS A,#im’ ,ADC nhaûy qua leänh
leänh ADS neáu xaûy ra traøng .Neáu khoâng traøng leänh ADS ñöôïc thöïc thi b ình thöôøng .
*ADS : Coäng vaø nhaûy treân söï traøng
ADS dst,src
src ñöôïc coäng vaøo dst toång caát ôû dst ,src khoâng ñoåi. Neáu coù traøng ôû MSB cuûa keát quaû tín hieäu nhaûy ñöôïc
taïo vieäc nhaûy ñöôïc thöïc thi nhöng gía trò côø carry khoâng aûnh höôûng.
Neáu ‘ADS A,#im ‘ theo sau ‘ADC A,@HL ‘ trong chöông trình ,ADC nhaûy qua ADS neáu xaûy ra traøng.Neáu
khoâng traøng ,ADS ñöôïc thöïc thi töï nhieân . Neáu söï traøng xaûy ra sau leänh ADS leänh keá khoâng bò nhaûy.
*AND : AND logic
AND dst,src
src and logic vôùi dst keát quaû ghi ôû dst , src khoâng bò aûnh höôûng.
*BAND : And logic bit
BAND C,src.b
Bit xaùc ñònh ôû src ñöôïc and logic vôùi gía trò côø nhôù . Neáu gía trò boolean cuûa bit nguoàn laø ‘0’ , côø C bò xoùa
veà 0 ;ngöôïc laïi ñaët côø
hieän taïi khoâng aûnh höôûng . scr khoâng ñoåi.
*BIT R : Reset bit
BITR dst.b
Xoùa veà ‘0’ bit xaùc ñònh trong dst .Bit khaùc trong dst khoâng aûnh höôûng.
*BITS : Bit Set
BITS dst.b
set bit xaùc ñònh trong dst ,BITS coù theå nhieàu bit ñöôïc duøng ñònh ñòa chæ mode tröïc tieáp hay gíaùn tieáp.
*BOR : Bit logic Or
BOR C,src.b
Bit xaùc ñònh ôû nguoàn ñöôïc or vôùi gía trò C ,src khoâng ñoåi
*BTSF : Bit kieåm tra nhaûy khi sai
BTSF dst.b
Bit xaùc ñònh ôû dst ñöôïc test .Neáu laø ‘0’ nhaûy qua leänh sau noù
Ngöôïc laïi leänh sau noù ñöôïc thöïc thi.Gía trò bit dst khoâng bò aûnh höôûng.
*BTST : Bit kieåm tra nhaûy khi ñuùng
BTSF dst.b
Bit xaùc ñònh ôû dst ñöôïc test .Neáu laø ‘1’ nhaûy qua leänh sau noù
Ngöôïc laïi leänh sau noù ñöôïc thöïc thi.Gía trò bit dst khoâng bò aûnh höôûng.
*BTSTZ : Bit kieåm tra nhaûy khi sai
BTSTZ dst.b
17
Bit xaùc ñònh ôû dst ñöôïc test .Neáu laø ‘1’ nhaûy qua leänh sau noù
Ngöôïc laïi leänh sau noù ñöôïc thöïc thi.Gía trò bit dst bò xoùa.
*BXOR Bit xor
BXOR C,src.b
Bit xaùc ñònh ôû src xor vôùi gía trò C . Keát quaû ghi ôû C. src khoâng aûnh höôûng .
*CALL Thuû tuïc goïi
CALL dst
CALL goïi chöông trình con coù ñòa chæ ôû dst.
*CALLS Thuû tuïc goïi ( gaàn)
CALLS dst
CALLS goïi chöông trình con coù ñòa chæ ôû dst.Chöông trình con phaûi ôû trong khoái 2K byte (0000H-07FFH)
cuûa boä nhôù chöông trình.
*CCF Buø côø C
CCF
Côø C bò laáy buø.
*COM Buø thanh ghi A
COM A
Gía trò A bò laáy buø
*CPSE So saùnh vaø nhaûy neáu baèng
CPSE dst,src
So saùnh dst vôùi src vaø nhaûy neáu baèng . dst vaø src khoâng ñoåi.
*DECS Giaûm vaø nhaûy khi vay möôïn
DECS dst
dst bò giaûm ‘1’ . Gía trò ñaàu laø ‘0’ seõ bò xuoáng 0FH .Neáu coù vay möôïn nhaûy xaûy ra ,gía trò côø khoâng ñoåi.
*DI Caám ngaét
DI
Bit 3 cuûa thanh ghi öu tieõn ngaét IPR (IME) bò xoùa veà ‘0’ .Caám taát caû ngaét .Nhöõng ngaét coù theå ñaët khi caùc
ngoõ traïng thaùi ngaét rieâng cuûa chuùng , nhöng CPU seõ khoâng phuïc vuï chuùng.
*EI Cho pheùp ngaét
EI
Bit 3 cuûa thanh ghi öu tieõn ngaét IPR (IME) bò xoùa veà ‘1’ . Ñieàu naøy cho pheùp taát caû ngaét ñöôïc phuïc vuï khi
chuùng xaûy ra.
*IDLE Taùc vuï nghæ
IDLE
IDLE gaây ra ngöøng clock CPU trong khi clock heä thoáng tieáp tuïc bôûi ñaët bit 2 cuûa thanh ghi ñieàu khieån
nguoàn (PCON) .Sau leänh IDLE ñaõ thöïc thi phaàn cöùng ngoaïi vi coøn hoaït ñoäng.
*INCS Taêng vaø nhaûy khi coù carry
INCS dst
dst bò taêng ‘1’ . Gía trò ñaàu laø ‘0FH’ seõ bò traøng 00H .Neáu coù carry leänh
keá bò nhaûy , gía trò côø khoâng ñoåi.
*IRET Return töø ngaét
18
IRET
IRET ñöôïc söû duïng taïi phaàn cuoái cuûa chöông trình phuïc vuï ngaét .Noù POP gía trò PC caàn thieát töø Stack vaø
ghi chuùng ñeán boä ñeám chöông trình . Pointer stack ñöôïc tang 6 vaø PSW coù caùc bit EMB vaø ERB cuõng ñöôïc töï
ñoäng ghi vaøo gía trò cuûa chuùng tröôùc khi ngaét . Chöông trình tieáp tuïc leänh sau ñieåm taïi yeâu caàu ngaét .
*JP Nhaûy
JP dst
Jump gaây ra reõ nhaùnh khoâng ñieàu kieän ñeán ñòa chæ xaùc ñònh bôûi ñaët noäi dung cuûa boä ñeám chöông trình vôùi
ñòa chæ xaùc ñònh trong toaùn haïng ñích . dst coù theå laø moïi nôi trong khoaûng boä nhôù chöông tr ình 16 K byte .
*JPS Nhaûy (gaàn )
JPS dst
Jump gaàn gaây ra reõ nhaùnh khoâng ñieàu kieän ñeán ñòa chæ xaùc ñònh bôûi khoaûng boä nhôù chöông trình 4K byte
.Bit 0 - 11 PC ñöôïc vôùi ñòa chæ xaùc ñònh tröïc tieáp .Ñòa chæ ñích cho JPS xaùc ñònh keát hôïp bôûi nhaõn hay ñòa chæ
thoâng thöôøng trong boä nhôù.
*JR Jum Relative ( Very short)
JR dst
JR gaây ra ñòa chæ lieân heä ñeå theâm vaøo boä ñeám chöông trình qua ñieàu khieån ñeán leänh maø ñòa chæ ñang ôû PC
.Khoaûng ñòa chæ taïi -15 ñeán +16 gía trò PC hieän taïi .Ñòa chæ ñoái vôùi JR naøy xaùc ñònh tôùi keát hôïp bôûi 1 nhaõn , 1
ñòa chæ thoâng thöôøng bôûi döõ lieäu töùc thôøi duøng kyù hieäu ( +) (-)
*LD Load
LD dst,src
Noäi dung src ñöôïc naïp vaøo dst ,noäi dung src khoâng ñoåi.
Neáu 1 leänh nhö ‘LD A,#im ‘ hay ‘LD HL,#imm ‘ ñöôïc vieát hôn hai laàn keá tieáp ,chæ LD ñaàu ñöôïc thöïc thi
;nhöõng leänh töông töï khaùc theo sau ngay LD ñaàu seõ ñöôïc ñoái xöû nhö leänh NOP .
*LDB Load Bit
LDB dst,src.b
LDB dst.b,src
Bieán boolean xaùc ñònh bôûi toaùn haïnh thöù nhaát hay thöù nh ì ñöïôc coppy vaøo vò trí xaùc ñònh bôûi toaùn haïng thöù
nhì hay thöù nhaát 1 trong 2 toaùn haïng phaûi laø côø C , coøn toaùn haïng kia coù theå laø nhöõng bit ñòa ch æ xaùc ñònh tröïc
tieáp hay giaùn tieáp . src khoâng ñoåi.
*LDC Load code byte
LDC dst,src
Leänh naøy load byte töø boä nhôù chöông trình sang thanh ghi tích luõy keùo daøi (EA) .Ñòa chæ cuûa byte tìm thaáy
laø 5 gía trò bit cao nhaát trong boä ñeám chöông trình vaø noäi dung cuûa thanh ghi laøm vieäc 8-bit (WX hay EA). Noäi
dung nguoàn khoâng ñoåi.
*LDD Load boä nhôù döõ lieäu vaø giaûm
LDD dst
Noäi dung cuûa vò trí boä nhôù döõ lieäu ñöôïc load vaøo A , vaø noäi dung cuûa L ñöôïc giaûm ñi 1 .Neáu coù vay möôïn
xaûy ra leänh keá tieáp bò nhaûy .noäi dung boä nhôù döõ lieäu vaø côø C khoâng bò aûnh höôûng.
*LDI Load boä nhôù döõ lieäu vaø taêng
LDI dst
19
Noäi dung cuûa vò trí boä nhôù döõ lieäu ñöôïc load vaøo A , vaø noäi dung cuûa L ñöôïc taêng ñi 1 .Neáu coù traøng xaûy ra
leänh keá tieáp bò nhaûy .noä i dung boä nhôù döõ lieäu vaø côø C khoâng bò aûnh höôûng.
*NOP Taùc vuï NOP
NOP
Ngöng hoaït ñoäng ñöôïc ñònh daïng bôûi leänh NOP laø 1 kieåu duøng ñeå delay .
*OR Logic or
OR dst,src
Toaùn haïng src ñöôïc OR logic vôùi toaùn haïng dst ,keát quaû ñöôïc ghi ôû dst , noäi dung src khoâng bò ñoåi.
*POP Pop töø Stack
POP dst
Noäi dung cuûa vò trí RAM ñaõ ñònh ñòa chæ bôûi PS ñöôïc ñoïc ,vaø SP ñöôïc taêng 2 .Gía trò ñoïc ñöôïc truyeàn ñeán
bieán xaùc ñònh bôûi toaùn haïng dst.
*PUSH Push vaøo treân Stack
PUSH src
SP bò giaûm 2 vaø noäi dung toaùn haïng ñöôïc coppy sang vò trí RAM xaùc ñònh bôûi SP ; baèng caùch aáy theâm phaàn
töû môùi vaøo ñænh stack.
*RCF Reset côø C
RCF
Gæa söû C =‘1’ ,thì RCF xoùa C veà ‘0’
*REF Leänh tham khaûo
Ref dst
REF ñöôïc duøng ñeå ghi laïi daïng 1 byte , tuøy leänh 2-byte,3-byte hay 2 leänh 1-byte ñaõ ghi trong vuøng tham
chieáu leänh trong boä nhôù chöông trình . REF giaûm soá truy xuaát boä nhôù chöông trình cho chöông trình .
*RET Trôû veà töø chöông trình con
RET
RET pop gía trò PC hoaøn taát töø stack taêng SP bôûi 6 .Chöông trình thöïc thi tieáp tuïc töø ñòa chæ keát quaû .
*RRC Quay phaûi A qua côø C
RRC A
4-bit ôû thanh ghi A vaø C cuøng quay 1 bit sang phaûi
*SBC Tröø vôùi C
SBC dst,src
SBC tröø src vaø côø C töø dst ,löu keát quaû ôû dst .SBC set côø C neáu m öôïn cho bit MSB ngöôïc laïi noù xoùa côø
C.noäi dung nguoàn khoâng ñoåi.
*SBS Tröø coù nhaûy khi vay möôïn
SBS dst,src
src bò tröø töø dst vaø keát quaû ñöôïc ghi ôû dst .noäi dung src khoâng ñoåi .
Skip ñöôïc thöïc thi neáu coù vay möôïn ,gía trò côø C khoâng ñoåi.
*SCF Set côø C
SCF set côø C ‘1’ , ngoaïi tröø gía trò cuûa noù tröôùc ñoù.
*SMB Choïn bank boä nhôù
SMB n
20