ዝርዝር ሁኔታ:

AVR ሰብሳቢ መማሪያ 2: 4 ደረጃዎች
AVR ሰብሳቢ መማሪያ 2: 4 ደረጃዎች

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

ቪዲዮ: AVR ሰብሳቢ መማሪያ 2: 4 ደረጃዎች
ቪዲዮ: Как отремонтировать SMPS || Ремонт ИИП шаг за шагом || Импульсный источник питания 2024, ሀምሌ
Anonim
AVR ሰብሳቢ መማሪያ 2
AVR ሰብሳቢ መማሪያ 2

ይህ መማሪያ የ “AVR ሰብሳቢ መማሪያ 1” ቀጣይ ነው።

በመማሪያ 1 ውስጥ ካልሄዱ አሁን ቆም ብለው መጀመሪያ ያንን ማድረግ አለብዎት።

በዚህ መማሪያ ውስጥ በአርዱዲኖ ውስጥ ጥቅም ላይ የዋለውን የ atmega328p የመሰብሰቢያ ቋንቋ መርሃ ግብር ጥናታችንን እንቀጥላለን።

ያስፈልግዎታል:

  1. በመማሪያ 1 ውስጥ እንደ አንድ የዳቦ ሰሌዳ አርዱዲኖ ወይም የተለመደው አርዱዲኖ
  2. አንድ LED
  3. 220 ohm resistor
  4. የግፋ አዝራር
  5. በእርስዎ የዳቦ ሰሌዳ ላይ ወረዳውን ለመሥራት ሽቦዎችን በማገናኘት ላይ
  6. የመመሪያ አዘጋጅ ማንዋል www.atmel.com/images/atmel-0856-avr-instruction-s…
  7. የውሂብ ሉህ www.atmel.com/images/Atmel-8271-8-bit-AVR-Microco…

የእኔ የማጠናከሪያ ትምህርት ሙሉ ስብስብ እዚህ ይገኛል

ደረጃ 1 ወረዳውን መገንባት

ወረዳውን መገንባት
ወረዳውን መገንባት

በዚህ ትምህርት ውስጥ የምናጠናውን ወረዳ በመጀመሪያ መገንባት ያስፈልግዎታል።

የተገናኘበት መንገድ እዚህ አለ -

PB0 (ዲጂታል ፒን 8) - LED - R (220 ohm) - 5V

PD0 (ዲጂታል ፒን 0) - pushbutton - GND

ከ PB0 ይልቅ ከ GND ጋር በማገናኘት የእርስዎ LED በትክክል ተኮር መሆኑን ማረጋገጥ ይችላሉ። ምንም ነገር ካልተከሰተ አቅጣጫውን ይለውጡ እና መብራቱ መነሳት አለበት። ከዚያ ከ PB0 ጋር እንደገና ያገናኙት እና ይቀጥሉ። ስዕሉ የእኔ የዳቦ ሰሌዳ አርዱዲኖ እንዴት እንደተገናኘ ያሳያል።

ደረጃ 2 - የስብሰባውን ኮድ መጻፍ

የስብሰባውን ኮድ መጻፍ
የስብሰባውን ኮድ መጻፍ

Pushbutton.asm በሚባል የጽሑፍ ፋይል ውስጥ የሚከተለውን ኮድ ይፃፉ እና በመማሪያ 1 ውስጥ እንዳደረጉት ከአቫራ ጋር ያጠናቅሩት።

በዚህ ኮድ ውስጥ ብዙ አስተያየቶች እንዳሉን ልብ ይበሉ። ሰብሳቢው አንድ ሴሚኮሎን ባየ ቁጥር ቀሪውን መስመር ዘልሎ ወደ ቀጣዩ መስመር ይሄዳል። ለወደፊቱ ወደ እሱ ሲመለሱ ያደረጉትን እንዲያውቁ ኮድዎን በከፍተኛ ሁኔታ አስተያየት መስጠቱ ጥሩ የፕሮግራም ልምምድ (በተለይም በስብሰባ ቋንቋ!) ጥሩ ነው። ምን እየሆነ እንዳለ እና ለምን እንደሆነ በትክክል እንዲያውቁ በመጀመሪያዎቹ ጥቂት ትምህርቶች ውስጥ ብዙ ነገሮችን አስተያየት እሰጣለሁ። በኋላ ፣ አንዴ በስብሰባ ኮድ ላይ ትንሽ ከተሻሻልን በኋላ ነገሮችን በትንሹ በዝርዝር እገልጻለሁ።

;************************************

; የተፃፈው በ: 1o_o7; ቀን - ጥቅምት 23 ቀን 2014 ፤ ***************************************

.ኖሊስት

.የ "m328Pdef.inc".list.def temp = r16; የሥራ መመዝገቢያ r16 ን እንደ temp rjmp Init መሰየም ፤ የመጀመሪያው መስመር ተገድሏል

በ ዉስጥ:

ser temp; ሁሉንም ቢት በሙቀት መጠን ወደ 1 ያዋቅሩ። ውጭ DDRB, temp; በውሂብ አቅጣጫ I/O ላይ ትንሽ እንደ 1 ማቀናበር ፤ DDRB ለሆነው ለ PortB ይመዝገቡ ፣ ያንን ያዘጋጃል ፤ ፒን እንደ ውጤት ፣ አንድ 0 ያንን ፒን እንደ ግብዓት ያዘጋጃል ፣ ስለዚህ እዚህ ፣ ሁሉም የ PortB ፒኖች ውጤቶች (ወደ 1 ተቀናብረዋል) ldi temp ፣ 0b11111110; “አፋጣኝ” ቁጥሩን ወደ ቴምፕሬተር መመዝገቢያ ይጫኑ። እሱ ብቻ ld ቢሆን ሁለተኛው ክርክር; በምትኩ ከ DDRD ፣ temp ውጭ የማስታወሻ ቦታ መሆን አለበት። mv temp ወደ DDRD ፣ ውጤቱ PD0 ግብዓት ነው ፣ እና የተቀሩት ውፅዓት ናቸው clr temp; በሙቀት ውስጥ ያሉ ሁሉም ቢቶች ወደ 0 ወደ ውጭ PortB ፣ temp ተዘጋጅተዋል። በ PortB ውስጥ ያሉትን ሁሉንም ቢት (ማለትም ፒን) ወደ 0V ldi temp ፣ 0b00000001 ያዘጋጁ። PortD ን ፣ temp ን ለማውጣት ወዲያውኑ ቁጥሩን ይጫኑ። የሙቀት መጠንን ወደ PortD ይውሰዱ። PD0 መጎተቻ ተከላካይ አለው ፣ (ማለትም ወደ 5 ቮ ተቀናብሯል) በዚያ ትንሽ ውስጥ 1 ስላለው። ቀሪዎቹ ከ 0 ዎቹ ጀምሮ 0V ናቸው።

ዋና ፦

በሙቀት መጠን ፣ ፒንዲ; ፒንዲ የፖርትዲ ሁኔታን ይይዛል ፣ ይህንን ወደ ቴምፕል ይቅዱ ፣ አዝራሩ ከ PD0 ጋር ከተገናኘ ይህ ይሆናል። 0 አዝራሩ ሲገፋ ፣ 1 አለበለዚያ ከ; PD0 መጎተቻ ተከላካይ አለው በመደበኛነት በ 5V መውጫ PortB ፣ temp; ከላይ ያሉትን 0 እና 1 ን ወደ PortB ይልካል ፤ ይህ ማለት LED ን ከ PB0 ጋር እንዲገናኝ እንፈልጋለን ፣ PD0 LOW በሚሆንበት ጊዜ PB0 ን ወደ LOW እና ያዞራል። በ LED ላይ (የ LED ሌላኛው ወገን ስለሆነ ፣ ከ 5 ቪ ጋር የተገናኘ እና ይህ PB0 ን ወደ 0V ያዘጋጃል ፣ የአሁኑ ፍሰት ይፈስሳል) rjmp Main; ወደ ዋናው መጀመሪያ ይመለሳል

በዚህ ጊዜ በእኛ ኮድ ውስጥ ብዙ ተጨማሪ አስተያየቶችን ብቻ ሳይሆን እኛ ማን እንደፃፈው እና መቼ እንደተፃፈ አንዳንድ መረጃ የሚሰጥ የራስጌ ክፍል አለን። ቀሪው ኮድ እንዲሁ በክፍል ተከፍሏል።

ከላይ የተጠቀሰውን ኮድ ካጠናቀሩ በኋላ በማይክሮ መቆጣጠሪያው ላይ መጫን እና የሚሰራ መሆኑን ማየት አለብዎት። አዝራሩን በሚገፉበት ጊዜ ኤልኢዲ ማብራት አለበት እና ሲለቁ እንደገና ያጥፉት። በሥዕሉ ላይ ምን እንደሚመስል አሳይቻለሁ።

ደረጃ 3-የኮዱ የመስመር-መስመር ትንታኔ

ዓላማቸው እራሱ የሚገለጥ በመሆኑ ብቻ አስተያየት የሚሰጡትን መስመሮች እዘለላለሁ።

.ኖሊስት

.የ "m328Pdef.inc".ዝርዝሮችን ያካትቱ

እነዚህ ሶስት መስመሮች እኛ ለምናዘጋጀው ለ ATmega328P የምዝገባ እና ቢት ትርጓሜዎችን የያዘ ፋይልን ያካትታሉ። የ.nolist ትዕዛዙ ሰብሳቢው ይህንን ፋይል በሚሰበሰብበት ጊዜ በሚያወጣው በ pushbutton.lst ፋይል ውስጥ እንዳያካትት ይነግረዋል። የዝርዝሩን አማራጭ ያጠፋል። ፋይሉን ካካተቱ በኋላ የዝርዝሩ አማራጩን ከዝርዝሩ ትእዛዝ ጋር እናበራለን። ይህንን የምናደርግበት ምክንያት የ m328Pdef.inc ፋይል በጣም ረጅም ስለሆነ እና በዝርዝሩ ፋይል ውስጥ እሱን ማየት ስለማንፈልግ ነው። የእኛ ሰብሳቢ ፣ አቫራ ፣ የዝርዝር ፋይልን በራስ -ሰር አያመነጭም እና አንዱን ከፈለግን የሚከተለውን ትእዛዝ በመጠቀም እንሰበስባለን-

avra -l pushbutton.lst pushbutton.asm

ይህን ካደረጉ pushbutton.lst የተባለ ፋይል ያመነጫል እና ይህን ፋይል ከመረመሩ የፕሮግራምዎን ኮድ ከተጨማሪ መረጃ ጋር ያሳያል። ተጨማሪ መረጃውን ከተመለከቱ መስመሮቹ በ C ሲጀምሩ - በኮድ ማህደረ ትውስታ ውስጥ በተቀመጠበት ሄክስ ውስጥ አንጻራዊ አድራሻ ይከተላል። በመሠረቱ በመጀመሪያ ትእዛዝ በ 000000 ይጀምራል እና በእያንዳንዱ ቀጣይ ትዕዛዝ ከዚያ ይጨምራል። በማስታወሻ ውስጥ ካለው አንጻራዊ ቦታ በኋላ ያለው ሁለተኛው ዓምድ ለትእዛዙ ክርክር የሄክስ ኮድ ተከትሎ ለትእዛዙ የሄክስ ኮድ ነው። ወደፊት በሚዘጋጁ ትምህርቶች ውስጥ ስለ ፋይሎች ዝርዝር በዝርዝር እንወያያለን።

.def temp = r16; የሥራ መመዝገቢያ r16 ን እንደ የሙቀት መጠን ይመድቡ

በዚህ መስመር ውስጥ ተለዋዋጭውን “ቴምፕ” ከ r16 “የሥራ መዝገብ” ጋር እኩል ለማድረግ የአሰባሳቢውን መመሪያ “.def” እንጠቀማለን። ወደ ተለያዩ ወደቦች እና መዝገቦች (እኛ በቀጥታ መፃፍ የማይችላቸውን) ቁጥሮችን ለመቅዳት የምንፈልገውን ቁጥሮች የሚያከማች እንደመሆኑ መጠን r16 ን እንጠቀማለን።

መልመጃ 1: የሁለትዮሽ ቁጥርን በቀጥታ ወደብ ወይም እንደ DDRB ወደ ልዩ ምዝገባ ለመቅዳት ይሞክሩ እና ኮዱን ለመሰብሰብ ሲሞክሩ ምን እንደሚሆን ይመልከቱ።

አንድ መዝገብ ባይት (8 ቢት) መረጃ ይ containsል። በዋናነት ብዙውን ጊዜ የ SR-Latches ስብስብ እያንዳንዳቸው “ትንሽ” ናቸው እና 1 ወይም 0. ይ containsል በዚህ ጉዳይ ላይ በኋላ ላይ (እና እንዲያውም አንድ እንኳን እንገነባለን!)። “የሥራ መዝገብ” ምንድነው እና ለምን r16 ን እንደመረጥን እያሰቡ ይሆናል። እኛ ወደ ቺፕ ውስጠኛው ግራ መጋባት ውስጥ ስንወርድ በሚከተለው መማሪያ ውስጥ እንወያይበታለን። ለአሁን እንደ ኮድ መጻፍ እና እንደ አካላዊ ሃርድዌር ያሉ ነገሮችን እንዴት ማድረግ እንደሚችሉ እንዲረዱዎት እፈልጋለሁ። ከዚያ ያንን ተሞክሮ የማጣቀሻ ፍሬም ይኖርዎታል ፣ ይህም የማይክሮ መቆጣጠሪያውን በቀላሉ ለማስታወስ እና ለማስመዝገብ ቀላል ያደርገዋል። አብዛኛው የመግቢያ መማሪያ መጽሐፍት እና ውይይቶች ይህን የሚያደርጉት በተቃራኒው እንደሆነ ተገንዝቤአለሁ ነገር ግን የመማሪያ መመሪያውን ከማንበብዎ በፊት ዓለም አቀፋዊ እይታን ለማግኘት መጀመሪያ የቪዲዮ ጨዋታን ለመጀመሪያ ጊዜ መመሪያውን ከማንበብ የበለጠ ቀላል ሆኖ አግኝቻለሁ።

rjmp Init; የመጀመሪያው መስመር ተገድሏል

ይህ መስመር “ኢኒት” በሚለው ስያሜ ላይ “ዘመድ ዝላይ” ነው እና ቀጣዩ ትዕዛዝ ቀድሞውኑ በ Init ውስጥ ስለሆነ እኛ ግን ለወደፊቱ ለመጠቀም እናካተተዋለን ምክንያቱም እዚህ አስፈላጊ አይደለም።

በ ዉስጥ:

ser temp; ሁሉንም ቢት በሙቀት መጠን ወደ 1 ያዋቅሩ።

ከ ‹Init› መሰየሚያ በኋላ ‹አዘጋጅ መመዝገቢያ› ትዕዛዝ እንፈጽማለን። ይህ በመመዝገቢያው “ቴምፕ” ውስጥ ያሉትን 8 ቢት (ያስታውሱታል r16 ነው) ወደ 1 ዎቹ። ስለዚህ ቴምፕ አሁን 0b11111111 ይ containsል።

ውጭ DDRB, temp; በውሂብ አቅጣጫ I/O ምዝገባ ላይ ትንሽ እንደ 1 ማቀናበር

; ለዲ.ቢ.ቢ ፣ ዲዲቢቢ ፣ ያንን ፒን እንደ ውፅዓት ያዘጋጃል ፣ አንድ 0 ያንን ፒን እንደ ግብዓት ያዘጋጃል ፣ ስለዚህ እዚህ ፣ ሁሉም የ PortB ፒኖች ውጤቶች ናቸው (ወደ 1 ተቀናብሯል)

የመመዝገቢያው DDRB (የውሂብ አቅጣጫ መመዝገቢያ ለ PortB) በፖርትቢ (ማለትም ከ PB0 እስከ PB7 ድረስ) የትኞቹ ፒንዎች እንደ ግብዓት እንደተሾሙ እና እንደ ውጤት እንደተሰየሙ ይነግረናል። ፒን PB0 ከእኛ ኤልኢዲ ጋር የተገናኘ ስለሆነ ቀሪው ከማንኛውም ነገር ጋር ስላልተገናኘ ሁሉንም ቢት ወደ 1 እናስቀምጣለን ማለት ሁሉም ውጤቶች ናቸው።

ldi temp, 0b11111110; “አፋጣኝ” ቁጥሩን ወደ ቴምፕሬተር መመዝገቢያ ይጫኑ

; እሱ ld ብቻ ቢሆን ኖሮ ሁለተኛው ክርክር ነበር። የማስታወሻ ቦታ መሆን አለበት

ይህ መስመር የሁለትዮሽ ቁጥሩን 0b11111110 ወደ ቴምፕ ቴምብር ውስጥ ይጭናል።

ውጭ DDRD, temp; mv temp ወደ DDRD ፣ ውጤቱ PD0 ግብዓት እና ነው

; የተቀሩት ውጤቶች ናቸው

አሁን የሙቀት መጠን 0b11111110 ስላለው PD0 እንደ የግቤት ፒን (በጣም በቀኝ ቦታ ላይ 0 ስለሚኖር) እና ቀሪው እንደ ውፅዓት ተደርገው የተቀመጡ በመሆናቸው አሁን ለ PortD የውሂብ አቅጣጫ ምዝገባን ከ temp እናዘጋጃለን። በእነዚህ ቦታዎች 1 ውስጥ።

clr ሙቀት; በሙቀት ውስጥ ያሉ ሁሉም ቢቶች ወደ 0 ዎች ተዘጋጅተዋል

መውጫ PortB ፣ ቴምፕ; በ PortB ውስጥ ያሉትን ሁሉንም ቢት (ማለትም ፒን) ወደ 0V ያዘጋጁ

በመጀመሪያ የመመዝገቢያውን የሙቀት መጠን “እናጸዳለን” ማለትም ሁሉንም ቢት ወደ ዜሮ ማቀናበር ማለት ነው። ከዚያ ያንን በእነዚያ ሁሉ ፒኖች ላይ 0 ቮን ወደሚያስቀምጠው የ PortB መዝገብ እንገለብጠዋለን። በፖርትቢ ቢት ላይ ዜሮ ማለት አንጎለ ኮምፒዩተሩ ያንን ፒን በ 0 ቪ ላይ ያቆየዋል ማለት ነው ፣ በጥቂቱ አንድ ያንን ፒን ወደ 5 ቪ እንዲዋቀር ያደርገዋል።

መልመጃ 2 - በፖርትቢ ላይ ያሉት ሁሉም ካስማዎች በእውነቱ ዜሮ መሆናቸውን ለመፈተሽ መልቲሜትር ይጠቀሙ። በ PB1 እንግዳ የሆነ ነገር እየተካሄደ ነው? ለምን ሊሆን ይችላል የሚል ሀሳብ አለ? (ከዚህ በታች ካለው መልመጃ 4 ጋር ይመሳሰላል ከዚያም ኮዱን ይከተሉ…) መልመጃ 3 - ከላይ ያሉትን ሁለት መስመሮች ከኮድዎ ያስወግዱ። ፕሮግራሙ አሁንም በትክክል ይሠራል? እንዴት?

ldi temp, 0b00000001; ወዲያውኑ ቁጥሩን ወደ የሙቀት መጠን ይጫኑ

ከ PortD ፣ temp ውጭ; የሙቀት መጠንን ወደ PortD ይውሰዱ። PD0 በ 5 ቪ (የ pullup resistor አለው); በዚያ ትንሽ ውስጥ 1 ስላለው ቀሪው 0V ነው። መልመጃ 4 - ከላይ ያሉትን ሁለት መስመሮች ከኮድዎ ያስወግዱ። ፕሮግራሙ አሁንም በትክክል ይሠራል? እንዴት? (ይህ ከላይ ካለው መልመጃ 3 የተለየ ነው። የፒን ዲያግራምን ይመልከቱ። ለ PD0 ነባሪው የ DDRD መቼት ነው? (የውሂብ ሉህ ገጽ 90 ን ይመልከቱ)

በመጀመሪያ ቁጥሩን 0b00000001 ን “ወዲያውኑ እንጭናለን”። እኛ የምንጭንበትን ቁጥር ወደሚያስታውስበት ቦታ ጠቋሚ ከመሆን ይልቅ በቀጥታ ወደ ላይ የሚወጣውን ቁጥር ወደ ቴምፕ ስለምንጭን “አፋጣኝ” ክፍሉ አለ። በዚህ ሁኔታ እኛ ከ “ldi” ይልቅ “ld” ን እንጠቀማለን። ከዚያ ይህንን ቁጥር PD0 ን ወደ 5V ቀሪውን ወደ 0V ወደሚያስቀምጠው ወደ ፖርት ዲ እንልካለን።

አሁን ፒኖቹን እንደ ግብዓት ወይም ውፅዓት አዘጋጅተናል እናም የመጀመሪያ ግዛቶቻቸውን እንደ 0V ወይም 5V (LOW ወይም HIGH) አዘጋጅተናል እናም ስለዚህ አሁን የእኛን ፕሮግራም “loop” እንገባለን።

ዋና: በሙቀት መጠን ፣ ፒንዲ; ፒንዲ የፖርትዲ ሁኔታን ይይዛል ፣ ይህንን ወደ ቴምፕል ይቅዱ

; አዝራሩ ከ PD0 ጋር የተገናኘ ከሆነ ይህ ይሆናል። ሀ 0 አዝራሩ ሲገፋ ፣ 1 አለበለዚያ ከ PD0 መጎተቻ ተከላካይ አለው በመደበኛነት በ 5 ቪ ላይ ነው

የመመዝገቢያ ፒንዲ የአሁኑን የ PortD ፒኖች ሁኔታ ይ containsል። ለምሳሌ ፣ 5V ሽቦን ከፒዲ 3 ጋር ካያያዙት ፣ ከዚያ በሚቀጥለው የሰዓት ዑደት (ማይክሮ መቆጣጠሪያው እስከ 16 ሜኸ ሰዓት ምልክት ስላገናኘን በሰከንድ 16 ሚሊዮን ጊዜ ይከሰታል) ፒን ዲ 3 ቢት (ከአሁኑ የ PD3 ሁኔታ) ከ 0. ይልቅ 1 ይሆናል ስለዚህ በዚህ መስመር ውስጥ የፒኖቹን ወቅታዊ ሁኔታ ወደ ቴምፕ እንገለብጣለን።

መውጫ PortB ፣ ቴምፕ; ከላይ ያሉትን 0 እና 1 ን ወደ PortB ይልካል

; ይህ ማለት LED ን ከ PB0 ጋር እንዲገናኝ እንፈልጋለን ፣ ስለዚህ ፣ PD0 LOW በሚሆንበት ጊዜ PB0 ን ወደ LOW ያዋቅራል እና ያዞራል። በ LED ላይ (የ LED ሌላኛው ወገን ተገናኝቷል ፣ ከ 5 ቮ እና ይህ PB0 ወደ 0V ያዘጋጃል ስለዚህ የአሁኑ ፍሰቶች)

አሁን በፒንዲ ውስጥ ያሉትን የፒኖች ሁኔታ ወደ ፖርትቢ ውፅዓት እንልካለን። በውጤታማነት ፣ ይህ ማለት አዝራሩ ካልተጫነ በስተቀር PD0 1 ወደ PortD0 ይልካል ማለት ነው። በዚህ ሁኔታ አዝራሩ ከመሬት ጋር የተገናኘ በመሆኑ ያ ፒን 0V ላይ ስለሚሆን 0 ወደ PortB0 ይልካል። አሁን ፣ የወረዳውን ዲያግራም ከተመለከቱ ፣ 0V በ PB0 ላይ ሌላኛው በ 5 ቪ ላይ ስለሆነ LED ያበራል ማለት ነው። አዝራሩን ካልጫንነው ፣ 1 ወደ PB0 እንዲላክ ፣ ያ ማለት በ PB0 ላይ 5V አለን እንዲሁም በ LED በሌላኛው በኩል 5V አለን ማለት ነው እና ስለዚህ ምንም ልዩነት የለም እና የአሁኑ ፍሰት አይፈስም እና ስለዚህ ኤልኢዲ አይበራም (በዚህ ሁኔታ ዲዲዮ ነው እና ስለሆነም የአሁኑ አንድ አቅጣጫ ብቻ ይፈስሳል ግን ምንም ቢሆን)።

rjmp ዋና; ወደ ጅምር ይመለሳል

ይህ ዘመድ ዝላይ ወደ ዋናው መለያችን ይመልሰናል እና ፒንዲን እንደገና እንፈትሻለን እና ወዘተ። አዝራሩ እየተገፋ መሆኑን እና በየቦታው 16 ሚሊዮኖችን በመፈተሽ እና በዚህ መሠረት PB0 ን ያዋቅሩ።

መልመጃ 5 ፦ የእርስዎ LED ከ PB0 ይልቅ ከ PB3 ጋር እንዲገናኝ እና የሚሰራ መሆኑን ለማየት ኮድዎን ያስተካክሉ። መልመጃ 6 - ከ 5 ቪ ይልቅ የእርስዎን LED ወደ GND ይሰኩት እና ኮድዎን በዚሁ መሠረት ያስተካክሉ።

ደረጃ 4 መደምደሚያ

በዚህ መማሪያ ውስጥ ለኤቲሜጋ 328 ፒ የስብሰባውን ቋንቋ የበለጠ መርምረናል እና በ LED ቁልፍን እንዴት መቆጣጠር እንደሚቻል ተምረናል። በተለይ የሚከተሉትን ትዕዛዞች ተምረናል-

ser መዝገብ ሁሉንም የመመዝገቢያ ነጥቦችን ወደ 1 ያዘጋጃል

clr መዝገብ ሁሉንም የመመዝገቢያ ነጥቦችን ወደ 0 ያዘጋጃል

በመመዝገብ ፣ i/o መመዝገብ ቁጥሩን ከ i/o መዝገብ ወደ የሥራ መዝገብ ይገለብጣል

በሚቀጥለው መማሪያ ውስጥ የ ATmega328p አወቃቀር እና በውስጡ ያሉትን የተለያዩ መዝገቦች ፣ አሠራሮች እና ሀብቶች እንመረምራለን።

በእነዚህ ትምህርቶች ከመቀጠልዎ በፊት የፍላጎት ደረጃን እጠብቃለሁ እና እመለከታለሁ። በእውነቱ በዚህ ማይክሮፕሮሰሰር ፕሮግራሞችን በስብሰባ ቋንቋ እንዴት እንደሚጽፉ በመማር የሚደሰቱ ብዙ ሰዎች ካሉ እኔ የበለጠ የተወሳሰበ ወረዳዎችን እሠራለሁ እና የበለጠ ጠንካራ ኮድ እጠቀማለሁ።

የሚመከር: