intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Quá trình vận dụng hệ thống biến đổi nguồn trong xử lý hệ thống hạ tầng băng thông p5

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

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

Thanh ghi B Thanh ghi B có địa chỉ F0h, chủ yếu dùng với thanh ghi ACC trong các phép toán nhân và chia. Lệnh MUL AB nhân các số 8 bit không dấu trong thanh ghi A và B. Kết quả là một số 16 bit chứa trong thanh ghi ACC (byte thấp) và B (byte cao). Lệnh DIV B chia thanh ghi ACC cho B. Kết quả thương số được lưu trong thanh ghi ACC số dư được lưu trong thanh ghi B.

Chủ đề:
Lưu

Nội dung Text: Quá trình vận dụng hệ thống biến đổi nguồn trong xử lý hệ thống hạ tầng băng thông p5

  1. luoân laø moät chaün. Ví duï neáu ACC chöùa 10101101B, P seõ laø 1. Bit Parity thöôøng ñöôïc lieân keát vôùi chöông trình truyeàn noái tieáp coù söû duïng parity.  Thanh ghi B Thanh ghi B coù ñòa chæ F0h, chuû yeáu duøng vôùi thanh ghi ACC trong caùc pheùp toaùn nhaân vaø chia. Leänh MUL AB nhaân caùc soá 8 bit khoâng daáu trong thanh ghi A vaø B. Keát quaû laø moät soá 16 bit chöùa trong thanh ghi ACC (byte thaáp) vaø B (byte cao). Leänh DIV B chia thanh ghi ACC cho B. Keát quaû thöông soá ñöôïc löu trong thanh ghi ACC soá dö ñöôïc löu trong thanh ghi B. Thanh ghi B cuõng ñöôïc duøng nhö nhöõng thanh ghi khaùc vaø coù theå truy xuaát bit (ñòa chæ F0h ñeán F7h)  Con troû ngaên choàng (stack pointer – SP) Stack – pointer laø moät thanh ghi 8 bit coù ñòa chæ 81H. Noù chöùa ñòa chæ hieän thôøi cuûa ñænh stack. Khi ñaåy döõ lieäu vaøo stack, SP taêng leân moät giaù trò, tieáp theo döõ lieäu ñöôïc ghi vaøo stack. Khi laáy döõ lieäu ra khoûi stack, döõ lieäu ñöôïc ñoïc ra tröôùc sau ñoù SP ñöôïc giaûm. Stack cuûa 8051 naèm trong vuøng RAM noäi vaø coù theå truy xuaát baèng ñòa chæ tröïc tieáp. 128 bytes ñaàu tieân ñoái vôùi 8051/8031 vaø 256 bytes ñoái vôùi 8052/8032 trong vuøng RAM noäi coù theå duøng laøm stack. Ñeå taïo ra stack baét ñaàu taïi 60H, ta khôûi ñoäng thanh ghi SP: MOV SP, #5FH ; Nhö vaäy stack ñöôïc giôùi haïn trong 32 bytes. Ta duøng giaù trò 5FH vì SP seõ taêng leân 60H tröôùc khi ñaåy döõ lieäu ñaàu tieân vaøo stack. Khi laäp trình ta khoâng caàn phaûi khôûi ñoäng laïi thanh ghi SP vì noù ñaõ ñöôïc khôûi ñoäng vôùi giaù trò khi reset. Thanh ghi SP chöùa giaù trò maëc ñònh laø 07H. Do ñoù stack maëc ñònh baét ñaàu taïi 08H. Neáu trình khoâng khôûi ñoäng laïi stack thì caùc thanh ghi 1, 2, 3 khoâng theå söû duïng vì noù ñöôïc duøng laøm stack. Stack ñöôïc truy xuaát moät caùch roõ raøng baèng caùc leänh PUSH, POP ñeå löu tröõ taïm thôøi hay truy xuaát döõ lieäu. Noù cuõng coù theå ñöôïc truy xuaát ngaàm khi coù caùc leänh goïi ñeán chöông trình con. Caùc leänh ACALL, LCALL hay ngaét seõ ñaåy thanh ghi ñeám chöông trình (PC) vaøo stack. Leänh RET, RETI traû giaù trò trong stack laïi cho PC.  Con troû döõ lieäu (DPTR) Con troû döõ lieäu duøng ñeå truy xuaát maõ hay döõ lieäu töø boä nhôù ngoaøi vaø thanh ghi 16 bit. Thanh ghi naøy goàm hai thanh ghi DPL (byte thaáp, ñòa chæ 82H) vaø DPH (byte cao, ñòa chæ 83H). Ba leänh sau ñaây seõ ghi giaù trò 55H vaøo RAM ngoaøi taïi ñòa chæ 1000H. MOV A, #55H; MOV DPTR, #1000H; MOV @DPTR, A;  Caùc thanh ghi Port:
  2. Caùc port cuûa 8051 goàm coù port 0 ñòa chæ 80H, p ort 1 ñòa chæ 90H, port 2 ñòa chæ A0H, port 3 ñòa chæ B0H. Caùc port 0, 2 vaø 3 khoâng ñöôïc duøng ñeå xuaát nhaäp neáu ñang söû duïng boä nhôù ngoaøi. Coøn laïi port 1 coù theå duøng ñeå xuaát nhaäp (I/O). Taát caû caùc port ñeàu coù theå duøng truy xuaát bit. Ñieàu naøy cung caáp cho vi ñieàu khieån khaû naêng giao tieáp raát maïnh. Ta coù theå duøng chaân P1.7 ñeå ñoùng môû ñoäng cô. Chaân P1.7 noái vôùi transitor ñeå laùi moät relay ñoùng môû ñoäng cô. Leänh SETB P1.7 môû ñoäng cô. Leänh CLR P1.7 taét ñoäng cô. Hai leänh treân duøng toaùn töû daáu chaám ñeå xaùc ñònh ñòa chæ bit trong moät byte.  Caùc thanh ghi boä ñònh thôøi: 8051 coù hai boä ñònh thôøi 16 bit. Timer 0 coù ñòa chæ 8AH (TL0 byte thaáp) vaø 8DH (TH1 byte cao). Ngoaøi boä ñònh thôøi coøn coù hai thanh ghi: thanh ghi ñieàu khieån TCON ñòa chæ 88H vaø thanh ghi xaùc ñònh mode cho timer TMOD ñòa chæ 89H. Trong ñoù chæ coù thanh ghi TCON truy xuaát ñöôïc töøng bit.  Caùc thanh ghi coång noái tieáp: 8051 chöùa coång noái tieáp beân trong MCU ñeå giao tieáp vôùi caùc thieát bò noái tieáp nhö thieát bò ñaàu cuoái, modem v.v… Coång noái tieáp goàm coù hai thanh ghi: moät thanh ghi ñeäm SBUF laø naïp döõ lieäu ñeå truyeàn ñi. Ñoïc SBUF laø nhaän döõ lieäu ñaõ thu ñöôïc vaøo. Caùc mode truyeàn coù theå ñöôïc laäp trình thoâng qua thanh ghi ñieàu khieån coång keá tieáp. Thanh ghi naøy coù theå truy xuaát bit vaø coù ñòa chæ 98H.
  3.  Caùc thanh ghi ngaét: 8051 coù 5 nguoàn ngaét vaø hai möùc öu tieân. Caùc ngaét bò caám khi reset heä thoáng. Caùc ngaét ñöôïc cho pheùp thoâng qua thanh ghi IE coù ñòa chæ 0AH. Caùc möùc öu tieân cuõng ñöôïc set bôûi thanh ghi IP taïi ñòa chæ B8H. Caû hai thanh ghi naøy ñeàu coù theå truy xuaát bit. IE coù ñòa chæ A8H. Ngaét chæ ñöôïc chaáp nhaän khi thanh ghi naøy ñaõ ñöôïc laäp trình.  Thanh ghi PCON (Power Control Register) Thanh ghi PCON coù ñòa chæ 87H, chöùa caùc bits ñieàu khieån linh tinh, ñöôïc toùm taét trong baûng 4.4. Bit SMOD nhaân ñoâi toác ñoä truyeàn noái tieáp ôû caùc mode 1, 2 vaø 3. Caùc bit 4, 5, 6 khoâng ñöôïc ñònh nghóa. Bit 3 vaø 2 laø hai côø ñöôïc tuøy yù trong laäp trình öùng duïng. Caùc bit PD (power down) vaø IDL (idle) ñeàu coù trong caùc hoï IC MCS-51 nhöng chæ vôùi IC duøng CMOS maø thoâi. Leänh set bit IDL laø leänh ñöôïc thi haønh cuoái cuøng tröôùc khi CPU vaøo cheá ñoä idle. ÔÛ tín hieäu naøy cheá ñoä xung clock ñöôïc ngaét ra khoûi CPU, nhöng khoâng ngaét ra khoûi ngaét quaõng, timer vaø coång noái tieáp. Traïng thaùi CPU vaø noäi dung caùc thanh ghi ñöôïc baûo toaøn. Caùc chaân cuûa coång song song ñöôïc giöõ ôû möùc traïng thaùi cuûa chuùng. ALE vaø PSEN ôû möùc cao. Caùc cheá ñoä idle keát thuùc khi coù baát kyø moät ngaét naøo hoaëc reset heä thoáng, ñoàng thôøi bit IDL bò xoùa. + Power down Mode K Moâ taû it yù hieäu S Toác ñoä keùp; khi ñöôïc set, toác ñoä truyeàn noái tieáp OMD ñöôïc nhaân ñoâi caùc cheá ñoä 1,2,3. Khoâng ñöôïc ñònh nghóa “nt” “nt” Côø duøng cho muïc ñích toång quaùt 1 G Côø duøng cho muïc ñích toång quaùt 2 F1 Power down, set mode power down. Chæ thoaùt khi G reset F0 Idle mode, set mode idle. Thoaùt khi coù ngaét hoaëc P reset D I DL
  4. Baûng 4.4 Toùm taét thanh ghi PCON Leänh set bit PD laø leänh cuoái cuøng tröôùc khi CPU chuyeån sang mode power down. ÔÛ cheá ñoä naøy: (1) boä dao ñoäng noäi ngöng hoaït ñoäng, (2) caùc chöùc naêng bò döøng, (3) noäi dung RAM noäi ñöôïc giöõ ôû möùc logic cuûa chuùn, (5) ALE vaø PSEN ôû möùc thaáp. Chæ coù theå thoaùt khoûi cheá ñoä naøy khi reset heä thoáng. Khi ôû cheá ñoä power down, Vcc coù theå giaûm ñeán 2V. Löu yù caàn phaûi traû laïi möùc aùp 5V cho Vcc khi thoaùt khoûi cheá ñoä power down. VI – BOÄ NHÔÙ NGOAØI Môû roäng boä nhôù laø moät khaû naêng quan troïng ñoái vôùi vi ñieàu khieån nhaèm traùnh gaëp beá taéc trong vaán ñeà thieát keá. Hoï MCs-51 coù theå môû roäng 64Kbs vaø boä nhôù maõ leänh 64Kbs döõ lieäu. Caùc IC giao tieáp ngoaïi vi cuõng coù theå theâm vaøo ñeå taêng naêng xuaát nhaäp. Noù trôû thaønh moät phaàn cuûa boä döõ lieäu ngoaïi vaø ñöôïc giaûi maõ I/O nhö boä nhôù. Khi boä nhôù ngoaøi ñöôïc söû duïng, port 0 khoâng ñöôïc duøng laøm coång xuaát nhaäp. Noù trôû thaønh bus duøng ñeå phaân keânh ñòa chæ vaø döõ lieäu, ALE choát noù nhö laø bytes thaáp cuûa bus ñòa chæ khi baét ñaàu moãi chu kyø truy xuaát boä nhôù ngoaøi. Port 2 thöôøng duøng laøm byte cao cuûa bus ñòa chæ. Chu kyø boä nhôù A0  A15 Ñòa chæ D0  D7 Döõ lieäu (a) Khoâng phaân keânh (24 chaân) Chu kyø boä nhôù AD8  AD15 Ñòa chæ
  5. AD0  AD7 Ñòa chæ Döõ lieäu (b) Phaân keânh (16 chaân) Hình 4.5 Phaân keânh bus ñòa chæ vaø bus döõ lieäu Hình treân moâ taû vieäc phaân keânh vaø khoâng phaân keânh bus ñòa chæ vaø bus döõ lieäu. Neáu khoâng phaân keânh, vôùi 16 chaân ñòa chæ vaø 8 chaân döõ lieäu ta coù 24 chaân cho bus ñòa chæ vaø bus döõ lieäu. Trong khi ñoù neáu phaân keânh, 8 chaân döõ lieäu ñöôïc duøng chung vôùi 8 chaân thuoäc byte thaáp cuûa bus ñòa chæ neân chæ coù 16 chaân cho bus ñòa chæ vaø bus döõ lieäu. Ñieàu naøy coù yù nghóa lôùn trong vieäc cheá taïo IC. Thöù töï phaân keânh nhö sau : ôû nöõa chu kyø ñaàu, byte thaáp cuûa ñòa chæ xuaát ra port 0 vaø ñöôïc choát baèng ALE. Byte naøy ñöôïc choát ôû boä choát trong suoát chu kyø boä nhôù. Trong nöõa chu kyø tieáp theo port 0 laø bus döõ lieäu, coù theå xuaát nhaäp tuøy yù. Truy xuaát boä nhôù maõ leänh ngoaøi (External Code memory): Boä nhôù maõ ngoaøi ñöôïc ñoïc baèng tín hieäu PSEN (hình 4.6). Trong moät chu kyø maùy ALE taùc ñoäng 2 laàn vaø 2 bytes ñöôïc ñoïc töø boä nhôù chöông trình. Giaûn ñoà thôøi gian cuûa hoaït ñoäng naøy ñöôïc goïi laø chu kyø laáy leänh (hình 4.7). Truy xuaát boä nhôù döõ lieäu ngoaøi (External Code memory): Ñaây laø boä nhôù chöùa döõ lieäu, thöôøng laø RAM vaø ñöôïc truy xuaát bôûi tín hieäu RD vaø WR. Döõ lieäu naøy chæ ñöôïc truy xuaát baèng leänh MOVX thoâng qua thanh ghi con troû döõ lieäu DPTR, hoaëc R0, R1. RAM giao tieáp vôùi 8051 gioáng nhö EPROM. Ngoaïi tröø chaân RD ñöôïc noái vôùi chaân OE vaø chaân WR ñöôïc noái vôùi chaân W. Coøn laïi caùc bus döõ lieäu vaø ñòa chæ noái nhö EPROM. Vôùi 16 ñöôøng ñòa chæ ta coù theå coù ñeán 64Kbs cho vuøng nhôù döõ lieäu. Giaûn ñoà thôøi gian cuûa vieâc ñoïc vuøng nhoù döõ lieäu ngoaøi khi thi haønh leänh “MOV A,@DPRT” ñöôïc cho ôû hình 4.8. Löu yù chæ coù chaân RD ñöôïc duøng cho pheùp RAM. Giaûn ñoà thôøi gian cuûa vieäc ghi cuõng töông töï töø ñöôøng WR xuoáng möùc thaáp vaø döõ lieäu xuaát ra port 0. Port 2 coù theå khoâng duøng laøm byte cao cuûa bus ñòa chæ trong heä thoáng khoâng söû duïng vuøng nhôù maõ ngoaøi maø söû duïng vuøng nhôù döõ lieäu ngoaøi nhoû. Taùm bit ñòa chæ coù theå truy xuaát ñöôïc moät vuøng nhôù 256 bytes, ñöôïc goïi laø moät trang boä nhôù. Neáu vuøng nhôù naøy lôùn hôn 256 bytes ta coù theå duøng theâm moät vaøi chaân cuûa port 2 ñeå choïn trang.
  6. Khi truy xuaát moät trang (256 bytes) cuûa vuøng döõ lieäu ngoaøi ta coù theå duøng R0 hoaëc R1 ñeå laøm con troû ñòa chæ troû ñeán byte döõ lieäu caàn truy xuaát. Ví duï nhöõng leänh ñoïc noäi dung cuûa RAM ngoaøi coù ñòa chæ 0050H vaøo thanh tích luõy. MOV R0, #50H ; MOV A, @R0 ; Giaûi maõ ñòa chæ: Neáu 8051 söû duïng caû EPROM vaø RAM ngoaøi ñoøi hoûi phaûi giaûi maõ ñòa chæ. Vieäc giaûi maõ ñòa chæ raát quen thuoäc ñoái vôùi haàu heát vi xöû lyù. Ví duï neáu duøng EPROM 8K vaø RAM 8K, bus ñòa chæ giaûi maõ ñeå choïn IC giôùi haïn trong 8Kbytes: 0000H ñeán 1FFFH, vaø 2000H ñeán 3FFFH, v.v… Thoâng thöôøng ta duøng IC giaûi maõ 74138 vôùi ngoõ vaøo laø 3 bits cao nhaát cuûa bus ñòa chæ. Do ñoù moãi ngoõ töông öùng vôùi 8Kbs. Caùc ngoõ ra naøy ñöa vaøo caùc chaân CS cuûa caùc IC nhôù. Löu yù söï phaân chia tín hieäu cho pheùp xuaát cuûa EPROM vaø RAM khaùc nhau (RD cho RAM vaø PSEN cho EPROM). 8051 coù theå coù ñeán 64Kbytes cho moãi vuøng ROM vaø RAM.
  7. Hình 4.8: Giaûn ñoà thôøi gian khi ñoïc döõ lieäu töø boä nhôù ngoaøi
  8. Söï choàng laép cuûa vuøng maõ leänh vaø döõ lieäu ngoaøi: Vì boä nhôù maõ leänh chæ ñöôïc ñoïc neân seõ baát tieän trong vieäc phaùt trieån phaàn meàm. Laøm theá naøo ñeå söûa loãi cuûa chöông trình naèm trong kit khi boä nhôù maõ leänh chæ coù theå ñoïc. Bieän phaùp thöôøng ñöôïc söû duïng ôû ñaây laø choàng laép hai vuøng maõ leänh vaø döõ lieäu leân nhau. Tín hieäu PSEN duøng ñeå ñoïc maõ leänh vaø tín hieäu RD duøng ñeå ñoïc döõ lieäu trong cuøng moät boä nhôù. RAM chöùa caû chöông trình vaø döõ lieäu. Hai tín hieäu RD vaø PSEN ñöôïc ñöa vaøo coång AND. Ngoõ ra cuûa coång AND noái vôùi chaân OE cuûa RAM. Maïch ôû hình 4.9 cho pheùp ghi döõ lieäu vaøo RAM. Vì vaäy chöông trình coù theå ñöôïc load vaøo RAM (baèng caùch ghi döõ lieäu vaøo RAM) vaø thi haønh (baèng caùch truy xuaát nhö boä nhôù maõ leänh). RAM W WR RD OE PSEN Hình 4.9 Maïch taïo neân söï choàng laép hai vuøng nhôù VII – HOAÏT ÑOÄNG RESET 8051 ñöôïc reset khi giöõ chaân RST ôû möùc cao ít nhaát trong hai chu kyø maùy vaø sau ñoù traû veà möùc thaáp. RST coù theå ñöôïc noái vôùi switch hoaëc maïng tuï, trôû ñeå taïo tính reset. Traïng thaùi cuûa taát caû thanh ghi sau khi reset heä thoáng toùm taét trong baûng 4.5. Thanh ghi ñeám chöông trình ñöôïc naïp giaù trò 0000H sau khi reset. Khi RST xuoáng möùc thaáp chöông trình luoân baét ñaàu taïi ñieåm 0000H. Noäi dung caùc thanh ghi trong RAM noäi khoâng bò aûnh höôûng bôûi hoaït ñoäng reset.
  9. Thanh ghi Noäi dung PC 0000H ACC 00H B 00H PSW 00H SP 07H DPTR 0000H PORT 0..3 FFH IP XXX00000B IE 0XX00000B Timer registers 00H SCON 00H SBUF 00H PCON (HMOS) 0XXXXXXXB PCON (CMOS) 0XXX0000B Baûng 4.5 Giaù trò caùc thanh sau khi reset heä thoáng
  10. Chöông IV TOÙM TAÉT TAÄP LEÄNH I – GIÔÙI THIEÄU: Chöông trình ñöôïc xaây döïng neân töø taäp leänh, tuaân theo cuù phaùp vaø caáu truùc logic. Moät hoï vi xöû lyù luoân ñi keøm theo taäp leänh cuûa noù. Chöông naøy gôùi thieäu taäp leänh cuûa hoï MCs-51, vieäc ñònh vò vaø moät vaøi ví duï veà caùc tình huoáng gaëp phaûi khi laäp trình. Chöông naøy khoâng baøn veà kyõ thuaät laäp trình cuõng nhö veà trình bieân dòch. Taäp leänh hoï vi ñieàu khieån MCx-51 toái öu cho caùc ñieàu khieån öùng duïng 8 bit. Noù cung caáp caùc caùch ñònh vò nhanh, goïn thuaän tieän cho vieäc truy xuaát döõ lieäu 8 bit trong vuøng RAM noäi. Taäp leänh cuõng ñöa ra moät soá leänh thao taùc treân bit thuaän tieän cho vieäc ñieàu khieån vaø caùc heä thoáng logic coù yeâu caàu xöû lyù luaän lyù. Laø moät xöû lyù 8 bit, caùc leänh cuûa 8051 laø maõ 8 bit. Do ñoù taäp leänh coù toái ña 256 leänh. Trong ñoù 255 leänh ñöôïc ñònh nghóa. Trong moät leänh, ngoaøi maõ leänh (1 byte) ra coøn coù theå coù döõ lieäu vaø ñòa chæ. Trong taäp leänh 8051 coù 139 leänh 1 byte, 92 leänh 2 byte vaø 24 leänh 3 byte. Phaàn phuï luïc seõ moâ taû ñaày ñuû veà moãi maõ, veà maõ gôïi nhôù, soá byte leänh, soá chu kyø haønh leänh. II – CAÙC MODE ÑÒNH VÒ (ADDRESSING MODE) Khi leänh thao taùc treân döõ lieäu, moät caâu hoûi ñöôïc ñaët ra laø “döõ lieäu ôû ñaâu?”. Ñeå traû lôøi caâu hoûi naøy ta xem xeùt qua caùc mode ñònh vò cuûa 8051. Ñònh vò döõ lieäu laø moät phaàn quan troïng trong taäp leänh. Chuùng xaùc ñònh döõ lieäu nguoàn vaø ñích theo nhöõng caùch khaùc nhau tuøy theo caùch laäp trình. Trong phaàn naøy ta seõ lhaûo saùt kyõ töøng mode ñònh vò vaø cho moãi loaïi moät ví duï. Coù 8 mode ñònh vò:  Thanh ghi  Tröïc tieáp  Giaùn tieáp  Töùc thôøi (Immediate)  Töông ñoái  Xa  Chæ soá Ñònh vò baèng thanh ghi: Ngöôøi laâp trình truy xuaát döõ lieäu chöùa trong caùc thanh ghi töø R0 ñeán R7 thoâng qua teân goïi cuûa chuùng. Ñòa chæ cuûa 8 thanh ghi naøy ñöôïc giaûi maõ thoâng qua bit thaáp nhaát cuûa chuùng. Do ñoù maõ leänh vaø toaùn haïng ñòa chæ ñöôïc gom chung vaøo 1 byte. Opcode 5-bit n n n
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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