intTypePromotion=1
ADSENSE

Quá trình vận hành ứng dụng Kit dùng để chuyển đổi AC sang DC trong hệ thống chuyển mạch nguồn p6

Chia sẻ: Asfdg AgaG | Ngày: | Loại File: PDF | Số trang:10

80
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Ví dụ lệnh sau cộng nội dung R7 vào thanh ghi tích luỹ: ADD A, R7; Mã lệnh là 001011111B. Trong đó 5 bit cao 00101 chỉ mã lệnh 3 bit thấp 111 chỉ thanh ghi R7. Một vài lệnh xác định trực tiếp trên thanh ghi như thanh ghi tích luỹ, con trỏ dữ liệu …do đó không cần đến các bit địa chỉ. Bản thân mã lệnh đã mô tả thanh ghi.

Chủ đề:
Lưu

Nội dung Text: Quá trình vận hành ứng dụng Kit dùng để chuyển đổi AC sang DC trong hệ thống chuyển mạch nguồn p6

  1. Ví duï leänh sau coäng noäi dung R7 vaøo thanh ghi tích luyõ: ADD A, R7; Maõ leänh laø 001011111B. Trong ñoù 5 bit cao 00101 chæ maõ leänh 3 bit thaáp 111 chæ thanh ghi R7. Moät vaøi leänh xaùc ñònh tröïc tieáp treân thanh ghi nhö thanh ghi tích luyõ, con troû döõ lieäu …do ñoù khoâng caàn ñeán caùc bit ñòa chæ. Baûn thaân maõ leänh ñaõ moâ taû thanh ghi. Ñònh vò tröïc tieáp : Ñònh vò tröïc tieáp coù theå truy xuaát baát kyø byte naøo trong vuøng nhôù noäi hoaëc caùc thanh ghi chöùc naêng. Moät byte ñöôïc theâm vaøo maõ leänh ñeå xaùc ñònh vò trí thanh ghi ñöôïc duøng. Opcode 8-bit Direct Adress 8-bit Tuøy thuoäc vaøo bit cao nhaát cuûa byte ñòa chæ tröïc tieáp, moät trong hai vuøng nhôù seõ ñöôïc choïn. Khi bit 7 cuûa ñòa chæ tröïc tieáp baèng 0: ñòa chæ tröïc tieáp coù giaù trò töø 0 ñeán 127 (00H – 0FH) vaø 128 bytes thaáp cuûa on chip RAM ñöôïc tham khaûo ñeán, Taát caû caùc I/O port, thanh ghi chöùc naêng. Thanh ghi ñieàu khieån, thanh ghi traïng thaùi coù ñòa chæ töø 128 ñeán 255 (80H-FFh). Khi bit 7=1 byte ñòa chæ tröïc tieáp naèm trong giôùi haïn naøy, töông öùng vôùi thanh ghi chöùc naêng seõ ñöôïc truy xuaát. Ví duï port 0 vaø port 1 coù ñòa chæ töông öùng laø 80H vaø 90H. Ta khoâng caàn phaûi bieát ñòa chæ cuûa nhöõng thanh ghi naøy, trình bieân dòch luoân hieåu caùc maõ gôïi nhôù ngaén goïn cuûa noù nhö P0, P1, TMOD… Ñònh vò giaùn tieáp: Laøm theá naøo ñeå nhaän daïng moät bieán, neáu ñòa chæ cuûa noù ñöôïc xaùc ñònh, tính toaùn, thay ñoåi khi chöông trình ñang chaïy. Vaán ñeà naøy ñöôïc ñaët ra khi thao taùc caùc vò trí nhôù lieân tuïc, chuoãi soá, hay xaâu kyù töï. Thanh ghi vaø ñòa chæ tröïc tieáp khoâng theå duøng vì toaùn haïng ñòa chæ phaûi ñöôïc nhaân bieát trong thôøi gian bieân dòch. Ñeå giaûi quyeát vaán ñeà treân 8051 söû duïng ñòa chæ giaùn tieáp. R1 vaø R0 ñöôïc coi nhö nhöõng con troû. Noäi dung cuûa chuùng chæ ñeán moät ñòa chæ naøo ñoù trong RAM khi ñoïc hoaëc ghi döõ lieäu. Bit thaáp nhaát trong byte maõ leänh xaùc ñònh thanh ghi naøo (R0 hay R1) ñöôïc duøng laøm con troû. Ngoân ngöõ assembly cuûa 8051 duøng kyù hieäu @ ñaët tröôùc R0 hay R1 ñeå moâ taû ñònh vò giaùn tieáp. Ví duï, neáu R1 chöùa 40H vaø taïi vò trí 40H trong boä nhôù noäi chöùa giaù trò 55H, leänh: MOV A, @R1; Chuyeån giaù trò 55H vaøo thanh ghi tích luyõ. Opcode 7-bit i
  2. Ñònh vò giaùn tieáp trôû neân quan troïng khi phaûi thao taùc töøng byte boä nhôù noäi moät caùch lieân tuïc. Ví duï nhöõng leänh sau seõ xoùa vuøng RAM töø ñòa chæ 60H ñeán 70H: MOV R0, #60H; MOV @R0, #0; LOOP: INC R0; CJNE R0, #80H, LOOP; Leänh ñaàu tieân khôûi ñoäng thanh ghi vôùi ñòa chæ ñaàu tieân cuûa khoái boä nhôù. Leänh thöù hai duøng leänh giaùn tieáp ñeå chuyeån giaù trò 00H vaøo vò trí ñöôïc troû bôûi R0. Leänh thöù 3 taêng giaù trò con troû ñeán ñòa chæ tieáp theo. Vaø leänh cuoái kieåm tra xem con troû ñeán cuoái khoái chöa. Leänh kieåm tra duøng giaù trò 80H chöù khoâng phaûi giaù trò 7FH vì vieäc xaûy ra sau vieäc dòch chuyeån giaùn tieáp. Nhö vaäy chaéc chaén cuoái cuøng seõ ñöôïc ghi tröôùc khi keát thuùc. Ñònh vò töùc thôøi : Khi moät toaùn haïng nguoàn laø moät haèng soá khoâng phaûi laø moät bieán. Haèng soá coù theå ñöôïc gom vaøo trong leänh nhö moät döõ lieäu töùc thôøi. Byte ñöôïc theâm vaøo seõ chöùa giaù trò. Opcode Immediate data Trong ngoân ngöõ assembly toaùn haïng töùc thôøi ñöôïc ñaët tröôùc baèng kyù hieäu soá (#). Toaùn haïng coù theå laø moät haèng soá, kyù hieäu hoaëc toaùn töû. Trình bieân dòch seõ tính toaùn giaù trò vaø gaùn döõ lieäu töùc thôøi vaøo leänh. Taát caû caùc leänh duøng ñònh vò töùc thôøi ñeàu söû duïng haèng döõ lieäu 8 bit. Ngoaïi tröø khi khôûi ñoäng thanh ghi con troû döõ lieäu (DPTR) MOV DPTR, #40000H; Laø moät leänh 3 bytes naïp soá 16 bit vaøo thanh ghi con troû. Ñònh vò töông ñoái: Ñònh vò töông ñoái chæ duøng trong caùc leänh jump. Ñòa chæ töông ñoái (offset) laø moät soá 8 bit coù daáu ñöôïc coäng vaøo thanh ghi ñeám chöông trình ñeå chæ ra ñòa chæ cuûa leänh tieáp theo phaûi thi haønh. Vì offset laø moät soá 8 bit coù daáu neân taàm nhaûy chæ giôùi haïn trong khoaûng caùch +127 vaø –128 vò trí. Tröôùc khi coäng, thanh ghi ñeám chöông trình taêng leân ñeán ñòa chæ sau leänh jump. Vì vaäy, ñòa chæ môùi laø töông ñoái so vôùi ñòa chæ leänh keá tieáp chöù khoâng phaûi ñòa chæ leänh jump. Thoâng thöôøng chi tieát naøy khoâng lieân quan ñeán ngöôøi laäp trình, khi maø ñích nhaûy ñeán ñöôïc moâ taû baèng moät nhaõn. Trình bieân dòch seõ ñònh giaù trò offset töông ñoái töông öùng. Opcode Relative offset
  3. Ví duï neáu nhaõn THERE ñöôïc ñaët taïi leänh coù ñòa chæ 1040H vaø leänh SJMP THERE ÔÛ taïi vò trí 1000H vaø 1001H. Trình bieân dòch seõ gaùn giaù trò offset töông ñoái laø 3EH taïi byte thöù hai cuûa leänh. Ñònh vò tuyeät ñoái: Ñònh vò tuyeät ñoái chæ duøng ñoái vôùi caùc leänh ACALL, AJMP. Leänh 2 byte naøy cho pheùp reõ nhaùnh trong phaïm vi 2Kbytes boä nhôù. 5bit cao cuûa ñòa chæ ñích laø 5 bit cao hieän thôøi trong thanh ghi ñeám chöông trìng. Vì vaäy leänh theo sau leänh reõ nhaùnh vaø leänh keát thuùc reõ nhaùnh keát thuaùc naèm trong phaïm vi 2Kbytes. Addr 10 – Addr8 Opcode 5-bit Addr7 - Addr0 Ñònh vò xa: Ñònh vò xa chæ söû duïng cho caùc leänh LCALL vaø LMP. Caùc leänh 3-byte naøy coù ñòa chæ ñích laø soá 16-bit ñaët trong byte 2 vaø byte 3. Ñieàu thuaän tieän laø toaøn boä vuøng maõ leänh ñeàu coù theå ñöôïc söû duïng. Nhöng moät ñieàu baát tieän laø leänh 3-byte quaù daøi vaø phuï thuoäc vò trí (position-dependent). Phuï thuoäc vò trí laø moät ñieäu baát tieän bôûi vì chöông trình khoâng theå thi haønh taïi moät ñòa chæ khaùc. Opcode Addr15 – Addr8 Addr7 – Addr0 Ñònh vò chæ soá : Ñònh vò chæ soá duøng moät thanh ghi cô sôû (PC hoaëc DPTR) vaø moät thanh ghi laøm offset (ACC) taïo ra moät ñòa chæ seõ bò taùc ñoäng bôûi caùc leänh JMP hoaëc MOVC. Thanh ghi neàn offset ñòa chæ taùc ñoäng PC or DPTR + ACC = Caùc ví duï ñöôïc cung caáp trong phuï luïc cho caùc leänh: MOVC A, @A+ JMP @A+DPTR III – PHAÂN LOAÏI LEÄNH: Caùc leänh 8051 ñöôïc chia thaønh 5 nhoùm nhö sau:  Soá hoïc  Logic  Trao ñoåi döõ lieäu
  4.  Luaän lyù  Reõ nhaùnh chöông trình Caùc leänh soá hoïc Caùc leänh soá hoïc thöôøng söû duïng 4 mode ñònh vò. Leänh ADD A coù theå ñöôïc vieát baèng nhieàu caùch khaùc nhau: ADD A, 7FH (Ñònh vò tröïc tieáp) ADD A, @R0 (---------giaùn tieáp) ADD A, R7 (---------thanh ghi) ADD A, #35H (--------- töùc thôøi) Taát caû caùc leänh soá hoïc thi haønh trong moät chu kyø maùy, ngoaïi tröø leänh INC DPTR (2 chu kyø maùy), MUL AB vaø DIV AB (4 chu kyø maùy). 8051 cung caáp caùch ñònh vò raát maïnh cho vuøng RAM noäi cuûa noù. Baát kyø byte nhôù naøo cuõng ñeàu coù teå taêng, giaûm baèng ñònh vò tröïc tieáp maø khoâng caàn thoâng qua thanh ghi tích luyõ. Leänh INC coù theå thao taùc treân con troû döõ lieäu (16 bit). Nhöng leänh DEC khoâng ñöôïc ñònh nghóa treân con troû. Do ñoù ñeå thöïc hieän ñöôïc ñieàu naøy ta coù caùc leänh sau: DEC DPL ; giaûm byte thaáp DPTR MOV R7, DPL ; chuyeån vaøo DPL CJNE R7, #0FFH, SKIP ; neáu vöôït quaù FF DEC DPH ; giaûm luoân byte cao SKIP : (tieáp tuïc) Caùc leânh MUL AB vaø DIV AB chæ thao taùc treân caùc thanh ghi A vaø B. Leänh Logic : Caùc leänh logic bieåu dieãn caùc toaùn töû luaän lyù nhö AND, OR, EA-OR vaø NOT … Caùc leänh naøy treân töøng bit cuûa byte döõ lieäu. Ví duï thanh ghi ACC chöùa soá 10101101B thì leänh: ANL A, #10110010B Chöùa keát quaû 10100000 vaøo thanh ghi ACC. Caùc mode ñònh vò trong leänh logic cuõng gioáng nhö trong leänh soá hoïc. Taát caû caùc leänh logic duøng ñeán thanh ghi ACC nhö moät toaùn haïng ñeàu laø nhöõng leänh moät chu kyø. Caùc leänh khaùc ñeàu chieám 2 chu kyø maùy. Leänh logic coù theå thao taùc tröïc tieáp baát cöù byte naøo trong vuøng nhôù noäi. Leänh XRL , #data ñaûo nhanh vaø deã daøng caùc bit cuûa port. XRL P1, #0FFH; Leänh naøy moâ taû hoaït ñoäng read-modify-write. 8 bit cuûa port 1 ñöôïc ñoïc, sau ñoù moãi bit cuûa XOR vôùi bit töông öùng trong byte döõ lieäu töùc thôøi ñeàu laø 1, XOR seõ ñaûo moãi bit ñöôïc ñoïc. Keát quaû ñöôïc vieát trôû laïi port 1.
  5. Caùc leänh chuyeån dòch döõ lieäu: RAM noäi Caùc leänh chuyeån dòch döõ lieäu trong vuøng RAM noäi chæ chieám 1 hoaëc 2 chu kyø maùy. Leänh coù daïng: MOV , Moät neùt ñaëc tröng cuûa hoï MSC-51 laø stack naèm trong vuøng RAM noäi vaø lôùn daàn leân phía teân cuûa boä nhôù. Leänh PUSH tröôùc tieân taêng con troû stack, sau ñoù môùi sao cheùp byte vaøo stack. PUSH vaø POP chæ duøng ñònh vò tröïc tieáp. Theá nhöng baûn thaân stack laïi duøng ñònh vò tröïc tieáp thoâng qua con troû stack (SP). 8031/8051 khoâng duøng 128 byte cao trong vuøng nhôù noäi laøm stack. Neáu SP vöôït quaù 127 bytes ñöôïc push bò maát vaø byte ñöôïc pop khoâng xaùc ñònh. Leänh dòch chuyeån döõ lieäu 16-bit (MOV duøng ñeå khôûi ñoäng con troû döõ lieäu. Leänh XCV A, Chuyeån ñoåi döõ lieäu giöõa A vaø byte ñöôïc ñònh vò. Leänh XCHD A, @R1 chuyeån ñoåi 4 bit thaáp cuûa thanh ghi ACC vôùi byte ñöôïc R1 chæ ñeán. RAM ngoaøi Dòch chuyeån döõ lieäu giöõa boä nhôù trong vaø ngoaøi söû duïng mode ñònh vò giaùn tieáp. Ñòa chæ giaùn tieáp coù theå laø moät byte hay 2 byte (DPTR). Caùc leänh dòch chuyeån döõ lieäu thao taùc treân boä nhôù ngoaøi ñeàu chieám hai chu kyø maùy vaø duøng thanh ghi tích luyõ laøm toaùn haïng nguoàn hoaëc ñích. Look-Up Tables Hai leänh ñöôïc cho saün ñeå ñoïc moät baûng döõ lieäu trong boä nhôù chöông trình. Khi truy xuaát ñeán vuøng nhôù chöông trình thì noäi dung cuûa baûng chæ ñöôïc ñoïc maø khoâng ñöôïc ghi. Töø gôïi nhôù MOVC töùc laø “move constant”. MOVC duøng thanh ghi ñeám chöông trình cuõng nhö con troû döõ lieäu kaøm thanh ghi neàn vaø thanh ghi tích luyõ laøm offset. MOVC A,@A+DPTR ; Coù theå ñoïc ñöôïc moät soá trong baûng 256 phaàn töû vaøo thanh ghi tích luyõ. Trong ñoù thanh ghi tích luyõ chæ ñeán moät vò trí trong coøn con troû DPTR chæ ñeán vò trí ñaàu baûng. MOVC A,@A+PC ; Cuõng töông töï nhö treân, chæ khaùc laø thanh ghi PC ñöôïc duøng laøm thanh ghi neàn vaø baûng ñöôïc truy xuaát thoâng qua chöông trình con. Tröôùc tieân chæ soá yeâu caàu ñöôïc naïp cho thanh ghi tích luyõ sau ñoù chöông trình con ñöôïc goïi. Vieäc khôûi ñoäng vaø goïi cuï theå nhö sau: MOV A,ENTRY_NUMBER CALL LOOK_UP
  6. . . . LOOK_UP : INC A MOVC A, @A+PC Ret TAB: DB data, data, data … Baûng ñöôïc ñaët ngay sau leänh RET cuûa chöông trình con. Leänh INC caàn thieát vì PC seõ chæ ñeán leänh RET sau khi thi haønh MOVC. Vieäc taêng thanh ghi A cho pheùp nhaûy qua khoûi leänh RET. Caùc leänh luaän lyù Caùc leänh luaän lyù cuûa 8051 thao taùc treân bit ñôn. RAM noäi cung caáp 128 bit vaø caùc thanh ghi chöùc naêng cung caáp 128 bit khaùc. Leänh truy xuaát ñeán caùc b it thoâng thöôøng nhö set, xoùa, ñaûo, AND, OR … Taát caû caùc bit ñeàu truy xuaát baèng ñònh vò tröïc tieáp vôùi caùc bit coù ñòa chæ töø 00H – 7Fh trong 128 ñòa chæ thaáp vaø 80H-FFH trong SFRs. Caùc bit trong vuøng ñòa chæ thaáp ñaït taïi 20F ñeán 2FH, ñöôïc ñaùnh soá laàn löôït töø bit 0 cuûa ñòa chæ 200H (bit 00H) ñeán bit 7 cuûa ñòa chæ 2FH (bit 7Fh). Ví duï SETB P.1.7 set bit 7 port 1 Bit carry trong PSW ñöôïc söû duïng nhö single-bit accumulator. Ví duï CLR C CLR CY ; xoùa carry Test bit Caùc leänh test bit thöôøng laø caùc leänh reõ nhaùnh chöông trình. Chuùng kieåm tra traïng thaùi caùc bit ñeå nhaûy ñeán chöông trình töông öùng neáu thoûa ñieàu kieän. Leänh reõ nhaùnh chöông trình Coù moät soá leänh ñieàu khieån doøng chöông trình, chuùng goàm caùc leänh goïi chöông trình con vaø traû veà töø moät chöông trình con hoaëc reõ nhaùnh coù ñieàu kieän vaø khoâng coù ñieàu kieän. Nhöõng khaû naêng naøy coù theå ñöôïc caûi tieán hôn nöõa khi söû duïng 3 mode ñònh vò trong caùc leänh reõ nhaùnh chöông trình. Coù 3 keänh JMP khaùc nhau:SJMP, LJMP vaø AJMP (töông öùng laø ñònh vò töông ñoái, ñònh vò xa vaø ñònh vò tuyeät ñoái). Trình bieân dòch Intel chaáp nhaän leänh chung chung JMP neáu ngöôøi laäp trình khoâng quan taâm ñeán söï thay ñoåi bieân dòch. Trong khi trình bieân dòch cuûa nhöõng haõng khaùc khoâng coù ñaëc tính naøy. JMP ñöôïc bieân dòch thaønh AJMP neáu ñích naèm ôû tröôùc vaø khoaûng nhaûy naèm trong phaïm vi 2Kbytes. Trong caùc tröôøng hôïp khaùc coù theå dòch thaønh LJMP. Leänh CALL cuõng töông töï nhö vaäy.
  7. Leänh SJMP ñònh ñòa chæ ñích nhö moät offset töông ñoái. Vì vaäy leänh naøy daøi 2 bytes. Khoaûng caùch nhaûy bò giôùi haïn töø –128 ñeán +127 bytes töông ñoái so leänh sau leänh SJMP. Leänh LJMP xaùc ñònh moät ñòa chæ ñích laø moät soá 16 bit. Vì vaäy leänh naøy daøi 3 bytes. Ñòa chæ ñích coù theå ôû baát kyø trong vuøng nhôù chöông trình 63KB. Leänh AJMP xaùc ñònh ñòa chæ ñích laø moät soá 11 bit. Gioáng nhö SJMP, leänh naøy daøi 2 bytes, nhöng ñöôïc bieân dòch khaùc. Maõ leänh chöùa 3 bit trong voøng 11 bit ñòa chuû vaø byte thöù hai chöùa 8 bit coøn laïi cuûa ñòa chæ ñích. Khi leänh ñöôïc thi haønh 11 bit naøy ñöôïc ñaët vaøo 11 bit thaáp trong thanh ghi PC vaø 5 bit cao trong thanh ghi PC khoâng ñoåi. Vì vaäy ñích phaûi naèm trong phaïm vi 2 Kbytes. Trong taát caû caùc tröôøng hôïp, ngöôøi laäp trình xaùc ñònh ñòa chæ bit baèng moät nhaõn hoaëc nhö moät soá 16 bit. Trình bieân dòch seõ ñaët ñòa chæ ñích vaøo vò trí ñuùng trong leänh ñöôïc bieân dòch. Jump Tables Leänh “JMP @ A+DPTR” cung caáp leänh nhaûy phuï thuoäc ñieàu kieän theo moät baûng nhaûy (jump tables). Ñòa chæ ñích seõ ñöôïc tính trong khi thi haønh chöông trình nhö toång cuûa DPTR vaø thanh ghi tích luyõ. Ñaàu tieân DPTR ñöôïc naïp ñòa chæ cuûa baûng vaø thanh ghi tích luyõ ñöôïc duøng laøm chæ soá. Ví duï neáu coù 5 tröôøng hôïp nhaûy, giaù trò töø 0 ñeán 4 ñöôïc naïp cho thanh ghi tích luyõ vaø leänh nhaûy töông öùng vôùi töøng tröôøng hôïp ñöôïc moâ taû nhö sau: MOV DPTR, #JUMP_TABLE ; MOV A, INDEX_NUMBER ; RL A JMP @A+DPTR Leänh RL ôû treân ñoåi chæ soá (töø 0 ñeán 4) thaønh caùc soá chaün töø 0 ñeán 8, vì moãi ñieåm xaâm nhaäp trong baûng laø moät ñòa chæ 2-byte. JNP_TABLE : AJMP CASE0 AJMP CASE1 AJMP CASE2 AJMP CASE3 Chöông trình vaø con ngaét Coù hai leänh CALL khaùc nhau: ACALL vaø LCALL duøng ñònh vò tuyeät ñoái vaø xa. Gioáng nhö leänh JMP, leänh CALL ñöoâc trình bieân dòch cuûa Intel duøng khi ngöôøi laäp trình khoâng quan taâm ñeán ñòa chæ ñöôïc bieân dòch. Leänh naøy ñaåy thanh ghi PC vaøo stack vaø naïp PC vôùi giaù trò ñöôïc chæ ra trong leänh. Löu yù PC seõ ñöôïc traû laïi giaù trò ñòa chæ sau leänh CALL khi noù chaám döùt chöông trình con. Caùc leänh LJMP vaø ACALL ñeàu coù nhöõng haïn cheá gioáng nhö LJMP vaø AJMP ñöôïc moâ taû ôû treân.
  8. Chöông trình con keát thuùc baèng leänh RET, noù seõ traû ñieàu khieån laïi cho chöông trình chính. Khoâng coù gì bí aån khi RET traû ñieàu khieån laïi cho chöông trình chính, noù chæ ñôn giaûn laáy 2 bytes cuoái cuøng cuûa stack vaø ñaët chuùng vaøo thanh ghi PC. Leänh RETI duøng ñeå quay trôû veà chöông trình chính töø trong chöông trình phuïc vuï ngaét. Söï khaùc nhau giöõa RET vaø RETI chæ laø RETI kyù hieäu cho ngaét ñieàu khieån heä thoáng. Leänh nhaûy coù ñieàu kieän 8051 cung caáp moät soá leänh nhaûy coù ñieàu kieän. Taát caû nhöõng leänh naøy ñeàu xaùc ñònh ñòa chæ ñích baèng ñònh vò töông ñoái. Giôùi haïn khoaûng caùch nhaûy töø –128 ñeán +127 bytes keå töø sau leänh nhaûy coù ñieàu kieän. Tuy nhieân ngöôøi laäp trìn h cuõng coù theå ñònh moät ñòa chæ baèng nhhaõn hoaëc moät soá 16 bit. Khoâng coù bit zero trong thanh ghi PSW. JZ vaø JNZ test noäi dung thanh ghi ACC cho ñieàu khieån nhaûy. Leänh DJNZ (nhaûy neáu khaùc 0) ñöôïc duøng ñeå ñieàu khieån voøng laëp. Ñeå voøng laäp thi haønh N laàn, naïp bieán ñeám vôùi N vaø ñaët DJNZ ôû cuoái voøng laëp ñeå baét ñaàu voøng laëp. Ví duï voøng laëp sau thi haønh 10 laàn: MOV R0,#10 ; LOOPP: (baét ñaàu voøng laëp) . . . (keát thuùc voøng laëp) DJNZ R7, LOOP ; (tieáp tuïc) Leänh CJNZ (so saùnh vaø nhaûy neáu khoâng baèng) cuõng duøng ñeå ñieàu khieån voøng laëp. Hai bytes ñöôïc xaùc ñònh trong vuøng toaùn haïng cuûa leänh vaø leänh nhaûy seõ thi haønh neáu hai bytes naøy khaùc nhau. Ví duï, neáu moät kyù töï ñöôïc ñoïc vaøo thanh ghi ACC töø coång noái tieáp vaø nhaûy ñeán nhaõn TERMINAL neáu kyù töï ñoïc vaøo laø CONTROL-C (03H) . CJNE A, #03, SKIP ; SJMP TERMINAL ; SKIP: (tieáp tuïc) Leänh jump chæ xaûy ra khi A=03H. Moät öùng duïng khaùc cuûa leänh naøy laø so saùnh lôùn hôn vaø beù hôn. Hai byte trong mieàn toaùn haïng laø nhöõng soá khoâng daáu. Neáu toaùn haïng ñaàu nhoû hôn toaùn haïng thöù hai thì côø carry ñöôïc set. Neáu toaùn haïng ñaàu lôùn hôn hoaëc baèng toaùn haïng thöù hai thì côø carry ñöôïc xoùa. Ví duï neáu muoán nhaûy ñeán BIG neáu ACC lôùn hôn hoaëc baèng 20H, ta coù caùc leänh sau:
  9. CJNE A,#20H,$+3 JNC BIG Kyù hieäu dollars “$” laø moät kyù hieäu ñaët bieät cuûa trình bieân dòch thay theá cho ñòa chæ cuûa leänh hieän thôøi. Vì CJNE laø moät leänh 3-bytes, “$+3” laø ñòa chæ cuûa leänh tieáp theo.
  10. Chöông V GIÔÙI THIEÄU VEÀ KIT VI ÑIEÀU KHIEÅN 8051 I –CHÖÙC NAÊNG CAÙC PHÍM: 1 – Baøn phím:  Kít vi ñieàu khieån coù taát caû laø 26 phím nhaán nhö hình 1 ñöôïc chia thaønh caùc nhoùm nhö sau:  16 phím nhaäp döõ lieäu cuûa chöông trình daïng soá thaäp luïc phaân töø 0 ñeán F.  Caùc phím chöùc naêng Hình 1 Q GT P KI CDE F R 8 9 AB S 4 5 6 7 0 1 2 3 2 – Chöùc naêng cuûa phím: Q  Khi môùi caáp ñieän cho maùy 4 Led beân traùi seõ hieån thò 4 soá 0000, boán led beân phaûi taét  Neáu khoâng hieån thò ñuùng haõy nhaán phím “Q”. Phím “Q” coù chöùc naêng Reset maïch khi khôûi ñoäng hoaëc khi muoán thoaùt khoûi chöông trình vi ñieàu khieån ñang thöïc hieän (chöùc naêng nhö phím RESET cuûa maùy vi tính) S 3 – Chöùc naêng cuûa phím:  Muoán nhaäp döõ lieäu môùi vaøo oâ nhôù coù ñòa chæ ví duï 4000, haõy duøng caùc phím nhaäp döõ lieäu ñaùnh soá 4000, ñòa chæ naøy seõ xuaát hieän ôû 4 led beân phaûi.  Nhaán phím “S” thì ñòa chæ 4000 seõ thay theá cho ñòa chæ tröôùc ñoù ôû 4 led beân traùi.  4 led coøn laïi chæ coù 2 led saùng ñoù chính laø noäi dung cuûa oâ nhôù töông öùng vôùi ñòa chæ 4 led beân traùi  4 – Chöùc naêng cuûa phím:  Duøng ñeå löu tröõ döõ lieäu vaøo oâ nhôù coù ñòa chæ ôû 4 led beân traùi, ví duï muoán löu tröõ döõ lieäu laø “3F” vaøo oâ nhôù coù ñòa chæ laø 4000, haõy
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2