Đồ án đề tài: Vi điều khiển

Chia sẻ: Nguyễn Thị Giỏi | Ngày: | Loại File: PDF | Số trang:37

0
1.993
lượt xem
751
download

Đồ án đề tài: Vi điều khiển

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

Đồ án đề tài: Vi điều khiển gồm 2 phần. Phần 1 giới thiệu cơ sở lý thuyết bao gồm kiến trúc của chip vi điều khiển 8051. Phần 2 trình bày về tính toán và thiết kế trình bày về thiết kế phần cứng và phần mềm hệ thống.

Chủ đề:
Lưu

Nội dung Text: Đồ án đề tài: Vi điều khiển

  1. Luận văn Đồ án vi điều khiển
  2. Ñoà aùn moân hoïc VÑK LÅÌI NOÏI ÂÁÖU Ngaøy nay ñaïi ña soá caùc lónh vöïc saûn xuaát, ñieàu khieån, giaùm saùt, ño löôøng…ñeàu ñöôïc trang bò heä thoáng töï ñoäng hoùa. Moät trong soá vi maïch ñöôïc söû duïng ñoù laø kyõ thuaät vi ñieàu khieån. Nhôø tính naêng öu vieät cuûa boä vi ñieàu khieån nhö: khaû naêng laäp trình phuø hôïp vôùi thieát keá nhoû vaø lôùn cuõng nhö giao tieáp vôùi caùc thieát bò ngoaïi vi vaø maùy tính ñaõ ñem laïi söï hoaøn haûo, ñoä chính xaùc vaø tính meàm deûo cao thoâng qua giao tieáp giöõa ngöôøi vaø maùy. Vi ñieàu khieån quaûn lyù vaø ñieàu khieån hoaït ñoäng cuûa heä thoáng thoâng qua phaàn meàm, nhôø vaäy maø ta coù theå môû roäng vaø thay ñoåi hoaït ñoäng moät caùch deã daøng baèng caùch thay ñoåi moät soá thoâng soá cuûa chöông trình. Vi ñieàu khieån hoaït ñoänh theo chöông trình ñaõ naïp saün,ñoïc caùc tín hieäu töø beân ngoaøi ñöa vaøo sau ñoù löu tröõ vaø xöû lyù, treân cô sôû ñoù ñöa ra caùc thoâng baùo, tín hieäu ñieàu khieån caùc thieát bò beân ngoaøi hoaït ñoäng theo ñuùng thoâng soá vaø yeâu caàu cuûa heä thoáng. Heä thoáng ñieän töû soá söû duïng boä vi ñieàu khieån vaø maùy tính trong caùc daây chuyeàn saûn xuaát coâng nghieäp, thöïc hieän nhieäm vuï ñieàu khieån vaø giaùm saùt heä thoáng. Ngoaøi ra vi ñieàu khieån cuõng coù maët trong caùc saûn phaåm coâng nghieäp vaø tieâu duøng nhö: loø vi ba, loø söôõi, maùy giaët, heä thoáng caûnh baùo vaø giaùm saùt cuûa caùc phöông tieän giao thoâng… vaø trong nhieàu thieát bò coâng nghieäp khaùc. Trong taäp ñoà aùn naøy em xin pheùp ñöôïc giôùi thieäu moät heä thoáng âiãöu khiãøn maïy giàût söû duïng chip vi ñieàu khieån 8051. Vieäc ñònh höôùng xaây ñöïng ñeà taøi naøy xuaát phaùt töø nhu caàu thöïc teá trong ñôøi soáng hiãûn âaûi. Noäi dung cuûa ñoà aùn coù 2 phaàn: + Phaàn I : Cô sôû lyù thuyeát. Bao goàm kieán truùc cuûa chip vi ñieàu khieån 8051 + Phaàn II: Tính toaùn vaø thieát keáá trình baøy veà thieát keá phaàn cöùng vaø phaàn meàm heä thoáng. Qua noå löïc nghieân cöùu, tìm hieåu cuûa baûn thaân cuøng vôùi söï höôùng daãn taän tình chu ñaùo cuûa Thaày giaùo Th.S Leâ Xöùng em ñaõ hoaøn thaønh ñoà aùn naøy. Vôùi khoaûng thôøi gian coù haïn cuõng nhö trình ñoä kieán thöùc em coøn haïn cheá neân em tin chaéc raèng heä thoáng naøy hoaït ñoäng chöa ñöôïc toái öu vaø cuõng seû khoâng traùnh khoûi nhöõng thieáu soùt. Em kính mong Thaày Coâ thoâng caûm, giuùp ñôõ vaø chæ baûo theâm cho em nhöõng kinh nghieäm quyù baùu. Em xin chaân thaønh caûm ôn. 1
  3. Ñoà aùn moân hoïc VÑK Chöông 1:GIÔÙI THIEÄU ÑEÀ TAØI 1.1 Giôùi thieäu: Trong raát nhieàu öùng duïng , nhö maùy in , maùy ATM , robotíc , Cd player ,disk driver , … caàn ñeán ñoäng cô ñieän moät chieàu . Trong da soâ caùc uùng duïng ñoù , ñoäng cô ñoài hoûi phaûi coù boä ñieàu khieån toát nhö : ñieàu chænh ñöôïc toác ñoä , oån ñònh ñöôïc toác ñoä , ñaûo chieàu quay , ñoä oån ñònh toát , hieäu suaát cao , nhoû goïn . Ñoù laø nhöõng ñoøi hoûi heát söc phöùc taïp .Chính vì vaïy trong ñeà taøi naøy em xin ñua ra phöông phaùp “ ñiieâuø chænh toác ñoä ñoäng cô baøng phöông phaùp baêm xung , söû duïng vi ñieàu khieån AT89C51 vaø vi maïch LMD 18200 “ nhaøm ñaät ñöôïc toái ña nhöõng ñoøi hoi treân . Neáu giaûi queát ñöôïc vaán ñeà thì seõ caûi thieän ñeán chaát löôïng cuûa caùc maùy moùc coù söû duïng ñoäng cô dc raát lôùn . Nhö : ñieàu khieûn maùy CNC , maùy ñóa , robot , …. 1.2Cô baûn veà ñieàu khieån ñoäng cô : Coù raát nhieàu phöông phaùp ñeå ñieàu khieån ñoäng cô dc , nhöng ngöôøi ta thöôøng duøng phöông phaùp ñieàu khieån caàu .Caáu truùc maïch nhö hình veõ : Vôùi maïch naøy coù theå vöøa ñieàu chænh toác ñoä ñoäng cô baèng xung , vöøa ñaûo ñöôïc chieàu quay , hieäu suaát cao .Vi maïch LMD18200 tích hôïp saün maïch caàu ñieàu khieån ñoäng cô coù theå hoaït ñoäng vôùi taàn soá 1Khz .Neáu coù theâm tuï 10nF chaân Bootstrap thì coù theå hoaït ñoäng leân tôùi taàn soá 500Khz .Söû duïng vi ñieàu khieån 89C51 ñeå taïo xung ñieàu khieån LMD18200. 1.3 Phöông phaùp ñieàu cheá ñoä roäng xung (PWM): Ñaây laø phöông phaùp ñöa ra ñoä roäng xung thay ñoåi töø ñoù ñieàu khieån ñöôïc coâng suaát treân taûi thay ñoåi. 2
  4. Ñoà aùn moân hoïc VÑK MAÙY TÍNH KHOÁI HIEÅN KHOÁI ÑK THÒ ÑCÔ ÑC KHOÁI VÑK 89C51 KHOÁI ÑIEÀU CAÛM BIEÁN CHÆNH 1.4 Giôùi thieäu caùc chöùc naêng chính cuûa maïch: -Khoái hieån thò goàm 8 led, 4led hieån thò toác ñoä thöïc, 4led hieån thò toác ñoä caøi ñaët, coù caùc led bieåu thò traïng thaùi chaïy, döøng, quay thuaän , quay nghòch, vaø coù loa baùo quaû taûi -Khoái ñieàu chænh goàm 4 coâng taéc laøm caùc coâng vieäc :start/stop, chieàu thuaän , chieàu nghòch, taêng toác , giaûm toác -Khoái ñoäng cô: laø vi maïch LDM18200 nhaän caùc tín hieäu ñieàu khieån töø vi ñieàu khieån deå ñieàu chænh ñoäng cô -Khoái caûm bieán: laø boä thu phaùt tin hoàng ngoaïi ñeå nhaän bieát toác ñoä quay cuûa ñoäng cô vaø phaûn hoài veà vi ñieàu khieån ñeå hieäu chænh ñoäng cô ñoøng vôùi toác ñoä ñaët 3
  5. Ñoà aùn moân hoïc VÑK Chöông 2 GIÔÙI THIEÄU CAÙC VI MAÏCH LIEÂN QUAN 2.1 Toång quan veà kyõ thuaät vi ñieàu khieån:( xem chi tieát ôû phuï luïc I) 2.1.1 Khaùi quaùt chung veà boä vi ñieàu khieån: Boä vi ñieàu khieån vieát taét laø Micro-controller, 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 moät heä thoáng, theo chöông trình ñieàu khieån ñaõ naïp saün beân trong chip. 2.1.2 Lòch söû phaùt trieån cuûa vi ñieàu khieån: Boä vi ñieàu khieån thöïc ra laø moät loaïi vi xöû lí trong taäp hôïp caùc boä vi xöû lyù noùi chung. Boä vi ñieàu khieån ñöôïc phaùt trieån töø boä vi xöû lí, töø nhöõng naêm 1970 do söï phaùt trieån vaø hoaøn thieän veà coâng ngheä vi ñieän töû döïa treân kyõ thuaät MOS (Metal-Oxide-Semiconductor), möùc ñoä tích hôïp cuûa caùc linh kieän baùn daãn trong moät chip ngaøy caøng cao. 2.1.3 Sô ñoà khoái cuûa moät boä vi ñieàu khieån: Sô ñoà khoái chung cuûa haàu heát caùc boä vi ñieàu khieån bao CPU, boä nhôù ROM hay EPROM vaø RAM, maïch giao tieáp, maïch giao tieáp song song, boä ñònh thôøi gian, heä thoáng ngaét vaø caùc BUS ñöôïc tích hôïp treân cuøng moät chip. Nguoàn ñoàng Ngaét ngoaøi Thieát bò Thieát bò hoà ngoaøi noái tieáp song Ñoàng hoà noäi Timers Ñieàu khieån Giao tieáp Giao tieáp ngaét noái tieáp song CPU Bus döõ lieäu, ñòa chæ, ñieàu khieån RAM ROM Hình 1.1: Sô ñoà khoái cuûa boä vi ñieàu khieån 2.2 Kieán truùc cuûa boä vi ñieàu khieån 8051: IC vi ñieàu khieån 8051/8031 thuoäc hoï MCS51 coù caùc ñaët ñieåm sau : - 4 kbyte ROM (ñöôïc laäp trình bôûi nhaø saûn xuaát chæ coù ôû 8051) - 128 byte RAM - 4 port I/0 8 bit 4
  6. Ñoà aùn moân hoïc VÑK - Hai boä ñònh thôøi 16 bits - Giao tieáp noái tieáp - 64KB khoâng gian boä nhôù chöông trình ngoaøi - 64 KB khoâng gian boä nhôù döõ lieäu ngoaøi - boä xöû lí luaän lí (thao taùc treân caùc bit ñôn) - 210 bit ñöôïc ñòa chæ hoùa - boä nhaân / chia 4μs 2.2.1 Caáu truùc beân trong cuûa 8051: INT\1 INT\0 TIMER2 TIMER1 PORT noá tieáp T1* Ñ Ñieàu Cacùùthanh 128 byte Rom Timer1 T2* khieån ngaét ghi khaùc Ram 4K-8051 Timer2 CPU Taïo dao Ñieàu khieån Caùc port I\O Port noái ñoäng bus tieáp EA\ RST PSEN ALE P0 P1 P2 P3 TXD* RXD* Hình 2.1 : Sô Ñoà Khoái 8051 Phaàn chính cuûa vi ñieàu khieån 8051 laø boä xöû lí trung taâm (CPU: central processing unit ) bao goàm : - Thanh ghi tích luõy A - Thanh ghi tích luõy phuï B, duøng cho pheùp nhaân vaø pheùp chia - Ñôn vò logic hoïc (ALU : Arithmetic Logical Unit ) - Töø traïng thaùi chöông trình (PSW : Prorgam Status Word) - Boán baêng thanh ghi - Con troû ngaên xeáp - Ngoaøi ra coøn coù boä nhôù chöông trình, boä giaûi maõ leänh, boä ñieàu khieån thôøi gian vaø logic. 5
  7. Ñoà aùn moân hoïc VÑK Trong vi ñieàu khieån 8051 / 8031 coù hai thaønh phaàn quan troïng khaùc ñoù laø boä nhôù vaø caùc thanh ghi : Boä nhôù goàm coù boä nhôù Ram vaø boä nhôù Rom (chæ coù ôû 8031) duøng ñeå löu tröõ döõ lieäu vaø maõ leänh. Caùc thanh ghi söû duïng ñeå löu tröõ thoâng tin trong quaù trình xöû lí. Khi CPU laøm vieäc noù laøm thay ñoåi noäi dung cuû aùc thanh ghi. 2.2.2 Chöùc naêng caùc chaân cuûa vi ñieàu khieån: 40 30p 19 Vcc P0.7 32 AD7 XTAL1 P0.6 33 AD6 12MHz P0.5 34 AD5 XTAL2 35 18 P0.4 AD4 30p 36 P0.3 AD3 P0.2 37 AD2 P0.1 38 AD1 29 PSEN\ P0.0 39 AD0 30 ALE 8 P2.7 7 31 P2.6 EA\ 6 9 P2.5 RET 5 P2.4 4 P2.3 17 3 RD\ P2.2 16 2 WR\ P2.1 15 1 T1 P2.0 T0 14 28 P1.7 A15 INT1 13 27 P1.6 A14 INT0 12 26 P1.5 A13 TXD 11 25 P1.4 A12 RXD 10 24 P1.3 A11 23 P1.2 A10 22 P1.1 A9 Vss 21 P1.0 A8 20 Hình 2.2 : Sô Ñoà Chaân 8051 Vi ñieàu khieån 8051 coù 32 trong 40 chaân coù chöùc naêng nhö laø caùc coång I/O, trong ñoa 24 chaân ñöôïc söû duïng vôùi hai muïc ñích. Nghóa laø ngoaøi chöùc naêng coång I/O, moãi chaân coù coâng duïng keùp naøy coù theå laø moät ñöôøng ñieàu khieån cuûa Bus ñòa chæ hay Bus döõ lieäu hoaëc laø moãi chaân hoaït ñoäng moät caùch ñoäc laäp ñeå giao tieáp vôùi caùc thieát ñôn bit nhö laø coâng taéc, LED, transistor… a.Port0 : laø port coù 2 chöùc naêng ôû treân chaân töø 32 ñeán 39 cuûa MC 8051. Trong caùc thieát keá côõ nhoû khoâng duøng boä nhôù ngoaøi, PO ñöôïc söû duïng nhö laø nhöõng coång I/O. Coøn trong caùc thieát keá lôùn coù yeâu caàu moät soá löôïng ñaùng keå boä nhôù ngoaøi thì PO trôû thaønh caùc ñöôøng truyeàn döõ lieäu vaø 8 bit thaáp cuûa bus ñòa chæ. 6
  8. Ñoà aùn moân hoïc VÑK b.Port1 : Port1 laø moät port I/O chuyeân duïng treân caùc chaân 1-8 cuûa MC8051. Chuùng ñöôïc söû duïng vôùi moät muùc ñích duy nhaát laø giao tieáp vôùi caùc thieát bò ngoaøi khi caàn thieát. c.Port2 : Port2 laø moät coång coù coâng duïng keùp treân caùc chaân 21 – 28 cuûa MC 8051. Ngoaøi chöùc naêng I/O, caùc chaân naøy duøng laøm 8 bit cao cuûa bus ñòa chæ cho nhöõng moâ hình thieát keá coù boä nhôù chöông trình ROM ngoaøi hoaëc boä nhôù döõ lieäu RAM coù dung löôïng lôùn hôn 256 byte. d.Port3 : Port3 laø moät coång coù coâng duïng keùp treân caùc chaân 10 – 17 cuûa MC 8051. Ngoaøi chöùc naêng laø coång I/O, nhöõng chaân naøy kieâm luoân nhieàu chöùc naêng khaùc nöõa lieân quan ñeán nhieàu tính naêng ñaëc bieät cuûa MC 8051, ñöôïc moâ taû trong baûng sau : Bit Teân Chöùc naêng chuyeån ñoåi P3.0 RXD Döõ lieäu nhaän cho port noái tieáp P3.1 TXD Döõ lieäu phaùt cho port noái tieáp P3.2 INTO Ngaét 0 beân ngoaøi P3.3 INT1 Ngaét 1 beân ngoaøi P3.4 TO Ngoû vaøo cuûa timer 0 P3.5 T1 Ngoõ vaøo cuûa timer 1 P3.6 WR Tín hieäu ghi boä nhôù döõ lieäu ngoaøi P3.7 RD Tín hieäu ñoïc boä nhôù döõ lieäu ngoaøi Baûng 2.1 : Chöùc naêng cuûa caùc chaân treân port3 e.PSEN (Program Store Enable ) : 8051 coù 4 tín hieäu ñieàu khieån. PSEN laø tín hieäu ra treân chaân 29. Noù laø tín hieäu ñieàu khieån ñeå cho pheùp truy xuaát boä nhôù chöông trình môû roäng vaø thöôøng ñöôïc noái ñeán chaân OE (Output Enable) cuûa moät EPROM ñeå cho pheùp ñoïc caùc byte maõ leänh cuûa chöông trình. Tín hieäu PSEN ôû möùc thaáp trong suoát phaïm vi quaù trình cuûa moät leänh. PSEN seõ ôû möùc thaáp trong thôøi gian laáy leänh. Caùc maõ nhò phaân cuûa chöông trình ñöôïc ñoïc töø EPROM qua bus vaø ñöôïc choát vaøo thanh ghi leänh cuûa 8051 ñeå giaûi maõ leänh. Khi thi haønh chöông trình trong ROM noäi PSEN seõ ôû möùc cao. f.ALE (Address Latch Enable ) : ALE laø tín hieäu ñeå choát ñòa chæ vaøo moät thanh ghi beân ngoaøi trong nöõa ñaàu cuûa chu kyø boä nhôù. Sau ñoù, caùc ñöôøng Port 0 duøng ñeå xuaát hoaëc nhaäp döõ lieäu trong nöõa sau chu kyø cuûa chu kyø boä nhôù. Caùc xung tín hieäu ALE coù toác ñoä baèng 1/6 laàn taàn soá dao ñoäng treân chip vaø coù theå ñöôïc duøng laø nguoàn xung nhòp cho caùc heä thoáng. Neáu xung treân 8051 laø 12MHz thì ALE coù taàn soá 2MHz. Chaân naøy cuõng ñöôïc laøm ngoõ vaøo cho xung laäp trình cho EPROM trong 8051. g.EA (External Access) : Tín hieäu vaøo EA treân chaân 31 thöôøng ñöôïc noái leân möùc cao (+5V) hoaëc möùc thaáp (GND). h.RST (Reset) : 7
  9. Ñoà aùn moân hoïc VÑK Ngoõ vaøo RST treân chaân 9 laø ngoõ reset cuûa 8051. Khi tín hieäu naøy ñöôïc ñöa leân möùc cao (trong ít nhaát 2 chu kyø maùy ), caùc thanh ghi trong 8051 ñöôïc ñöa vaøo nhöõng giaù trò thích hôïp ñeå khôûi ñoäng heä thoáng. i. OSC: Nhö ñaõ thaáy trong caùc hình treân, 8051 coù moät boä dao ñoäng treân chip. Noù thöôøng ñöôïc noái vôùi thaïch anh giöõa hai chaân 18 vaø 19. Taàn soá thaïch anh thoâng thöôøng laø 12MHz. j. POWER: 8051 vaän haønh vôùi nguoàn ñôn +5V. Vcc ñöôïc noái vaøo chaân 40 vaø Vss (GND) ñöôïc noái vaøo chaân 20. 2.2.3.Toå chöùc boä nhôù cuûa boä vi ñieàu khieån 8051 : 8051 coù boä nhôù theo caáu truùc Harvard : coù nhöõng vuøng boä nhôù rieâng bieät cho chöông trình vaø döõ lieäu. Nhö ñaõ noùi ôû treân, caû chöông trình vaø döõ lieäu coù theå ôû beân trong 8051, duø vaäy chuùng coù theå ñöôïc môû roäng baèèng caùc thaønh phaàn ngoaøi leân ñeán toái ña 64 Kbytes boä nhôù chöông trình vaø 64 Kbytes boä nhôù döõ lieäu. Boä nhôù beân trong bao goàm ROM (8051) vaø RAM treân chip. RAM treân chip bao goàm nhieàu phaàn : phaàn löu tröõ ña duïng, phaàn löu tröõ ñòa chæ hoùa töøng bit, caùc bank thanh ghi vaø caùc thanh ghi chöùc naêng ñaëc bieät. Chi tieát veà boä nhôù RAM treân chip : RAM beân trong chip 8051 ñöôïc phaân chia nhö sau: • bank thanh ghi (00H – 1FH). • RAM ñòa chæ hoùa töøng bit (20H – 2FH). • RAM ña duïng (30H – 7FH)ø. • Caùc thanh ghi chöùc naêng ñaëc bieät (80H – FFH). 8
  10. Ñoà aùn moân hoïc VÑK a. RAM ña duïng. Ñòa chæ byte Ñòa chæ bit 7F RAM ña duïng 30 7F 7E 7D 7C 7B 7A 79 78 2F 77 76 75 74 73 72 71 70 2E 2D 6F 6E 6D 6C 6B 6A 69 68 2C 67 66 65 64 63 62 61 60 2B 5F 5E 5D 5C 5B 5A 59 58 2A 57 56 55 54 53 52 51 50 29 4F 4E 4D 4C 4B 4A 49 48 28 47 46 45 44 43 42 41 40 27 3F 3E 3D 3C 3B 3A 39 38 26 37 36 35 34 33 32 31 30 25 2F 2E 2D 2C 2B 2A 29 28 24 27 26 25 24 23 22 21 20 23 1F 1E 1D 1C 1B 1A 19 18 22 17 16 15 14 13 12 11 10 21 0F 0E 0D 0C 0B 0A 09 08 20 07 06 05 04 03 02 01 00 1F 18 BANK 3 17 BANK 2 10 0F BANK 1 08 Default register 07 Bank for RO÷R7 00 Hình 2.3 Baûng toùm taét baûn baûn ñoà vuøng nhôù döõ lieäu treân chip 8051 9
  11. Ñoà aùn moân hoïc VÑK Ñòa chæ byte Ñòa chæ bit FF F0 F7 F6 F5 F4 F3 F2 F1 F0 B E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW B8 - - - BC BB BA B9 B8 IP B0 B7 B6 B5 B4 B3 B2 B1 B0 P3 A8 AF - - AC AB AA A9 A8 IE A0 A7 A6 A5 A4 A3 A2 A1 A0 P2 SBUF 99 Not bit addressable 98 9F 9E 9D 9C 9B 9A 99 98 SCON 90 97 96 95 94 93 92 91 90 P1 8D TH1 Not bit addressable 8C TH0 Not bit addressable 8B 8A Not bit addressable TL1 89 Not bit addressable TL0 Not bit addressable TMOD 88 8F 8E 8D 8C 8B 8A 89 88 TCON 87 Not bit addressable PCON 83 Not bit addressable DPH 82 Not bit addressable DPL 81 Not bit addressable SP 80 87 86 85 84 83 82 81 80 PO Hình 2.4 Toùm taét boä nhôù döõ lieäu treân chip Moïi ñòa chæ trong vuøng RAM ña duïng ñeàu coù theå ñöôïc truy xuaát töï do duøng caùch ñaùnh ñòa chæ tröïc tieáp hoaëc giaùn tieáp. Ví duï, ñeå ñoïc noäi dung ôû ñòa chæ 5FH cuûa RAM noäi vaøo thanh ghi tích luõy leänh sau seõ ñöôïc duøng : MOV A, 5FH 10
  12. Ñoà aùn moân hoïc VÑK Leänh naøy di chuyeån moät byte döõ lieäu duøng caùch ñaùnh ñòa chæ tröïc tieáp ñeå xaùc ñònh “ñòa chæ nguoàn” (5FH). Ñích nhaän döõ lieäu ñöôïc ngaàm xaùc ñònh trong maõ leänh laø thanh ghi tích luõy A. RAM beân trong cuõng coù theå ñöôïc truy xuaát duøng caùch ñaùnh ñòa chæ giaùn tieáp qua RO hay R1. Ví duï, sau khi thi haønh cuøng nhieäm vuï nhö leänh ñôn ôû treân : MOV R0, #5FH MOV A, @R0 Leänh ñaàu duøng ñòa chæ töùc thôøi ñeå di chuyeån giaù trò 5FH vaøo thanh ghi R0 vaø leänh thöù hai duøng ñòa giaùn tieáp ñeå di chuyeån döõ lieäu “ñöôïc troû bôûi R0” vaøo thanh ghi tích luõy. b.RAM ñòa chæ hoùa töøng bit : 8051 chöùa 210 bit ñöôïc ñòa chæ hoùa, trong ñoù 128 bit laø ôû caùc ñòa chæ byte 20H ñeán 2FH, vaø phaàn coøn laïi trong caùc thanh ghi chöùc naêng ñaëc bieät . Coù 128 bit ñöôïc ñòa chæ hoùa ña duïng ôû caùc byte 20H ñeán 2FH. Caùc ñòa chæ naøy ñöôïc truy xuaát nhö caùc byte hoaëc caùc bit phuï thuoäc vaøo leänh ñöôïc duøng. Ví duï, ñeå ñaët bit 67H, ta duøng leänh sau : SETB 67H ÔÛ ñaây ñòa chæ bit 67H laø bit coù troïng soá lôùn nhaát (MSB) ôû ñòa chæ byte 2CH, leänh treân seõ khoâng taùc ñoäng ñeán caùc bit khaùc cuûa byte naøy. c.Caùc bank thanh ghi : MC 8051 cung caáp 32 byte thaáp nhaát cuûa boä nhôù döõ lieäu noäi laø daønh cho caùc bank thanh ghi. 8 thanh ghi (RO ñeán R7) ôû vò trí cuoái cuøng cuûa RAM vaø theo maëc ñònh (sau khi Reset heä thoáng) caùc thanh ghi naøy ôû caùc ñòa chæ 00H-07H, tieáp ñoù laø bank 1, bank 2 vaø bank 3. Leänh sau ñaây seõ ñoïc noäi dung ôû ñòa chæ 05H vaøo thanh ghi tích luõy: MOV A,R5 Ñaây laø leänh moät byte duøng ñòa chæ thanh ghi. Taát nhieân, thao taùc töông töï coù theå ñöôïc thi haønh baèng leänh 2 byte duøng ñòa chæ tröïc tieáp naèm trong byte thöù hai: MOV A,05H Caùc leänh duøng caùc thanh ghi R0 ñeán R7 thì seõ ngaén hôn vaø nhanh hôn caùc leänh töông öù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. 2.2.4 Caùc thanh ghi chöùc naêng ñaëc bieät SFR: Caùc thanh ghi noäi cuûa 8051 ñöôïc truy xuaát ngaàm ñònh bôûi boä leänh. Ví duï leänh “INC A” seõ taêng noäi dung cuûa thanh ghi tích luõy A leân 1. Taùc ñoäng naøy ñöôïc ngaàm ñònh trong maõ leänh. Cuõng nhö R0 ñeán R7, coù 21 thanh ghi chöùc naêng ñaëc bieät (SFR: Special Funtion Rgister) ôû vuøng treân cuûa RAM noäi, töø ñòa chæ 80H ñeán FFH. Chuù yù raèng haàu heát 128 ñòa chæ töø 80H ñeán FFH khoâng ñöôïc ñònh nghóa, chæ coù 21 ñòa chæ SFR laø ñöôïc ñònh nghóa. Ngoaïi tröø tích luõy (A) coù theå ñöôïc truy xuaát ngaàm nhö ñaõ noùi, ña soá caùc SFR ñöôïc truy xuaát duøng ñòa chæ tröïc tieáp. chuù yù raèng moät vaøi SFR coù theå ñöôïc ñòa chæ hoùa bit hoaëc byte. Khi thieát keá phaûi thaän troïng khi truy xuaát bit vaø byte. Ví duï leänh sau: SETB 0E0H Seõ Set bit 0 trong thanh ghi tích luõy, caùc bit khaùc khoâng thay ñoåi. Ta thaáy raèng E0H ñoàng thôøi laø ñòa chæ byte cuûa thanh ghi tích luõy vaø laø ñòa chæ bit coù troïng soá nhoû nhaát trong thanh ghi tích luõy. Vì leänh SETB chæ taùc ñoäng treân bit, neân chæ coù ñòa chæ bit laø coù hieäu quaû. 11
  13. Ñoà aùn moân hoïc VÑK a. Töø traïng thaùi chöông trình(PWS): Töø traïng thaùi chöông trình (PSW: Program Status Word) ôû ñòa chæ D0H chöùa caùc bit traïng thaùi nhö baûng toùm taét sau: Bit Kyù hieäu Ñòa chæ YÙù nghóa PSW.7 CY D7H Côø nhôù PSW.6 AC D6H Côø nhôù phuï PSW.5 F0 D5H Côø 0 PSW.4 RS1 D4H Bit 1 choïn bank thanh ghi PSW.3 RS0 D3H Bit choïn bank thanh ghi. 00=bank 0; ñòa chæ 00H-07H 01=bank 1: ñòa chæ 08H-0FH 10=bank 2:ñòa chæ 10H-17H 11=bank 3:ñòa chæ 18H-1FH PSW.2 OV D2H Côø traøn PSW.1 D1H Döï tröõ PSW.0 P D0H Côø Parity chaün. Hình 21: Töø traïng thaùi chöông trình • Côø nhôù (CY) coù coâng duïng keùp. Thoâng thöôøng noù ñöôïc duøng cho caùc leänh toaùn hoïc: noù seõ ñöôïc set neáu coù moät soá nhôù sinh ra bôûi pheùp coäng hoaëc coù moät soá möôïn pheùp tröø . Ví duï, neáu thanh ghi tích luõy chöùa FFH, thì leänh sau: ADD A,#1 Seõ traû veà thanh ghi tích luõy keát quûa 00H vaø set côø nhôù trong PSW. Côø nhôù cuõng coù theå xem nhö moät thanh ghi 1 bit cho caùc leänh luaän lyù thi haønh treân bit. Ví duï, leänh seõ AND bit 25H vôùi côø nhôù vaø ñaët keát quûa trôû vaøo côø nhôù: ANL C,25H • Côø nhôù phuï AC : Khi coäng caùc soá BCD, côø nhôù phuï (AC) ñöôïc set neáu keát quûa cuûa 4 bit thaáp trong khoaûng 0AH ñeán 0FH. Neáu caùc giaù trò coäng ñöôïc laø soá BCD, thì sau leänh coäng caàn coù DA A( hieäu chænh thaäp phaân thanh ghi tích luõy) ñeå mang keát quûa lôùn hôn 9 trôû veà taâm töø 0÷9. • Côø zero F0: Côø F0 laø moät bit côø ña duïng daønh caùc öùng duïng cuûa ngöôøi duøng. • Caùc bit choïn bank thanh ghi Caùc bit choïn bank thanh ghi (RSO vaø RS1) xaùc ñònh bank thanh ghi ñöôïc tích cöïc. Chuùng ñöôïc xoùa sau khi reset heä thoáng vaø ñöôïc thay ñoåi baèng phaàn meàm neáu caàn. Ví duï, ba leänh sau cho pheùp bank thanh ghi 3 vaø di chuyeån noäi dung cuûa thanh ghi R7 (ñòa chæ byte 1FH) ñeán thanh ghi tích luõy: SETB RS1 SETB RSO MOV A,R7 Khi chöông trình ñöôïc hôïp dòch caùc ñòa chæ bit ñuùng ñöôïc thay theá cho caùc kyù hieäu “RS1” vaø “RS0”. Vaäy leänh SETB RS1 seõ gioáng nhö leänh SETB 0D4H. • Côø Traøn Côø traøn (OV) ñöôïc set moät leänh coäng hoaëc tröø neáu coù moät pheùp toaùn bò traøn. Khi caùc soá coù daáu ñöôïc coäng hoaëc tröø vôùi nhau, phaàn meàm coù theå kieåm tra bit naøy ñeå xaùc ñònh xem keát quûa cuûa noù coù naèm trong taàm xaùc ñònh khoâng. Khi caùc soá khoâng daáu ñöôïc coäng, bit OV coù theå ñöôïc boû qua. Caùc keát quûa lôùn hôn +127 hoaëc nhoû hôn –128 seõ set bit OV. 12
  14. Ñoà aùn moân hoïc VÑK b. Thanh ghi B: Thanh ghi B ôû ñòa chæ F0H ñöôïc duøng cuøng vôùi thanh ghi tích luõy A cho caùc pheùp toaùn nhaân vaø chia. Leänh MUL AB seõ nhaân caùc giaù trò khoâng daáu 8 bit trong A vaø B roài traû veà keát quûa 16 bit trong A (byte thaáp) vaø B (byte cao). Leänh DIV AB seõ chia A cho B roài traû veà keát quûa nguyeân trong A vaø phaàn dö trong B. Thanh ghi B cuõng coù theå ñöôïc xem nhö thanh ghi ñeäm ña duïng. Noù ñöôïc ñòa chæ hoùa ttöøng bit baèng caùc ñòa chæ bit FOH ñeán F7H. c. Con troû ngaên xeáp: Con troû ngaên xeáp (SP) laø moät thanh ghi 8 bit ôû ñòa chæ 81H. Noù chöùa ñòa chæ cuûa byte döõ lieäu hieän haønh treân ñænh cuûa ngaên xeáp. Caùc leänh treân ngaên xeáp bao goàm caùc thao taùc caát döõ lieäu vaøo ngaên xeáp vaø laáy döõ lieäu ra khoûi ngaên xeáp. Leänh caát döõ lieäu vaøo ngaên xeáp seõ laøm taêng SP tröôùc khi ghi döõ lieäu, vaø leänh laáy döõ lieäu ra khoûi ngaên xeáp seõ doïc döõ lieäu vaø laøm giaûm SP. Ngaên xeáp cuûa 8051 ñöôïc giöõ trong RAM noäi vaø ñöôïc giôùi haïn caùc ñòa chæ coù theå truy xuaát baèng ñòa chæ giaùn tieáp. chuùng laø 128 byte ñaàu cuûa 8051. Ñeå khôûi ñoäng laïi SP vôùi ngaên xeáp baét ñaàu taïi 60H, caùc leänh sau ñaây ñöôïc duøng: MOV SP,#5FH d. Con troû döõ lieäu: Con troû döõ lieäu (DPTR) ñöôïc duøng ñeå truy xuaát boä nhôù ngoaøi, ñaây laø moät thanh ghi 16 bit ôû ñòa chæ 82H( byte thaáp) vaø 83H (byte cao). Ba leänh sau seõ ghi 55H vaøo RAM ngoaøi ôû ñòa chæ 1000H: MOV A,#55H MOV DPTR,#1000H MOVX @DPTR,A Leänh ñaàu tieân duøng ñòa chæ töùc thôøi ñeå taûi döõ lieäu 55H vaøo thanh ghi tích luõy, leänh thöù hai cuõng duøng ñòa chæ töùc thôøi, laàn naøy ñeå taûi döõ lieäu 16 bit 1000H vaøo con troû döõ lieäu. Leänh thöù ba duøng ñòa chæ giaùn tieáp ñeå di chuyeån döõ lieäu trong A (55H) ñeán RAM ngoaøi ôû ñòa chæ ñöôïc chöùa trong DPTR (1000H) e. Caùc thanh ghi port xuaát nhaäp: Caùc port cuûa 8051/8031 bao goàm Port 0 ôû ñòa chæ 80H, Port 1 ôû ñòa chæ 90 H, Port 2 ôû ñòa chæ A0H vaø Port 3 ôû ñòa chæ B0H. Taát caû caùc Port ñeàu ñöôïc ñòa chæ hoùa töøng bit. Ñieàu ñoù cung caáp moät khaû naêng giao tieáp thuaän lôïi. f. Caùc thanh ghi timer: 8051 chöùa 2 boä ñònh thôøi ñeám 16 bit ñöôïc duøng trong vieäc ñònh thôøi hoaëc ñeám söï kieän. Timer 0 ôû ñòa chæ 8AH (TL0:byte thaáp) vaø 8CH (TH0:byte cao).Timer 1 ôû ñòa chæ 8BH (TL1:byte thaáp) vaø 8DH (TH1: byte cao). Vieäc vaän vaänhaønh timer ñöôïc set bôûi thanh ghi Timer Mode (TMOD) ôû ñòa chæ 89H vaø thanh ghi ñieàu khieån timer (TCON) ôû ñòa chæ 88H. Chæ coù TCON ñöôïc ñòa chæ hoùa töøng bit. g. Caùc thanh ghi port noái tieáp: 8051 chöùa moät port noái tieáp treân chip daønh cho vieäc trao ñoåi thoâng tin vôùi caùc thieát bò noái tieáp nhö maùy tính, modem hoaëc cho vieäc giao tieáp vôùi caùc IC khaùc coù giao tieáp noái tieáp (coù boä chuyeån ñoåi A/D, caùc thanh ghi dòch..). Moät thanh ghi goïi laø boä ñeäm döõ lieäu noái tieáp (SBUF) ôû ñòa chæ 99H seõ giöõ caû hai döõ lieäu truyeàn vaø nhaän. Khi truyeàn döõ lieäu thì ghi leân SBUf, khi nhaän döõ lieäu thì ñoïc töø SBUF. Caùc mode vaän haønh khaùc nhau ñöôïc laäp trình qua thanh ghi ñieàu khieån port noái tieáp (SCON) ñöôïc ñòa chæ hoùa töøng bit ôû ñòa chæ 98H. h. Caùc thanh ghi ngaét: 13
  15. Ñoà aùn moân hoïc VÑK 8051 coù caáu 5 nguoàn ngaét, 2 möùc öu tieân. Caùc ngaét bò caám sau khi reset heä thoáng vaø seõ ñöôïc cho pheùp baèng vieäc ghi vaøo thanh ghi cho pheùp ngaét (IE) ôû ñòa chæ 8AH moät giaù trò phuø hôïp. Caû hai thanh ghi ñöôïc ñòa chæ hoùa töøng bit. i. Caùc thanh ghi ñieàu khieån coâng suaát: Thanh ghi ñieàu khieån coâng suaát (PCON) ôû ñòa chæ 87H chöùa nhieàu bit ñieàu khieån. Chuùng ñöôïc toùm taét trong baûng sau: Bit Kyù hieäu Yù nghóa 7 SMOD Bit gaáp ñoâi toác ñoä baud, neáu ñöôïc set thì toác ñoä baud seõ taêng gaáp ñoâi trong caùc mode 1,2 vaø 3 cuûa port noái tieáp 6 Khoâng ñònh nghóa 5 Khoâng ñònh nghóa 4 Khoâng ñònh nghóa 3 GF1 Bit côø ña duïng 1 2 GF0 Bit côø ña duïng 0 1 PD Giaûm coâng suaát, ñöôïc set ñeå kích hoaït mode giaûm coâng suaát, chæ thoaù khi reset 0 IDL Mode chôø, set ñeå kích hoaït mode chôø, chæ thoaùt khi coù ngaét hoaëc reset heä thoáng. Hình 2.5 : Thanh ghi ñieàu khieån coâng suaát (PCON) 2.2.6 Leänh reset. 8051 ñöôïc reset baèng caùch giöõ chaân RST ôû möùc cao ít nhaát trong 2 chu kyø maùy vaø traû noù veà muùc thaáp. RST coù theå ñöôïc kích khi caáp ñieän duøng moät maïch R-C. +5V 100Ω 10uF S1 Reset 8.2K Hình 2.8: Maïch reset heä thoáng. 14
  16. Ñoà aùn moân hoïc VÑK Traïng thaùi cuûa taát caû caùc thanh ghi cuûa 8051 sau khi reset heä thoáng ñöôïc toùm taét trong baûng sau: Thanh ghi Noäi dung Ñeám chöông trình 0000H Tích luõy 00H B 00H PSW 00H SP 07H DPTR 0000H Port 0-3 FFH IP XXX00000B IE 0XX00000B Caùc thanh ghi ñònh thôøi 00H SCON 00H SBUF 00H PCON(HMOS) 0XXXXXXB PCON(CMOS) 0XXX0000B Hình 2.9 : Traïng thaùi caùc thanh ghi sau khi reset Quan troïng nhaát trong caùc thanh ghi treân laø thanh ghi ñeám chöông trình, noù ñöôïc ñaët laïi 0000H. Khi RST trôû laïi möùc thaáp, vieäc thi haønh chöông trình luoân baét ñaàu ôû ñòa chæ ñaàu tieân trong boä nhôù trong chöông trình: ñòa chæ 0000H. Noäi dung cuûa RAM treân chip khoâng bò thay ñoåi bôûi leänh reset. 2.2.7. Hoaït ñoäng cuûa boä ñònh thôøi (timer): a. Giôùi thieäu. Moät ñònh nghóa ñôn giaûn cuûa timer laø moät chuoãi caùc flip-flop chia ñoâi taàn soá noái tieáp vôùi nhau, chuùng nhaän tín hieäu vaøo laøm nguoàn xung nhòp. Ngoõ ra cuûa taàn soá cuoái laøm nguoàn xung nhòp cho flip-flop baùo traøn cuûa timer (flip-flop côø). Giaù trò nhò phaân trong caùc flip-flop cuûa timer coù theå xem nhö soá ñeám soá xung nhòp (hoaëc caùc söï kieän) töø khi khôûi ñoäng timer. Ví duï timer 16 bit seõ ñeám leân töø 0000H ñeán FFFFH. Côø baùo traøn seõ leân 1 khi soá ñeám traøn töø FFFFH ñeán 0000H. 8051 coù 2 timer 16 bit, moãi timer coù boán caùch laøm vieäc. Ngöôøi ta söû duïng caùc timer ñeå : ñònh khoaûng thôøi gian, ñeám söï kieän hoaëc taïo toác ñoä baud cho port noái tieáp trong 8051. Trong caùc öùng duïng ñònh khoaûng thôøi gian, ngöôøi ta laäp trình timer ôû moät khoaûng ñeàu ñaën vaø ñaët côø traøn timer. Côø ñöôïc duøng ñeå ñoàng boä hoùa chöông trình ñeå thöïc hieän moät taùc ñoäng nhö kieåm tra traïng thaùi cuûa caùc ngoõ vaøo hoaëc göûi caùc söï kieän ra caùc ngoõ ra. Caùc öùng duïng khaùc coù theå söû duïng vieäc taïo xung nhòp ñeàu ñaën cuûa timer ñeå ño thôøi gian troâi qua giöõa hai söï kieän (ví duï : ño ñoä roäng xung). Ñeám söï kieän duøng ñeå xaùc ñònh soá laàn xaûy ra cuûa moät söï kieän. Moät söï kieän laø baát cöù taùc ñoäng ngoaøi naøo coù theå cung caáp moät chuyeån traïng thaùi treân moät chaân cuûa 8051. Caùc timer cuõng coù theå cung caáp xung nhòp toác ñoä baud cho port noái tieáp trong 8051. Truy xuaát timer cuûa 8051 duøng 6 thanh ghi chöùc naêng ñaëc bieät cho trong baûng sau: SFR MUÏC ÑÍCH ÑÒA CHÆ Ñòa chæ hoùa töøng bit 15
  17. Ñoà aùn moân hoïc VÑK TCON Ñieàu khieån timer 88H Coù TMOD Cheá ñoä timer 89H Khoâng TL0 Byte thaáp cuûa timer 0 8AH Khoâng TL1 Byte thaáp cuûa timer 1 8BH Khoâng TH0 Byte cao cuûa timer 0 8CH Khoâng TH1 Byte cao cuûa timer 1 8DH Khoâng Hình 2.10 : Thanh ghi chöùc naêng ñaëc bieät duøng timer. b. Thanh ghi cheá ñoä timer (TMOD: Thanh ghi TMOD chöùa hai nhoùm 4 bit duøng ñeå ñaët cheá ñoä laøm vieäc cho timer 0 vaø timer 1. Bit Teân Timer Moâ taû 7 GATE 1 Bit (Môû) coång, khi leân 1 timer chæ chaïy khi INT1 ôû möùc cao. 6 C/T 1 Bit choïn cheá ñoä counter/timer 1=boä ñeám söï kieän 0=boä ñònh khoaûng thôøi gian 5 M1 1 Bit 1 cuûa cheá ñoä(mode) 4 M0 1 Bit 0 cuûa cheá ñoä 00: cheá ñoä 0 : timer 13 bit 01: cheá ñoä 1 : timer 16 bit 10: cheá ñoä 2 : töï ñoäng naïp laïi 8255A bit 11: cheá ñoä 3 : taùch timer 3 GATE 0 Bit (môû) coång 2 C/T 0 Bit choïn counter/timer 1 M1 0 Bit 1 cuûa cheá ñoä 0 M0 0 Bit 0 cuûa cheá ñoä Hình 2.11:Toùm taét thanh ghi TMOD c. Thanh ghi ñieàu khieån timer (TCON): Thanh ghi TCON chöùa caùc bit traïng thaùi vaø caùc bit ñieàu khieån cho timer 0 vaø timer 1. Bit Kyù hieäu Ñòa chæ Moâ taû TCON.7 TF1 8FH Côø baùo traøn timer 1. Ñaët bôûi phaàn 16 cöùng khi traøn, ñöôïc xoùa bôûi phaàn meàm hoaëc phaàn cöùng khi boä xöû lyù chæ ñeán chöông trình phuïc vuï ngaét.
  18. Ñoà aùn moân hoïc VÑK Hình 2.12: Toùm taét thanh ghi TCON d. Caùc cheá ñoä timer: * Cheá ñoä 0, cheá ñoä timer 13 bit. Ñeå töông thích vôùi 8048 (coù tröùôùc 8051) Ba bit cao cuûa TLX (TL0 vaø/hoaêc TL1) khoâng duøng TLx THx TFx (5 bit) (8 bit) Xung nhòp timer Côø baùo traøn * Cheá ñoä 1- cheá ñoä timer 16 bit. Hoaït ñoäng nhö timer 16 bit ñaày ñuû. Côø baùo traøn laø bit TFx trong TCON coù theå ñoïc hoaëc ghi baèng phaàm meàm. MSB cuûa giaù trò trong caùc thanh ghi timer laø bit 7 cuûa THx vaø LBS laø bit 0 cuûa TLx. Caùc thanh ghi timer (TLx/THx) coù theå ñöôïc ñoïc hoaëc ghi baát cöù luùc naøo baèng phaàm meàm. TLx THx TFx (8 bit) (8 bit) Xung nhòp timer Côø baùo traøn 17
  19. Ñoà aùn moân hoïc VÑK * Cheá ñoä 2- cheá ñoä töï ñoäng naïp laïi 8 bit. TLx hoaït ñoäng nhö moät timer 8 bit, trong khi ñoù THx vaãn giöõ nguyeân giaù trò ñöôïc naïp. Khi soá ñeám traøn töù FFH ñeán 00H, khoâng nhöõng côø timer ñöôïc set maø giaù trò trong THx ñoàng thôøi ñöôïc naïp vaøo TLx. Vieäc ñeám tieáp tuïc töø giaù trò naøy leân ñeán FFH xuoáng 00H vaø naïp laïi... cheá ñoä naøy raát thoâng duïng vì söï traøn timer xaûy ra trong nhöõng khoaûng thôøi gian nhaát ñònh vaø tuaàn hoaøn moät khi ñaõ khôûi ñoäng TMOD vaø THx. TL1 TH1 Xung nhòp timer TLx TFx (8 bit) (8 bit) Xung nhòp timer TL0 TF0 ÌCôøbaùo traøn Xung nhòp timer Côø baùo traøn THx (8 bit) TH0 TF1 Reload Xung nhòp timer Côø baùo traøn * Cheá ñoä 3- cheá ñoä taùch timer Timer 0 taùch thaønh hai timer 8 bit (TL0 vaø TH0), TL0 coù côø baùo traøn laø TF0 vaø TH0 coù côø baùo traøn laø TF1. Timer 1 ngöng ôû cheá ñoä 3, nhöng coù theå ñöôïc khôûi ñoäng baèng caùch chuyeån sang cheá ñoä khaùc. Giôùi haïn duy nhaát laø côø baùo traøn TF1 khoâng coøn bò taùc ñoäng khi timer 1 bò traøn vì noù ñaõ ñöôïc noái tôùi TH0. 8. Hoaït ñoäng port noái tieáp. 8.1. Giôùi thieäu. 8051/8031 coù moät port noái tieáp trong chip coù theå hoaït ñoäng ôû nhieàu cheá ñoä khaùc treân moät daõy taàn soá roäng. Chöùc naêng chuû yeáu cuûa moät port noái tieáp 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. Truy xuaát phaàn cöùng ñeán port noái tieáp qua caùc chaân TXD vaø RXD. Caùc chaân naøy coù caùc chöùc naêng khaùc vôùi hai bit cuûa port 3. P3 ôû chaân 11 (TXD) vaø P3.0 ôû chaân 10 (RXD). 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 luùc 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) ôû ñaïi chæ 99H thaät söû laø hai boä ñeám. Vieát vaøo SBUF ñeå truy xuaát döõ lieäu thu ñöôïc. Ñaây laø hai thanh ghi rieâng bieät thanh ghi chæ ghi ñeå phaùt vaø thanh ghi ñeå thu. 18
  20. Ñoà aùn moân hoïc VÑK TXD (P3.1) RXD (P3.0) CLK SUBF Q D Thanh ghi (Chæ ghi) CLK Xung nhòp toác Ñoä baud (thu) SBUF Xung nhòp toác (chæ ñoïc) Ñoä baud (thu) SBUF (chæ ñoïc) BUS noäi 8051/8031 Hình 2.9: Sô ñoà port noái tieáp. Thanh ghi ñieàu khieån port noái tieáp (SCON) ôû ñòa chæ 98H laø thanh ghi coù ñòa 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å ñöôïc laäp trình ñeå taïo ngaét. Taàn soá laøm vieäc cuûa port noái tieáp coøn goïi laø toác ñoä baund coù theå coá ñònh (laáy töø boä giao ñoäng cuûa chip). Neáu söû duïng toác ñoä baud thay ñoåi, timer 1 seõ cung caáp xung nhòp toác ñoä baud vaø phaûi ñöôïc laäp trình. 8.2 Thanh ghi ñieàu khieån port noái tieáp. Cheá ñoä hoaït ñoäng cuûa port noái tieáp ñöôïc ñaët baèng caùch ghi vaøo thanh ghi cheá ñoä port noái tieáp (SCON) ôû ñòa chæ 98H. Sau ñaây caùc baûng toùm taét thanh ghi SCON vaø caùc cheá ñoä cuûa port noái tieáp : 19
Đồng bộ tài khoản