Thiết kế chương trình Debug

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

pdf62 trang | Chia sẻ: haohao89 | Lượt xem: 1821 | Lượt tải: 1download
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
Tài liệu liên quan