- PIC16F877A లో EEPROM:
- సర్క్యూట్ రేఖాచిత్రం మరియు వివరణ:
- PIC EEPROM ను ఉపయోగించడం యొక్క అనుకరణ:
- EEPROM కోసం ప్రోగ్రామింగ్ PIC:
- పని:
ఈ ట్యుటోరియల్లో PIC16F877A మైక్రోకంట్రోలర్లో ఉన్న EEPROM ను ఉపయోగించి డేటాను సేవ్ చేయడం ఎంత సులభమో తెలుసుకుంటాము. చాలా నిజ సమయ ప్రాజెక్టులలో, విద్యుత్తు ఆపివేయబడినప్పుడు కూడా తొలగించబడని కొన్ని డేటాను మనం సేవ్ చేయాల్సి ఉంటుంది. ఇది సంక్లిష్టమైన ప్రక్రియలా అనిపించవచ్చు, కానీ XC8 కంపైలర్ సహాయంతో ఈ పనిని కేవలం ఒక లైన్ కోడ్ ఉపయోగించి చేయవచ్చు. మెగా బైట్ల పరంగా డేటా పెద్దదిగా ఉంటే, అప్పుడు మేము ఒక SD కార్డ్ వంటి నిల్వ పరికరాన్ని ఇంటర్ఫేస్ చేయవచ్చు మరియు వాటిపై ఆ డేటాను నిల్వ చేయవచ్చు. డేటా చిన్నది అయితే మేము ఆ అలసిపోయే ప్రక్రియను నివారించవచ్చు, మన డేటాను సేవ్ చేయడానికి మరియు మనకు కావలసినప్పుడు దాన్ని తిరిగి పొందడానికి PIC మైక్రోకంట్రోలర్లో ఉన్న EEPROM ను ఉపయోగించవచ్చు.
ఈ PIC EEPROM ట్యుటోరియల్ PIC మైక్రోకంట్రోలర్ ట్యుటోరియల్స్ యొక్క క్రమం యొక్క ఒక భాగం, దీనిలో మేము చాలా ప్రాథమిక స్థాయి నుండి ప్రారంభించాము. మీరు మునుపటి ట్యుటోరియల్స్ నేర్చుకోకపోతే, ఇప్పుడు వాటిని పరిశీలించడం మంచిది, ఎందుకంటే ఈ ట్యుటోరియల్ మీకు పిఐసి మైక్రోకంట్రోలర్తో ఇంటర్ఫేసింగ్ ఎల్సిడి గురించి తెలిసిందని మరియు పిఐసి మైక్రోకంట్రోలర్తో ఎడిసిని ఉపయోగిస్తుందని umes హిస్తుంది.
PIC16F877A లో EEPROM:
EEPROM స్టాండ్ “ఎలక్ట్రానిక్ ఎరేజబుల్ అండ్ ప్రోగ్రామబుల్ రీడ్ ఓన్లీ మెమరీ”. పేరు సూచించినట్లుగా ఇది పిఐసి మైక్రోకంట్రోలర్ లోపల ఉన్న మెమరీ, దీనిలో డేటాను ప్రోగ్రామింగ్ చేయడం ద్వారా వ్రాయవచ్చు / చదవవచ్చు. ప్రోగ్రామ్లో అలా చేయమని పేర్కొన్నట్లయితే మాత్రమే ఇందులో సేవ్ చేయబడిన డేటా తొలగించబడుతుంది. EEPROM లో లభించే నిల్వ స్థలం ప్రతి మైక్రోకంట్రోలర్పై మారుతుంది; వివరాలు ఎప్పటిలాగే డేటాషీట్లో ఇవ్వబడతాయి. PIC16F877A కోసం మా విషయంలో అందుబాటులో ఉన్న స్థలం దాని స్పెసిఫికేషన్ డేటాషీట్లో పేర్కొన్న విధంగా 256 బైట్లు. సరళమైన ప్రయోగాత్మక సెటప్ను ఉపయోగించి డేటాను చదవడానికి / వ్రాయడానికి ఈ 256 బైట్లను ఎలా ఉపయోగించవచ్చో ఇప్పుడు చూద్దాం.
సర్క్యూట్ రేఖాచిత్రం మరియు వివరణ:
ప్రాజెక్ట్ కోసం సర్క్యూట్ రేఖాచిత్రం పైన చూపబడింది. డేటా సేవ్ చేయబడి తిరిగి పొందబడుతుందని visual హించుకోవడానికి మేము ఎల్సిడిని ఇంటర్ఫేస్ చేసాము. ఒక సాధారణ పొటెన్షియోమీటర్ AN4 అనలాగ్ ఛానెల్కు అనుసంధానించబడి ఉంది కాబట్టి వేరియబుల్ వోల్టేజ్లో ఫీడ్ చేయండి, ఈ వేరియబుల్ వోల్టేజ్ EEPROM లో సేవ్ చేయవలసిన డేటాగా ఉపయోగించబడుతుంది. మేము RB0 పై పుష్ బటన్ను కూడా ఉపయోగించాము, ఈ బటన్ నొక్కినప్పుడు అనలాగ్ ఛానెల్ నుండి డేటా EEPROM లో సేవ్ చేయబడుతుంది.
ఈ కనెక్షన్ను బ్రెడ్బోర్డ్లో చేయవచ్చు. PIC మైక్రోకంట్రోలర్ యొక్క పిన్అవుట్లు క్రింది పట్టికలో చూపించబడ్డాయి.
ఎస్. లేదు: |
పిన్ నెంబర్ |
పిన్ పేరు |
సంబంధం కలిగిఉన్నది |
1 |
21 |
RD2 |
LCD యొక్క RS |
2 |
22 |
RD3 |
LCD యొక్క E. |
3 |
27 |
RD4 |
LCD యొక్క D4 |
4 |
28 |
RD5 |
LCD యొక్క D5 |
5 |
29 |
RD6 |
ఎల్సిడి యొక్క డి 6 |
6 |
30 |
RD7 |
ఎల్సిడి యొక్క డి 7 |
7 |
33 |
RBO / INT |
నొక్కుడు మీట |
8 |
7 |
AN4 |
పొటెన్టోమీటర్ |
PIC EEPROM ను ఉపయోగించడం యొక్క అనుకరణ:
ఈ ప్రాజెక్ట్లో ప్రోటీస్ను ఉపయోగించి రూపొందించిన అనుకరణ కూడా ఉంటుంది, దీనిని ఉపయోగించి మేము హార్డ్వేర్ లేకుండా ప్రాజెక్ట్ యొక్క పనిని అనుకరించవచ్చు. ఈ అనుకరణ కోసం ప్రోగ్రామ్ ఈ ట్యుటోరియల్ చివరిలో ఇవ్వబడింది. మీరు ఇక్కడ నుండి హెక్స్ ఫైల్ను ఉపయోగించవచ్చు మరియు మొత్తం ప్రక్రియను అనుకరించవచ్చు.
అనుకరణ సమయంలో మీరు ప్రస్తుత ADC విలువ మరియు LCD స్క్రీన్లో EEPROM లో సేవ్ చేసిన డేటాను visual హించవచ్చు. ప్రస్తుత ADC విలువను EEPROM లో సేవ్ చేయడానికి RB0 కి కనెక్ట్ చేయబడిన స్విచ్ నొక్కండి మరియు అది సేవ్ చేయబడుతుంది. అనుకరణ యొక్క స్నాప్షాట్ క్రింద చూపబడింది.
EEPROM కోసం ప్రోగ్రామింగ్ PIC:
ఈ ట్యుటోరియల్ కోసం పూర్తి కోడ్ ఈ ట్యుటోరియల్ చివరిలో ఇవ్వబడింది. మా ప్రోగ్రామ్లో మనం ADC మాడ్యూల్ నుండి విలువలను చదవాలి మరియు ఒక బటన్ నొక్కినప్పుడు ఆ విలువను మన EEPROM లో సేవ్ చేయాలి. ADC లు మరియు LCD ఇంటర్ఫేసింగ్ గురించి మేము ఇప్పటికే నేర్చుకున్నాము కాబట్టి, EEPROM నుండి డేటాను సేవ్ చేయడానికి మరియు తిరిగి పొందటానికి నేను కోడ్ను మరింత వివరిస్తాను.
డేటాషీట్ ప్రకారం “ఈ పరికరాలు ప్రోగ్రామ్ ఫ్లాష్ యొక్క 4 లేదా 8 కె పదాలను కలిగి ఉన్నాయి, PIC16F877A కోసం చిరునామా 0000h నుండి 1FFFh వరకు ఉంటుంది”. ప్రతి EEPROM నిల్వ స్థలానికి ఒక చిరునామా ఉంటుంది, దీని ద్వారా యాక్సెస్ చేయవచ్చు మరియు మా MCU లో చిరునామా 0000h నుండి 1FFFh వరకు ప్రారంభమవుతుంది.
నిర్దిష్ట EEPROM చిరునామా లోపల డేటాను సేవ్ చేయడానికి క్రింది పంక్తిని ఉపయోగించండి.
eeprom_write (0, adc);
ఇక్కడ “adc” అనేది టైప్ పూర్ణాంకం యొక్క వేరియబుల్, దీనిలో సేవ్ చేయవలసిన డేటా ఉంటుంది. మరియు “0” అనేది మా డేటా సేవ్ చేయబడిన EEPROM యొక్క చిరునామా. “Eeprom_write” అనే వాక్యనిర్మాణం మా XC8 కంప్లైయర్ చేత అందించబడింది, అందువల్ల రిజిస్టర్లు కంపైలర్ చేత స్వయంచాలకంగా జాగ్రత్త తీసుకోబడతాయి.
ఇప్పటికే EEPROM లో నిల్వ చేయబడిన డేటాను తిరిగి పొందటానికి మరియు దానిని వేరియబుల్లో సేవ్ చేయడానికి క్రింది కోడ్ యొక్క పంక్తిని ఉపయోగించవచ్చు.
సాడ్క్ = (పూర్ణాంకానికి) ఈప్రోమ్_రెడ్ (0);
ఇక్కడ, “సాడ్క్” అనేది EEPROM నుండి డేటా సేవ్ చేయబడే వేరియబుల్. మరియు “0” అనేది EEPROM యొక్క చిరునామా, దాని నుండి మేము డేటాను తిరిగి పొందుతున్నాము. “Eeprom_read” అనే వాక్యనిర్మాణం మా XC8 కంప్లైయర్ చేత అందించబడింది, అందువల్ల రిజిస్టర్లు కంపైలర్ చేత స్వయంచాలకంగా జాగ్రత్త తీసుకోబడతాయి. EEPROM లో సేవ్ చేయబడిన డేటా హెక్సాడెసిమల్ రకంలో ఉంటుంది. అందువల్ల మేము వాక్యనిర్మాణానికి ముందు ఒక (పూర్ణాంకానికి) ఉపసర్గ చేయడం ద్వారా వాటిని పూర్ణాంక రకానికి మారుస్తాము.
పని:
కోడ్ ఎలా పనిచేస్తుందో అర్థం చేసుకున్న తర్వాత మరియు హార్డ్వేర్తో సిద్ధమైన తర్వాత మేము కోడ్ను పరీక్షించవచ్చు. మీ PIC మైక్రోకంట్రోలర్కు కోడ్ను అప్లోడ్ చేయండి మరియు సెటప్కు శక్తినివ్వండి. ప్రతిదీ expected హించిన విధంగా పనిచేస్తుంటే, మీరు ప్రస్తుత ADC విలువలను LCD లో ప్రదర్శించాలి. ADC విలువను EEPROM కు సేవ్ చేయడానికి మీరు ఇప్పుడు బటన్ను నొక్కవచ్చు. మొత్తం సిస్టమ్ను ఆపివేసి, దాన్ని మళ్లీ ఆన్ చేయడం ద్వారా విలువ సేవ్ చేయబడిందో లేదో ఇప్పుడు మీరు తనిఖీ చేస్తారు. మీరు శక్తితో ఉన్నప్పుడు ఎల్సిడి స్క్రీన్లో గతంలో సేవ్ చేసిన విలువను చూడాలి.
PIC మైక్రోకంట్రోలర్ EEPROM ను ఉపయోగించడానికి ఈ ప్రాజెక్ట్ యొక్క పూర్తి పని క్రింది వీడియోలో చూపబడింది. మీరు ట్యుటోరియల్ అర్థం చేసుకున్నారని మరియు చేయడం ఆనందించారని ఆశిస్తున్నాము. మీకు ఏవైనా సందేహాలు ఉంటే మీరు వాటిని క్రింది వ్యాఖ్య విభాగంలో వ్రాయవచ్చు లేదా వాటిని మా ఫోరమ్లలో పోస్ట్ చేయవచ్చు.