- హార్డ్వేర్ సెటప్ మరియు అవసరం
- N76E003 LED మరియు పుష్ బటన్ ఇంటర్ఫేస్ సర్క్యూట్
- N76E003 పిన్-అవుట్ రేఖాచిత్రం
- N76E003 కోసం సాధారణ GPIO కంట్రోల్ ప్రోగ్రామ్
- ప్రోగ్రామింగ్ N76E003 మరియు అవుట్పుట్ను ధృవీకరిస్తోంది
మా మునుపటి ట్యుటోరియల్లో, మేము N76E003 గైడ్తో ప్రారంభించడానికి ప్రాథమిక LED బ్లింకింగ్ ప్రోగ్రామ్ను ఉపయోగించాము, కైల్ IDE ని ఎలా కాన్ఫిగర్ చేయాలో నేర్చుకున్నాము మరియు నువోటాన్ మైక్రోకంట్రోలర్ యూనిట్ N76E003 ను ప్రోగ్రామింగ్ చేయడానికి వాతావరణాన్ని ఎలా ఏర్పాటు చేయాలో మేము ఇప్పటికే నేర్చుకున్నాము. కొంచెం ముందుకు సాగడానికి మరియు అదనపు హార్డ్వేర్ను నియంత్రించడానికి ప్రాథమిక GPIO ఇంటర్ఫేస్ను ఉపయోగించాల్సిన సమయం ఇది. మీకు ఆసక్తి ఉంటే మీరు క్రింద జాబితా చేయబడిన ఇతర మైక్రోకంట్రోలర్ GPIO ట్యుటోరియల్లను కూడా తనిఖీ చేయవచ్చు-
- క్యూబ్ఎమ్ఎక్స్ మరియు ట్రూస్టూడియో - ఎల్ఈడీ నియంత్రణతో ఎస్టిఎం 32 న్యూక్లియో 64
- కాస్మిక్ సి GPIO కంట్రోల్తో STM8S
- MPLABX LED Blink Tutorial తో PIC
- కోడ్ కంపోజర్ స్టూడియోతో MSP430 - సాధారణ LED నియంత్రణ
మా మునుపటి ట్యుటోరియల్లో, మేము IO పిన్ను అవుట్పుట్గా ఉపయోగించడం ద్వారా రెప్ప వేయడానికి LED ని మాత్రమే ఉపయోగించాము. ఈ ట్యుటోరియల్లో, మరొక IO పిన్ను ఇన్పుట్గా ఎలా ఉపయోగించాలో నేర్చుకుంటాము మరియు అదనపు LED ని నియంత్రిస్తాము. ఎక్కువ సమయం వృథా చేయకుండా, మనకు ఎలాంటి హార్డ్వేర్ సెటప్ అవసరమో అంచనా వేద్దాం.
హార్డ్వేర్ సెటప్ మరియు అవసరం
స్విచ్ను ఇన్పుట్గా ఉపయోగించాల్సిన అవసరం ఉన్నందున, మనకు మొదట అవసరం పుష్ బటన్. ఆ పుష్ బటన్ ద్వారా నియంత్రించాల్సిన అదనపు LED కూడా మాకు అవసరం. ఈ రెండు కాకుండా, LED కరెంట్ను పరిమితం చేయడానికి మాకు ఒక రెసిస్టర్ మరియు పుష్బటన్ అంతటా పుల్-డౌన్ ప్రయోజనాల కోసం అదనపు రెసిస్టర్ అవసరం. ఇది స్కీమాటిక్ విభాగంలో మరింత ప్రదర్శించబడుతుంది. మాకు అవసరమైన భాగాలు -
- పుష్-బటన్ (ప్రత్యేకంగా ఎలాంటి క్షణిక స్విచ్ - స్పర్శ స్విచ్)
- LED యొక్క ఏదైనా రంగు
- పుల్-డౌన్ ప్రయోజనాల కోసం 4.7 కే రెసిస్టర్
- 100 ఆర్ రెసిస్టర్
పైన పేర్కొన్న భాగాలు కాకుండా, మనకు N76E003 మైక్రోకంట్రోలర్ ఆధారిత అభివృద్ధి బోర్డుతో పాటు ను-లింక్ ప్రోగ్రామర్ అవసరం. అదనంగా, క్రింద చూపిన విధంగా అన్ని భాగాలను కనెక్ట్ చేయడానికి బ్రెడ్బోర్డ్ మరియు హుక్అప్ వైర్లు కూడా అవసరం.
N76E003 LED మరియు పుష్ బటన్ ఇంటర్ఫేస్ సర్క్యూట్
దిగువ స్కీమాటిక్లో మనం చూడగలిగినట్లుగా, డెవలప్మెంట్ బోర్డ్ లోపల ఉన్న టెస్ట్ ఎల్ఇడి పోర్ట్ 1.4 పై అనుసంధానించబడి ఉంది మరియు పోర్ట్ 1.5 లో అదనపు ఎల్ఇడి అనుసంధానించబడి ఉంది. LED కరెంట్ను పరిమితం చేయడానికి రెసిస్టర్ R3 ఉపయోగించబడుతుంది.
పిన్ 1.6 లో, SW అనే పుష్-బటన్ కనెక్ట్ చేయబడింది. బటన్ నొక్కినప్పుడల్లా పిన్ ఎక్కువ అవుతుంది. లేకపోతే, ఇది 4.7 కె పుల్-డౌన్ రెసిస్టర్ R1 ద్వారా తక్కువగా మారుతుంది. మీరు ఈ భావనకు కొత్తగా ఉంటే పుల్-అప్ మరియు పుల్-డౌన్ రెసిస్టర్ల గురించి మరింత తెలుసుకోవచ్చు.
పిన్ కూడా ప్రోగ్రామర్ చేత ప్రాప్యత చేయబడిన ప్రోగ్రామ్ సంబంధిత పిన్. ఇది ప్రోగ్రామ్ డేటాను పంపడానికి ఉపయోగించబడుతుంది. అయితే, మేము ఆ పిన్లను ఎంచుకోవడం వెనుక గల కారణాన్ని చూస్తాము అలాగే N76E003 యొక్క పిన్ మ్యాపింగ్ గురించి సరసమైన సమాచారాన్ని పొందుతాము.
N76E003 పిన్-అవుట్ రేఖాచిత్రం
N76E003 యొక్క పిన్ రేఖాచిత్రం క్రింది చిత్రంలో చూడవచ్చు-
మనం చూడగలిగినట్లుగా, ప్రతి పిన్ బహుళ విధులను కలిగి ఉంటుంది మరియు వివిధ ప్రయోజనాల కోసం ఉపయోగించవచ్చు. ఒక ఉదాహరణ తీసుకుందాం. పిన్ 1.7 ను అంతరాయంగా లేదా అనలాగ్ ఇన్పుట్గా లేదా సాధారణ-ప్రయోజన ఇన్పుట్-అవుట్పుట్ ఆపరేషన్గా ఉపయోగించవచ్చు. అందువల్ల, ఏదైనా పిన్ను I / O పిన్లుగా ఉపయోగిస్తే, సంబంధిత కార్యాచరణ అందుబాటులో ఉండదు.
ఈ కారణంగా, LED అవుట్పుట్ పిన్గా ఉపయోగించబడే పిన్ 1.5, ఇది PWM మరియు ఇతర కార్యాచరణను కోల్పోతుంది. ఈ ప్రాజెక్ట్ కోసం మరొక కార్యాచరణ అవసరం లేదు కాబట్టి ఇది సమస్య కాదు. సులభంగా కనెక్షన్ కోసం GND మరియు VDD పిన్ల సమీప లభ్యత కారణంగా పిన్ 1.5 ను అవుట్పుట్గా మరియు పిన్ 1.6 ను ఇన్పుట్గా ఎంచుకోవడానికి కారణం.
అయితే, ఈ మైక్రోకంట్రోలర్లో 20 పిన్లలో, 18 పిన్లను GPIO పిన్గా ఉపయోగించవచ్చు. పిన్ 2.0 ఇన్పుట్ రీసెట్ కోసం అంకితభావంతో ఉపయోగించబడుతుంది మరియు దీనిని అవుట్పుట్గా ఉపయోగించలేరు. ఈ పిన్ కాకుండా, అన్ని పిన్లను క్రింద వివరించిన మోడ్లో కాన్ఫిగర్ చేయవచ్చు.
డేటాషీట్ ప్రకారం, PxM1.n మరియు PxM2.n రెండు రిజిస్టర్లు, ఇవి I / O పోర్ట్ యొక్క నియంత్రణ ఆపరేషన్ను నిర్ణయించడానికి ఉపయోగిస్తారు. ఇప్పుడు, GPIO పోర్ట్ రాయడం మరియు చదవడం పూర్తిగా భిన్నమైన విషయం. ఎందుకంటే పోర్ట్ కంట్రోల్ రిజిస్టర్కు రాయడం పోర్ట్ యొక్క లాచింగ్ స్థితిని మారుస్తుంది, అయితే పోర్ట్ చదవడం లాజిక్ స్టేట్ యొక్క స్థితిని పొందుతుంది. పోర్ట్ చదవడానికి, అది తప్పనిసరిగా ఇన్పుట్ మోడ్లోకి సెట్ చేయాలి.
N76E003 కోసం సాధారణ GPIO కంట్రోల్ ప్రోగ్రామ్
ఈ ట్యుటోరియల్లో ఉపయోగించిన పూర్తి ప్రోగ్రామ్ ఈ పేజీ దిగువన చూడవచ్చు, కోడ్ యొక్క వివరణ ఈ క్రింది విధంగా ఉంటుంది.
పిన్ను ఇన్పుట్గా సెట్ చేస్తోంది
మొదట ఇన్పుట్తో ప్రారంభిద్దాం. ముందు చర్చించినట్లుగా, పోర్ట్ యొక్క స్థితిని చదవడానికి, దాన్ని ఇన్పుట్గా సెట్ చేయాలి. అందువల్ల, మేము P1.6 ను మా ఇన్పుట్ స్విచ్ పిన్గా ఎంచుకున్నందున, మేము దానిని కోడ్ స్నిప్పెట్ యొక్క దిగువ పంక్తి ద్వారా సూచించాము.
# SW P16 ను నిర్వచించండి
ఇదే పిన్ను ఇన్పుట్గా సెట్ చేయాలి. ఈ విధంగా, సెటప్ ఫంక్షన్లో, పిన్ క్రింది పంక్తిని ఉపయోగించి ఇన్పుట్గా సెట్ చేయబడుతుంది.
శూన్య సెటప్ (శూన్యమైనది) {P14_Quasi_Mode; పి 15_క్వాసి_మోడ్; పి 16_ఇన్పుట్_మోడ్; }
ఈ పంక్తి P16_Input_Mode; పిన్ బిట్ను P1M1- = SET_BIT6 గా సెట్ చేసే “BSP కలుపు లైబ్రరీ” లోని Function_define.h హెడర్ ఫైల్లో నిర్వచించబడింది ; P1M2 & = ~ SET_BIT6 . SET_BIT6 కూడా అదే శీర్షిక ఫైల్ లో నిర్వచించబడింది as-
# SET_BIT6 0x40 ని నిర్వచించండి
పిన్లను అవుట్పుట్గా సెట్ చేస్తోంది
ఇన్పుట్ పిన్ మాదిరిగానే, ఆన్బోర్డ్ టెస్ట్ LED మరియు బాహ్య LED1 ఉపయోగించే అవుట్పుట్ పిన్ కూడా కోడ్ యొక్క మొదటి విభాగంలో సంబంధిత పిన్లతో నిర్వచించబడుతుంది.
# Test_LED P14 ను నిర్వచించండి # LED1 P15 ని నిర్వచించండి
ఆ పిన్స్ కింది పంక్తులను ఉపయోగించి సెటప్ ఫంక్షన్లో అవుట్పుట్గా సెట్ చేయబడతాయి.
శూన్య సెటప్ (శూన్యమైనది) { P14_Quasi_Mode; // అవుట్పుట్ P15_Quasi_Mode; // అవుట్పుట్ P16_Input_Mode; }
ఈ పంక్తులు Function_define.h హెడర్ ఫైల్లో కూడా నిర్వచించబడ్డాయి, ఇక్కడ పిన్ బిట్ను P1M1 & = ~ SET_BIT4; P1M2 & = ~ SET_BIT4 . SET_BIT6 కూడా అదే శీర్షిక ఫైల్ లో నిర్వచించబడింది as-
# SET_BIT4 0x10 ను నిర్వచించండి
అనంతమైన లూప్
హార్డ్వేర్, శక్తితో అనుసంధానించబడి, నిరంతరం అవుట్పుట్ను అందించే సంపూర్ణంగా పనిచేస్తే, అప్లికేషన్ ఎప్పుడూ ఆగదు. ఇది అనంతమైన సమయాలకు అదే పని చేస్తుంది. ఇక్కడ అనంతం అయితే లూప్ యొక్క ఫంక్షన్ వస్తుంది. అయితే లూప్ లోపల అప్లికేషన్ అనంతంగా నడుస్తుంది.
(1) { Test_LED = 0; sw_delay (150); పరీక్ష_ఎల్ఇడి = 1; sw_delay (150); if (SW == 1) {LED1 = 0; } else {LED1 = 1; }}}
పైన పేర్కొన్న లూప్ sw_delay విలువ ప్రకారం లీడ్ను మెరిసిపోతుంది మరియు SW యొక్క స్థితిని కూడా తనిఖీ చేస్తుంది. స్విచ్ నొక్కితే, P1.6 ఎక్కువగా ఉంటుంది, మరియు అది నొక్కినప్పుడు, రీడ్ స్థితి 1 అవుతుంది. ఈ పరిస్థితిలో, ప్రస్తుతానికి, స్విచ్ నొక్కి, పోర్ట్ P1.6 అధికంగా ఉంటుంది, LED1 ప్రకాశిస్తుంది.
ప్రోగ్రామింగ్ N76E003 మరియు అవుట్పుట్ను ధృవీకరిస్తోంది
మా N76E003 తో ప్రారంభించడం ట్యుటోరియల్, మేము కేవలం మా బోర్డ్ కార్యక్రమాన్ని ఇక్కడ అదే దశలను పునరావృతం కాబట్టి, ఇప్పటికే N76E003 ప్రోగ్రామ్ నేర్చుకున్నారు. కోడ్ విజయవంతంగా కంపైల్ చేయబడింది మరియు 0 హెచ్చరిక మరియు 0 లోపాలను తిరిగి ఇచ్చింది మరియు కైల్ డిఫాల్ట్ ఫ్లాషింగ్ పద్ధతిని ఉపయోగించి ఫ్లాష్ అయ్యింది.
పై చిత్రంలో మీరు చూడగలిగినట్లుగా, నేను పుష్ బటన్ను నొక్కినప్పుడు మా బాహ్య LED ఆన్ అవుతుంది. ప్రాజెక్ట్ యొక్క పూర్తి పనిని క్రింద లింక్ చేసిన వీడియోలో చూడవచ్చు. మీరు ట్యుటోరియల్ని ఆస్వాదించారని మరియు మీకు ఏవైనా ప్రశ్నలు ఉంటే ఉపయోగకరమైనదాన్ని నేర్చుకున్నారని ఆశిస్తున్నాము, వాటిని క్రింది వ్యాఖ్య విభాగంలో ఉంచండి. ఇతర సాంకేతిక ప్రశ్నలను అడగడానికి మీరు మా ఫోరమ్లను కూడా ఉపయోగించవచ్చు.