- హార్డ్వేర్ సెటప్ మరియు అవసరం
- నువోటన్ N76E003 తో LED ఇంటర్ఫేసింగ్ కోసం సర్క్యూట్ రేఖాచిత్రం
- నువోటన్ N76E003 లో టైమర్ పిన్స్
- నువోటన్ N76E003 లో టైమర్ రిజిస్టర్లు
- నువోటన్ N76E003 లో టైమ్స్ రకాలు
- టైమర్ల కోసం ప్రోగ్రామింగ్ నువోటన్ N76E003 మైక్రోకంట్రోలర్
- టైమర్ కార్యాచరణ కోసం ఫ్లాషింగ్ కోడ్ మరియు అవుట్పుట్ను ధృవీకరిస్తోంది
మా మునుపటి నువోటన్ మైక్రోకంట్రోలర్ ట్యుటోరియల్లలో, మేము ప్రారంభ ఎల్ఇడి మెరిసే ప్రోగ్రామ్ను ప్రారంభ మార్గదర్శిగా ఉపయోగించాము మరియు జిపిఐఓను స్పర్శ స్విచ్ను కనెక్ట్ చేయడానికి ఇన్పుట్గా ఇంటర్ఫేస్ చేసాము. ఆ ట్యుటోరియల్తో, కైల్ ప్రాజెక్ట్ను ఎలా కాన్ఫిగర్ చేయాలో మరియు ప్రోగ్రామింగ్ N76E003 నువోటన్ మైక్రోకంట్రోలర్ కోసం పర్యావరణాన్ని ఎలా ఏర్పాటు చేయాలో మాకు పూర్తిగా తెలుసు. మైక్రోకంట్రోలర్ యూనిట్ యొక్క అంతర్గత పరిధీయతను ఉపయోగించాల్సిన సమయం మరియు N76E003 యొక్క అంతర్నిర్మిత టైమర్ను ఉపయోగించడం ద్వారా కొంచెం ముందుకు కదలండి.
మా మునుపటి ట్యుటోరియల్లో, మేము LED ని రెప్ప వేయడానికి సాఫ్ట్వేర్ ఆలస్యాన్ని మాత్రమే ఉపయోగించాము, కాబట్టి ఈ ట్యుటోరియల్లో, టైమర్ ఆలస్యం ఫంక్షన్తో పాటు టైమర్ ISR (ఇంటరప్ట్ సర్వీస్ రొటీన్) ఎలా ఉపయోగించాలో నేర్చుకుంటాము మరియు రెండు వ్యక్తిగత LED లను రెప్ప వేయండి. ఇతర మైక్రోకంట్రోలర్లతో టైమర్లను ఎలా ఉపయోగించాలో తనిఖీ చేయడానికి మీరు ఆర్డునో టైమర్ ట్యుటోరియల్ మరియు పిఐసి టైమర్ ట్యుటోరియల్ను కూడా చూడవచ్చు. ఎక్కువ సమయం వృథా చేయకుండా మనకు ఎలాంటి హార్డ్వేర్ సెటప్ అవసరమో అంచనా వేద్దాం.
హార్డ్వేర్ సెటప్ మరియు అవసరం
ఈ ప్రాజెక్ట్ యొక్క అవసరం టైమర్ ISR మరియు టైమర్ ఆలస్యం ఫంక్షన్ను నేర్చుకోవడంతో, మేము రెండు LED లను ఉపయోగిస్తాము, వాటిలో ఒకటి టైప్ ఆలస్యాన్ని ఉపయోగించి మెరిసేటప్పుడు మరియు మరొకటి ISR ఫంక్షన్ లోపల రెప్పపాటులో ఉంటుంది.
N76E003 డెవలప్మెంట్ బోర్డులో ఒక LED అందుబాటులో ఉన్నందున, ఈ ప్రాజెక్టుకు LED కరెంట్ను పరిమితం చేయడానికి ఒక అదనపు LED మరియు ప్రస్తుత పరిమితి నిరోధకం అవసరం. మాకు అవసరమైన భాగాలు -
- LED యొక్క ఏదైనా రంగు
- 100 ఆర్ రెసిస్టర్
పైన పేర్కొన్న భాగాలు కాకుండా, మనకు N76E003 మైక్రోకంట్రోలర్ ఆధారిత అభివృద్ధి బోర్డుతో పాటు ను-లింక్ ప్రోగ్రామర్ అవసరం. అదనంగా, అన్ని భాగాలను కనెక్ట్ చేయడానికి బ్రెడ్బోర్డ్ మరియు హుక్అప్ వైర్లు కూడా అవసరం.
నువోటన్ N76E003 తో LED ఇంటర్ఫేసింగ్ కోసం సర్క్యూట్ రేఖాచిత్రం
దిగువ స్కీమాటిక్లో మనం చూడగలిగినట్లుగా, టెస్ట్ LED అభివృద్ధి బోర్డు లోపల అందుబాటులో ఉంది మరియు ఇది పోర్ట్ 1.4 లో అనుసంధానించబడి ఉంది. పోర్ట్ 1.5 కి అదనపు LED అనుసంధానించబడి ఉంది. LED కరెంట్ను పరిమితం చేయడానికి రెసిస్టర్ R3 ఉపయోగించబడుతుంది. తీవ్ర ఎడమ వైపున, ప్రోగ్రామింగ్ ఇంటర్ఫేస్ కనెక్షన్ చూపబడుతుంది.
నువోటన్ N76E003 లో టైమర్ పిన్స్
N76E003 యొక్క పిన్ రేఖాచిత్రం క్రింది చిత్రంలో చూడవచ్చు-
మనం చూడగలిగినట్లుగా, ప్రతి పిన్కు వేర్వేరు లక్షణాలు ఉన్నాయి మరియు ప్రతి పిన్ను బహుళ ప్రయోజనాల కోసం ఉపయోగించవచ్చు. అయినప్పటికీ, LED అవుట్పుట్ పిన్గా ఉపయోగించబడే పిన్ 1.5, ఇది PWM మరియు ఇతర కార్యాచరణను కోల్పోతుంది. కానీ, ఈ ప్రాజెక్ట్ కోసం మరొక కార్యాచరణ అవసరం లేదు కాబట్టి ఇది సమస్య కాదు.
పిన్ 1.5 ను అవుట్పుట్గా మరియు పిన్ 1.6 ను ఇన్పుట్గా ఎంచుకోవడానికి కారణం, సులభంగా కనెక్షన్ కోసం జిఎన్డి మరియు విడిడి పిన్ల సమీప లభ్యత. ఏదేమైనా, ఈ మైక్రోకంట్రోలర్లో 20 పిన్లలో, 18 పిన్లను GPIO పిన్గా ఉపయోగించవచ్చు మరియు ఇతర GPIO పిన్లను అవుట్పుట్ మరియు ఇన్పుట్ సంబంధిత ప్రయోజనాల కోసం ఉపయోగించవచ్చు, పిన్ 2.0 మినహా ఇది ఇన్పుట్ను రీసెట్ చేయడానికి అంకితం చేయబడింది మరియు దీనిని ఉపయోగించలేరు అవుట్పుట్. అన్ని GPIO పిన్లను క్రింద వివరించిన మోడ్లో కాన్ఫిగర్ చేయవచ్చు.
డేటాషీట్ ప్రకారం, PxM1.n మరియు PxM2.n రెండు రిజిస్టర్లు, ఇవి I / O పోర్ట్ యొక్క నియంత్రణ ఆపరేషన్ను నిర్ణయించడానికి ఉపయోగిస్తారు. మేము LED ని ఉపయోగిస్తున్నందున మరియు పిన్ను సాధారణ అవుట్పుట్ పిన్లుగా మనకు అవసరం కాబట్టి, పిన్ల కోసం మేము క్వాసి-బైడైరెక్షనల్ మోడ్ను ఉపయోగిస్తాము.
నువోటన్ N76E003 లో టైమర్ రిజిస్టర్లు
ఏదైనా మైక్రోకంట్రోలర్ యూనిట్కు టైమర్ ఒక ముఖ్యమైన విషయం. మైక్రోకంట్రోలర్ అంతర్నిర్మిత టైమర్ పరిధీయంతో వస్తుంది. నువోటాన్ N76E003 కూడా 16-బిట్ టైమర్ పెరిఫెరల్స్ తో వస్తుంది. ఏదేమైనా, ప్రతి టైమర్ వేర్వేరు ప్రయోజనాల కోసం ఉపయోగించబడుతుంది మరియు ఏదైనా టైమర్ ఇంటర్ఫేస్ను ఉపయోగించే ముందు టైమర్ గురించి తెలుసుకోవడం చాలా ముఖ్యం.
నువోటన్ N76E003 లో టైమ్స్ రకాలు
టైమర్ 0 మరియు 1:
ఈ రెండు టైమర్లు టైమర్ 0 మరియు టైమర్ 1 8051 టైమర్లతో సమానంగా ఉంటాయి. ఈ రెండు టైమర్లను సాధారణ టైమర్గా లేదా కౌంటర్లుగా ఉపయోగించవచ్చు. ఈ రెండు టైమర్లు నాలుగు మోడ్లలో పనిచేస్తాయి. లో మోడ్ 0, ఆ టైమర్లు 13-బిట్ టైమర్ / కౌంటర్ రీతిలో అమలు కావు. లో మోడ్ 1, స్పష్టత 16-బిట్ ఉంటుంది ఆ రెండు టైమర్లు బిట్. లో మోడ్ 2, టైమర్లు ఒక 8-bit రిజల్యూషన్ తో ఒక ఆటో రీలోడ్ విధానంగా అమర్చుతారు. లో మోడ్ 3, టైమర్ 1 ఆగిపోయింది మరియు టైమర్ 0 అదే సమయంలో ప్రతివాద మరియు టైమర్ గా ఉపయోగించవచ్చు.
ఈ నాలుగు మోడ్లలో, మోడ్ 1 చాలా సందర్భాలలో ఉపయోగించబడుతుంది. ఈ రెండు టైమర్లు Fsys (సిస్టమ్ ఫ్రీక్వెన్సీ) ని స్థిర లేదా ప్రీస్కేల్డ్ మోడ్లో (Fys / 12) ఉపయోగించవచ్చు. ఇది బాహ్య గడియార మూలం నుండి కూడా క్లాక్ చేయవచ్చు.
టైమర్ 2:
టైమర్ 2 కూడా 16-బిట్ టైమర్, ఇది ప్రధానంగా తరంగ రూప సంగ్రహానికి ఉపయోగించబడుతుంది. ఇది సిస్టమ్ గడియారాన్ని కూడా ఉపయోగిస్తుంది మరియు గడియార ఫ్రీక్వెన్సీని 8 వేర్వేరు ప్రమాణాలను ఉపయోగించి విభజించడం ద్వారా వేర్వేరు అనువర్తనాల్లో ఉపయోగించవచ్చు. పోలిక మోడ్లో లేదా పిడబ్ల్యుఎం ఉత్పత్తికి కూడా దీనిని ఉపయోగించవచ్చు.
టైమర్ 0 మరియు టైమర్ 1 మాదిరిగానే, టైమర్ 2 ను ఆటో-రీలోడ్ మోడ్లో ఉపయోగించవచ్చు.
టైమర్ 3:
టైమర్ 3 ను 16-బిట్ టైమర్గా కూడా ఉపయోగిస్తారు మరియు ఇది UART కోసం బాడ్ రేట్ క్లాక్ సోర్స్ కోసం ఉపయోగించబడుతుంది. ఇది ఆటో-రీలోడ్ లక్షణాన్ని కూడా కలిగి ఉంది. అనువర్తనానికి UART కమ్యూనికేషన్ అవసరమైతే ఈ టైమర్ను సీరియల్ కమ్యూనికేషన్ (UART) కోసం మాత్రమే ఉపయోగించడం ముఖ్యం. టైమర్ సెటప్లో వైరుధ్య ప్రక్రియ కారణంగా ఈ సందర్భంలో ఇతర ప్రయోజనాల కోసం ఈ టైమర్ను ఉపయోగించకూడదని సలహా ఇస్తారు.
వాచ్డాగ్ టైమర్:
వాచ్డాగ్ టైమర్ను ప్రామాణిక 6-బిట్ టైమర్గా ఉపయోగించవచ్చు, కానీ ఇది ఈ ప్రయోజనం కోసం ఉపయోగించబడదు. మైక్రోకంట్రోలర్ ఎక్కువగా నిష్క్రియ మోడ్లో ఉండే తక్కువ విద్యుత్ వినియోగ అనువర్తనాలకు వాచ్డాగ్ టైమర్ను సాధారణ-ప్రయోజన టైమర్గా ఉపయోగించడం వర్తిస్తుంది.
వాచ్డాగ్ టైమర్, పేరు సూచించినట్లుగా, మైక్రోకంట్రోలర్ సరిగ్గా పనిచేస్తుందో లేదో ఎల్లప్పుడూ తనిఖీ చేస్తుంది. ఉరితీసిన లేదా నిలిపివేయబడిన మైక్రోకంట్రోలర్ విషయంలో, WDT (వాచ్డాగ్ టైమర్) మైక్రోకంట్రోలర్ను స్వయంచాలకంగా రీసెట్ చేస్తుంది, ఇది మైక్రోకంట్రోలర్ నిరంతర కోడ్ ప్రవాహంలో చిక్కుకోకుండా, ఉరితీసుకోకుండా లేదా ఆగిపోయిన పరిస్థితులలో లేకుండా నడుస్తుందని నిర్ధారిస్తుంది.
సెల్ఫ్ వేక్-అప్ టైమర్:
ఇది మరొక టైమర్ పరిధీయ, ఇది వాచ్డాగ్ టైమర్ మాదిరిగానే అంకితమైన సమయ ప్రక్రియను అందిస్తుంది. ఈ టైమర్, మైక్రోకంట్రోలర్ తక్కువ పవర్ మోడ్లో నడుస్తున్నప్పుడు ఎప్పటికప్పుడు సిస్టమ్ను మేల్కొలపండి.
ఈ టైమర్ పరిధీయము స్లీప్ మోడ్ నుండి మైక్రోకంట్రోలర్ను మేల్కొలపడానికి అంతర్గతంగా లేదా బాహ్య పెరిఫెరల్స్ ఉపయోగించి ఉపయోగించవచ్చు. ఈ ప్రాజెక్ట్ కోసం, మేము టైమర్ 1 మరియు టైమర్ 2 ని ఉపయోగిస్తాము.
టైమర్ల కోసం ప్రోగ్రామింగ్ నువోటన్ N76E003 మైక్రోకంట్రోలర్
పిన్లను అవుట్పుట్గా సెట్ చేస్తోంది:
మొదట అవుట్పుట్ విభాగంతో ప్రారంభిద్దాం. మేము రెండు LED లను ఉపయోగిస్తున్నాము, ఒకటి ఆన్బోర్డ్ LED, టెస్ట్ అని పిలుస్తారు మరియు P1.4 పోర్ట్ మరియు పిన్ P1.5 తో అనుసంధానించబడిన బాహ్య LED తో కనెక్ట్ చేయబడింది.
అందువల్ల, ఈ రెండు పిన్లను దిగువ కోడ్ స్నిప్పెట్లను ఉపయోగించి ఆ రెండు LED లను కనెక్ట్ చేయడానికి అవుట్పుట్ పిన్గా కాన్ఫిగర్ చేయబడ్డాయి.
# Test_LED P14 ను నిర్వచించండి # LED1 P15 ని నిర్వచించండి
ఈ రెండు పిన్లను సెటప్ ఫంక్షన్లో క్వాసి-బైడైరెక్షనల్ పిన్గా సెట్ చేస్తారు.
శూన్య సెటప్ (శూన్యమైనది) {P14_Quasi_Mode; పి 15_క్వాసి_మోడ్; }
టైమర్ ఫంక్షన్ను సెట్ చేస్తోంది:
సెటప్ ఫంక్షన్లో, కావలసిన అవుట్పుట్ పొందడానికి టైమర్ 2 ను కాన్ఫిగర్ చేయాలి. దీని కోసం, మేము T2MOD రిజిస్టర్ను 1/128 క్లాక్ డివైడింగ్ ఫ్యాక్టర్తో సెట్ చేసి ఆటో-రీలోడ్ ఆలస్యం మోడ్లో ఉపయోగిస్తాము. T2MOD రిజిస్టర్ యొక్క అవలోకనం ఇక్కడ ఉంది-
T2MOD రిజిస్టర్ యొక్క 4,5 మరియు 6 వ బిట్ టైమర్ 2 క్లాక్ డివైడర్ను మరియు 7 వ బిట్ ఆటో-రీలోడ్ మోడ్ను సెట్ చేస్తుంది. ఇది క్రింది పంక్తిని ఉపయోగించి జరుగుతుంది -
TIMER2_DIV_128; TIMER2_Auto_Reload_Delay_Mode;
ఈ రెండు పంక్తులు Function_define.h ఫైల్లో నిర్వచించబడ్డాయి
# TIMER2_DIV_128 T2MOD- = 0x50; T2MOD & = 0xDF # TIMER2_Auto_Reload_Delay_Mode T2CON ను నిర్వచించండి & = ~ SET_BIT0; T2MOD- = SET_BIT7; T2MOD- = SET_BIT3
ఇప్పుడు, ఈ పంక్తులు టైమర్ 2 ISR కి అవసరమైన సమయ విలువను సెట్ చేస్తాయి.
RCMP2L = TIMER_DIV128_VALUE_100ms; RCMP2H = TIMER_DIV128_VALUE_100ms >> 8;
ఇది Function_define.h ఫైల్లో మరింత నిర్వచించబడింది-
TIMER_DIV128_VALUE_100ms 65536-12500 // 12500 * 128/16000000 = 100 ms
కాబట్టి, 16000000 అనేది 16 Mhz యొక్క క్రిస్టల్ ఫ్రీక్వెన్సీ, ఇది 100 ms సమయం ఆలస్యాన్ని ఏర్పాటు చేస్తుంది.
రెండు పంక్తుల క్రింద టైమర్ 2 తక్కువ మరియు అధిక బైట్లను ఖాళీ చేస్తుంది.
టిఎల్ 2 = 0; TH2 = 0;
చివరగా క్రింద ఉన్న కోడ్ టైమర్ 2 అంతరాయాన్ని ప్రారంభిస్తుంది మరియు టైమర్ 2 ను ప్రారంభిస్తుంది.
set_ET2; // టైమర్ 2 అంతరాయ సెట్_ఇఎను ప్రారంభించండి; set_TR2; // టైమర్ 2 రన్
పూర్తి సెటప్ ఫంక్షన్ క్రింది కోడ్లలో చూడవచ్చు-
శూన్య సెటప్ (శూన్యమైనది) { P14_Quasi_Mode; పి 15_క్వాసి_మోడ్; TIMER2_DIV_128; TIMER2_Auto_Reload_Delay_Mode; RCMP2L = TIMER_DIV128_VALUE_100ms; RCMP2H = TIMER_DIV128_VALUE_100ms >> 8; టిఎల్ 2 = 0; TH2 = 0; set_ET2; // టైమర్ 2 అంతరాయ సెట్_ఇఎను ప్రారంభించండి ; set_TR2; // టైమర్ 2 రన్ }
టైమర్ 2 ISR ఫంక్షన్:
టైమర్ 2 ISR ఫంక్షన్ క్రింది కోడ్లో చూడవచ్చు.
శూన్యమైన టైమర్ 2_ఐఎస్ఆర్ (శూన్యమైన) అంతరాయం 5 { clr_TF2; // క్లియర్ టైమర్ 2 ఇంటరప్ట్ ఫ్లాగ్ LED1 = ~ LED1; // LED1 టోగుల్, P1.5 లో కనెక్ట్ చేయబడింది; }
టైమర్ కార్యాచరణ కోసం ఫ్లాషింగ్ కోడ్ మరియు అవుట్పుట్ను ధృవీకరిస్తోంది
సంకలనం చేసినప్పుడు కోడ్ (క్రింద ఇవ్వబడింది) 0 హెచ్చరిక మరియు 0 లోపాలను తిరిగి ఇచ్చింది మరియు నేను కైల్లోని డిఫాల్ట్ ఫ్లాషింగ్ పద్ధతిని ఉపయోగించి దాన్ని ఫ్లాష్ చేసాను. మెరుస్తున్న తరువాత LED లు ప్రోగ్రామ్ చేయబడినట్లుగా నిర్వచించిన టైమర్ ఆలస్యంలో మెరిసిపోతున్నాయి.
ఈ కోడ్ కోసం బోర్డు ఎలా పనిచేస్తుందో పూర్తి ప్రదర్శన కోసం క్రింద ఇచ్చిన వీడియోను చూడండి. మీరు ట్యుటోరియల్ని ఆస్వాదించారని మరియు మీకు ఏవైనా ప్రశ్నలు ఉంటే వాటిని దిగువ వ్యాఖ్య విభాగంలో ఉంచండి. ఇతర సాంకేతిక ప్రశ్నలను పోస్ట్ చేయడానికి మీరు మా ఫోరమ్లను కూడా ఉపయోగించవచ్చు.