Chip đơn KS57C2308/2316 là vi mạch điều khiển CMOS đã được thiết kếvới đặc tính kỹ thuật dùng làm cốt
lõi CPU 4 bít mới nhất của SAMSUNG SAM47 .
Với những đặc tính như : có khả năng điều khiển LCD trực tiếp ,bộ đếm và bộ định thời 8 bít , I/O liên tiếp.
KS57C2308/2316 đưa ra một giải pháp thiết kế vượt trội và rộng lớn hơn khác nhau về những ứng dụng liên
quan đến chức năng LCD
62 trang |
Chia sẻ: haohao89 | Lượt xem: 1995 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Thiết kế chương trình Debug, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1
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
2
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
3
*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
4
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 :
5
-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
6
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.
7
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
memory
000CH-001FH 20
REF instruction look-up table
area
0020H-007FH 96
General-purpose program
memory
0080H-1FFFH(2308)
0080H-3FFFH(2316)
8064 (KS57C2308)
16256(KS57C2316)
ROM Address Structure (hình 2)
EMB ERB “0” PC12 PC11 PC10 PC9 PC8
PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0
8
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
001FH
GENERAL-PURPOSE
AREA (20 bytes)
0020H
007FH
INSTRUCTION
REFERENCE AREA
(96 bytes)
0080H
1FFFH
GENERAL-PURPOSE
AREA (8.064 bytes
16.256 bytes)
3FFFH (hình 4)
Ñònh ñòa chæ vaø toå chöùc boä nhôù döõ lieäu
Address REGISTER AREAS Bank EMB
Value
SMB
Value
000H-01FH working registers
020H-0FFH Stack and general-purpose
registers
0 0,1 0
100H-1DFH General-purpose registers
1
1
1
1E0H-1FFH LCD Data registers
F80H-FFFH I/O -mapped harware
registers
15 0,1 15
9
Thanh ghi SP
F80H SP3 SP2 SP1 “0”
F81H SP7 SP6 SP5 SP4
10
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øng .
*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 :
11
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)
12
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