ఎలక్ట్రానిక్స్తో ప్రారంభించడానికి మీరు తీసుకోవాలనుకుంటున్న మొదటి దశ LED మెరిసేది. ఈ ట్యుటోరియల్లో మనం ఎల్ఈడీని ATmega32 తో కనెక్ట్ చేయబోతున్నాం, ఇది AVR సిరీస్ మైక్రోకంట్రోలర్. మేము ఎల్ఈడీని అర సెకను రేటుతో రెప్ప వేయబోతున్నాం.
భాగాలు అవసరం
హార్డ్వేర్:
ATmega32A మైక్రోకంట్రోలర్
విద్యుత్ సరఫరా (5 వి)
AVR-ISP ప్రోగ్రామర్
100uF కెపాసిటర్
LED
220Ω రెసిస్టర్
సాఫ్ట్వేర్
అట్మెల్ స్టూడియో 6.1
ప్రోగిస్ప్ లేదా ఫ్లాష్ మ్యాజిక్
సర్క్యూట్ మరియు వర్కింగ్ వివరణ
AVR మైక్రోకంట్రోలర్తో LED ని ఇంటర్ఫేసింగ్ కోసం పై సర్క్యూట్ రేఖాచిత్రంలో చూపినట్లుగా, ఇక్కడ బాహ్య క్రిస్టల్ను కనెక్ట్ చేయవలసిన అవసరం లేదు. ఎందుకంటే ATMEGA డిఫాల్ట్గా అంతర్గత 1MHz రెసిస్టర్-కెపాసిటర్ ఓసిలేటర్పై పనిచేస్తుంది. గడియారం యొక్క ఖచ్చితత్వం అవసరమైనప్పుడు మాత్రమే, అధిక ఖచ్చితత్వ లెక్కింపు యొక్క అనువర్తనం వలె, బాహ్య క్రిస్టల్ జతచేయబడుతుంది. నియంత్రిక మొదట కొనుగోలు చేసినప్పుడు, అప్రమేయంగా అంతర్గత క్రిస్టల్పై పనిచేయడానికి ఇది సంలీనం చేయబడుతుంది.
LED నుండి ప్రస్తుత డ్రాయింగ్ను పరిమితం చేయడానికి రెసిస్టర్ ఇక్కడ కనెక్ట్ చేయబడింది. గుర్తుంచుకోండి, నియంత్రిక టెర్మినల్స్ వద్ద 30mA కన్నా ఎక్కువ ఇవ్వదు.
ప్రోగ్రామింగ్ వివరణ
ఎల్ఈడీని రెప్ప వేయడానికి ATmega32 మైక్రోకంట్రోలర్ కోసం ప్రోగ్రామ్ క్రింద చూపబడింది. కోడ్లోని వ్యాఖ్యలు కోడ్ యొక్క వ్యక్తిగత పంక్తి యొక్క ఉద్దేశ్యాన్ని వివరిస్తాయి.
పిన్లపై డేటా ప్రవాహ నియంత్రణను ప్రారంభించడానికి # చేర్చండి // శీర్షిక
కంట్రోలర్ క్రిస్టల్ ఫ్రీక్వెన్సీని చెప్పే F_CPU 1000000 // ని నిర్వచించండి
# చేర్చండి
పూర్ణాంకానికి ప్రధానమైనది (శూన్యమైనది)
{
DDRD = 0xFF; / మేము ఎనిమిది “ONE” లను ఉంచినందున, PORTD యొక్క అన్ని పిన్లు అవుట్పుట్గా ప్రారంభించబడతాయి. మేము సున్నాను “0b1111 0111” గా ఉంచితే, ఇప్పుడు అన్ని పిన్లు 0,1,2,4,5,6,7 ఇన్పుట్లుగా ప్రారంభించబడ్డాయి మరియు పిన్ 3 ఇన్పుట్గా ప్రారంభించబడింది.
(1) // లూప్ ఎప్పటికీ కొనసాగుతుంది మరియు LED ఎప్పటికీ మెరిసిపోతుంది
{
PORTD = 0xFF; // PORTD యొక్క అన్ని పిన్స్ 5v అవుట్పుట్ను అందిస్తాయని లేదా అధికంగా లాగమని చెప్పబడింది (LED ON)
_delay_ms (220); // 200ms ఆలస్యం
_delay_ms (220);); // 200ms ఆలస్యం
PORTD = 0x00; // PORTD యొక్క అన్ని పిన్స్ అవుట్పుట్ వద్ద భూమిని అందిస్తాయి లేదా క్రిందికి లాగుతాయి
_delay_ms (220);); // 200ms ఆలస్యం
_delay_ms (220);); // 200ms ఆలస్యం
}
}