Đăng ký Đăng nhập

Tài liệu Bài giảng lý thuyết mạch

.PDF
71
252
71

Mô tả:

Trang 1 Âäö aïn täút nghiãûp CHÖÔNG 1: TOÅNG QUAN. 1.1. GIÔÙI THIEÄU: Ngaøy nay vôùi söï phaùt trieån cuûa khoa hoïc kyõ thuaät, ñaëc bieät trong ngaønh ñieän töû vôùi nhöõng böôùc tieán vöôït baäc veà lónh vöïc vi xöû lyù vaø caùc vi maïch soá... ñaõ thöïc söï mang laïi nhöõng hieäu quûa chính xaùc vaø goïn nheï trong quaù trình ñieàu khieån, saûn xuaát. Do ñoù vieäc cheá taïo robot ñeå phuïc vuï cho con ngöôøi trong lónh vöïc saûn xuaát ñoái vôùi chuùng ta khoâng coøn laø vaán ñeà quaù xa vôøi. Taäp ñoà aùn naøy trình baøy nhöõng nghieân cöùu vaø thieát keá moät chieác xe ñöôïc ñieàu khieån bôûi chip vi ñieàu khieån 8051 ñeå coù theå di chuyeån trong caùc nhaø xöôûng, xí nghieäp vaø thöïc hieän moät coâng vieäc naøo ñoù thay cho con ngöôøi. 1.2. GIÔÙI HAÏN ÑEÀ TAØI : Vôùi thôøi gian thöïc hieän ñeà taøi, cuõng nhö trình ñoä chuyeân moân coù haïn, em ñaõ coá gaéng heát söùc ñeå hoaøn thaønh taäp luaän vaên naøy, nhöng chæ giaûi quyeát ñöôïc nhöõng vaán ñeà sau : - Xe di chuyeån theo nhöõng loä trình ñònh tröôùc baèng caùch keõ saün nhöõng ñöôøng vaïch saùng döôùi saøn coù maøu toái. - Xe hoaït ñoäng trong khoaûng thôøi gian töø 0 ñeán 99 phuùt. - Taïi moãi ñieåm döøng xe chæ baät ñeøn baùo hieäu thay vì phaûi laøm moät coâng vieäc töông öùng. 1.3. MUÏC ÑÍCH NGHIEÂN CÖÙU : Muïc ñích tröôùc heát khi thöïc hieän ñeà taøi naøy laø ñeå hoaøn taát chöông trình moân hoïc ñeå ñuû ñieàu kieän ra tröôøng . Cuï theå khi nghieân cöùu thöïc hieän ñeà taøi laø chuùng em muoán phaùt huy nhöõng thaønh quaû öùng duïng cuûa vi ñieàu khieån nhaèm taïo ra nhöõng saûn phaåm, thieát bò tieân tieán vaø ñaït hieäu quaû cao trong saûn xuaát. Ngoaøi ra quaù trình nghieân cöùu thöïc hieän ñeà taøi laø moät cô hoäi ñeå chuùng em töï kieåm tra laïi nhöõng kieán thöùc ñaõ ñöôïc hoïc ôû tröôøng, ñoàng thôøi phaùt huy tính saùng taïo, khaû naêng giaûi quyeát moät vaán ñeà theo yeâu caàu ñaët ra. Vaø ñaây cuõng laø dòp ñeå chuùng em töï khaúng ñònh mình tröôùc khi ra tröôøng ñeå tham gia vaøo caùc hoaït ñoäng saûn xuaát cuûa xaõ hoäi. G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Trang 2 Âäö aïn täút nghiãûp 1.4. KHAÙI QUAÙT VEÀ ÑEÀ TAØI: 1.4.1. Baøn phím vaø boä phaän hieån thò: LED 1 LED 2 1 Go/Stop 2 Hình 1.1: Moâ taû baøn phím vaø boä phaän hieån thò. Boä phaän hieån thò goàm hai led 7 ñoaïn, hieån thò tín hieäu stop/saün saøng nhaän döõ lieäu vaø thôøi gian maø xe phaûi vaän haønh trong suoát quaù trình vaän haønh cuûa noù. Baøn phím goàm coù ba phím: phím 1 vaø 2 duøng ñeå nhaäp thôøi gian vaän haønh cuûa xe, thôøi gian ñöôïc nhaäp baèng caùch aán phím 1 ñeå nhaäp chöõ soá haøng chuïc, phím 2 ñeå nhaäp chöõ soá haøng ñôn vò, töông öùng vôùi moãi laàn aán phím 1 (hoaëc 2) chöõ soá haøng chuïc (hoaëc haøng ñôn vò) seõ taêng leân 1; phím Go/Stop ñöôïc duøng ñeå kích khôûi xe hoaït ñoäng hoaëc ngöøng hoaït ñoäng cuûa xe khi noù ñang chuyeån ñoäng. 1.4.2. Quaù trình vaän haønh cuûa xe: Xe seõ di chuyeån theo loä trình ñònh saün trong khoaûng thôøi gian nhaát ñònh baèng caùch doø nhöõng ñöôøng vaïch traéng ñöôïc keû saün treân saøn coù maøu toái nhôø boä phaän caûm bieán ñaët döôùi xe, thôøi gian vaän haønh cuûa xe ñöôïc nhaäp vaøo töø baøn phím vaø ñöôïc löu vaøo moät byte döõ lieäu. Quaù trình hoaït ñoäâng cuûa xe ñöôïc moâ taû nhö hình sau: 2 1 4 3 5 6 1 2 3 4,5 6 7 : : : : : : 7 Xe. Baùnh xe ñöôïc keùo bôûi motor 2. Baùnh xe ñöôïc keùo bôûi motor 3. Boä phaän caûm bieán ñaët döôùi xe. Vaïch maøu traéng ñöôïc keû saün döôùi saøn coù maøu toái. Tín hieäu döøng xe treân ñöôøng di chuyeån. G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Trang 3 Âäö aïn täút nghiãûp Hình 1.2: Moâ taû quaù trình chuyeån ñoäng cuûa xe. Nguyeân lyù hoaït ñoäng cuûa xe: Sau khi thôøi gian vaän haønh (tính baèng phuùt) ñöôïc nhaäp vaøo töø baøn phím, ñeå kích khôûi cho xe hoaït ñoäng ta aán phím Go/Stop. Luùc naøy , b it traïn g th aùi “R u n ” ñöôïc thieát laäp, 8051 seõ ñoïc byte döõ lieäu coù chöùa thôøi gian vaän haønh ñeå bieát thôøi gian hoaït ñoäng cuûa xe, sau ñoù ñieàu khieån hai motor keùo hai baùnh xe (2) vaø (3) ôû hai beân thaønh xe quay, xe seõ di chuyeån veà phía tröôùc. Ñoàng thôøi boä phaän caûm bieán (4) vaø (5) ôû döôùi xe cuõng hoaït ñoäng. Giaû söû xe chaïy leäch khoûi vaïch traéng vaø boä phaän caûm bieán (4) ñang ôû phía treân vaïch traéng thì boä phaän caûm bieán naøy seõ gôûi tín hieäu thoâng baùo veà cho chip 8051, ñeå töø ñoù ñieàu khieån cho motor keùo baùnh xe (3) quay voùi toác ñoä nhanh hôn ñoàng thôøi giaûm toác ñoä quay cuûa baùnh xe (2) nhaèm laøm cho xe tieáp tuïc chuyeån ñoäng ñuùng höôùng doïc theo vaïch traéng ñaõ keû döôùi saøn. Nhôø ñaëc tính naøy maø ta coù theå cho xe chuyeån ñoäng thaúng, quay phaûi hay traùi tuyø yù baèng caùch keû leân saøn nhöõng ñöôøng vaïch traéng theo loä trình ñònh tröôùc. Ñoàng thôøi trong quaù trình chuyeån ñoäng cuûa xe, boä hieån thò led 7 ñoaïn seõ hieån thò thôøi gian coøn laïi maø xe phaûi hoaït ñoäng theo töøng phuùt cho ñeán khi heát thôøi gian thì hieån thò tín hieäu stop vaø saün saøng ñeå nhaän döõ lieäu cho quaù trình vaân haønh tieáp theo. Trong quaù trình vaän haønh cuûa xe, neáu gaëp phaûi tín hieäu döøng treân ñöôøng ñi, tín hieäu naøy laø moät vaïch traéng ñöôïc keõ döôùi saøn, thì xe seõ döøng laïi trong moät khoaûng thôøi gian ñoàng thôøi baät ñeøn baùo hieäu, öùng vôùi coâng vieäc maø xe phaûi laøm taïi moãi ñieåm döøng, sau ñoù vöôït qua tín hieäu döøng naøy vaø tieáp tuïc di chuyeån nhö treân. Ngoaøi ra, neáu xe ñang hoaït ñoäng maø ta aán nuùt Go/Stop thì xe seõ döøng laïi vaø boä hieån thò tín hieäu stop. Trong quaù trình thieát keá vaø thi coâng maïch coù söû duïng moät soá vi maïch nhö: chip vi ñieàu khieån 8051, 8255A, EPROM 2764, RAM 6264, 74LS138, MAX232 ... Caùc vi maïch naøy seõ ñöôïc khaûo saùt roõ trong caùc chöông keá tieáp. G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Trang 4 Âäö aïn täút nghiãûp CHÖÔNG 2: TOÅNG QUAN VEÀ HOÏ VI ÑIEÀU KHIEÅN MCS-51. 2.1. CAÁU TAÏO VI ÑIEÀU KHIEÅN 8051: 2.1.1. Giôùi thieäu hoï MSC-51: MCS-51 laø hoï vi ñieàu khieån cuûa haõng Intel. Caùc IC tieâu bieåu cho hoï MSC51 laø chip 8051, laø maïch tích hôïp treân moät chip coù theå laäp trình ñöôïc, duøng ñeå ñieàu khieån hoaït ñoäng cuûa heä thoáng. Theo caùc leänh cuûa ngöôøi laäp trình, boä vi ñieàu khieån tieán haønh ñoïc, löu tröõ thoâng tin, xöû lyù thoâng tin, ño thôøi gian vaø tieán haønh ñoùng môû moät cô caáu naøo ñoù. Ñaëc ñieåm vaø chöùc naêng hoaït ñoäng cuûa caùc IC hoï MSC-51 hoaøn toaøn töông töï nhö nhau. ÔÛ ñaây giôùi thieäu chip 8051 coù caùc ñaëc tröng ñöôïc toùm taét nhö sau: - 4 kbyte ROM. - 128 byte RAM. - 4 port xuaát nhaäp (I/0 port) 8-bit. - Hai boä ñònh thôøi 16 bit. - Maïch giao tieáp noái tieáp. - 64KB khoâng gian boä nhôù chöông trình môû roäng - 64 KB khoâng gian boä nhôù döõ lieäu môû roäng - Moät boä xöû lí bit (thao taùc treân caùc bit ñôn) - 210 vò trí nhôù ñöôïc ñònh ñòa chæ, moãi vò trí 1 bit. - Nhaân / chia trong 4s. Cuøng hoï vôùi 8051 coù moät soá vi ñieàu khieån khaùc. Veà cô baûn chuùng ñeàu gioáng nhau, chuùng chæ khaùc nhau ôû vuøng nhôù noäi bao goàm vuøng nhôù maõ leänh, vuøng nhôù döõ lieäu vaø soá boä ñònh thôøi. Söï khaùc nhau ñoù ñöôïc moâ taû baèng baûng sau ñaây: Vi ñieàu khieån Vuøng maõ leänh noäi Vuøng döõ lieäu noäi Soá boä ñònh thôøi 8051 4K ROM 128 bytes 2 8031 0K 128 bytes 2 8751 4K EPROM 128 bytes 2 8052 8K ROM 256 bytes 3 8032 0K 256 bytes 3 8732 4K EPROM 256 bytes 3 8752 8K EPROM 256 bytes 3 Baûng 2.1: So saùnh caùc IC cuûa hoï Msc-51. G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Trang 5 Âäö aïn täút nghiãûp 2.1.1. Caáu truùc beân trong vaø sô ñoà chaân cuûa 8051: a. Caáu truùc beân trong: INT1* INT0* TIMER 2 TIMER 1 TIMER 0 PORT noái tieáp Ñieàu khieån ngaét T2E X* ROM 128 bytes RAM 0K-8031/8032 4K-8051 8032/ 8052 8K-8052 128 byte RAM Caùc thanh ghi khaùc Timer 2 T2* 8032/ 8052 Timer 1 T1* Timer 0 T0* CPU Maïch dao ñoäng Ñieàu khieån bus EA RST Caùc port I/O ALE PSEN P0 P1 P2 P3 Port noái tieáp TXD* RXD* } Ñòa chæ/döõ lieäu *Alternate pin assignmentsfor P1 and P3 Hình 2.1 : Sô ñoà khoái cuûa chip 8051. G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Trang 6 Âäö aïn täút nghiãûp b. Sô ñoà chaân 8051: 30p 40 19 12MHz 30p RD\ WR\ T1 T0 INT1 INT0 TXD RXD 18 Vcc Po.7 Po.6 XTAL1 Po.5 XTAL2 Po.4 Po.3 Po.2 Po.1 8051 Po.0 29 PSEN 30 ALE 31 EA 9 RST 17 16 15 14 13 12 11 10 Vss 32 33 34 35 36 37 38 39 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 8 7 6 5 4 3 2 1 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 28 27 26 25 24 23 22 21 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 A15 A14 A13 A12 A11 A10 A9 A8 20 Hình 2.2 : Sô ñoà chaân cuûa 8051. Chöùc naêng caùc chaân cuûa 8051: 8051 coù taát caû 40 chaân coù chöùc naêng nhö caùc ñöôøng xuaát nhaäp. Trong ñoù coù 24 chaân coù taùc duïng keùp (coù nghóa 1 chaân coù 2 chöùc naên g), moãi ñöôøng coù theå hoaït ñoäng nhö ñöôøng xuaát nhaäp hoaëc nhö ñöôøng ñieàu khieån hoaëc laø thaønh phaàn cuûa caùc bus döõ lieäu vaø bus ñòa chæ. - Port 0: Port 0 laø port coù 2 chöùc naêng ôû caùc chaân töø 32 ñeán 39 treân 8051. Trong caùc thieát keá côõ nhoû khoâng duøng boä nhôù môû roäng noù coù chöùc naêng nhö caùc ñöôøng I/O. Ñoái vôùi caùc thieát keá côõ lôùn coù boä nhôù môû roäng, noù trôû thaønh bus ñòa chæ vaø bus döõ lieäu ña hôïp (byte thaáp cuûa bus ñòa chæ neáu laø ñòa chæ). - Port 1: G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Âäö aïn täút nghiãûp Trang 7 Port 1 laø port I/O treân caùc chaân töø 1 ñeán 8 treân 8051. Caùc chaân ñöôïc kyù hieäu P1.0, P1.1, P1.2, ... P1.7 coù theå duøng cho giao tieáp vôùi caùc thieát bò ngoaøi neáu caàn. Port 1 khoâng coù chöùc naêng khaùc, vì vaäy chuùng chæ ñöôïc duøng cho giao tieáp vôùi caùc thieát bò beân ngoaøi. - Port 2: Port 2 laø 1 port coù taùc duïng keùp treân caùc chaân töø 21 ñeán 28 treân 8051, ñöôïc duøng nhö caùc ñöôøng xuaát/nhaäp hoaëc laø byte cao cuûa bus ñòa chæ 16-bit ñoái vôùi caùc thieát keá duøng boä nhôù chöông trình ngoaøi hoaëc caùc thieát keá coù nhieàu hôn 256 bytes boä nhôù döõ lieäu ngoaøi. - Port 3: Port 3 laø port coù taùc duïng keùp treân caùc chaân töø 10 ñeán 17 treân 8051. Khi khoâng hoaït ñoäng xuaát/nhaäp, caùc chaân cuûa port naøy coù nhieàu chöùc naêng rieâng, moãi chaân coù chöùc naêng rieâng lieân quan ñeán caùc ñaëc tröng cuï theå cuûa 8051 nhö ôû baûng sau: Bit Teân Chöùc naêng chuyeån ñoåi P3.0 RxD Ngoõ vaøo döõ lieäu noái tieáp. P3.1 TxD Ngoõ xuaát döõ lieäu noái tieáp. P3.2 INT0\ Ngoõ vaøo ngaét cöùng thöù 0 P3.3 INT1\ Ngoõ vaøo ngaét cöùng thöù 1 P3.4 T0 Ngoõ vaøo cuûaTIMER/COUNTER thöù 0. P3.5 T1 Ngoõ vaøo cuûaTIMER/COUNTER thöù 1. P3.6 WR\ Tín hieäu ghi döõ lieäu leân boä nhôù ngoaøi P3.7 RD\ Tín hieäu ñoïc boä nhôù döõ lieäu ngoaøi. Baûng 1.2: Chöùc naêng cuûa caùc chaân cuûa port 3. - Chaân cho pheùp boä nhôù chöông trình PSEN\ (Program store enable): Tín hieäu PSEN\ laø tín hieäu ngoõ ra ôû chaân 29 coù taùc duïng cho pheùp truy xuaát boä nhôù chöông trình môû roäng thöôøng ñöôïc noái ñeán chaân OE\ (output enable) cuûa EPROM cho pheùp ñoïc caùc byte maõ leänh. Tín hieäu PSEN\ ôû möùc thaáp trong thôøi gian Microcontroller 8051 tìm naïp leänh. Caùc maõ leänh cuûa chöông trình ñöôïc ñoïc töø EPROM qua bus döõ lieäu vaø ñöôïc choát vaøo thanh ghi leänh IR beân trong 8051 ñeå giaûi maõ leänh. Khi 8051 thi haønh chöông trình trong EPROM noäi PSEN\ seõ ôû möùc logic 1. - Chaân cho pheùp choát ñòa chæ ALE (Address Latch Enable): Khi 8051 truy xuaát boä nhôù beân ngoaøi, port 0 coù chöùc naêng laø bus ñòa chæ vaø bus döõ lieäu ña hôïp do ñoù phaûi taùch caùc ñöôøng döõ lieäu vaø ñòa chæ. Tín hieäu ra ALE ôû chaân thöù 30 duøng laøm tín hieäu ñieàu khieån ñeå giaûi ña hôïp caùc ñöôøng ñòa chæ vaø döõ lieäu. Khi port 0 ñöôïc söû duïng laøm bus ñòa chæ/döõ lieäu ña hôïp, chaân ALE xuaát tín hieäu ñeå choát ñòa chæ vaøo moät thanh ghi ngoaøi trong suoát ½ ñaàu cuûa chu G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Âäö aïn täút nghiãûp Trang 8 kyø boä nhôù. Sau khi ñieàu naøy ñaõ ñöôïc thöïc hieän, caùc chaân cuûa port 0 seõ xuaát nhaäp döõ lieäu hôïp leä trong suoát ½ thöù 2 cuûa chu kyø boä nhôù. Tín hieäu ALE coù taàn soá baèng 1/6 laàn taàn soá dao ñoäng treân chip vaø coù theå ñöôïc duøng laøm tín hieäu clock cho caùc phaàn khaùc cuûa heä thoáng. Ngoaïi leä duy nhaát laø trong thôøi gian thöïc thi leänh MOVX, moät xung ALE seõ bò boû qua. Chaân ALE ñöôïc duøng laøm ngoõ vaøo xung laäp trình cho EPROM treân chip ñoái vôùi caùc phieân baûn cuûa 8051 coù EPROM naøy. - Chaân truy xuaát ngoaøi EA\(External Access): Tín hieäu vaøo EA\ ôû chaân 31 coù theå ôû möùc logic1 (5v) hoaëc möùc logic 0 (GND). Neáu ôû möùc 1, 8051 thi haønh chöông trình trong ROM noäi (chöông trình nhoû hôn 4 K). Neáu ôû möùc 0 (vaø chaân PSEN\ cuõng ôû logic 0), 8051 seõ thi haønh chöông trình töø boä nhôù môû roäng. Chaân EA\ ñöôïc laáy laøm chaân caáp nguoàn 21V khi laäp trình cho EPROM trong 8051. - Ngoõ tín hieäu RST (Reset) : Ngoõ vaøo RST ôû chaân 9 laø ngoõ vaøo Reset cuûa 8051. Khi ngoõ vaøo tín hieäu naøy ñöa leân cao ít nhaát laø 2 chu kyø maùy, caùc thanh ghi beân trong ñöôïc naïp nhöõng giaù trò thích hôïp ñeå khôûi ñoäng heä thoáng. Khi caáp ñieän maïch töï ñoäng Reset. - Caùc ngoõ vaøo boä dao ñoäng XTAL1, XTAL2: Maïch dao ñoäng beân trong chip 8051 ñöôïc keát noái vôùi thaïch anh beân ngoaøi ôû hai chaân XTAL1 vaø XTAL2 (chaân 18 vaø 19). Caùc tuï oån ñònh cuõng ñöôïc yeâu caàu nhö treân hình veõ trong sô ñoà. Taàn soá thaïch anh thöôøng söû duïng cho 8051 laø 12Mhz. - Nguoàn cung caáp Chip 8051 vaän haønh vôùi nguoàn ñôn +5V. Chaân 40 cuûa chip 8051 ñöôïc noái leân nguoàn 5V (VCC) vaø chaân 20 ñöôïc noái vôùi mass (VSS). c. Caáu truùc coång xuaát nhaäp: Maïch beân trong cuûa moät chaân port moâ taû ngaén goïn trong hình 1.3. Vieäc ghi ñeán moät chaân cuûa coång seõ naïp döõ lieäu vaøo boä choát cuûa port. Ngoõ ra Q cuûa boä choát ñieàu khieån moät transitor tröôøng vaø transistor naøy noái vôùi chaân cuûa coång. Khaû naêng fanout cuûa caùc port 1, 2 vaø 3 laø 4 taûi vi maïchTTL loaïi Schottky coâng suaát thaáp (LS), coøn cuûa port 0 laø 8 taûi loaïi LS. Löu yù laø ñieän trôû keùo leân seõ khoâng coù ôû port 0 (tröø khi port naøy laøm nhieäm vuï cuûa bus ñòa chæ/döõ lieäu ña hôïp), do vaäy moät ñieän trôû keùo leân beân ngoaøi phaûi ñöôïc caàn ñeán. G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Trang 9 Âäö aïn täút nghiãûp Bus noäi cuûa 8051 Ñoïc choát D Ghi choát Q Vcc Ñoïc chaân Chaân Port Choát Port Hình 2.3 Sô ñoà maïch beân trong cuûa caùc port xuaát nhaäp. Vieäc ñoïc choát ñöôïc phaân bieät laøm hai, ñoù laø ñoïc boä choát vaø ñoïc chaân port. Söï phaân bieät naøy nhaèm choáng tröôøng hôïp chaäp maïch do quaù taûi gaây neân. Leänh ñoïc moät bit coång seõ ñoïc chaân cuûa coång. Trong tröôøng hôïp naøy, choát phaûi ñöôïc giöõ ôû möùc cao, neáu khoâng FET seõ ñöôïc kích baûo hoaø vaø ngoõ ra xuoáng möùc thaáp. Taát caû caùc choát cuûa port ñeàu ñöôïc set khi reset heä thoáng. Nhö vaäy caùc chaân choát ñeàu ñöôïc duøng nhö ngoõ vaøo maø khoâng caàn phaûi set choát. Tuy nhieân, neáu ñaõ xoùa choát khoâng theå ñoïc döõ lieäu ñuùng töø chaân port tröø khi set choát trôû laïi. d. Toå chöùc boä nhôù: 8051 coù nhöõng vuøng boä nhôù rieâng bieät cho chöông trình vaø döõ lieäu. Caû hai boä nhôù chöông trình vaø döõ lieäu coù theå chöùa beân trong 8051,tuy nhieân ta coù theå môû roäng boä nhôù chöông trình vaø boä nhôù döõ lieäu baèng caùch söû duïng caùc chip nhôù beân ngoaøi vôùi dung löôïng toái ña laø 64K cho boä nhôù chöông trình vaø 64K cho boä nhôù döõ lieäu. Boä nhôù noäi trong chip 8051 bao goàm EPROM vaø RAM. RAM trong 8051 bao goàm vuøng RAM ña chöùc naêng, vuøng RAM vôùi töøng bit ñöôïc ñònh ñòa chæ, caùc daõy thanh ghi vaø caùc thanh ghi chöùc naêng ñaëc bieät SFR. Hai ñaëc tính caàn löu yù laø: - Caùc thanh ghi vaø caùc port xuaát/nhaäp ñaõ ñöôïc ñònh ñòa chæ theo kieåu aùnh xaï boä nhôù vaø ñöôïc truy xuaát nhö moät vò trí nhôù trong boä nhôù. - Ngaên xeáp thöôøng truù trong Ram treân chip thay vì ôû trong Ram ngoaøi nhö ñoái vôùi caùc boä vi xöû lyù khaùc. G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Trang 10 Âäö aïn täút nghiãûp FFFF FFFF Boä nhôù chöông trình Boä nhôù döõ lieäu Ñöôïc cho pheùp bôûi PSEN Ñöôïc cho pheùp bôûi RD & WR FF 0000 00 0000 Boä nhôù treân chip Boä nhôù ngoaøi Hình 2.4: Toùm taét caùc vuøng nhôù cuûa chip 8031(khoâng coù ROM noäi). Nhö ta ñaõ thaáy ôû hình veõ treân RAM beân trong 8051 ñöôïc phaân chia nhö sau: - Caùc bank thanh ghi coù ñòa chæ töø 00H ñeán 1FH. RAM ñòa chæ hoùa töøng bit coù ñòa chæ töø 20H ñeán 2FH. RAM ña duïng töø 30H ñeán 7FH. Caùc thanh ghi chöùc naêng ñaëc bieät töø 80H ñeán FFH. d.1. Vuøng RAM ña muïc ñích: Ñòa chæ byte ñòa chæ byte ñòa chæ bit 7F FF F0 ñòa chæ bit F7 F6 F5 F4 F3 F2 F1 F0 B RAM ña duïng E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC D0 D7 D6 D5 D4 D D2 D1 D0 PSW 3 30 2F 2E 2D 2C 2B 2A 29 28 B8 7F 77 6F 67 5F 57 4F 47 7E 76 6E 66 5E 56 4E 46 7D 75 6D 65 5D 55 4D 45 7C 74 6C 64 5C 54 4C 44 7B 73 6B 63 5B 53 4B 43 G.v.h.d : tháöy Lã Xæïng 7A 72 6A 62 5A 52 4A 42 79 71 69 61 59 51 49 41 78 70 68 60 58 50 48 40 B0 - 99 - BC BB BA B9 B8 IP B7 B6 B5 B4 B3 B2 B1 B0 P.3 A8 AF A0 - AC AB AA A9 A8 IE A7 A6 A5 A4 A3 A2 A1 A0 P2 khoâng ñöôïc ñòa chæ hoaù bit SBUF S.v.t.h : Tráön Âçnh Khoa Trang 11 Âäö aïn täút nghiãûp 27 26 25 24 23 22 21 20 1F 18 17 10 0F 08 07 00 3F 37 2F 27 1F 17 0F 07 3E 36 2E 26 1E 16 0E 06 3D 35 2D 25 1D 15 0D 05 3C 3B 34 33 2C 2B 24 23 1C 1B 14 13 0C 0B 04 03 Bank 3 3A 32 2A 22 1A 12 0A 02 39 31 29 21 19 11 09 01 38 30 28 20 18 10 08 00 Bank 2 Bank 1 Bank thanh ghi 0 (maëc ñònh cho R0 -R7) RAM 98 9F 9E 9D 9C 9B 9A 99 98 SCON 90 97 96 95 94 93 92 91 90 P1 8D 8C 8B 8A 89 88 87 khoâng ñöôïc ñòa chæ hoaù bit khoâng ñöôïc ñòa chæ hoaù bit khoâng ñöôïc ñòa chæ hoaù bit khoâng ñöôïc ñòa chæ hoaù bit khoâng ñöôïc ñòa chæ hoaù bit 8F 8E 8D 8C 8B 8A 89 88 khoâng ñöôïc ñòa chæ hoaù bit TH1 TH0 TL1 TL0 TMOD TCON PCON 83 82 81 88 khoâng ñöôïc ñòa chæ hoaù bit khoâng ñöôïc ñòa chæ hoaù bit khoâng ñöôïc ñòa chæ hoaù bit 87 86 85 84 83 82 81 80 DPH DPL SP P0 THANH GHI CHÖÙC NAÊNG ÑAËC BIEÄT Hình 2.5: Boä nhôù döõ lieäu treân chip 8051. Maëc duø treân hình veõ cho thaáy 80 byte ña duïng chieám caùc ñòa chæ töø 30H ñeán 7FH, 32 byte döôùi töø 00H ñeán 2FH cuõng coù theå duøng vôùi muïc ñích töông töï (maëc duø caùc ñòa chæ naøy ñaõ coù muïc ñích khaùc). Moïi ñòa chæ trong vuøng RAM ña duïng ñeàu coù theå truy xuaát töï do duøng kieåu ñòa chæ tröïc tieáp hoaëc giaùn tieáp. RAM noäi cuõng coù theå ñöôïc truy xuaát baèng ñòa chæ giaùn tieáp thoâng qua R0 vaø R1 (chæ hai thanh ghi naøy maø thoâi). d.2. Vuøng RAM ñònh ñòa chæ bit : 8051 chöùa 210 bit ñöôïc ñònh ñòa chæ, trong ñoù 128 bit chöùa trong caùc byte ôû ñòa chæ töø 20H ñeán 2FH vaø caùc bit coøn laïi chöùa trong nhoùm thanh ghi chöùc naêng ñaëc bieät. YÙ töôûng truy xuaát töøng bit baèng phaàn meàm laø caùc ñaêëc tính maïnh cuûa haàu heát caùc boä vi ñieàu khieån. Caùc bit coù theå ñöôïc ñaët, xoùa , A N D , O R , … b aèn g m o ät leänh ñôn. Ña soá caùc microcontroller xöû lyù ñoøi hoûi moät chuoãi leänh ñoïc -söûa- ghi ñeå nhaän ñöôïc cuøng moät keát quaû. Ngoaøi ra caùc port cuõng coù theå truy xuaát ñöôïc töøng bit. 8051 coù 128 bit ñöôïc ñònh ñòa chæ vaø coù nhieàu muïc ñích ôû caùc byte coù ñòa chæ töø 20H -2FH. Caùc ñòa chæ naøy ñöôïc truy xuaát nhö laø caùc byte hay caùc bit tuyø thuoäc vaøo leänh ñöôïc duøng. G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Âäö aïn täút nghiãûp Trang 12 d.3. Caùc daõy thanh ghi : 32 byte thaáp nhaát cuûa boä nhôù noäi chöùa caùc daõy thanh ghi. Caùc leänh cuûa 8051 hoå trôï 8 thanh ghi töø R0 ñeán R7 thuoäc daõy 0. Ñaây laø daõy maëc ñònh sau khi reset heä thoáng caùc thanh ghi naøy ôû caùc ñòa chæ töø 00H ñeán 07H. Caùc leänh duøng caùc thanh ghi töø R0 ñeán R7 thì seõ ngaén hôn vaø nhanh hôn caùc leänh töông öùng nhöng duøng ñòa chæ tröïc tieáp. Caùc giaù trò döõ lieäu ñöôïc duøng thöôøng xuyeân neân duøng moät trong caùc thanh ghi naøy. Daõy thanh ghi tích cöïc coù theå chuyeån ñoåi baèng caùch thay ñoåi caùc bit choïn daõy thanh ghi trong töø traïng thaùi chöông trình PSW. Y Ù tö ô ûn g d u øn g “caùc d aõy th an h g h i” ch o ph e ùp “ch uy e ån ñ o åi ng ö õ caûn h ” chöông trình nhanh vaø hieäu quûa ôû nhöõng nôi maø caùc phaàn rieâng reõõ cuûa phaàn meàm söû duïng moät taäp thanh ghi rieâng, ñoäc laäp vôùi caùc phaà n khaùc cuûa phaàn meàm. e. Caùc thanh ghi coù chöùc naêng ñaëc bieät (SFR: Special Function Register): Caùc thanh ghi noäi cuûa 8051 ñöôïc truy xuaát roõ raøng bôûi moät taäp leänh. Caùc thanh ghi trong 8051 ñöôïc caáu hình nhö moät phaàn cuûa RAM treân chip vì vaäy moãi thanh ghi seõ coù moät ñòa chæ. Cuõng nhö R0 ñeán R7, 8051 coù 21 thanh ghi coù chöùc naêng ñaëc bieät SFR ôû vuøng treân cuûa RAM noäi töø ñòa chæ 80H ñeán FFH. Döôùi ñaây laø moät vaøi trong soá caùc thanh ghi ñaëc bieät noùi treân: - Töø traïng thaùi chöông trình (PSW: Program Status Word) - Thanh ghi B. - Con troû stack (Stack Pointer). - Con troû döõ lieäu DPTR (Data Pointer). - Caùc thanh ghi Port (Port Register). - Caùc thanh ghi ñònh thôøi (Timer Register). - Caùc thanh ghi cuûa coång noái tieáp (Serial Port Register). - Caùc thanh ghi ngaét (Interrupt Register). - Thanh ghi ñieàu khieån nguoàn PCON (Power Control Register). 2.2. TAÄP LEÄNH CUÛA HOÏ 8051 : Caùc chöông trình ñöôïc caáu taïo töø nhieàu leänh, chuùng ñöôïc xaây döïng logic, söï noái tieáp cuûa caùc leänh ñöôïc nghó ra moät caùch hieäu quaû vaø nhanh, keát quaû cuûa chöông trình khaû quan. Taäp leänh hoï MSC-51 ñöôïc söï kieåm tra cuûa caùc kieåu ñònh ñòa chæ vaø caùc leänh cuûa chuùng coù caùc Opcode 8 bit. Ñieàu naøy cung caáp khaû naêng 2 8= 256 leänh ñöôïc thi haønh vaø moät leänh khoâng ñöôïc ñònh nghóa. Vaøi leänh coù 1 hoaëc 2 byte bôûi döõ lieäu hoaëc ñòa chæ theâm vaøo Opcode. Trong toaøn boä caùc leänh coù 139 leänh 1 byte, 92 leänh 2 byte vaø 24 leänh 3 byte. 2.2.1. Caùc kieåu ñònh ñòa chæ (addressing mode): Caùc kieåu ñònh ñòa chæ laø moät boä phaän thoáng nhaát cuûa taäp leänh. Chuùng cho pheùp ñònh roõ nguoàn hoaëc nôi gôûi tôùi cuûa döõ lieäu ôû caùc ñöôøng khaùc nhau tuøy thuoäc G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Âäö aïn täút nghiãûp Trang 13 vaøo traïng thaùi cuûa ngöôøi laäp trình. 8051 coù 8 kieåu ñònh ñòa chæ ñöôïc duøng nhö sau: - Thanh ghi. - Tröïc tieáp. - Giaùn tieáp. - Töùc thôøi. - Töông ñoái. - Tuyeät ñoái. - Daøi. - Chæ soá. 2.2.2. Caùc loaïi leänh cuûa 8051: Caùc leänh cuûa 8051 ñöôïc chia laøm 5 nhoùm: - Nhoùm leänh soá hoïc. - Nhoùm leänh logic. - Nhoùm leänh di chuyeån döõ lieäu. - Nhoùm leänh xöû lyù bit. - Nhoùm leänh reõ nhaùnh. 2.3. HOAÏT ÑOÄNG ÑÒNH THÔØI CUÛA 8051: 2.3.1. Giôùi Thieäu: Moät boä ñònh thôøi laø moät chuoãi caùc flip flop vôùi moãi flip flop laø moät maïch chia 2, noù nhaän tín hieäu vaøo laø moät nguoàn xung clock, xung clock ñöôïc ñöa vaøo flip flop thöù nhaát, flip flop naøy chia ñoâi taàn soá xung clock. Ngoõ ra cuûa flip flop thöù nhaát trôû thaønh nguoàn xung clock cho flip flop thöù hai, vaø noù cuõng chia taàn soá xung clock naøy cho 2, cöù tieáp tuïc nhö vaäy . Vì moãi taàng keá tieáp nhau ñeàu chia cho 2, neân boä ñònh thôøi coù n taàng phaûi chia taàn soá clock ngoõ vaøo cho 2 n. Ngoõ ra cuûa taàng cuoái cuøng laø xung clock cuûa flip flop baùo traøn boä ñònh thôøi, côø naøy ñöôïc kieåm tra bôûi phaàn meàm hoaëc taïo ra moät ngaét. Giaù trò nhò phaân trong caùc flip flop cuûa boä ñònh thôøi laø soá ñeám cuûa caùc xung clock töø khi boä ñònh thôøi baét ñaàu ñeám. Caùc boä ñònh thôøi ñöôïc söû duïng trong haàu heát caùc öùng duïng höôùng ñieàu khieån. 8051 coù 2 boä ñònh thôøi 16 bit, moãi boä coù 4 cheá ñoä hoaït ñoäng. Caùc boä ñònh thôøi duøng ñeå ñònh thôøi trong moät khoaûng thôøi gian, ñeám söï kieän vaø taïo toác ñoä Baud cho Port noái tieáp cuûa chip 8051. Trong caùc öùng duïng ñònh thôøi, boä ñònh thôøi ñöôïc laäp trình ñeå traøn ôû moät khoaûng thôøi gian ñeàu ñaën vaø ñöôïc set côø traøn cuûa boä ñònh thôøi. Côø ñöôïc duøng ñeå ñoàng boä chöông trình ñeå thöïc hieän moät coâng vieäc nhö laø kieåm tra traïng thaùi cuûa caùc ngoõ vaøo hoaëc gôûi döõ lieäu ñeán caùc ngoõ ra. Caùc öùng duïng khaùc coù söû duïng vieäc ghi giôø ñeàu ñeàu cuûa boä ñònh thôøi ñeå ño thôøi gian ñaõ troâi qua hai traïng thaùi G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Âäö aïn täút nghiãûp Trang 14 (ví duï ño ñoä roäng xung).Vieäc ñeám moät söï kieän ñöôïc duøng ñeå xaùc ñònh soá laàn xuaát hieän cuûa moät söï kieän hôn laø ño thôøi gian giöõa caùc söï kieän. Caùc boä ñònh thôøi cuûa 8051 ñöôïc truy xuaát bôûi vieäc duøng 6 thanh ghi chöùc naêng ñaëc bieät : TCON, TMOD, TL0, TL1, TH0, TH1. 2.3.2. Thanh ghi cheá ñoä ñònh thôøi TMOD: Thanh ghi TMOD goàm hai nhoùm 4 bit laø: 4 bit thaáp ñaët cheá ñoä hoaït ñoäng cho boä ñònh thôøi 0 vaø 4 bit cao ñaët cheá ñoä hoaït ñoäng cho boä ñònh thôøi 1 TMOD khoâng ñöôïc ñònh ñòa chæ töøng bit, noù ñöôïc naïp moät laàn bôûi phaàn meàm ôû ñaàu chöông trình ñeå khôûi ñoäng cheá ñoä hoaït ñoäng cuûa boä ñònh thôøi. Sau ñoù boä ñònh thôøi coù theå ñöôïc döøng, khôûi ñoäng laïi bôûi söï truy xuaát caùc thanh ghi chöùc naêng ñaëc bieät khaùc cuûa boä ñònh thôøi. 2.3.3. Thanh ghi ñieàu khieån ñònh thôøi TCON: Thanh ghi ñieàu khieån bao goàm caùc bit traïng thaùi vaø caùc bit ñieàu khieån bôûi Timer 0 vaø Timer 1. Thanh ghi TCON coù ñöôïc ñònh ñòa chæ bit. 2.3.4. Caùc cheá ñoä ñònh thôøi vaø côø traøn: 8051 coù 2ø boä ñònh thôøi laø boä ñònh thôøi 0 vaø boä ñònh thôøi 1. Ta duøng kyù hieäu TLx vaø Thx ñeå chæ 2 thanh ghi byte thaáp vaø byte cao cuûa boä ñònh thôøi 0 hoaëc boä ñònh thôøi 1. a. Cheá ñoä ñònh thôøi 13-bit (cheá ñoä 0) : Cheá ñoä 0 laø cheá ñoä ñònh thôøi 13-bit, trong ñoù byte cao cuûa boä ñònh thôøi (Thx) ñöôïc gheùp cascade vôùi 5 bit thaáp cuûa byte thaáp cuûa boä ñònh thôøi (TLx) ñeå taïo thaønh moät boä ñònh thôøi 13 bit. 3 bit cao cuûa TLx khoâng duøng. b. Cheá ñoä ñònh thôøi 16-bit (cheá ñoä 1) : Cheá ñoä 1 laø cheá ñoä ñònh thôøi 16 bit, töông töï nhö cheá ñoä 0 ngoaïi tröø boä ñònh thôøi naøy hoaït ñoäng nhö moät boä ñònh thôøi ñaày ñuû 16 bit, xung clock ñöôïc duøng vôùi söï keát hôïp caùc thanh ghi cao vaø thaáp (TLx, THx). Khi xung clock ñöôïc nhaän vaøo, boä boä ñònh thôøi ñeám leân: 0000H, 0001H, 0002H, . . ., vaø moät söï traøn seõ xuaát hieän khi coù söï chuyeån soá ñeám töø FFFH sang 0000H vaø seõ set côø traøn baèng 1, sau ñoù boä ñònh thôøi ñeám tieáp. Côø traøn laø bit TFx trong thanh ghi TCON maø noù seõ ñöôïc ñoïc hoaëc ghi bôûi phaàn meàm. c. Cheá ñoä töï naïp laïi 8-bit (cheá ñoä 2): Cheá ñoä 2 laø cheá ñoä töï naïp laïi 8 bit, byte thaáp TLx cuûa boä ñònh thôøi hoaït ñoäng ñònh thôøi 8 bit trong khi byte cao THx cuûa boä ñònh thôøi giöõ giaù trò naïp laïi. Khi boä ñeám traøn töø FFH sang 00H, khoâng chæ côø traøn ñöôïc set maø giaù trò trong THx cuõng ñöôïc naïp vaøo TLx: boä ñeám ñöôïc tieáp tuïc töø giaù trò naøy leân ñeán söï chuyeån traïng thaùi töø FFH sang 00H keá tieáp vaø cöù theá tieáp tuïc. G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Âäö aïn täút nghiãûp Trang 15 d. Cheá ñoä ñònh thôøi chia xeû (cheá ñoä 3): Cheá ñoä 3 laø cheá ñoä ñònh thôøi chia xeû vaø coù hoaït ñoäng khaùc nhau cho töøng boä ñònh thôøi. Cheá ñoä 3 cung caáp 1 boä ñònh thôøi 8-bit nöõa laø boä ñònh thôøi thöù ba cuûa 8051. Khi boä ñònh thôøi 0 ôû cheá ñoä 3, boä ñònh thôøi 1 coù theå hoaït ñoäng hoaëc taét baèng caùch chuyeån boä ñònh thôøi naøy ra khoûi cheá ñoä 3 hoaëc vaøo cheá ñoä 3.Boä ñònh thôøi 1 coù theå ñöôïc duøng bôûi Port noái tieáp nhö laø moät maùy phaùt toác ñoä Baud, hoaëc noù coù theå duøng trong höôùng naøo ñoù maø khoâng söû duïng ngaét. 2.3.5. Caùc nguoàn xung clock ñònh thôøi: Coù hai nguoàn xung clock coù theå ñeám giôø laø söï ñònh giôø beân trong vaø söï ñeám söï kieän beân ngoaøi. Bit C/T trong TMOD cho pheùp choïn 1 trong 2 khi Timer ñöôïc khôûi ñoäng. a. Ñònh thôøi moät khoaûng thôøi gian: Neáu bit C/T = 0 thì hoaït ñoäng ñònh thôøi ñöôïc choïn vaø nguoàn xung clock cuûa boä ñònh thôøi do maïch dao ñoäng beân trong chip taïo ra. Caùc thanh ghi TLx vaø THx ñeám leân vôùi taàn soá xung clock baèng 1/12 laàn taàn soá dao ñoäng treân Chip. Caùc söï traøn boä ñònh thôøi xaûy ra sau moät con soá coá ñònh cuûa nhöõng xung clock, noù phuï thuoäc vaøo giaù trò khôûi taïo ñöôïc naïp vaøo caùc thanh ghi THx vaø TLx. b. Söï ñeám caùc söï kieän (Event Counting): Neáu bit C/T = 1 thì boä ñònh thôøi ñöôïc cung caáp xung clock töø nguoàn beân ngoaøi. Trong nhieàu öùng duïng, nguoàn beân ngoaøi naøy cung caáp cho boä ñònh thôøi 1 xung döïa treân söï xaûy ra cuûa söï kieän. Boä ñònh thôøi baây giôø laø söï ñeám söï kieän. Con soá söï kieän ñöôïc xaùc ñònh trong phaàn meàm bôûi vieäc ñoïc caùc thanh ghi ñònh thôøi TLx/THx, bôûi vì giaù trò 16 bit trong caùc thanh naøy taêng leân cho moãi söï kieän. 2.3.6. Khôûi ñoäng döøng vaø ñieàu khieån caùc boä ñònh thôøi: Bit TRx trong thanh ghi coù bit ñònh vò TCON ñöôïc ñieàu khieån bôûi phaàn meàm ñeå baét ñaàu hoaëc keát thuùc caùc boä ñònh thôøi. Ñeå baéêt ñaàu caùc boä ñònh thôøi ta set bit TRx vaø ñeå keát thuùc boä ñònh thôøi ta xoaù TRx. Theâm phöông phaùp nöõa ñeå ñieàu khieån caùc boä ñònh thôøi laø duøng bit GATE trong thanh ghi TMOD vaø ngoõ nhaäp beân ngoaøi INTx. Ñieàu naøy ñöôïc duøng ñeå ño caùc ñoä roäng xung. 2.3.7. Khôûi ñoäng vaø truy xuaát caùc thanh ghi ñònh thôøi: Caùc boä ñònh thôøi ñöôïc khôûi ñoäng 1 laàn ôû ñaàu chöông trình ñeå ñaët cheá ñoä hoaït ñoäng cho chuùng. Sau ñoù trong chöông trình caùc boä ñònh thôøi ñöôïc baét ñaàu, ñöôïc xoùa, caùc thanh ghi ñònh thôøi ñöôïc ñoïc vaø caäp nhaät... theo yeâu caàu cuûa töøng öùng duïng cuï theå. TMOD laø thanh ghi ñaàu tieân ñöôïc khôûi gaùn, bôûi vì ñaët cheá ñoä hoaït ñoäng cho caùc boä ñònh thôøi. G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Âäö aïn täút nghiãûp Trang 16 Côø traøn TFx töï ñoäng ñöôïc set bôûi phaàn cöùng sau moãi söï traøn vaø seõ ñöôïc xoùa bôûi phaàn meàm. Chính vì vaäy ta coù theå laäp trình chôø sau moãi laàn traøn ta seõ xoùa côø TFx vaø quay voøng laëp khôûi gaùn cho TLx/THx ñeå boä ñònh thôøi luoân luoân baét ñaàu ñeám töø giaù trò khôûi gaùn leân theo yù ta mong muoán. 2.4. HOAÏT ÑOÄNG CUÛA PORT NOÁI TIEÁP: 2.4.1. Giôùi thieäu: 8051 coù moät port noái tieáp trong chip coù theå hoaït ñoäng ôû nhieàu cheá ñoä treân moät daõy taàn soá roäng. Chöùc naêng chuû yeáu laø thöïc hieän chuyeån ñoåi song song sang noái tieáp vôùi döõ lieäu xuaát vaø chuyeån ñoåi noái tieáp sang song song vôùi döõ lieäu nhaäp. Port noái tieáp cho hoaït ñoäng song coâng (full duplex: thu vaø phaùt ñoàng thôøi) vaø ñeäm thu (receiver buffering) cho pheùp moät kyù töï seõ ñöôïc thu vaø ñöôïc giöõ trong khi kyù töï thöù hai ñöôïc nhaän. Neáu CPU ñoïc kyù töï thöù nhaát tröôùc khi kyù töï thöù hai ñöôïc thu ñaày ñuû thì döõ lieäu seõ khoâng bò maát. Hai thanh ghi chöùc naêng ñaëc bieät cho pheùp phaàn meàm truy xuaát ñeán port noái tieáp laø: SBUF vaø SCON. Boä ñeäm port noái tieáp (SBUF) ôû ñiaï chæ 99H nhaän döõ lieäu ñeå thu hoaëc phaùt. Thanh ghi ñieàu khieån port noái tieáp (SCON) ôû ñiaï chæ 98H laø thanh ghi coù ñiaï chæ bit chöùa caùc bit traïng thaùi vaø caùc bit ñieàu khieån. Caùc bit ñieàu khieån ñaët cheá ñoä hoaït ñoäng cho port noái tieáp, vaø caùc bit traïng thaùi Baùo caùo keát thuùc vieäc phaùt hoaëc thu kyù töï . Caùc bit traïng thaùi coù theå ñöôïc kieåm tra baèng phaàn meàm hoaëc coù theå laäp trình ñeå taïo ngaét. 2.4.2. Thanh ghi ñieàu khieån port noái tieáp: Thanh ghi ñieàu khieån coång noái tieáp duøng ñeå thieát laäp cheá ñoä hoaït ñoäng cuûa port noái tieáp. Vieäc thieát laäp cheá ñoä hoaït ñoäng cho port noái tieáp ñöôïc thöïc hieän baèng caùch ghi vaøo thanh ghi cheá ñoä port noái tieáp SCON ôû ñòa chæ 98H . 2.4.3. Caùc cheá ñoä hoaït ñoäng: Port noái tieáp cuûa 8051 coù 4 cheá ñoä hoaït ñoäng, caùc cheá ñoä ñöôïc choïn baèng caùch ghi 1 hoaëc 0 cho caùc bit SM0 vaø SM1 trong thanh ghi SCON. Ba trong soá caùc cheá ñoä hoaït ñoäng cho pheùp truyeàn khoâng ñoàng boä, trong ñoá moãi kyù töï ñöôïc thu hoaëc phaùt seõ cuøng vôùi moät bit start vaø moät bit stop taïo thaønh moät khung. Moãi cheá ñoä hoaït ñoäng seõ ñöôïc ñeà caäp toùm taét sau ñaây: a. Cheá ñoä 0 (thanh ghi dòch 8 bit): ÔÛ cheá ñoä 0 döõ lieäu noái tieáp vaøo vaø ra qua RXD vaø TXD xuaát xung nhòp dòch, 8 bit ñöôïc phaùt hoaëc thu vôùi bit ñaàu tieân laø LSB. Toác ñoä baud coá ñònh ôû 1/12 taàn soá dao ñoäng treân chip. Vieäc phaùt ñi ñöôïc khôûi ñoäng baèng baát cöù leänh naøo ghi döõ lieäu vaøo SBUF. Döõ lieäu dòch ra ngoaøi treân ñöôøng RXD (P3.0) vôùi caùc xung nhòp ñöôïc göûi ra ñöôøng TXD (P3.1). Moãi bit phaùt ñi hôïp leä (treân RXD) trong moät chu kyø maùy. Vieäc thu ñöôïc khôûi ñoäng khi cho pheùp boä thu (REN) laø 1 vaø bit ngaét thu (RI) laø 0. Quy taéc toång quaùt laø ñaët REN khi baét ñaàu chöông trình ñeå khôûi ñoäng G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Âäö aïn täút nghiãûp Trang 17 port noái tieáp, roài xoaù RI ñeå baét ñaàu nhaän döõ lieäu. Khi RI bò xoaù, caùc xung nhòp ñöôïc ñöa ra ñöôøng TXD, baét ñaàu chu kyø maùy keá tieáp vaø döõ lieäu theo xung nhòp ôû ñöôøng RXD. Laáy xung nhòp cho döõ lieäu vaøo port noái tieáp xaûy ra ôû caïnh ñöôøng cuûa TXD. b. Cheá ñoä 1 (UART 8 bit vôùi toác ñoä baud thay ñoåi): ÔÛ cheá ñoä 1, port noái tieáp cuûa 8051 laøm vieäc nhö moät UART 8 bit vôùi toác ñoä baud thay ñoåi ñöôïc. Moät UART (Boä thu phaùt ñoàng boä vaïn naêng) laø moät duïng cuï thu phaùt döõ lieäu noái tieáp vôùi moãi kyù töï döõ lieäu ñi tröôù c laø bit start ôû möùc thaáp vaø theo sau bit stop ôû möùc cao. Ñoâi khi xen theâm bit kieåm tra chaün leû giöõa bit döõ lieäu cuoái cuøng vaø bit stop. Hoaït ñoäng chuû yeáu cuûa UART laø chuyeån ñoåi song song sang noái tieáp vôùi döõ lieäu nhaäp. ÔÛ cheá ñoä 1, 10 bit ñöôïc phaùt treân TXD hoaëc thu treân RXD. Nhöõng bit ñoù laø: 1 bit start (luoân luoân laø 0), 8 bit döõ lieäu (LSB ñaàu tieân) vaø 1 bit stop (luoân luoân laø 1). Vôùi hoaït ñoäng thu, bit stop ñöôïc ñöa vaøo RB8 trong SCON. Trong 8051 cheá ñoä baud ñöôïc ñaët baèng toác ñoä baùo traøn cuûa boä ñònh thôøi1. c. Cheá ñoä 2 (UART 9 bit vôùi toác ñoä baud coá ñònh): Khi SM1 = 1 vaø SM0 = 0, coång noái tieáp laøm vieäc ôû cheá ñoä 2, nhö moät UART 9bit coù toác ñoä baud coá ñònh, 11 bit seõ ñöôïc phaùt hoaëc thu:1bit start, 8 bit data, 1 bit data thöù 9 coù theå ñöôïc laäp trình vaø 1 bit stop. Khi phaùt bit thöù 9 laø baát cöù gì ñaõ ñöôïc ñöa vaøo TB8 trong SCON (coù theå laø bit Parity) .Khi thu bit thöù 9 thu ñöôïc seõ ôû trong RB8. Toác ñoä baud ôû cheá ñoä 2 laø 1/32 hoaëc 1/16 taàn soá dao ñoäng treân chip. d. Cheá ñoä 3 (UART 9 bit vôùi toác ñoä baud thay ñoåi): Cheá ñoä naøy gioáng nhö ôû cheá ñoä 2 ngoaïi tröø toác ñoä baud coù theå laäp trình ñöôïc vaø ñöôïc cung caáp bôûi Timer.Thaät ra caùc cheá ñoä 1, 2, 3 raát gioáng nhau. Caùi khaùc bieät laø ôû toác ñoä baud (coá ñònh trong cheá ñoä 2, thay ñoåi trong cheá ñoä 1 vaø 3) vaø ôû soá bit data (8 bit trong cheá ñoä 1,9 trong cheá ñoä 2 vaø 3). 2.4.4. Khôûi ñoäng vaø truy xuaát caùc thanh ghi coång noái tieáp: Cho Pheùp Thu: Bit cho pheùp boä thu (REN = Receiver Enable) trong thanh ghi SCON phaûi ñöôïc ñaët leân 1 baèng phaàn meàm ñeå cho pheùp thu caùc kyù töï thoâng thöôøng thöïc hieän vieäc naøy ôû ñaàu chöông trình khi khôûi ñoäng coång noái tie áp , b o äñ òn h th ô øi… Bit döõ lieäu thöù 9: Bit döõ lieäu thöù 9 caàn phaùt trong caùc cheá ñoä 2 vaø 3 phaûi ñöôïc naïp vaøo trong TB8 baèng phaàn meàm. Bit döõ lieäu thöù 9 thu ñöôïc ñaët ôû RB8. Phaàn meàm coù theå caàn hoaëc khoâng caàn bit döõ lieäu thöù 9, phuï thuoäc vaøo ñaëc tính kyõ thuaät cuûa thieát bò noái tieáp söû duïng (bit döõ lieäu thöù 9 cuõng ñoùng vai troø quan troïng trong truyeàn thoâng ña xöû lyù). G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Âäö aïn täút nghiãûp Trang 18 Theâm vaøo bit chaün leû: Thöôøng söû duïng bit döõ lieäu thöù 9 ñeå laøm bit chaün leû cho moät kyù töï. Nhö ñaõ nhaän xeùt ôû chöông tröôùc, bit P trong töø traïng thaùi chöông trình (PSW) ñöôïc ñaët leân 1 hoaëc bò xoaù bôûi chu kyø maùy ñeå thieát laäp kieåm tra chaün vôùi 8 bit trong thanh tích luõy. Caùc côø ngaét: Hai côø ngaét thu vaø phaùt (RI vaø TI) trong SCON ñoùng moät vai troø quan troïng trong truyeàn thoâng noái tieáp duøng 8051. Caû hai bit ñöôïc ñaët leân 1 baèng phaàn cöùng, nhöng phaûi ñöôïc xoaù baèng phaàn meàm. 2.4.5. Toác ñoä baud cuûa port noái tieáp: Nhö ñaõ noùi, toác ñoä baud coá ñònh ôû caùc cheá ñoä 0 vaø 2. Trong cheá ñoä 0 noù luoân luoân laø taàn soá dao ñoäng treân chip ñöôïc chia cho 12. Thoâng thöôøng thaïch anh aán ñònh taàn soá dao ñoäng treân chip nhöng cuõng coù theå söû duïng nguoàn xung nhòp khaùc. Maëc nhieân sau khi reset heä thoáng, toác ñoä baud cheá ñoä 2 laø taàn soá boä dao ñoäng chia cho 64, toác ñoä baud cuõng bò aûnh höôûng bôûi 1 bit trong thanh ghi ñieàu khieån nguoàn cung caáp (PCON) bit 7 cuûa PCON laø bit SMOD. Ñaët bit SMOD leân 1 laøm gaáp ñoâi toác ñoä baud trong caùc cheá ñoä 1, 2 vaø 3. Trong cheá ñoä 2, toác ñoä baud coù theå bò gaáp ñoâi töø giaù trò maëc nhieân cuûa 1/64 taàn soá dao ñoäng (SMOD=0) ñeán 1/32 taàn soá dao ñoäng (SMOD=1) Caùc toác ñoä baud trong caùc cheá ñoä 1 vaø 3 ñöôïc xaùc ñònh baèng toác ñoä traøn cuûa boä ñònh thôøi 1. Vì boä ñònh thôøi hoaït ñoäng ôû taàn soá töông ñoái cao, traøn boä ñònh thôøi ñöôïc chia theâm cho 32 (hoaëc 16 neáu SMOD =1 ) tröôùc khi cung caáp toác ñoä xung nhòp cho port noái tieáp. 2.5. HOAÏT ÑOÄNG NGAÉT: 2.5.1. Giôùi thieäu: Ngaét laø hoaït ñoäng ngöøng taïm thôøi moät chöông trình naøy ñeå thi haønh moät chöông trình khaùc. Caùc ngaét coù moät vai troø quan troïng trong thieát keá vaø khaû naêng thöïc thi cuûa vi ñieàu khieån. Chuùng cho pheùp heä thoáng ñaùp öùng khoâng cuøng luùc tôùi moät coâng vieäc vaø giaûi quyeát moät coâng vieäc ñoù trong khi moät chöông trình khaùc ñang thöïc thi. Moät heä thoáng ñöôïc ñieàu khieån baèng ngaét cho aûo giaùc laø laøm nhieàu vieäc ñoàng thôøi. Dó nhieân CPU khoâng theå thöïc thi nhieàu hôn moät leänh ôû moät thôøi ñieåm nhöng CPU coù theå ngöng taïm thôøi vieäc thöïc thi moät chöông trình ñeå thöïc thi moät chöông trình khaùc, roài quay veà chöông trình ñaàu khi coù yeâu caàu ngaét. Chöông trình xuû lyù moät ngaét ñöôïc goïi laø chöông trình phuïc vuï ngaét (ISR : Interrupt Sevice Reutine). G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Âäö aïn täút nghiãûp Trang 19 2.5.2. Toå chöùc ngaét: Coù 5 nguyeân nhaân taïo ra ngaét ñoái vôùi 8051: hai ngaét do beân ngoaøi, hai ngaét do boä ñònh thôøi vaø moät ngaét do port noái tieáp, taát caû caùc nguoàn ngaét bò caám sau khi reset heä thoáng vaø cho pheùp bôûi phaàn meàm. a. Cho pheùp vaø khoâng cho pheùp ngaét: Moãi nguoàn ngaét ñöôïc cho pheùp hoaëc khoâng cho pheùp töøng ngaét moät qua thanh ghi chöùc naêng ñaët bieät ñònh ñòa chæ bit, thanh ghi cho pheùp ngaét IE (Interrupt Enable) ôû ñòa chæ 0A8H. Cuõng nhö caùc bit cho pheùp moãi nguoàn ngaét, coù moät bit cho pheùp hoaëc caám toaøn boä ñöôïc xoùa ñeå caám taát caû caùc ngaét hoaëc ñöôïc ñaët leân 1 ñeå cho pheùp taát caû caùc ngaét. b. Öu tieân ngaét: Moãi nguoàn ngaét ñuôïc laäp trình rieâng vaøo moät trong hai möùc öu tieân qua thanh ghi chöùc naêng ñaëc bieät ñöôïc ñòa chæ bit, thanh ghi öu tieân ngaét IP (Interrupt priority) ôû ñòa chæ 0B8H. Caùc ngaét öu tieân ñöôïc xoùa sau khi reset heä thoáng, thanh ghi IP seõ maëc ñònh taát caû caùc ngaét ôû möùc öu tieân thaáp. c. Chuoãi voøng: Neáu coù hai ngaét coù cuøng möùc öu tieân xuaát hieän ñoàng thôøi, chuoãi voøng coá ñònh seõ xaùc ñònh ngaét naøo ñöôïc phuïc vuï tröôùc. Chuoãi voøng naøy seõ laø: ngaét ngoaøi 0, ngaét do boä ñònh thôøi 0, ngaét ngoaøi 1, ngaét do boä ñònh thôøi 1, ngaét do port noái tieáp. 2.5.3. Xöû lyù ngaét: Khi coù moät ngaét xuaát hieän vaø ñöôïc CPU chaáp nhaän, chöông trình chính bò ngaét. Nhöõng hoaït ñoäng sau xaûy ra: - Hoaøn taát vieäc thöïc thi leänh hieän haønh. - Boä ñeám chöông trình PC ñöôïc caát vaøo ngaên xeáp. - Traïng thaùi cuûa ngaét hieän haønh ñöôïc löu giöõ laïi. - Caùc ngaét ñöôïc chaën laïi ôû möùc ngaét. - Boä ñeám chöông trình PC ñöôïc naïp ñòa chæ vector cuûa trình phuïc vuï ngaét ISR. - ISR ñöôïc thöïc thi. ISR thöïc thi vaø ñaùp öùng ngaét. ISR hoaøn taát baèng leänh RET1. Ñieàu naøy laøm laáy laïi giaù trò cuõ cuûa PC töø ngaên xeáp vaø laáy laïi traïng thaùi ngaét cuõ. Chöông trình laïi tieáp tuïc thi haønh taïi nôi maø noù döøng. a. Caùc Vector ngaét: Khi chaáp nhaän ngaét, giaù trò ñöôïc naïp vaøo PC ñöôïc goïi laø Vector ngaét. Noù laø ñòa chæ baét ñaàu cuûa ISR cho nguoàn taïo ngaét. Caùc Vector ngaét ñöôïc cho ôû baûng sau: G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa Âäö aïn täút nghiãûp Trang 20 Ngaét do Reset heä thoáng Ngaét ngoaøi 0 Boä ñònh thôøi 0 Ngaét ngoaøi 1 Boä ñònh thôøi 1 Port noái tieáp Côø Ñòa chæ vector RST 0000H IE0 0003H TF0 000BH IE1 0013H TF1 001BH TI hoaëc RI 0023H Baûng 2.1: Caùc vector ngaét. Vector reset heä thoáng (RST ôû ñòa chæ 0000H) noù gioáng nhö moät ngaét. Noù ngaét chöông trình chính vaø taûi vaøo PC moät giaù trò môùi. K h i ch æ ñ e án m o ät n g aét “cô øg aây n g aét tö ïñ o än g b ò x o ùa b ô ûi p h aàn cö ùn g , trö øra R1, T1 cho caùc ngaét coång noái tieáp. Vì coù hai nguoàn coù theå coù cho ngaét naøy, khoâng thöïc teá ñeå CPU xoùa côø ngaét naøy. Caùc bit phaûi ñöôïc kieåm tra trong ISR ñeå xaùc ñònh nguoàn ngaét vaø côø taïo ngaét seõ ñöôïc xoùa baèng phaàn meàm. b. Caùc ngaét cuûa 8051: Caùc ngaét do boä ñònh thôøi: Caùc ngaét do boä ñònh thôøi xaûy ra khi caùc thanh ghi ñònh thôøi (TLx / THx) traøn vaø set côø traøn TFx leân 1. Caùc côø traøn TFx khoâng bò xoùa baèng phaàn meàm do khi caùc ngaét ñöôïc cho pheùp, TFx töï ñoäng ñöôïc xoùa baèng phaàn cöùng khi CPU troû tôùi trình phuïc vuï ngaét. Caùc ngaét coång noái tieáp: Ngaét coång noái tieáp xaûy ra khi hoaëc côø ngaét phaùt TI hoaëc côø ngaét thu RI ñöôïc ñaët leân 1. Ngaét phaùt xaûy ra khi moät kyù töï ñaõ ñöôïc nhaän xong vaø ñang ñôïi trong SBUF ñeå ñöôïc ñoïc. Côø gaây ra ngaét coång noái tieáp khoâng bò xoùa baèn g phaàn cöùng khi CPU troû tôùi trình phuïc vuï ngaét do coù hai nguoàn ngaét coång noái tieáp TI vaø RI. Nguoàn ngaét phaûi ñöôïc xaùc ñònh trong ISR vaø côø taïo ngaét seõ ñöôïc xoùa baèng phaàn meàm. Caùc ngaét ngoaøi: Caùc ngaét ngoaøi xaûy ra khi coù moät möùc thaáp hoaëc caïnh xuoáng treân chaân INT0 hoaëc INT1 cuûa vi ñieàu khieån. Caùc côø taïo ngaét naøy laø caùc bit IE0 vaø IE1 trong thanh ghi TCON. Khi quyeàn ñieàu khieån ñaõ troû tôùi trình phuïc vuï ngaét, côø taïo ra ngaét chæ ñöôïc xoùa neáu ngaét ñöôïc tích cöïc baèng caïnh xuoáng. Neáu ngaét ñöôïc tích cöïc theo möùc, thì nguoàn yeâu caàu ngaét beân ngoaøi seõ ñieàu khieån möùc cuûa côø thay cho phaàn cöùng. G.v.h.d : tháöy Lã Xæïng S.v.t.h : Tráön Âçnh Khoa
- Xem thêm -

Tài liệu liên quan