ዝርዝር ሁኔታ:

AVR ሰብሳቢ መማሪያ 6: 3 ደረጃዎች
AVR ሰብሳቢ መማሪያ 6: 3 ደረጃዎች

ቪዲዮ: AVR ሰብሳቢ መማሪያ 6: 3 ደረጃዎች

ቪዲዮ: AVR ሰብሳቢ መማሪያ 6: 3 ደረጃዎች
ቪዲዮ: ትንታኔ እና ትርፋማነት፣ Mewtwo Elite Trainer Boxን መክፈት፣ EB10.5 Pokemon Go 2024, ሀምሌ
Anonim
AVR ሰብሳቢ መማሪያ 6
AVR ሰብሳቢ መማሪያ 6

ወደ መማሪያ 6 እንኳን በደህና መጡ!

የዛሬ መማሪያ አንድ አጭር ሲሆን በአንድ አተጋ 328 ፒ እና በሌላ መካከል ሁለት ወደቦችን በመጠቀም መረጃን ለማስተላለፍ ቀለል ያለ ዘዴን የምናዳብርበት ይሆናል። ከዚያ የዳይ ሮለርን ከመማሪያ 4 እና የመመዝገቢያ ተንታኙን ከስልጠና 5 እንይዛቸዋለን ፣ አንድ ላይ እናገናኛቸዋለን እና የዳይ ጥቅልሎች ውጤትን ከሮለር ወደ ተንታኙ ለማስተላለፍ የእኛን ዘዴ እንጠቀማለን። በመቀጠልም በትምህርቱ 5. ለትንተናው የሠራናቸውን ኤልዲዎች በመጠቀም ጥቅሉን በሁለትዮሽ እናተምታለን። አንዴ ይህንን ሥራ ካገኘን በሚቀጥለው ትምህርት ውስጥ የአጠቃላይ ፕሮጀክታችንን ቀጣዩን ክፍል መገንባት እንችላለን።

በዚህ መማሪያ ውስጥ ያስፈልግዎታል

  1. የእርስዎ ፕሮቶታይፕ ቦርድ
  2. የእርስዎ ዳይስ ሮለር ከስልጠና 4
  3. የመመዝገቢያ ተንታኝዎ ከአስተማሪ 5
  4. ሁለት ተያያዥ ሽቦዎች
  5. የተሟላ የውሂብ ሉህ ቅጂ (2014 ክለሳ)

    www.atmel.com/images/Atmel-8271-8-bit-AVR-M…

  6. የመማሪያ ስብስብ ማኑዋል ቅጂ (2014 ክለሳ)

    www.atmel.com/images/atmel-0856-avr-instruc…

ወደ የእኔ አጠቃላይ የ AVR አስተባባሪ ትምህርቶች ስብስብ አገናኝ እዚህ አለ

ደረጃ 1 እርስ በእርስ እንዲነጋገሩ ሁለት ማይክሮ መቆጣጠሪያዎችን እንዴት ማግኘት እንችላለን?

እርስ በእርስ እንዲነጋገሩ ሁለት ማይክሮ መቆጣጠሪያዎችን እንዴት ማግኘት እንችላለን?
እርስ በእርስ እንዲነጋገሩ ሁለት ማይክሮ መቆጣጠሪያዎችን እንዴት ማግኘት እንችላለን?

የእኛ ነጠላ ምርት በአነስተኛ ክፍሎች ስብስብ የተገነባ እንዲሆን የእኛን ፕሮጀክት ማስፋፋት ስለጀመርን አንድ Atmega328P ከሚሰጠን በላይ ብዙ ፒኖችን እንፈልጋለን። ስለዚህ እያንዳንዱን አጠቃላይ ፕሮጀክት በተናጥል በማይክሮ መቆጣጠሪያ ላይ እናደርጋለን ከዚያም በመካከላቸው ያለውን ውሂብ እንዲያጋሩ እናደርጋለን። ስለዚህ እኛ ልንፈታው የሚገባው ችግር ለተቆጣጣሪዎች እርስ በእርስ ለመነጋገር እና በመካከላቸው መረጃን ለማስተላለፍ እንዴት ቀለል ያለ ዘዴ ማምጣት እንችላለን? ደህና ፣ ስለ እነዚህ ተቆጣጣሪዎች አንድ ነገር እያንዳንዳቸው በሰከንድ 16 ሚሊዮን መመሪያዎችን መፈጸማቸው ነው። ይህ በጣም በትክክል የተያዘ ነው እና ስለዚህ ውሂብን ለማስተላለፍ ይህንን ጊዜ ልንጠቀምበት እንችላለን። እኛ ውሂቡን ለማቋቋም ሚሊሰከንዶች መዘግየቶችን የምንጠቀም ከሆነ ሲፒዩ በአንድ ሚሊሰከንዶች ውስጥ 16,000 መመሪያዎችን ስለሚያከናውን በትክክል በትክክል መሆን የለብንም። በሌላ አነጋገር ሚሊሰከንዶች ለሲፒዩ ዘላለማዊነት ነው። ስለዚህ በዳይ ጥቅልሎች እንሞክረው። ከዳይ ሮለር ቺፕ ወደ ተንታኝ ቺፕ የዳይ ጥቅልን ውጤት ማስተላለፍ እፈልጋለሁ። ከመንገዱ ማዶ ቆመህ እንበል እና የጥንድ ዳይስ ጥቅልል ውጤቴን ላሳይህ ፈለግሁ። እኔ ማድረግ የምችለው አንድ ነገር ፣ ሁለታችንም ሰዓት ቢኖረን ፣ የባትሪ ብርሃን ማብራት እችላለሁ ፣ ከዚያ ውሂቤን ለመቀበል ሲዘጋጁ የእጅ ባትሪዎን ያብሩ እና ሁለታችንም ሰዓቶቻችንን እንጀምራለን። ከዚያም ዳይስ በሚሽከረከርበት ጊዜ በሚሊሰከንዶች ትክክለኛ ቁጥር ላይ የእጅ ባትሪዬን አቆየዋለሁ ከዚያም እዘጋለሁ። ስለዚህ 12 ን ከጠቀለልኩ ለ 12 ሚሊሰከንዶች ብርሃኔን አቆየዋለሁ። አሁን ከላይ ያለው ችግር ለእኔ እና ለእርስዎ ፣ በ 5 ሚሊሰከንዶች እና በ 12 መካከል ለመለየት ነገሮችን በበቂ ሁኔታ በትክክል የምንይዝበት መንገድ የለም። ሚሊሰከንዶች። ግን ይህ ስለ ምን ይሆናል - በዳይ ላይ ላሉት እያንዳንዱ ቁጥሮች ብርሃኔን ለአንድ ዓመት ለማቆየት ወስነናል እንበል? ከዚያ 12 ን ከጠቀለልኩ ለ 12 ዓመታት ብርሃኑን አበራለሁ እና ቁጥሩን በትክክል በመለየት ስህተት የሚሠሩበት ዕድል የለም ብለው የሚስማሙ ይመስለኛል? እርስዎ እረፍት ወስደው ቤዝቦል መጫወት ይችላሉ ፣ በዓመቱ ውስጥ በሆነ ቦታ ላይ መብራቱ በርቶ ከሆነ ቆጠራ እንዳያመልጥዎት እስከ 6 ወር ድረስ በቪጋስ ውስጥ craps መጫወት ይችላሉ። ደህና እኛ ለማይክሮ መቆጣጠሪያዎቹ የምናደርገው በትክክል ነው! ለሲፒዩ አንድ ሚሊሰከንዶች ልክ እንደ አንድ ዓመት ነው። ስለዚህ ምልክቱን ለ 12 ሚሊሰከንዶች ከከፈትኩ ሌላኛው ማይክሮ መቆጣጠሪያ ለ 10 ወይም ለ 11 የሚያደናግርበት ምንም ዕድል የለም እስከዚያ ድረስ ምንም ቢከሰት። ለማይክሮ መቆጣጠሪያዎች አንድ ሚሊሰከንዶች ዘላለማዊ ነው። ስለዚህ እኛ የምናደርገው እዚህ አለ። በመጀመሪያ የእኛ የግንኙነት ወደቦች እንዲሆኑ በመቆጣጠሪያው ላይ ሁለት ወደቦችን እንመርጣለን። መረጃን ለመቀበል PD6 እጠቀማለሁ (ከፈለግን Rx ብለን ልንጠራው እንችላለን) እና መረጃን ለማስተላለፍ PD7 ን እመርጣለሁ (ከፈለግን Tx ብለን ልንጠራው እንችላለን)። የትንታኔው ቺፕ በየጊዜው የ Rx ፒን መሆኑን ይፈትሻል እና ምልክት ካየ ወደ “የግንኙነት ንዑስ ክፍል” ይወርዳል እና በመቀጠል ለመቀበል ዝግጁ ነኝ ብሎ የመመለሻ ምልክት ወደ ዳይስ ሮለር ያስተላልፋል። ሁለቱም ጊዜን ይጀምራሉ እና የዳይ ሮለር በዳይ ላይ ባለ ቁጥር ለአንድ ሚሊሰከንዶች ምልክት (ማለትም 5 ቪ) ያስተላልፋል። ስለዚህ ጥቅሉ ድርብ ስድስት ወይም 12 ከሆነ ፣ ከዚያ የዳይ ሮለር PD7 ን ወደ 5 ቪ ለ 12 ሚሊሰከንዶች ያዘጋጃል እና ከዚያ ወደ 0V ያዋቅረዋል። ተንታኙ እያንዳንዱን ጊዜ በመቁጠር የ PD6 ፒኑን ፒን እያንዳንዱን ሰከንዶች ይፈትሻል ፣ እና ወደ 0 ቮ ሲመለስ የውጤቱን ቁጥር ወደ ተንታኙ ማሳያ ያወጣል ፣ በ LED ላይ ሁለት አስራ ሁለት ያሳያል። ስለዚህ ያ ዕቅዱ ነው። እንተተገብረሉ እንታይ እዩ?

ደረጃ 2 - የግንኙነቶች ንዑስ ቡድኖች

ማድረግ ያለብን የመጀመሪያው ነገር ሁለቱን ተቆጣጣሪዎች ማገናኘት ነው። ስለዚህ በአንዱ ላይ ከ PD6 ሽቦ ይውሰዱ እና በሌላኛው ከ PD7 ጋር ያገናኙት እና በተቃራኒው። ከዚያ በሁለቱም ላይ PD7 ን ወደ OUTPUT እና PD6 ወደ INPUT በማቀናበር ያስጀምሯቸው። በመጨረሻም ሁሉንም ወደ 0 ቪ ያዘጋጁ። በተለይም በእያንዳንዱ ማይክሮ መቆጣጠሪያ ላይ ወደ ኮዱ ወይም ወደ ዳግም አስጀምር ክፍል ውስጥ የሚከተለውን ያክሉ።

sbi DDRD ፣ 7; PD7 ወደ ውጤት ተቀናብሯል

cbi PortD ፣ 7; PD7 መጀመሪያ 0V cbi DDRD ፣ 6; PD6 ወደ ግብዓት cbi PortD ፣ 6 ተቀናብሯል። PD6 መጀመሪያ 0V clr ድምር; በአጠቃላይ በዳይ ላይ መጀመሪያ 0

አሁን በዳይ-ሮለር ቺፕ ላይ የግንኙነቶች ንዑስ ፕሮግራምን እናዘጋጃለን። በመጀመሪያ ከላይ “ጠቅላላ” የሚባለውን አዲስ ተለዋዋጭ ይግለጹ ይህም በዳይ ጥንድ ላይ የተጠቀለለውን ጠቅላላ ቁጥር ያከማቻል እና ወደ ዜሮ ያስጀምረዋል።

ከዚያ ከተንታኙ ጋር ለመገናኘት ንዑስ መመሪያ ይፃፉ -

መገናኘት

cbi PortD ፣ 7 sbi PortD ፣ 7; ዝግጁ የምልክት መጠበቅን ይላኩ sbic PinD ፣ 6; 0V rjmp መጠበቅ መዘግየት 8 ከሆነ PinD ን ያንብቡ እና ይዝለሉ። ለማመሳሰል መዘግየት (ይህንን በሙከራ ተገኝቷል) ይላኩ: dec ጠቅላላ መዘግየት 2; ለእያንዳንዱ የሟች ብዛት ሲፒአይ መዘግየት ፣ 0; 0 እዚህ ማለት “ጠቅላላ” የቁጥር መዘግየቶች ተልከዋል breq PC+2 rjmp send cbi PortD ፣ 7; PD7 እስከ 0V clr ድምር; የዳይስ ድምርን ወደ 0 ret ዳግም ያስጀምሩ

በተንታኙ ውስጥ ከዋናው የዕለት ተዕለት እንቅስቃሴ ወደ መገናኛው ንዑስ ክፍል አንድ ሪከርድን እንጨምራለን-

clr ተንታኝ; ለአዲሱ ቁጥር ይዘጋጁ

sbic PinD ፣ 6; ለ 5V የምልክት ጥሪ ጥሪ PD6 ን ይፈትሹ ፤ 5V ወደ ሞቪ ተንታኝ ለመገናኘት ከሄደ ፣ ጠቅላላ; ወደ ተንታኝ ማሳያ rcall analyzer ውፅዓት

እና ከዚያ የግንኙነቱን ንዑስ ክፍልን እንደሚከተለው ይፃፉ

መገናኘት

clr ድምር; ድምርን ወደ 0 መዘግየት 10 ዳግም ያስጀምሩ; bounces sbi PortD ን ለማስወገድ መዘግየት ፣ 7; ዝግጁ ለመቀበል ምልክት ለማድረግ PB7 ን ወደ 5V ያዘጋጁ - መዘግየት 2; የሚቀጥለውን ቁጥር በድምሩ ይጠብቁ ፤ ጭማሪ ጠቅላላ sbic PinD ፣ 6; PD6 ወደ 0V ተመልሶ ከሄድን rjmp ተቀበልን። አለበለዚያ ለተጨማሪ የውሂብ cbi PortD ፣ 7 ምትኬ ይድገሙ። ድጋሚ ሲጠናቀቅ PD7 ን ዳግም ያስጀምሩ

ይሄውልህ! አሁን እያንዳንዱ ማይክሮ መቆጣጠሪያ ተቆጣጣሪው የዳይ ጥቅሉን ውጤት ለማሳወቅ እና ከዚያም በተንታኙ ላይ ለማሳየት ይዘጋጃል።

ከዳይ ጥቅል ብቻ ይልቅ በመቆጣጠሪያዎች መካከል የመዝገቡን ይዘቶች ማስተላለፍ ሲያስፈልገን ከጊዜ በኋላ በጣም ቀልጣፋ የመግባቢያ መንገድን ተግባራዊ እናደርጋለን። እንደዚያ ከሆነ እኛ አሁንም እነሱን የሚያገናኙትን ሁለት ሽቦዎችን ብቻ እንጠቀማለን ነገር ግን እኛ 1 ፣ 1 ን ‹ማስተላለፍ ይጀምሩ› ለማለት እንጠቀማለን። 0 ፣ 1 “1” ማለት ነው። 1 ፣ 0 “0” ማለት ነው። እና በመጨረሻም 0 ፣ 0 “ማስተላለፍን ማብቃት” ማለት ነው።

መልመጃ 1: የተሻለውን ዘዴ መተግበር ይችሉ እንደሆነ ይመልከቱ እና የዳይ ጥቅሉን እንደ 8 ቢት ሁለትዮሽ ቁጥር ለማስተላለፍ ይጠቀሙበት።

የእኔን በሥራ ላይ የሚያሳይ ቪዲዮ አያያዛለሁ።

ደረጃ 3 መደምደሚያ

መደምደሚያ
መደምደሚያ

ለማጣቀሻዎ የተሟላውን ኮድ አያለሁ። እኔ እንደፈለግሁት ንፁህ እና ሥርዓታማ አይደለም ፣ ነገር ግን ወደፊት በሚሰጡት ትምህርቶች ውስጥ ስናሰፋው አጸዳዋለሁ።

ከአሁን በኋላ ሁሉንም እዚህ ከመፃፍ ይልቅ ኮድ የያዙትን ፋይሎች ብቻ አያይዛለሁ። እኛ ለመወያየት የምንፈልጋቸውን ክፍሎች ብቻ እንተይባለን።

ሁለት ወደቦችን ብቻ በሚጠቀሙበት ጊዜ የእኛ ዳይስ ሮለር ማይክሮ መቆጣጠሪያ ተቆጣጣሪችን የዳይ ማንከባለል ውጤታችን ምን እንደ ሆነ ለመንገር ቀላል ዘዴ ያገኘንበት አጭር ትምህርት ነበር።

መልመጃ 2 - የዳይ ሮለር ለማስተላለፍ ዝግጁ ሲሆን ሌላ ተንታኙ ለመቀበል ሲዘጋጅ ለማሳየት ዝግጁ ምልክት ከመጠቀም ይልቅ “የፒን ለውጥ ማቋረጫ” የሚባል “የውጭ ማቋረጫ” ይጠቀሙ። በ atmega328p ላይ ያሉት ፒኖች በዚህ መንገድ ጥቅም ላይ ሊውሉ ይችላሉ ፣ ለዚህም ነው በፒኖው ዲያግራም ውስጥ ከጎናቸው PCINT0 throught PCINT23 ያላቸው። የሰዓት ቆጣሪው የትርፍ ፍሰት መቋረጥ እንዳደረግነው ይህንን እንደ መቋረጥ በተመሳሳይ መንገድ መተግበር ይችላሉ። በዚህ ሁኔታ ማቋረጫው “ተቆጣጣሪ” ከዳይ ሮለር ጋር የሚገናኝ ንዑስ ክፍል ይሆናል። በዚህ መንገድ የግንኙነት ንዑስ ንዑስ ፕሮግራሞችን ከዋናው መደወል አያስፈልግዎትም - በዚያ ፒን ላይ ካለው የመንግስት ለውጥ የሚመጣ ማቋረጥ በሚኖርበት በማንኛውም ጊዜ ይሄዳል።

መልመጃ 3-በአንዱ ማይክሮ መቆጣጠሪያ ወደ ሌሎች ወደ አንድ ስብስብ መረጃን ለማስተላለፍ እና ለማስተላለፍ እጅግ በጣም የተሻለው መንገድ በራሱ ባለ 2-ሽቦ ተከታታይ በይነገጽ በማይክሮ መቆጣጠሪያው ላይ በመጠቀም ነው። የውሂብ ሉህ ክፍል 22 ን ለማንበብ ይሞክሩ እና እንዴት እንደሚተገብሩት ማወቅ ይችሉ እንደሆነ ይመልከቱ።

ተጨማሪ ተቆጣጣሪዎችን ስንጨምር እነዚህን የበለጠ ዘመናዊ ቴክኒኮችን ወደፊት እንጠቀማለን።

በእኛ ተንታኝ ያደረግነው ሁሉ የዳይ ጥቅሉን ጠቅላላ ወስዶ ከዚያ ኤልኢዲዎችን በመጠቀም በሁለትዮሽ ማተም አስፈላጊው አይደለም። እውነታው ግን አሁን የእኛ ተንታኝ የዳይ ጥቅል ምን እንደ ሆነ “ያውቃል” እና በዚህ መሠረት ሊጠቀምበት ይችላል።

በሚቀጥለው መማሪያ ውስጥ የእኛን “ተንታኝ” ዓላማ እንቀይራለን ፣ ጥቂት ተጨማሪ የወረዳ አካላትን እናስተዋውቃለን ፣ እና የዳይ ጥቅልሉን ይበልጥ ሳቢ በሆነ መንገድ እንጠቀማለን።

እስከምንገናኝ…

የሚመከር: