అసెంబ్లీ భాషలో 8051 ప్రోగ్రామింగ్ పరిచయం

సమస్యలను తొలగించడానికి మా పరికరాన్ని ప్రయత్నించండి





అసెంబ్లీ భాష తక్కువ స్థాయి ప్రోగ్రామింగ్ భాష, ఇది జ్ఞాపకశక్తి పరంగా ప్రోగ్రామ్ కోడ్ రాయడానికి ఉపయోగిస్తారు. ప్రస్తుతం చాలా ఉన్నత-స్థాయి భాషలు ఉన్నప్పటికీ, అసెంబ్లీ ప్రోగ్రామింగ్ భాష చాలా అనువర్తనాల్లో ప్రసిద్ది చెందింది.ఇది ప్రత్యక్ష హార్డ్వేర్ మానిప్యులేషన్స్ కోసం ఉపయోగించవచ్చు. ఇది వ్రాయడానికి కూడా ఉపయోగించబడుతుంది 8051 ప్రోగ్రామింగ్ కోడ్ ఇతర ఉన్నత-స్థాయి భాషలతో పోలిస్తే తక్కువ మెమరీని తీసుకోవడం ద్వారా తక్కువ సంఖ్యలో గడియార చక్రాలతో సమర్థవంతంగా.

అసెంబ్లీ భాషలో 8051 ప్రోగ్రామింగ్

8051 ప్రోగ్రామింగ్



అసెంబ్లీ భాషలో 8051 ప్రోగ్రామింగ్

అసెంబ్లీ భాష పూర్తిగా హార్డ్వేర్ సంబంధిత ప్రోగ్రామింగ్ భాష. ఎంబెడెడ్ డిజైనర్లు ప్రోగ్రామ్ రాసే ముందు నిర్దిష్ట ప్రాసెసర్ లేదా కంట్రోలర్‌ల హార్డ్‌వేర్‌పై తగినంత జ్ఞానం కలిగి ఉండాలి. అసెంబ్లీ భాష జ్ఞాపకశక్తి ద్వారా అభివృద్ధి చేయబడింది, కాబట్టి ప్రోగ్రామ్‌ను సవరించడానికి వినియోగదారులు సులభంగా అర్థం చేసుకోలేరు.


అసెంబ్లీ భాషలో 8051 ప్రోగ్రామింగ్

అసెంబ్లీ భాషలో 8051 ప్రోగ్రామింగ్



అసెంబ్లీ ప్రోగ్రామింగ్ భాషను వివిధ కంపైలర్లు అభివృద్ధి చేస్తారు మరియు ది 'బౌలింగ్ అల్లే' దీనికి ఉత్తమమైనది మైక్రోకంట్రోలర్ప్రోగ్రామింగ్ అభివృద్ధి. ఓంicrocontrollersలేదా ప్రాసెసర్‌లు బైనరీ భాషను మాత్రమే ‘0 సె లేదా 1 సె’ రూపంలో అర్థం చేసుకోగలవు. ఒక సమీకరించేవాడు అసెంబ్లీ భాషను బైనరీ భాషగా మారుస్తాడు, ఆపై దాన్ని నిల్వ చేస్తుందిమైక్రోకంట్రోలర్నిర్దిష్ట పనిని నిర్వహించడానికి మెమరీ.

8051 మైక్రోకంట్రోలర్ ఆర్కిటెక్చర్

8051మైక్రోకంట్రోలర్ఉంది CISC ఆధారిత హార్వర్డ్ నిర్మాణం , మరియు దీనికి 32 I / O, టైమర్లు / కౌంటర్లు, సీరియల్ కమ్యూనికేషన్ మరియు జ్ఞాపకాలు వంటి పెరిఫెరల్స్ ఉన్నాయి. దిమైక్రోకంట్రోలర్సేవ్ చేయడానికి మరియు ఫంక్షన్లను చదవడానికి మెమరీ అవసరమయ్యే ఆపరేషన్లను నిర్వహించడానికి ప్రోగ్రామ్ అవసరం. 8051మైక్రోకంట్రోలర్సూచనలను నిల్వ చేయడానికి RAM మరియు ROM జ్ఞాపకాలు ఉంటాయి.

8051 మైక్రోకంట్రోలర్ ఆర్కిటికేచర్

8051 మైక్రోకంట్రోలర్ ఆర్కిటెక్చర్

ఒక రిజిస్టర్ ప్రధాన భాగం ప్రాసెసర్లు మరియుమైక్రోకంట్రోలర్లు ఇది డేటాను సేకరించడానికి మరియు నిల్వ చేయడానికి వేగవంతమైన మార్గాన్ని అందించే మెమరీలో ఉంటుంది. 8051 అసెంబ్లీ భాషా ప్రోగ్రామింగ్ మెమరీ రిజిస్టర్లపై ఆధారపడి ఉంటుంది. వ్యవకలనం, అదనంగా మొదలైనవి చేయడం ద్వారా డేటాను ప్రాసెసర్ లేదా కంట్రోలర్‌కు మార్చాలనుకుంటే, మేము దానిని నేరుగా మెమరీలో చేయలేము, కాని డేటాను ప్రాసెస్ చేయడానికి మరియు డేటాను నిల్వ చేయడానికి దీనికి రిజిస్టర్‌లు అవసరం.మైక్రోకంట్రోలర్లుఅనేక రకాల రిజిస్టర్‌లను కలిగి ఉంటాయి, అవి వాటి సూచనలు లేదా వాటిలో పనిచేసే కంటెంట్ ప్రకారం వర్గీకరించబడతాయి.

అసెంబ్లీ భాషలో 8051 మైక్రోకంట్రోలర్ ప్రోగ్రామ్‌లు

అసెంబ్లీ భాష ప్రోగ్రామ్‌ను వ్రాయడానికి ఉపయోగించే అంశాలతో రూపొందించబడిందివరుస పద్ధతిలో. అసెంబ్లీ భాషలో ప్రోగ్రామింగ్ రాయడానికి ఇచ్చిన నియమాలను అనుసరించండి.


అసెంబ్లీ భాష యొక్క నియమాలు

  • అసెంబ్లీ కోడ్ తప్పనిసరిగా పెద్ద అక్షరాలతో వ్రాయబడాలి
  • లేబుళ్ళను తప్పనిసరిగా పెద్దప్రేగు (లేబుల్ :) అనుసరించాలి
  • అన్ని చిహ్నాలు మరియు లేబుల్‌లు అక్షరంతో ప్రారంభం కావాలి
  • అన్ని వ్యాఖ్యలు చిన్న కేసులో టైప్ చేయబడతాయి
  • ప్రోగ్రామ్ యొక్క చివరి పంక్తి END ఆదేశంగా ఉండాలి

అసెంబ్లీ భాషా జ్ఞాపకాలు MOV, ADD, JMP మరియు వంటి ఆప్-కోడ్ రూపంలో ఉంటాయి, ఇవి కార్యకలాపాలను నిర్వహించడానికి ఉపయోగిస్తారు.

ఆప్ కోడ్: ఆప్-కోడ్ అనేది సిపియు చేత అమలు చేయగల ఒకే సూచన. ఇక్కడ ఆప్-కోడ్ MOV సూచన.

కార్యకలాపాలు: ఒపెరాండ్స్ అనేది ఆప్-కోడ్ ద్వారా నిర్వహించబడే డేటా యొక్క ఒక భాగం. ఉదాహరణ, గుణకారం ఆపరేషన్ ఒపెరాండ్ చేత గుణించబడిన ఒపెరాండ్స్ చేత చేయబడుతుంది.

సింటాక్స్: MUL a,బి

అసెంబ్లీ భాషా ప్రోగ్రామింగ్ యొక్క అంశాలు:

  • మార్గదర్శకాలను సమీకరించండి
  • ఇన్స్ట్రక్షన్ సెట్
  • చిరునామా మోడ్‌లు

సూచనలను సమీకరించండి:

సమీకరించే ఆదేశాలు CPU కి ఆదేశాలు ఇస్తాయి. 8051మైక్రోకంట్రోలర్నియంత్రణ యూనిట్‌కు దిశను ఇవ్వడానికి వివిధ రకాల అసెంబ్లీ ఆదేశాలను కలిగి ఉంటుంది. 8051 ప్రోగ్రామింగ్ వంటి అత్యంత ఉపయోగకరమైన ఆదేశాలు:

  • ORG
  • డిబి
  • EQU
  • END

ORG(మూలం): ఈ ఆదేశం ప్రోగ్రామ్ యొక్క ప్రారంభాన్ని సూచిస్తుంది. అసెంబ్లీ సమయంలో రిజిస్టర్ చిరునామాను సెట్ చేయడానికి ఇది ఉపయోగించబడుతుంది. ఉదాహరణకు ORG 0000h చిరునామా 0000h నుండి ప్రారంభమయ్యే అన్ని తదుపరి కోడ్‌లను కంపైలర్‌కు చెబుతుంది.

సింటాక్స్: ORG 0000 క

డిబి(బైట్‌ను నిర్వచించండి): బైట్ల స్ట్రింగ్‌ను అనుమతించడానికి నిర్వచించు బైట్ ఉపయోగించబడుతుంది. ఉదాహరణకు, “EDGEFX” ను ప్రింట్ చేయండి, దీనిలో ప్రతి అక్షరం చిరునామా ద్వారా తీసుకోబడుతుంది మరియు చివరకు DB చే “స్ట్రింగ్” ను నేరుగా డబుల్ కోట్స్‌తో ప్రింట్ చేస్తుంది.

సింటాక్స్:

ORG 0000 క

MOV a, # 00 క
————-
————-
DB “EDGEFX”

EQU (సమానమైనది): వేరియబుల్ యొక్క చిరునామాను సమానం చేయడానికి సమానమైన ఆదేశం ఉపయోగించబడుతుంది.

సింటాక్స్:

reg సమం,09 క
—————–
—————–
MOVreg,# 2 గం

END: ప్రోగ్రామ్ ముగింపును సూచించడానికి END ఆదేశం ఉపయోగించబడుతుంది.

సింటాక్స్:

reg సమం,09 క

—————–
—————–
MOVreg,# 2 గం
END

చిరునామా మోడ్‌లు:

డేటాను యాక్సెస్ చేసే మార్గాన్ని అడ్రసింగ్ మోడ్ అంటారు. అడ్రసింగ్ మోడ్‌లను ఉపయోగించడం ద్వారా CPU డేటాను వివిధ మార్గాల్లో యాక్సెస్ చేయవచ్చు. 8051మైక్రోకంట్రోలర్ఐదు చిరునామా మోడ్‌లను కలిగి ఉంటుంది:

  • తక్షణ చిరునామా మోడ్
  • చిరునామా మోడ్‌ను నమోదు చేయండి
  • ప్రత్యక్ష చిరునామా మోడ్
  • పరోక్ష చిరునామా మోడ్
  • బేస్ ఇండెక్స్ అడ్రసింగ్ మోడ్

తక్షణ చిరునామా మోడ్:

ఈ అడ్రసింగ్ మోడ్‌లో, మూలం తప్పనిసరిగా ‘#’ ను అనుసరించగల విలువ అయి ఉండాలి మరియు గమ్యం ఉండాలి SFR రిజిస్టర్లు, సాధారణ ప్రయోజన రిజిస్టర్లు మరియు చిరునామా. మెమరీ రిజిస్టర్లలో విలువను వెంటనే నిల్వ చేయడానికి ఇది ఉపయోగించబడుతుంది.

సింటాక్స్:

MOV A, # 20 క // Aఒకసంచిత రిజిస్టర్, 20 A // లో నిల్వ చేయబడుతుంది
MOV R0,# 15 // R0 అనేది ఒక సాధారణ ప్రయోజన రిజిస్టర్ 15 R0 రిజిస్టర్‌లో నిల్వ చేయబడుతుంది //
MOV P0, # 07 క // P0 అనేది SFR రిజిస్టర్ 07 P0 లో నిల్వ చేయబడుతుంది
MOV 20 క,# 05 క // 20 గం 20 గం // లో నిల్వ చేసిన రిజిస్టర్ 05 యొక్క చిరునామా

మాజీ:

MOV R0, # 1
MOV R0, # 20 // R0<—R0[15] +20, తుది విలువ R0 // లో నిల్వ చేయబడుతుంది

చిరునామా మోడ్‌ను నమోదు చేయండి:

ఈ చిరునామా మోడ్‌లో, మూలం మరియు గమ్యం తప్పనిసరిగా రిజిస్టర్ అయి ఉండాలి, కాని సాధారణ ప్రయోజన రిజిస్టర్‌లు కాదు. కాబట్టి డేటా లోపల తరలించబడదు సాధారణ ప్రయోజన బ్యాంక్ రిజిస్టర్లు .

సింటాక్స్:

MOV A, B // A అనేది SFR రిజిస్టర్, B అనేది సాధారణ ప్రయోజన రిజిస్టర్ //
MOV R0, R1 // చెల్లని సూచన, GPR నుండి GPR సాధ్యం కాదు //

ఫార్మర్:

MOV R0, # 02 క
MOV A, # 30 క
ADD R0, A // R0<—R0+A, the final value is stored in the R0 register//

ప్రత్యక్ష చిరునామా మోడ్

ఈ చిరునామా మోడ్‌లో, మూలం లేదా గమ్యం (లేదా మూలం మరియు గమ్యం రెండూ) తప్పనిసరిగా చిరునామాగా ఉండాలి, కానీ విలువ కాదు.

సింటాక్స్:

MOV A.,20 గం // 20 గం చిరునామా A రిజిస్టర్ //
MOV 00h, 07h // రెండూ GPS రిజిస్టర్ల చిరునామా //

మాజీ:

MOV 07 క,# 01 క
MOV A, # 08 క
ADD A.,07 క // ఎ<—A+07h the final value is stored in A//

పరోక్ష చిరునామా మోడ్:

ఈ చిరునామా మోడ్‌లో, మూలం లేదా గమ్యం (లేదా గమ్యం లేదా మూలం) ఉండాలికుపరోక్ష చిరునామా, కానీ విలువ కాదు. ఈ చిరునామా మోడ్ పాయింటర్ భావనకు మద్దతు ఇస్తుంది. పాయింటర్ అనేది వేరియబుల్, ఇది ఇతర వేరియబుల్ యొక్క చిరునామాను నిల్వ చేయడానికి ఉపయోగించబడుతుంది. ఈ పాయింటర్ భావన R0 మరియు R1 రిజిస్టర్లకు మాత్రమే ఉపయోగించబడుతుంది.

సింటాక్స్:

MOVR0, # 01h // 01 విలువ R0 రిజిస్టర్‌లో నిల్వ చేయబడుతుంది, R0 చిరునామా 08h //
MOV R1, # 08h // R1 అనేది పాయింటర్ వేరియబుల్దుకాణాలుR0 // యొక్క చిరునామా (08 గం)
MOV 20 క,Register R1 // 01 విలువ GP రిజిస్టర్ యొక్క 20 వ చిరునామాలో నిల్వ చేయబడుతుంది //

పరోక్ష చిరునామా మోడ్

పరోక్ష చిరునామా మోడ్

బేస్ ఇండెక్స్ అడ్రసింగ్ మోడ్:

నుండి డేటాను చదవడానికి ఈ చిరునామా మోడ్ ఉపయోగించబడుతుంది బాహ్య మెమరీ లేదా ROM మెమరీ . అన్ని చిరునామా మోడ్‌లు కోడ్ మెమరీ నుండి డేటాను చదవలేవు. కోడ్ తప్పనిసరిగా డిపిటిఆర్ రిజిస్టర్ ద్వారా చదవాలి. కోడ్ లేదా బాహ్య మెమరీలోని డేటాను సూచించడానికి DPTR ఉపయోగించబడుతుంది.

సింటాక్స్:

MOVC A, @ A + DPTR // C కోడ్ మెమరీని సూచిస్తుంది //
MOCX A, @ A + DPTR // X బాహ్య మెమరీని సూచిస్తుంది //
ఉదా: MOV A, # 00H // 00H A రిజిస్టర్‌లో నిల్వ చేయబడుతుంది //
MOV DPTR, # 0500H // మెమరీలో DPTR పాయింట్లు 0500h చిరునామా //
MOVC A, @ A + DPTR // విలువను పంపండికురిజిస్టర్ //
MOV P0, A // తేదీ PO రిజిస్ట్రార్‌కు పంపండి //

ఇన్స్ట్రక్షన్ సెట్:

ఇన్స్ట్రక్షన్ సెట్ అనేది కంట్రోలర్ లేదా ప్రాసెసర్ యొక్క నిర్మాణం, ఇది డేటాను ప్రాసెస్ చేయడానికి నియంత్రికకు మార్గనిర్దేశం చేయడానికి నియంత్రికకు ఆదేశాలను అందిస్తుంది. ఇన్స్ట్రక్షన్ సెట్లో సూచనలు, స్థానిక డేటా రకాలు, అడ్రసింగ్ మోడ్లు, ఇంటరప్ట్ రిజిస్టర్లు, అసాధారణమైన హ్యాండ్లింగ్ మరియు మెమరీ ఆర్కిటెక్చర్ ఉంటాయి. ది 8051మైక్రోకంట్రోలర్ హార్వర్డ్ నిర్మాణంతో CISC సూచనలను అనుసరించవచ్చు. 8051 ప్రోగ్రామింగ్ విషయంలో వివిధ రకాల CISC సూచనలు:

  • డేటా బదిలీ సూచన సెట్
  • సీక్వెన్షియల్ ఇన్స్ట్రక్షన్ సెట్
  • అంకగణిత సూచన సెట్
  • బ్రాంచి నేనుnstructionసెట్
  • లూప్ ఇన్స్ట్రక్షన్ సెట్
  • షరతులతో కూడిన సూచన సెట్
  • షరతులు లేని సూచన సెట్
  • లాజికల్ ఇన్స్ట్రక్షన్ సెట్
  • బూలియన్ ఇన్స్ట్రక్షన్ సెట్

అంకగణిత సూచన సెట్:

అంకగణిత సూచనలు వంటి ప్రాథమిక కార్యకలాపాలను నిర్వహిస్తాయి:

  • అదనంగా
  • గుణకారం
  • వ్యవకలనం
  • విభజన

అదనంగా:

ORG 0000 క
MOV R0, # 03H // విలువ 3 ను రిజిస్టర్ R0 కి తరలించండి
MOV A, # 05H // విలువ 5 ను సంచిత A కి తరలించండి
A, 00H // జోడించండిaddAR0 విలువతో విలువ మరియు ఫలితాన్ని నిల్వ చేస్తుందిinA//
END

గుణకారం:

ORG 0000 క
MOV R0, # 03H // విలువ 3 ను రిజిస్టర్ R0 కి తరలించండి
MOV A, # 05H // విలువ 5 ను సంచిత A కి తరలించండి
MUL A, 03H //గుణించాలిఫలితం సంచిత A // లో నిల్వ చేయబడుతుంది
END

వ్యవకలనం:

ORG 0000 క
MOV R0, # 03H // R0 // ను నమోదు చేయడానికి విలువ 3 ని తరలించండి
MOV A, # 05H // విలువ 5 ను సంచిత A కి తరలించండి
SUBB A, 03H // ఫలిత విలువ సంచిత A // లో నిల్వ చేయబడుతుంది
END

విభజన:

ORG 0000 క
MOV R0, # 03H // R0 // ను నమోదు చేయడానికి విలువ 3 ని తరలించండి
MOV A, # 15H // విలువను 5 ను సంచిత A కి తరలించండి
DIV A, 03H // తుది విలువ సంచిత A // లో నిల్వ చేయబడుతుంది
END

షరతులతో కూడిన సూచనలు

సింగిల్ బిట్ స్థితి లేదా బైట్ స్థితిని తనిఖీ చేయడం ద్వారా షరతు ఆధారంగా సూచనలను CPU అమలు చేస్తుంది. 8051మైక్రోకంట్రోలర్వంటి వివిధ షరతులతో కూడిన సూచనలను కలిగి ఉంటుంది:

  • JB -> క్రిందకు వెళ్ళు
  • JNB -> క్రింద లేకపోతే ఇక్కడికి గెంతు
  • JC -> క్యారీ అయితే ఇక్కడికి గెంతు
  • JNC -> ఉంటే దూకుకాదుతీసుకువెళ్ళండి
  • JZ -> జీరో అయితే ఇక్కడికి గెంతు
  • JNZ -> ఉంటే ఇక్కడికి గెంతుకాదుసున్నా
షరతులతో కూడిన సూచనలు

షరతులతో కూడిన సూచనలు

1. సింటాక్స్:

JB P1.0, లేబుల్
- - - - - - - - -
- - - - - - - - -
లేబుల్: - - - - - - - - -
- - - - - - - - -
END

2. సింటాక్స్:

JNB P1.0, లేబుల్
- - - - - - - - -
- - - - - - - - -
లేబుల్: - - - - - - - - -
- - - - - - - - -
END

3. సింటాక్స్:

జెసి, లేబుల్
- - - - - - - - -
- - - - - - - - -
లేబుల్: - - - - - - - - -
- - - - - - - - -
END

4. సింటాక్స్:

జెఎన్‌సి, లేబుల్
- - - - - - - - -
- - - - - - - - -
లేబుల్: - - - - - - - - -
- - - - - - - - -
END
5. సింటాక్స్:

JZ, లేబుల్
- - - - - - - - -
- - - - - - - - -
లేబుల్: - - - - - - - - -
- - - - - - - - -
END

6. సింటాక్స్:

JNZ, లేబుల్
- - - - - - - - -
- - - - - - - - -
లేబుల్: - - - - - - - - -
- - - - - - - - -
END

కాల్ మరియు జంప్ సూచనలు:

ప్రోగ్రామ్ యొక్క కోడ్ ప్రతిరూపణను నివారించడానికి కాల్ మరియు జంప్ సూచనలు ఉపయోగించబడతాయి. మేము పేర్కొన్నట్లయితే, కొన్ని నిర్దిష్ట కోడ్ ప్రోగ్రామ్‌లోని వేర్వేరు ప్రదేశాలలో ఒకటి కంటే ఎక్కువసార్లు ఉపయోగించినప్పుడునిర్దిష్ట పేరుకుకోడ్ అప్పుడుమేము ప్రతిసారీ కోడ్‌ను నమోదు చేయకుండా ప్రోగ్రామ్‌లో ఎక్కడైనా ఆ పేరును ఉపయోగించవచ్చు. ఇది ప్రోగ్రామ్ యొక్క సంక్లిష్టతను తగ్గిస్తుంది. 8051 ప్రోగ్రామింగ్‌లో LCALL, SJMP వంటి కాల్ మరియు జంప్ సూచనలు ఉంటాయి.

  • LCALL
  • ACALL
  • SJMP
  • LJMP

1. సింటాక్స్:

ORG 0000 క
- - - - - - - - -
- - - - - - - - -
ACALL, లేబుల్
- - - - - - - - -
- - - - - - - - -
SJMP ఆపు
లేబుల్: - - - - - - - - -
- - - - - - - - -
- - - - - - - - -
కుడి
ఆపు:NOP

2. సింటాక్స్:

ORG 0000 క
- - - - - - - - -
- - - - - - - - -
LCALL, లేబుల్
- - - - - - - - -
- - - - - - - - -
SJMP ఆపు
లేబుల్: - - - - - - - - -
- - - - - - - - -
- - - - - - - - -
కుడి
ఆపు:NOP

కాల్ మరియు జంప్ సూచనలు

కాల్ మరియు జంప్ సూచనలు

లూప్ సూచనలు:

ఇంక్రిమెంట్ మరియు తగ్గింపు కార్యకలాపాలను చేసేటప్పుడు ప్రతిసారీ బ్లాక్‌ను పునరావృతం చేయడానికి లూప్ సూచనలు ఉపయోగించబడతాయి. 8051మైక్రోకంట్రోలర్రెండు రకాల లూప్ సూచనలను కలిగి ఉంటుంది:

  • CJNE -> సమానంగా లేకుంటే సరిపోల్చండి మరియు దూకుతారు
  • DJNZ -> తగ్గుదల మరియు సున్నా కాకపోతే దూకడం

1. సింటాక్స్:

యొక్కCJNE
MOV A, # 00H
MOV B, # 10H
లేబుల్: INC A.
- - - - - - -
- - - - - - -
CJNE A, లేబుల్

2. సింటాక్స్:

యొక్కDJNE

MOV R0, # 10H
లేబుల్: - - - - - - -
- - - - - - -
DJNE R0, లేబుల్
- - - - - - -
- - - - - - -
END

లాజికల్ ఇన్స్ట్రక్షన్ సెట్:

8051 మైక్రోకంట్రోలర్ ఇన్స్ట్రక్షన్ సెట్ సెట్ కోసం AND, OR, XOR, TEST, NOT మరియు బూలియన్ లాజిక్ సూచనలను అందిస్తుంది మరియు ప్రోగ్రామ్‌లోని అవసరాన్ని బట్టి బిట్‌లను క్లియర్ చేస్తుంది.

లాజికల్ ఇన్స్ట్రక్షన్ సెట్

లాజికల్ ఇన్స్ట్రక్షన్ సెట్

1. సింటాక్స్:

MOV A, # 20H / 00100000 /
MOV R0, # 03H / 00000101 /
ORL A, R0 // 00100000/00000101 = 00000000 //

2. సింటాక్స్:

MOV A, # 20H / 00100000 /
MOV R0, # 03H / 00000101 /
ANL A, R0

3. సింటాక్స్:

MOV A, # 20H / 00100000 /
MOV R0, # 03H / 00000101 /
XRL A, R0

షిఫ్టింగ్ ఆపరేటర్లు

డేటాను సమర్ధవంతంగా పంపడానికి మరియు స్వీకరించడానికి షిఫ్ట్ ఆపరేటర్లను ఉపయోగిస్తారు. 8051మైక్రోకంట్రోలర్నాలుగు షిఫ్ట్ ఆపరేటర్లను కలిగి ఉంటుంది:

  • RR -> కుడివైపు తిప్పండి
  • RRC -> క్యారీ ద్వారా కుడివైపు తిప్పండి
  • RL -> ఎడమవైపు తిప్పండి
  • RLC -> క్యారీ ద్వారా ఎడమవైపు తిప్పండి

కుడివైపు తిప్పండి (RR):

ఈ బదిలీ ఆపరేషన్లో, MSB LSB అవుతుంది మరియు అన్ని బిట్స్ సీరియల్‌గా కుడి వైపు బిట్-బై-బిట్ వైపుకు మారుతాయి.

సింటాక్స్:

MOV A, # 25 క
ఆర్ఆర్ ఎ

ఎడమ (RL) ను తిప్పండి:

ఈ షిఫ్టింగ్ ఆపరేషన్లో, MSB LSB అవుతుంది మరియు అన్ని బిట్స్ సీరియల్‌గా ఎడమ వైపు బిట్-బై-బిట్ వైపుకు మారుతాయి.

సింటాక్స్:

MOV A, # 25 క
ఆర్‌ఎల్ ఎ

RRC క్యారీ ద్వారా కుడివైపు తిప్పండి:

ఈ షిఫ్టింగ్ ఆపరేషన్‌లో, ఎల్‌ఎస్‌బి మోయడానికి కదులుతుంది మరియు క్యారీ ఎంఎస్‌బి అవుతుంది, మరియు అన్ని బిట్‌లు బిట్ పొజిషన్ ద్వారా కుడి వైపు బిట్ వైపుకు మారుతాయి.

సింటాక్స్:

MOV A, # 27 క
ఆర్‌ఆర్‌సి ఎ

RLC క్యారీ ద్వారా ఎడమవైపు తిప్పండి:

ఈ షిఫ్టింగ్ ఆపరేషన్లో, MSB తీసుకువెళ్ళడానికి కదులుతుంది మరియు క్యారీ LSB అవుతుంది మరియు అన్ని బిట్స్ ఎడమ వైపు వైపు బిట్-బై-బిట్ స్థానంలో మారుతాయి.

సింటాక్స్:

MOV A, # 27 క
ఆర్‌ఎల్‌సి ఎ

ప్రాథమిక ఎంబెడెడ్ సి ప్రోగ్రామ్‌లు:

దిమైక్రోకంట్రోలర్ప్రతి రకమైన ఆపరేటింగ్ సిస్టమ్‌కు ప్రోగ్రామింగ్ భిన్నంగా ఉంటుంది. ఉన్నాయి అనేక ఆపరేటింగ్ సిస్టమ్స్ Linux, Windows, RTOS మరియు మొదలైనవి. అయినప్పటికీ, ఎంబెడెడ్ సిస్టమ్ అభివృద్ధికి RTOS కి అనేక ప్రయోజనాలు ఉన్నాయి. అసెంబ్లీ స్థాయి ప్రోగ్రామింగ్ ఉదాహరణలు కొన్ని క్రింద ఇవ్వబడ్డాయి.

8051 తో ఉపయోగించి LED మెరిసేదిమైక్రోకంట్రోలర్:

  • 8051 మైక్రోకంట్రోలర్ ఉపయోగించి 7-సెగ్మెంట్ డిస్ప్లేలో సంఖ్య ప్రదర్శిస్తుంది
  • టైమర్ / కౌంటర్ లెక్కలు మరియు 8051 ఉపయోగించి ప్రోగ్రామ్మైక్రోకంట్రోలర్
  • 8051 ఉపయోగించి సీరియల్ కమ్యూనికేషన్ లెక్కలు మరియు ప్రోగ్రామ్మైక్రోకంట్రోలర్

8051 M తో LED ప్రోగ్రామ్‌లుicrocontrller

1. PORT1 LED లను టోగుల్ చేయడానికి WAP

ORG 0000H
టోగుల్: MOV P1, # 01 //కదలికపి 1 రిజిస్టర్‌కు 00000001 //
కాల్ ఆలస్యం // ఆలస్యాన్ని అమలు చేయండి //
MOV A, P1 // తరలింపుp1 విలువసంచితానికి //
CPL A // పూరక విలువ //
MOV P1, A // 11111110 ను పోర్ట్ 1 రిజిస్టర్‌కు తరలించండి //
కాల్ ఆలస్యం // ఆలస్యాన్ని అమలు చేయండి //
SJMP TOGLE
ఆలస్యం: MOV R5, # 10H // లోడ్ రిజిస్టర్ R5 తో 10 //
రెండు: MOV R6, # 200 // లోడ్ రిజిస్టర్ R6 తో 200 //
వన్: MOV R7, # 200 // లోడ్ రిజిస్టర్ R7 తో 200 //
DJNZ R7, z // తగ్గుదల R7 సున్నా అయ్యే వరకు //
DJNZ R6, ONE // క్షీణత R7 సున్నా అయ్యే వరకు //
DJNZ R5, TWO // తగ్గింపు R7 సున్నా అయ్యే వరకు //
RET // ప్రధాన ప్రోగ్రామ్‌కు తిరిగి వెళ్ళు //
END

8051 M ఉపయోగించి టైమర్ / కౌంటర్ లెక్కలు మరియు ప్రోగ్రామ్icrocontroller:

అప్లికేషన్ సాఫ్ట్‌వేర్ అభివృద్ధిలో ఆలస్యం ఒక ముఖ్యమైన అంశం. ది టైమర్లు మరియు కౌంటర్లు యొక్క హార్డ్వేర్ భాగాలుమైక్రోకంట్రోలర్, కౌంట్ పప్పులతో ఖచ్చితమైన సమయం ఆలస్యాన్ని అందించడానికి అనేక అనువర్తనాల్లో ఉపయోగించబడతాయి. బిసాఫ్ట్‌వేర్ టెక్నిక్ ద్వారా పనులు అమలు చేయబడతాయి.

1. 500us సమయం ఆలస్యాన్ని లెక్కించడానికి WAP.

MOV TMOD, # 10H // రిజిస్టర్ల ద్వారా టైమర్ మోడ్‌ను ఎంచుకోండి //
MOV TH1, # 0FEH // ఆలస్యం సమయాన్ని ఎక్కువ బిట్‌లో నిల్వ చేయండి //
MOV TL1, # 32H // ఆలస్యం సమయాన్ని తక్కువ బిట్‌లో నిల్వ చేయండి //
JNB TF1, $ // టైమర్ విలువను సున్నా అయ్యే వరకు తగ్గించండి //
CLR TF1 // టైమర్ జెండాను క్లియర్ చేయండిబిట్//
CLR TR1 // టైమర్ ఆఫ్ చేయండి

2. LED లను టోగుల్ చేయడానికి WAPతో5సెకసమయం ఆలస్యం

ORG 0000H
రిటర్న్: MOV PO, # 00H
ACALL DELAY
MOV P0, # 0FFH
ACALL DELAY
SJUMP రిటర్న్
ఆలస్యం: MOV R5, # 50H // లోడ్ రిజిస్టర్ R5 తో 50 //
DELAY1: MOV R6, # 200 // లోడ్ రిజిస్టర్ R6 తో 200 //
DELAY2: MOV R7, # 229 // లోడ్ రిజిస్టర్ R7 తో 200 //
DJNZ R7, z // క్షీణత R7 సున్నా అయ్యే వరకు //
DJNZ R6, DELAY2 // సున్నా అయ్యే వరకు R6 తగ్గుదల //
DJNZ R5, DELAY1 // సున్నా అయ్యే వరకు R5 తగ్గుదల //
RET // ప్రధాన ప్రోగ్రామ్‌కు తిరిగి వెళ్ళు //
END

3. మోడ్ 0 కౌంట్ 0 ఉపయోగించి 250 పప్పులను లెక్కించడానికి WAP

సింటాక్స్:

ORG 0000H
MOV TMOD, # 50H // కౌంటర్ ఎంచుకోండి //
MOV TH0, # 15 // లెక్కింపు పప్పులను అధిక బిట్‌గా తరలించండి //
MOV TH1, # 9FH //కదలికలెక్కింపు పప్పులు, తక్కువ బిట్ //
TR0 // టైమర్‌లో సెట్ చేయండి //
JNB $ // గణన విలువను సున్నా వరకు తగ్గించండి //
CLR TF0 // కౌంటర్, ఫ్లాగ్ క్లియర్ చేయండిబిట్//
CLR TR0 // టైమర్‌ను ఆపండి //
END

8051 M ఉపయోగించి సీరియల్ కమ్యూనికేషన్ ప్రోగ్రామింగ్icrocontroller:

సీరియల్ కమ్యూనికేషన్ డేటాను ప్రసారం చేయడానికి మరియు స్వీకరించడానికి సాధారణంగా ఉపయోగిస్తారు. 8051మైక్రోకంట్రోలర్UART / USART సీరియల్ కమ్యూనికేషన్ కలిగి ఉంటుంది మరియు సిగ్నల్స్ ప్రసారం చేయబడతాయి మరియు అందుతాయిTxమరియు Rx పిన్స్. UART కమ్యూనికేషన్ డేటాను బిట్-బై-బిట్ సీరియల్‌గా బదిలీ చేస్తుంది. UART అనేది సగం-డ్యూప్లెక్స్ ప్రోటోకాల్, ఇది డేటాను బదిలీ చేస్తుంది మరియు స్వీకరిస్తుంది, కానీ అదే సమయంలో కాదు.

1. అక్షరాలను హైపర్ టెర్మినల్‌కు ప్రసారం చేయడానికి WAP

MOV SCON, # 50H // సీరియల్ కమ్యూనికేషన్‌ను సెట్ చేయండి //
MOV TMOD, # 20H // టైమర్ మోడ్‌ను ఎంచుకోండి //
MOV TH1, # -3 // బాడ్ రేటును సెట్ చేయండి //
TR1 // టైమర్‌లో సెట్ చేయండి //
MOV SBUF, # ’S’ // S ను సీరియల్ విండోకు ప్రసారం చేయండి //
JNB TI, టైమర్ యొక్క సున్నా వరకు $ // తగ్గుదల విలువ //
CLR RI // క్లియర్ రిసీవ్ ఇంటరప్ట్ //
CLR TR1 // క్లియర్ టైమర్ //

2. హైపర్ టెర్మినల్ ద్వారా పాత్రను స్వీకరించడానికి WAP

MOV SCON, # 50H // సీరియల్ కమ్యూనికేషన్‌ను సెట్ చేయండి //
MOV TMOD, # 20H // టైమర్ మోడ్‌ను ఎంచుకోండి //
MOV TH1, # -6 // బాడ్ రేటును సెట్ చేయండి //
టైమర్‌లో TR1 // ని సెట్ చేయండి //
MOV SBUF, # ’S’ // S ను సీరియల్ విండోకు ప్రసారం చేయండి //
JNB RI, టైమర్ సున్నా అయ్యే వరకు $ // తగ్గుదల విలువ //
CLR RI // క్లియర్ రిసీవ్ ఇంటరప్ట్ //
MOV P0, SBUF // SBUF రిజిస్టర్ విలువను పోర్ట్ 0 కు పంపండి
CLR TR1 // క్లియర్ టైమర్ //

ఉదాహరణ-ఆధారిత ప్రోగ్రామ్‌లతో క్లుప్తంగా అసెంబ్లీ భాషలో 8051 ప్రోగ్రామింగ్ గురించి ఇదంతా. అసెంబ్లీ భాషపై ఈ తగిన సమాచారం పాఠకులకు ఖచ్చితంగా సహాయపడుతుందని మేము ఆశిస్తున్నాము మరియు దిగువ వ్యాఖ్య విభాగంలో వారి విలువైన వ్యాఖ్యల కోసం మేము ఎదురుచూస్తున్నాము.