Thiết kế mạch ghi - đọc EPROM cho Vi Điều Khiển 8951, chương 5

Chia sẻ: Nguyen Van Dau | Ngày: | Loại File: PDF | Số trang:14

0
116
lượt xem
48
download

Thiết kế mạch ghi - đọc EPROM cho Vi Điều Khiển 8951, chương 5

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'thiết kế mạch ghi - đọc eprom cho vi điều khiển 8951, chương 5', kỹ thuật - công nghệ, điện - điện tử phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Thiết kế mạch ghi - đọc EPROM cho Vi Điều Khiển 8951, chương 5

  1. Chương 5: Caùc hoaït ñoäng logic (Logic Operation) Taát caû caùc leänh logic söû duïng thanh ghi A nhö laø moät trong nhöõng toaùn haïng thöïc thi moät chu kyø maùy, ngoaøi A ra maát 2 chu kyø maùy. Nhöõng hoaït ñoäng logic coù theå ñöôïc thöïc hieän treân baát kyø byte naøo trong vò trí nhôù döõ lieäu noäi maø khoâng qua thanh ghi A. Caùc hoaït ñoäng logic ñöôïc toùm taét nhö sau: ANL ANL A, Rn : (A) (A) AND (Rn). ANL A, direct : (A) (A) AND (direct). ANL A,@ Ri : (A) (A) AND ((Ri)). ANL A, # data : (A) (A) AND (# data). ANL direct, A : (direct) (direct) AND (A). ANL direct, # data : (direct) (direct) AND # data. ORL ORL A, Rn : (A) (A) OR (Rn). ORL A, direct : (A) (A) OR (direct). ORL A,@ Ri : (A) (A) OR ((Ri)). ORL A, # data : (A) (A) OR # data. ORL direct, A : (direct) (direct) OR (A). ORL direct, # data : (direct) (direct) OR # data.
  2. XRL XRL A, Rn : (A) (A) (Rn). XRL A, direct : (A) (A) (direct). XRL A,@ Ri : (A) (A) ((Ri)). XRL A, # data : (A) (A) # data. XRL direct, A : (direct) (direct) (A). XRL direct, # data : (direct) (direct) # data. CLR A : (A) 0 CLR C : (C) 0 CLR Bit : (Bit) 0 RL A : Quay voøng thanh ghi A qua traùi 1 bit (An + 1) (An); n = 06 (A0) (A7) RLC A : Quay voøng thanh ghi A qua traùi 1 bit coù côø Carry (An + 1) (An); n = 06 (C) (A7) (A0) (C) RR A : Quay voøng thanh ghi A qua phaûi 1 bit (An + 1) (An); n = 06 (A0) (A7) RRC A : Quay voøng thanh ghi A qua phaûi 1 bit coù côø Carry
  3. (An + 1) (An); n = 06 (C) (A7) (A0) (C) SWAP A : Ñoåi choå 4 bit thaáp vaø 4 bit cao cuûa A cho nhau (A3A0)(A7A4). 2.3 Caùc leänh reõ nhaùnh: Coù nhieàu leänh ñeå ñieàu khieån leân chöông trình bao goàm vieäc goïi hoaëc traû laïi töø chöông trình con hoaëc chia nhaùnh coù ñieàu kieän hay khoâng coù ñieàu kieän. Taát caû caùc leänh reõ nhaùnh ñeàu khoâng aûnh höôûng ñeán côø. Ta coù theå ñònh nhaûn caàn nhaûy tôùi maø khoâng caàn roõ ñòa chæ, trình bieân dòch seõ ñaët ñòa chæ nôi caàn nhaûy tôùi vaøo ñuùng khaåu leänh ñaõ ñöa ra. Sau ñaây laø söï toùm taét töøng hoaït ñoäng cuûa leänh nhaûy. JC rel : Nhaûy ñeán “rel” neáu côø Carry C = 1. JNC rel : Nhaûy ñeán “rel” neáu côø Carry C = 0. JB bit, rel : Nhaûy ñeán “rel” neáu (bit) = 1. JNB bit, rel : Nhaûy ñeán “rel” neáu (bit) = 0. JBC bit, rel : Nhaûy ñeán “rel” neáu bit = 1 vaø xoùa bit. ACALL addr11: Leänh goïi tuyeät ñoái trong page 2K. (PC) (PC) + 2 (SP) (SP) + 1 ((SP)) (PC7PC0)
  4. (SP) (SP) + 1 ((SP)) (PC15PC8) (PC10PC0) page Address. LCALL addr16: Leänh goïi daøi chöông trình con trong 64K. (PC) (PC) + 3 (SP) (SP) + 1 ((SP)) (PC7PC0) (SP) (SP) + 1 ((SP)) (PC15PC8) (PC) Addr15Addr0. RET : Keát thuùc chöông trình con trôû veà chöông trình chính. (PC15PC8) (SP) (SP) (SP) - 1 (PC7PC0) ((SP)) (SP) (SP) -1. RETI : Keát thuùc thuû tuïc phuïc vuï ngaét quay veà chöông trình chính hoaït ñoäng töông töï nhö RET. AJMP Addr11 : Nhaûy tuyeät ñoái khoâng ñieàu kieän trong 2K. (PC) (PC) + 2 (PC10PC0) page Address. LJMP Addr16 : Nhaûy daøi khoâng ñieàu kieän trong 64K
  5. Hoaït ñoäng töông töï leänh LCALL. SJMP rel :Nhaûy ngaén khoâng ñieàu kieän trong (-128127) byte (PC) (PC) + 2 (PC) (PC) + byte 2 JMP @ A + DPTR:Nhaûy khoâng ñieàu kieän ñeán ñòa chæ (A) + (DPTR) (PC) (A) + (DPTR) JZ rel : Nhaûy ñeán A = 0. Thöïc haønh leänh keá neáu A 0. (PC) (PC) + 2 (A) = 0 (PC) (PC) + byte 2 JNZ rel : Nhaûy ñeán A 0. Thöïc haønh leänh keá neáu A = 0. (PC) (PC) + 2 (A) < > 0 (PC) (PC) + byte 2 CJNE A, direct, rel : So saùnh vaø nhaûy ñeán A direct (PC) (PC) + 3 (A) < > (direct) (PC) (PC) + Relative Address. (A) < (direct) C = 1 (A) > (direct) C = 0 (A) = (direct). Thöïc haønh leänh keá tieáp
  6. CJNE A, # data, rel : Töông töï leänh CJNE A, direct, rel. CJNE Rn, # data, rel : Töông töï leänh CJNE A, direct, rel. CJNE @ Ri, # data, rel : Töông töï leänh CJNE A, direct, rel. DJNE Rn, rel : Giaûm Rn vaø nhaûy neáu Rn 0. (PC) (PC) + 2 (Rn) (Rn) -1 (Rn) < > 0 (PC) (PC) + byte 2. DJNZ direct, rel : Töông töï leänh DJNZ Rn, rel. 2.4 Caùc leänh dòch chuyeån döõ lieäu: Caùc leänh dòch chuyeån döõ lieäu trong nhöõng vuøng nhôù noäi thöïc thi 1 hoaëc 2 chu kyø maùy. Maãu leänh MOV , cho pheùp di chuyeån döõ lieäu baát kyø 2 vuøng nhôù naøo cuûa RAM noäi hoaëc caùc vuøng nhôù cuûa caùc thanh ghi chöùc naêng ñaëc bieät maø khoâng thoâng qua thanh ghi A. Vuøng Ngaên xeáp cuûa 8951 chæ chöùa 128 byte RAM noäi, neáu con troû Ngaên xeáp SP ñöôïc taêng quaù ñòa chæ 7FH thì caùc byte ñöôïc PUSH vaøo seõ maát ñi vaø caùc byte POP ra thì khoâng bieát roõ. Caùc leänh dòch chuyeån boä nhôù noäi vaø boä nhôù ngoaïi duøng söï ñònh vò giaùn tieáp. Ñòa chæ giaùn tieáp coù theå duøng ñòa chæ 1 byte (@ Ri) hoaëc ñòa chæ 2 byte (@ DPTR). Taát caû caùc leänh dòch chuyeån
  7. hoaït ñoäng treân toaøn boä nhôù ngoaøi thöïc thi trong 2 chu kyø maùy vaø duøng thanh ghi A laøm toaùn haïng DESTINATION. Vieäc ñoïc vaø ghi RAM ngoaøi (RD vaø WR) chæ tích cöïc trong suoát quaù trình thöïc thi cuûa leänh MOVX, coøn bình thöôøng RD vaø WR khoâng tích cöïc (möùc 1). Taát caû caùc leänh dòch chuyeån ñeàu khoâng aûnh höôûng ñeán côø. Hoaït ñoäng cuûa töøng leänh ñöôïc toùm taét nhö sau: MOVA,Rn : (A) (Rn) MOV A, direct : (A) (direct) MOVA, @ Ri : (A) ((Ri)) MOV A, # data : (A) # data MOVRn, A : (Rn) (A) MOVRn, direct : (Rn) (direct) MOVRn, # data : (Rn) # data MOV direct, A : (direct) (A) MOV direct, Rn : (direct) (Rn) MOV direct, direct : (direct) (direct) MOV direct, @ Ri : (direct) ((Ri)) MOV direct, # data : (direct) data MOV@ Ri, A : ((Ri)) (A) MOV@ Ri, direct : ((Ri)) (direct) MOV@ Ri, # data : ((Ri)) # data MOVDPTR, # data16 : (DPTR) # data16 MOVA, @ A + DPTR : (A) (A) + (DPTR)
  8. MOV@ A + PC : (PC) (PC) + 1 (A) (A) + (PC) MOVX A, @ Ri : (A) ((Ri)) MOVX A, @ DPTR : (A) ((DPTR)) MOVX @ Ri, A : ((Ri)) (A) MOVX @ DPTR, A : ((DPTR)) (A) PUSH direct : Caát döõ lieäu vaøo Ngaên xeáp (SP) (SP) + 1 (SP) (Drirect) POP direct : Laáy töø Ngaên xeáp ra direct (direct) ((SP)) (SP) (SP) - 1 XCH A, Rn : Ñoåi choå noäi dung cuûa A vôùi Rn (A) (Rn) XCH A, direct : (A) (direct) XCH A, @ Ri : (A) ((Ri)) XCHD A, @ Ri : Ñoåi choå 4 bit thaáp cuûa (A) vôùi ((Ri)) (A3A0) ((Ri3Ri0)) 2.5 Caùc leänh luaän lyù (Boolean Instruction): 8951 chöùa moät boä xöû lí luaän lyù ñaày ñuû cho caùc hoaït ñoäng bit ñôn, ñaây laø moät ñieåm maïnh cuûa hoï vi ñieàu khieån MSC-51 maø caùc hoï vi ñieàu khieån khaùc khoâng coù.
  9. RAM noäi chöùa 128 bit ñôn vò vaø caùc vuøng nhôù caùc thanh ghi chöùc naêng ñaëc bieät caáp leân ñeán 128 ñôn vò khaùc. Taát caû caùc ñöôøng Port laø bit ñònh vò, moãi ñöôøng coù theå ñöôïc xöû lí nhö Port ñôn vò rieâng bieät. Caùch truy xuaát caùc bit naøy khoâng chæ caùc leänh reõ nhaùnh khoâng, maø laø moät danh muïc ñaày ñuû caùc leänh MOVE, SET, CLEAR, COMPLEMENT, OR, AND. Toaøn boä söï truy xuaát cuûa bit duøng söï ñònh vò tröïc tieáp vôùi nhöõng ñòa chæ töø 00H - 7FH trong 128 vuøng nhôù thaáp vaø 80H - FFH ôû caùc vuøng thanh ghi chöùc naêng ñaëc bieät. Bit Carry C trong thanh ghi PSW\ cuûa töø traïng thaùi chöông trình vaø ñöôïc duøng nhö moät söï tích luõy ñôn cuûa boä xöû lí luaän lyù. Bit Carry cuõng laø bit ñònh vò vaø coù ñòa chæ tröïc tieáp vì noù naèm trong PSW. Hai leänh CLR C vaø CLR CY ñeàu coù cuøng taùc duïng laø xoùa bit côø Carry nhöng leänh naøy maát 1 byte coøn leänh sau maát 2 byte. Hoaït ñoäng cuûa caùc leänh luaän lyù ñöôïc toùm taét nhö sau: CLR C : Xoùa côø Carry xuoáng 0. Coù aûnh höôûng côø Carry. CLR BIT : Xoùa bit xuoáng 0. Khoâng aûnh höôûng côø Carry SET C : Set côø Carry leân 1. Coù aûnh höôûng côø Carry. SET BIT : Set bit leân 1. Khoâng aûnh höôûng côø Carry. CPL C : Ñaûo bit côø Carry. Coù aûnh höôûng côø Carry.
  10. CPL BIT : Ñaûo bit. Khoâng aûnh höôûng côø Carry. ANL C, BIT : (C) (C) AND (BIT) : Coù aûnh höôûng côø Carry. ANL C, /BIT : (C) (C) AND NOT (BIT):Khoâng aûnh höôûng côø Carry. ORL C, BIT : (C) (C) OR (BIT) : Taùc ñoäng côø Carry. ORL C, /BIT : (C) (C) OR NOT (BIT) : Taùc ñoäng côø Carry. MOVC, BIT : (C) (BIT) : Côø Carry bò taùc ñoäng. MOVBIT, C : (BIT) (C) : Khoâng aûnh höôûng côø Carry. 2.6 Caùc leänh xen vaøo (Miscellamous Intstruction): NOP : Khoâng hoaït ñoäng gì caû, chæ toán 1 byte vaø 1 chu kyø maùy. Ta duøng ñeå delay nhöõng khoaûng thôøi gian nhoû. III. Chöông trình ngoân ngöõ Assembly cuûa 8951: 1. Giôùi thieäu : Ngoân ngöõ assembly giöõa ngoân ngöõ maùy vaø ngoân ngöõ caáp cao. Ngoân ngöõ caáp cao ñöôïc ñaëc tröng nhö: Pascal, C ... Coøn chöông trình ngoân ngöõ maùy laø moät chuoãi caùc byte nhò phaân ñöôïc ñaëc tröng bôûi caùc leänh maø maùy tính coù theå thöïc thi. Ngoân ngöõ assembly thay theá caùc maõ nhò phaân cuûa ngoân ngöõ maùy ñeå söû duïng caùc “thuaät nhôù“ deã daøng trong quaù trình laäp trình. Ví duï leänh coäng trong ngoân ngöõ maùy ñöôïc ñaëc tröng bôûi
  11. maõ nhò phaân “10110011” trong khi ngoân ngöõ assembly laø “ADD“. Moät chöông trình ngoân ngöõ assembly khoâng theå thöïc thi bôûi maùy tính maø noù phaûi ñöôïc dòch sang maõ nhò phaân ngoân ngöõ maùy. Moät linker laø moät chöông trình maø noù keát hôïp caùc chöông trình ñaëc tröng Relocatable (modul) vaø thieát keá moät chöông trình ñaëc tröng tuyeät ñoái thöïc thi baèng maùy tính. Segment laø moät phaàn cuûa boä nhôù maõ hoaëc döõ lieäu, noù coù theå taùi ñònh vò ñöôïc (Relocatable) hoaëc tuyeät ñoái (Absolute ). Segment Relocatable coù teân, kieåu vaø coù theå ñöôïc keát noái vôùi Segment cuïc boä khaùc. Segment Absolute khoâng coù teân vaø khoâng theå ñöïôc keát noái Segment khaùc. Modul chöùa 1 hoaëc nhieàu segment hay caùc segment cuïc boä . Moät modul coù theå laø moät “file” ôû nhieàu tröôøng hôïp caù bieät . Moät chöông trình Modul Absolute ñôn ñöôïc hoøa vaøo toaøn boä caùc Segment Absolute vaø Segment Relocatable töø taát caû caùc mode nhaäp. Chöông trình chæ chöùa caùc maõ nhò phaân thay cho caùc leänh (vôùi caùc ñòa chæ vaø caùc haèng döõ lieäu ) ñöôïc hieåu bôûi maùy tính. 2. Hoaït ñoäng cuûa trình bieân dòch (Assembler Operation) Coù nhieàu trình bieân dòch vôùi muïc ñích khaùc nhau coù taùc duïng laø deã hieåu caùc öùng duïng vi ñieàu khieån. ASM51 laø tieâu bieåu chuaån bieân dòch cuûa hoï MSC-51. ASM51 laø trình bieân dòch
  12. maïnh coù taùc duïng höõu hieäu treân heä thoáng phaùt trieån INTEL vaø hoï IBM PC cuûa maùy vi tính. ASM51 ñöôïc goïi hieän leân töø söï chæ daãn cuûa heä thoáng bôûi: ASM51 Source file (Assembly Control). Trình bieân dòch nhaän moät file nguoàn vôùi tö caùch laø ngoõ nhaäp (PROGRAM.SCR) vaø hoï phaùt ra moät file ñoái töôïng PROGRAM.OBJ PROGRAM.SCR ASM51 PROGRAM.LST (PROGRAM.OBJ) vaø file listing (PROGRAM.LST). Vì haàu heát caùc bieân dòch xem xeùt chöông trình nguoàn 2 laàn trong luùc thi haønh söï dòch ngoân ngöõ maùy, neân chuùng ñöôïc moâ taû qua 2 Pass bieân dòch laø Pass1 vaø Pass2. Trong pass1, file nguoàn ñöôïc xem xeùt töøng doøng vaø baûng kyù hieäu xaây döïng. Boä ñeám Location maëc nhieân choïn 0 hoaëc ñöôïc ñaët bôûi chæ thò ORG (ñaët Origin). Cuõng nhö file ñöôïc xem xeùt, boä ñeám Location ñöôïc taêng leân baèng ñoä daøi moãi leänh.
  13. Chæ thò data ñònh nghóa (ñaëc bieät hoaëc DW) taêng boä ñeám Location baèng vôùi soá byte ñònh roõ, caùc chæ thò nhôù löu tröõ (DSO taêng boä ñeám Location bôûi soá byte döï tröõ). Moãi laàn moät nhaõn ñöôïc tìm thaáy ôû söï baét ñaàu cuûa moät ñöôøng, thì noù ñöôïc ñaëc trong baûng kyù hieäu theo giaù trò hieän haønh cuûa boä ñeám Location. Caùc kyù hieäu ñöôïc ñònh nghóa bôûi duøng caùc chæ thò töông ñöông (EQU) ñöôïc ñaëc trong baûng kyù hieäu, ñöôïc caát giöõ vaø sau ñoù duøng trong pass2. Trong Pass2, file Object vaø file Listing ñöôïc taïo ra, caùc thuaät nhôù ñöôïc bieán ñoåi thaønh Opcode vaø ñaët trong caùc file output. Caùc toaùn haïng ñöôïc xaùc ñònh giaù trò vaø ñaët phía sau Opcode leänh. ÔÛ nôi caùc kyù hieäu xuaát hieän trong toaùn haïng, caùc kyù hieäu cuûa chuùng seõ ñöôïc laáy laïi töø baûng kyù hieäu (ñöôïc taïo ra trong suoát Pass1 vaø duøng trong söï saép xeáp döõ lieäu ñuùng hoaëc ñuùng ñòa chæ bôûi caùc leänh). Bôûi vì Pass2 ñöôïc thöïc thi neân chöông trình nguoàn coù theå duøng “söï tham khaûo tröôùc “ laø duøng kyù hieäu tröôùc khi ñònh nghóa. File Object neáu tuyeät ñoái thì chæ chöùa caùc byte nhò phaân (00H - FFH) cuûa chöông trình ngoân ngöõ maùy. File Object Relocatable chöùa moät baûng kyù hieäu vaø thoâng tin khaùc ñöôïc yeâu caàu bôûi söï keát hôïp vaø xaùc ñònh ñuùng vò trí. File Listing chöùa maõ nguyeân baûng ASCII (20H – 7FH) cho caû hai chöông trình nguoàn vaø caùc byte Hexadecimal trong chöông trình ngoân ngöõ maùy.
  14. 3. Söï saép ñaët chöông trình ngoân ngöõ Assmebly: Chöông trình ngoân ngöõ Asembly bao goàm: Caùc leänh maùy, lôøi chæ chò cuûa trình bieân dòch, söï ñieàu khieån bieân dòch vaø caùc chuù thích. Caùc leänh maùy laø caùc kyõ xaûo cuûa leänh coù theå thöïc thi (ví duï nhö ANL). Caùc chæ thò cuûa trình bieân dòch laø caùc leänh ñeå trình bieân dòch ñònh caáu truùc chöông trình, caùc döõ lieäu, kyù hieäu, haèng, … (ví duï Org ). Caùc söï ñieàu khieån trình bieân dòch set caùc mode cuûa trình bieân dòch vaø ñieàu khieån söï chaïy chöông trình Assembly (ví duï STILLE ). Caùc chuù thích hoaït ñoäng cuûa leänh. Caùc leänh phaûi ghi theo nguyeân taéc roõ raøng ñeå ñöôïc trình bieân dòch hieåu. Söï saép xeáp cuûa chuùng nhö sau: (Label:) mnemonic [operand][:operand][...][:comment]

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản