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

పొందుపరిచిన సిస్టమ్ ప్రోగ్రామింగ్
వ్రాసిన సి కోడ్ మరింత నమ్మదగినది, పోర్టబుల్ మరియు స్కేలబుల్ మరియు వాస్తవానికి, అర్థం చేసుకోవడం చాలా సులభం. మొట్టమొదటి మరియు ప్రధాన సాధనం ఎంబెడెడ్ సిస్టమ్ యొక్క ఆపరేషన్ను నిర్ణయించే ఎంబెడెడ్ సాఫ్ట్వేర్. ఎంబెడెడ్ సి ప్రోగ్రామింగ్ లాంగ్వేజ్ మైక్రోకంట్రోలర్లను ప్రోగ్రామింగ్ చేయడానికి ఎక్కువగా ఉపయోగిస్తారు.
పొందుపరిచిన సి ప్రోగ్రామింగ్ ట్యుటోరియల్ (8051)
ప్రోగ్రామ్ రాయడానికి ఎంబెడెడ్ సి ప్రోగ్రామింగ్ పూర్తి హార్డ్వేర్ సంబంధిత ప్రోగ్రామింగ్ టెక్నిక్ కాబట్టి ఎంబెడెడ్ డిజైనర్లు నిర్దిష్ట ప్రాసెసర్లు లేదా కంట్రోలర్ల హార్డ్వేర్పై తగినంత జ్ఞానం కలిగి ఉండాలి.

ప్రోగ్రామింగ్ ట్యుటోరియల్
ఇంతకు ముందు, అసెంబ్లీ స్థాయి ప్రోగ్రామింగ్ను ఉపయోగించడం ద్వారా అనేక ఎంబెడెడ్ అనువర్తనాలు అభివృద్ధి చేయబడ్డాయి. అయినప్పటికీ, సి, కోబోల్ మరియు పాస్కల్ వంటి వివిధ ఉన్నత స్థాయి భాషల ఆగమనంతో ఈ సమస్యను అధిగమించడానికి వారు పోర్టబిలిటీని అందించలేదు. ఏదేమైనా, సి భాషకు విస్తృతంగా ఆమోదం లభించింది ఎంబెడెడ్ సిస్టమ్స్ అప్లికేషన్ డెవలప్మెంట్ , మరియు అది అలా కొనసాగుతుంది.
పొందుపర్చిన వ్యవస్థ
పొందుపరిచిన వ్యవస్థను ఎంబెడెడ్ సి ప్రోగ్రామింగ్ సాఫ్ట్వేర్ మరియు హార్డ్వేర్ భాగం ప్రధానంగా మైక్రోకంట్రోలర్లను కలిగి ఉంటుంది మరియు ఇది నిర్దిష్ట పనిని నిర్వహించడానికి ఉద్దేశించబడింది. ఈ రకమైన ఎంబెడెడ్ సిస్టమ్స్ మన దైనందిన జీవితంలో వాషింగ్ మెషీన్లు మరియు వీడియో రికార్డర్లు, రిఫ్రిజిరేటర్లు మరియు మొదలైనవి ఉపయోగించబడుతున్నాయి. పొందుపరిచిన వ్యవస్థను మొదట 8051 మైక్రోకంట్రోలర్లు ప్రవేశపెట్టారు.

పొందుపర్చిన వ్యవస్థ
8051 మైక్రోకంట్రోలర్కు పరిచయం
8051 మైక్రోకంట్రోలర్ ఒక ప్రాథమిక మైక్రోకంట్రోలర్, దీనిని మొదట 1970 నుండి ‘ఇంటెల్ కార్పొరేషన్’ ప్రవేశపెట్టింది. దీనిని 8086 ప్రాసెసర్ ఆర్కిటెక్చర్ అభివృద్ధి చేసింది. 8051 మైక్రోకంట్రోలర్ యొక్క కుటుంబం, దీనిని ఫిలిప్స్, అట్మెల్, డాల్స్ మరియు వివిధ తయారీదారులు అభివృద్ధి చేశారు. 8051 మైక్రోకంట్రోలర్లు చిన్న పిల్లల బొమ్మల నుండి పెద్ద ఆటోమోటివ్ సిస్టమ్స్ వరకు ఎంబెడెడ్ ఉత్పత్తులలో ఉపయోగించబడింది.

8051 మైక్రోకంట్రోలర్
8051 మైక్రోకంట్రోలర్ 8-బిట్ ‘CISC’ నిర్మాణం . ఇది జ్ఞాపకాలు, సీరియల్ కమ్యూనికేషన్, అంతరాయాలు, ఇన్పుట్ / అవుట్పుట్ పోర్టులు మరియు టైమర్ / కౌంటర్లను కలిగి ఉంటుంది, వీటిని ఒకే ఇంటిగ్రేటెడ్ చిప్లో నిర్మించారు, దానితో అనుసంధానించబడిన పరిధీయ పరికరాలను నియంత్రించడానికి ప్రోగ్రామ్ చేయబడింది. ప్రోగ్రామ్ మైక్రోకంట్రోలర్ యొక్క RAM లో నిల్వ చేయబడుతుంది కాని ప్రోగ్రామ్ రాసే ముందు, మనకు RAM గురించి తెలుసుకోవాలి సంస్థ మైక్రోకంట్రోలర్ యొక్క.
ఎంబెడెడ్ సిస్టమ్ ప్రోగ్రామింగ్: బేసిక్స్ డిక్లరేషన్
ప్రతి ఫంక్షన్ ఒక నిర్దిష్ట పనిని చేసే స్టేట్మెంట్ల సమాహారం మరియు ఒకటి లేదా అంతకంటే ఎక్కువ ఫంక్షన్ల సేకరణను ప్రోగ్రామింగ్ లాంగ్వేజ్ అంటారు. ప్రతి భాషలో కొన్ని ప్రాథమిక అంశాలు మరియు వ్యాకరణ నియమాలు ఉంటాయి. సి లాంగ్వేజ్ ప్రోగ్రామింగ్ అక్షర సమితితో పనిచేయడానికి రూపొందించబడింది, వేరియబుల్స్, డేటా రకాలు, స్థిరాంకాలు, కీలకపదాలు, వ్యక్తీకరణలు మొదలైనవి సి ప్రోగ్రామ్ రాయడానికి ఉపయోగిస్తారు. ఇవన్నీ హెడర్ ఫైల్ లేదా లైబ్రరీ ఫైల్ క్రింద పరిగణించబడతాయి మరియు ఇది ఇలా సూచించబడుతుంది
# చేర్చండి

ఎంబెడెడ్ సి ప్రోగ్రామింగ్ డెవలప్మెంట్
సి భాష యొక్క పొడిగింపును ఎంబెడెడ్ సి ప్రోగ్రామింగ్ లాంగ్వేజ్ అంటారు. పైతో పోలిస్తే, సి భాషలో పొందుపరిచిన ప్రోగ్రామింగ్ డేటా రకాలు మరియు కీలకపదాలు మరియు హెడర్ ఫైల్ లేదా లైబ్రరీ ఫైల్ వంటి కొన్ని అదనపు లక్షణాలను కలిగి ఉంది
# చేర్చండి
పొందుపరిచిన సి అదనపు కీలకపదాలు
- sbit
- బిట్
- SFR
- త్వరగా ఆవిరి అయ్యెడు
- మాక్రోలు నిర్వచించాయి
మైక్రోకంట్రోలర్ యొక్క సింగిల్ పిన్ను ప్రకటించడానికి “sbit” ఉపయోగించబడుతుంది. ఉదాహరణకు, LED P0.1 పిన్తో అనుసంధానించబడి ఉంది, విలువను నేరుగా పోర్ట్ పిన్కు పంపమని సిఫారసు చేయబడలేదు, మొదట, మేము ప్రోగ్రామ్లో ఎక్కడైనా ఉపయోగించిన తర్వాత పిన్ను మరొక వేరియబుల్తో ప్రకటించాలి.
సింటాక్స్: sbit a = P0 ^ 1 // సంబంధిత పిన్ను వేరియబుల్ // తో ప్రకటిస్తుంది
a = 0x01 // విలువను పోర్ట్ పిన్కు పంపండి //
వేరియబుల్ యొక్క స్థితిని తనిఖీ చేయడానికి “బిట్” ఉపయోగించబడుతుంది.
సింటాక్స్: బిట్ సి // బిట్ వేరియబుల్ // అని ప్రకటిస్తుంది
c = a // ఒక విలువ సి వేరియబుల్ // కు కేటాయించబడుతుంది
if (c == 1) // పరిస్థితిని నిజం లేదా తప్పు అని తనిఖీ చేయండి //
{
… ..
……
}
“SFR” కీవర్డ్ SFR రిజిస్టర్లను మరొక పేరుతో యాక్సెస్ చేయడానికి ఉపయోగించబడుతుంది. SFR రిజిస్టర్ a ప్రత్యేక ఫంక్షన్ రిజిస్టర్ , ఇది చిరునామాను సూచించడం ద్వారా అన్ని పరిధీయ సంబంధిత రిజిస్టర్లను కలిగి ఉంటుంది. SFR రిజిస్టర్ SFR కీవర్డ్ ద్వారా ప్రకటించబడుతుంది. SFR కీవర్డ్ పెద్ద అక్షరాలతో ఉండాలి.
సింటాక్స్: SFR పోర్ట్ = 0x00 // 0x00 అనేది పోర్ట్ 0 చిరునామా, ఇది పోర్ట్ వేరియబుల్ // ద్వారా ప్రకటించబడింది
పోర్ట్ = 0x01 // ఆపై విలువను పోర్ట్ 0 కు పంపండి
ఆలస్యం ()
పోర్ట్ = 0x00
ఆలస్యం ()
ఎంబెడెడ్ సిస్టమ్ అభివృద్ధిలో “అస్థిర” కీవర్డ్ చాలా ముఖ్యమైనది. అస్థిర కీవర్డ్ విలువతో ప్రకటించే వేరియబుల్ అనుకోకుండా మార్చబడలేదు. ఇది మెమరీ-మ్యాప్డ్ పెరిఫెరల్ రిజిస్టర్లలో, ISR లచే సవరించబడిన గ్లోబల్ వేరియబుల్స్లో ఉపయోగించవచ్చు. డేటాను ప్రసారం చేయడానికి మరియు స్వీకరించడానికి అస్థిర కీవర్డ్ని ఉపయోగించకుండా, కోడ్ లోపం లేదా ఆప్టిమైజేషన్ లోపం జరుగుతుంది.
సింటాక్స్: అస్థిర పూర్ణాంక k
స్థూల అనేది స్టేట్మెంట్ల బ్లాక్ను ప్రీ-ప్రాసెసర్ డైరెక్టివ్గా ప్రకటించడానికి ఉపయోగించే పేరు. పేరును ఉపయోగించినప్పుడల్లా, అది స్థూల విషయాలతో భర్తీ చేయబడుతుంది. మాక్రోలు # నిర్వచించండి. మొత్తం పోర్ట్ పిన్స్ మాక్రోలచే నిర్వచించబడతాయి.
సింటాక్స్: # డాట్ పో // నిర్వచించండి మొత్తం పోర్ట్ వేరియబుల్ ద్వారా ప్రకటించబడింది //
dat = 0x01 // డేటా పోర్ట్ 0 కు పంపండి //
ప్రాథమిక ఎంబెడెడ్ సి ప్రోగ్రామ్లు
మైక్రోకంట్రోలర్ ప్రోగ్రామింగ్ ప్రతిదానికి భిన్నంగా ఉంటుంది ఆపరేటింగ్ సిస్టమ్ రకం . చాలా ఆపరేటింగ్ సిస్టమ్లు ఉన్నప్పటికీ లైనక్స్, విండోస్, ఆర్టిఓఎస్ వంటివి ఉన్నాయి. అయినప్పటికీ, ఎంబెడెడ్ సిస్టమ్ అభివృద్ధికి RTOS కి అనేక ప్రయోజనాలు ఉన్నాయి. ఈ వ్యాసం 8051 మైక్రోకంట్రోలర్ ఉపయోగించి ఎంబెడెడ్ సి ప్రోగ్రామింగ్ను అభివృద్ధి చేయడానికి ప్రాథమిక ఎంబెడెడ్ సి ప్రోగ్రామింగ్ గురించి చర్చిస్తుంది.

పొందుపరిచిన సి ప్రోగ్రామింగ్ దశలు
- 8051 మైక్రోకంట్రోలర్తో ఎల్ఈడీ బ్లింకింగ్
- 8051 మైక్రోకంట్రోలర్ ఉపయోగించి 7-సెగ్మెంట్ డిస్ప్లేలో సంఖ్య ప్రదర్శిస్తుంది
- టైమర్ / కౌంటర్ లెక్కలు మరియు 8051 మైక్రోకంట్రోలర్ ఉపయోగించి ప్రోగ్రామ్
- 8051 మైక్రోకంట్రోలర్ ఉపయోగించి సీరియల్ కమ్యూనికేషన్ లెక్కలు మరియు ప్రోగ్రామ్
- 8051 మైక్రోకంట్రోలర్ ఉపయోగించి ప్రోగ్రామ్లకు అంతరాయం కలిగించండి
- 8051 మైక్రోకంట్రోలర్ ఉపయోగించి కీప్యాడ్ ప్రోగ్రామింగ్
- 8051 మైక్రోకంట్రోలర్తో ఎల్సిడి ప్రోగ్రామింగ్
8051 మైక్రోకంట్రోలర్ ఉపయోగించి LED బ్లింక్
LED అనేది సెమీకండక్టర్ పరికరం, ఇది చాలా అనువర్తనాలలో ఉపయోగించబడుతుంది, ఎక్కువగా సూచిక ప్రయోజనం కోసం. వివిధ దశలలో ఫలితాల ప్రామాణికతను తనిఖీ చేయడానికి ఇది పరీక్ష సమయంలో సూచికలుగా భారీ శ్రేణి అనువర్తనాలను కనుగొంటుంది. అవి చాలా చౌకగా ఉంటాయి మరియు వివిధ ఆకారాలు, రంగులు మరియు పరిమాణాలలో సులభంగా లభిస్తాయి. LED లను డిజైన్ చేయడానికి ఉపయోగిస్తారు సందేశ ప్రదర్శన బోర్డులు మరియు ట్రాఫిక్ కంట్రోల్ సిగ్నల్ లైట్లు మొదలైనవి. ఇక్కడ LED లు 8051 మైక్రోకంట్రోలర్ల PORT0 తో అనుసంధానించబడి ఉంటాయి.

8051 మైక్రోకంట్రోలర్ ఉపయోగించి LED బ్లింక్
1. 01010101
10101010
# చేర్చండి // హెడర్ ఫైల్ //
void main () // ప్రోగ్రామ్ ఎగ్జిక్యూషన్ స్టాట్ పాయింట్ //
{
సంతకం చేయని Int i // డేటా రకం //
(1) // నిరంతర లూప్ కోసం //
{
P0 = 0x55 // హెక్సా విలువను పోర్ట్ 0 కు పంపండి //
(i = 0i<30000i++) //normal delay//
P0 = 0x3AA // హెక్సా విలువను పోర్ట్ 0 కు పంపండి
(i = 0i<30000i++) //normal delay//
}
}
2. 00000001
00000010
00000100
.
.
10,000,000
# చేర్చండి
void main ()
{
సంతకం చేయని నేను
సంతకం చేయని చార్ j, బి
అయితే (1)
{
పి 0 = 0x01
b = P0
(j-0j<3000j++)
(j = 0j<8j++)
{
b = బి<<1
పి 0 = బి
(j-0j<3000j++)
}
}
}
3. 00001111
11110000
# చేర్చండి
void main ()
{
సంతకం చేయని నేను
అయితే (1)
{
P0 = 0x0F
(j-0j<3000j++)
P0 = 0xF0
(j-0j<3000j++)
}
}
4. 00000001
00000011
00000111
.
.
11111111
# చేర్చండి
void main ()
{
సంతకం చేయని నేను
సంతకం చేయని చార్ j, బి
అయితే (1)
{
పి 0 = 0x01
b = P0
(j-0j<3000j++)
(j = 0j<8j++)
0x01
పి 0 = బి
(j-0j<3000j++)
}
}
8051 మైక్రోకంట్రోలర్ ఉపయోగించి 7-సెగ్మెంట్ డిస్ప్లేలో సంఖ్యలను ప్రదర్శిస్తుంది
ది 7-సెగ్మెంట్ డిస్ప్లేలు ప్రాథమిక ఎలక్ట్రానిక్ డిస్ప్లేలు, ఇవి సంఖ్యా సమాచారాన్ని ప్రదర్శించడానికి అనేక వ్యవస్థలలో ఉపయోగించబడతాయి. ఇది ఎనిమిది LED లను కలిగి ఉంటుంది, ఇవి LED ల యొక్క సరైన కలయికలు ఆన్ చేయబడినప్పుడు 0 నుండి 9 వరకు అంకెలను ప్రదర్శించడానికి వరుస పద్ధతిలో అనుసంధానించబడి ఉంటాయి. వారు ఒకేసారి ఒక అంకెను మాత్రమే ప్రదర్శించగలరు.

8051 మైక్రోకంట్రోలర్ ఉపయోగించి 7-సెగ్మెంట్ డిస్ప్లేలో సంఖ్యలను ప్రదర్శిస్తుంది
1. నాలుగు 7 సెగ్మెంట్ డిస్ప్లేలలో ‘0 నుండి ఎఫ్’ వరకు ఉన్న సంఖ్యలను ప్రదర్శించడానికి WAP?
# చేర్చండి
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3
void main ()
{
సంతకం చేయని n [10] = {0 × 40,0xF9,0 × 24,0 × 30,0 × 19,0 × 12,0 × 02,0xF8,0xE00,0 × 10}
మీరు సంతకం చేయలేదు, j
a = b = c = d = 1
అయితే (1)
{
(i = 0i<10i++)
{
పి 2 = ఎన్ [i]
(j = 0j<60000j++)
}
}
}
2. 7 సెగ్మెంట్ డిస్ప్లేలలో ’00 నుండి 10 ’వరకు సంఖ్యలను ప్రదర్శించడానికి WAP?
# చేర్చండి
sbit a = P3 ^ 0
sbit b = P3 ^ 1
డిస్ప్లే 1 () ను రద్దు చేయండి
డిస్ప్లే 2 () ను రద్దు చేయండి
శూన్య ఆలస్యం ()
void main ()
{
సంతకం చేయని n [10] = {0 × 40,0xF9,0 × 24,0 × 30,0 × 19,0 × 12,0 × 02,0xF8,0xE00,0 × 10}
మీరు సంతకం చేయలేదు, j
ds1 = ds2 = 0
అయితే (1)
{
(i = 0, i<20i++)
display1 ()
display2 ()
}
}
డిస్ప్లే 1 () ను రద్దు చేయండి
{
a = 1
b = 0
P2 = s [ds1]
ఆలస్యం ()
a = 1
b = 0
P2 = s [ds1]
ఆలస్యం ()
}
డిస్ప్లే 2 () ను రద్దు చేయండి
{
ds1 ++
if (ds1> = 10)
{
ds1 = 0
ds2 ++
if (ds2> = 10)
{
ds1 = ds2 = 0
}
}
}
శూన్య ఆలస్యం ()
{
సంతకం చేయని k
(k = 0k<30000k++)
}
8051 మైక్రోకంట్రోలర్ ఉపయోగించి టైమర్ / కౌంటర్ లెక్కలు మరియు ప్రోగ్రామ్
అప్లికేషన్ సాఫ్ట్వేర్ అభివృద్ధిలో ఆలస్యం ఒక ముఖ్యమైన అంశం. అయినప్పటికీ, టైమర్ ఆలస్యాన్ని అమలు చేయడానికి ఈ సమస్యను అధిగమించడానికి సాధారణ ఆలస్యం విలువైన ఫలితాన్ని ఇవ్వదు. ది టైమర్లు మరియు కౌంటర్లు మైక్రోకంట్రోలర్ యొక్క హార్డ్వేర్ భాగాలు, ఇవి కౌంట్ పప్పులతో విలువైన సమయ ఆలస్యాన్ని అందించడానికి అనేక అనువర్తనాల్లో ఉపయోగించబడతాయి. రెండు పనులు సాఫ్ట్వేర్ టెక్నిక్ ద్వారా అమలు చేయబడతాయి.
టైమర్ ఆలస్యం
T1M2 (టైమర్ 1 మరియు మోడ్ 2) ఉపయోగించి 500us సమయం ఆలస్యాన్ని ఉత్పత్తి చేయడానికి WAP?
# చేర్చండి
void main ()
{
సంతకం చేయని చార్ i
TMOD = 0x20 // టైమర్ మోడ్ను సెట్ చేయండి //
(i = 0i<2i++) //double the time daly//
{
TL1 = 0x19 // సమయం ఆలస్యాన్ని సెట్ చేయండి //
TH1 = 0x00
TR1 = 1 // టైమర్ oN //
(TF1 == 0) // ఫ్లాగ్ బిట్ను తనిఖీ చేయండి //
TF1 = 0
}
TR1 = 0 // టైమర్ ఆఫ్ //
}
సాధారణ లూప్ ఆలస్యం
శూన్య ఆలస్యం ()
{
సంతకం చేయని k
(k = 0k<30000k++)
}
8051 మైక్రోకంట్రోలర్ ఉపయోగించి సీరియల్ కమ్యూనికేషన్ లెక్కలు మరియు ప్రోగ్రామ్
సీరియల్ కమ్యూనికేషన్ సాధారణంగా సిగ్నల్ ప్రసారం మరియు స్వీకరించడానికి ఉపయోగిస్తారు. 8051 మైక్రోకంట్రోలర్ కలిగి ఉంటుంది UART సీరియల్ కమ్యూనికేషన్ సంకేతాలు Rx మరియు Tx పిన్స్ ద్వారా ప్రసారం చేయబడతాయి మరియు స్వీకరించబడతాయి. UART డేటా బైట్లను తీసుకుంటుంది మరియు వ్యక్తిగత బిట్లను వరుస పద్ధతిలో పంపుతుంది. రిజిస్టర్లు డేటాను మెమరీలో సేకరించి నిల్వ చేయడానికి ఒక మార్గం. UART సగం డ్యూప్లెక్స్ ప్రోటోకాల్. హాఫ్-డ్యూప్లెక్స్ అంటే డేటాను బదిలీ చేయడం మరియు స్వీకరించడం, కానీ అదే సమయంలో కాదు.

8051 మైక్రోకంట్రోలర్ ఉపయోగించి సీరియల్ కమ్యూనికేషన్ లెక్కలు మరియు ప్రోగ్రామ్
1. సీరియల్ విండోకు ‘ఎస్’ అక్షరాన్ని ప్రసారం చేయడానికి వాప్ 9600 ను బాడ్ రేట్గా ఉపయోగించాలా?
28800 అనేది 8051 మైక్రోకంట్రోలర్ యొక్క గరిష్ట బాడ్ రేటు
28800/9600 = 3
ఆ బాడ్ రేట్ ‘3’ టైమర్లలో నిల్వ చేయబడుతుంది
# చేర్చండి
void main ()
{
SCON = 0x50 // సీరియల్ కమ్యూనికేషన్ను ప్రారంభించండి //
TNOD = 0x20 // టైమర్ మోడ్ను ఎంచుకుంది //
TH1 = 3 // బాడ్ రేటును లోడ్ చేయండి //
TR1 = 1 // టైమర్ ఆన్ //
SBUF = ’S’ // అక్షరాన్ని రిజిస్టర్లో నిల్వ చేయండి //
అయితే (TI == 0) // అంతరాయ రిజిస్టర్ను తనిఖీ చేయండి //
TI = 0
TR1 = 0 // టైమర్ ఆఫ్ చేయండి //
అయితే (1) // నిరంతర లూప్ //
}
2. హైపర్టెర్మినల్ నుండి డేటాను స్వీకరించడానికి మరియు 9600 బాడ్ ఉపయోగించి మైక్రోకంట్రోలర్ యొక్క PORT 0 కి ఆ డేటాను పంపడానికి WAP?
28800 అనేది 8051 మైక్రోకంట్రోలర్ యొక్క గరిష్ట బాడ్ రేటు
28800/9600 = 3
ఆ బాడ్ రేట్ ‘3’ టైమర్లలో నిల్వ చేయబడుతుంది
# చేర్చండి
void main ()
{
SCON = 0x50 // సీరియల్ కమ్యూనికేషన్ను ప్రారంభించండి //
TMOD = 0x20 // టైమర్ మోడ్ను ఎంచుకుంది //
TH1 = 3 // బాడ్ రేటును లోడ్ చేయండి //
TR1 = 1 // టైమర్ ఆన్ //
PORT0 = SBUF // SBUF నుండి డేటాను port0 // కు పంపండి
అయితే (RI == 0) // అంతరాయ రిజిస్టర్ను తనిఖీ చేయండి //
RI = 0
TR1 = 0 // టైమర్ ఆఫ్ చేయండి //
(1) // అక్షరం వచ్చినప్పుడు ప్రోగ్రామ్ను ఆపండి //
}
8051 మైక్రోకంట్రోలర్ ఉపయోగించి ప్రోగ్రామ్లకు అంతరాయం కలిగించండి
అంతరాయం అనేది ప్రస్తుత ప్రోగ్రామ్ను ఆపివేసి, ఇతర ప్రోగ్రామ్ను వెంటనే అమలు చేయమని బలవంతం చేసే సంకేతం. 8051 మైక్రోకంట్రోలర్ 6 అంతరాయాలను అందిస్తుంది, అవి అంతర్గత మరియు బాహ్యమైనవి అంతరాయ మూలాలు . అంతరాయం సంభవించినప్పుడు మైక్రోకంట్రోలర్ ప్రస్తుత పనిని పాజ్ చేసి, ISR ను అమలు చేయడం ద్వారా అంతరాయానికి హాజరవుతారు, అప్పుడు మైక్రోకంట్రోలర్ ఇటీవలి పనికి తిరిగి వస్తుంది.
టైమర్ 0 అంతరాయాలు సంభవించినప్పుడు ఎడమ షిఫ్ట్ ఆపరేషన్ చేయడానికి WAP, ఆపై ప్రధాన ఫంక్షన్లో P0 కోసం అంతరాయ ఆపరేషన్ చేయాలా?
# చేర్చండి
సంతకం చేయని చార్ b
void timer0 () అంతరాయం 2 // ఎంచుకున్న టైమర్ 0 అంతరాయం //
{
b = 0x10
పి 1 = బి<<2
}
void main ()
{
సంతకం చేయని చార్ a, i
IE = 0x82 // టైమర్ 0 అంతరాయాన్ని ప్రారంభించండి //
TMOD = 0x01
TLo = 0xFC // ఇంటరప్ట్ టైమర్ //
TH1 = 0xFB
TR0 = 1
a = 0x00
అయితే (1)
{
(i = 0i<255i++)
{
a ++
పో = అ
}
}
}
8051 మైక్రోకంట్రోలర్ ఉపయోగించి కీప్యాడ్ ప్రోగ్రామింగ్
మ్యాట్రిక్స్ కీప్యాడ్ అనలాగ్ స్విచ్చింగ్ పరికరం, ఇది వినియోగదారుని అవసరమైన పనులను చేయడానికి అనుమతించడానికి అనేక ఎంబెడెడ్ అనువర్తనాలలో ఉపయోగించబడుతుంది. జ మ్యాట్రిక్స్ కీప్యాడ్ వరుసలు మరియు నిలువు వరుసలలో మ్యాట్రిక్స్ ఆకృతిలో స్విచ్ల అమరికను కలిగి ఉంటుంది. అడ్డు వరుసలు మరియు నిలువు వరుసలు మైక్రోకంట్రోలర్కు అనుసంధానించబడి ఉంటాయి, అంటే స్విచ్ల వరుస ఒక పిన్తో అనుసంధానించబడి ఉంటుంది మరియు ప్రతి కాలమ్లోని స్విచ్లు మరొక పిన్తో అనుసంధానించబడి, ఆపై కార్యకలాపాలను నిర్వహిస్తాయి.

8051 మైక్రోకంట్రోలర్ ఉపయోగించి కీప్యాడ్ ప్రోగ్రామింగ్
1. స్విచ్ నొక్కడం ద్వారా LED ని టోగుల్ చేయడానికి WAP
# చేర్చండి
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3
శూన్య ఆలస్యం ()
void main ()
{
అయితే (1)
{
a = 0
b = 1
c = 1
d = 1
ఆలస్యం ()
a = 1
b = 0
c = 1
d = 1
శూన్య ఆలస్యం ()
{
సంతకం చేయని చార్ i
TMOD = 0x20 // టైమర్ మోడ్ను సెట్ చేయండి //
(i = 0i<2i++) //double the time daly//
{
TL1 = 0x19 // సమయం ఆలస్యాన్ని సెట్ చేయండి //
TH1 = 0x00
TR1 = 1 // టైమర్ oN //
(TF1 == 0) // ఫ్లాగ్ బిట్ను తనిఖీ చేయండి //
TF1 = 0
}
TR1 = 0 // టైమర్ ఆఫ్ //
}
2. కీప్యాడ్లోని కీని ‘1’ నొక్కడం ద్వారా ఎల్ఈడీని స్విచ్ చేయడానికి WAP?
# చేర్చండి
sbit r1 = P2 ^ 0
sbit c1 = P3 ^ 0
sbit LED = P0 ^ 1
void main ()
{
r1 = 0
if (c1 == 0)
{
LED = 0xff
}
}
3. కీప్యాడ్లో సంబంధిత కీని నొక్కడం ద్వారా ఏడు విభాగంలో 0,1,2,3,4,5 సంఖ్యను ప్రదర్శించడానికి WAP?
# చేర్చండి
sbit r1 = P2 ^ 0
sbit c1 = P3 ^ 0
sbit r2 = P2 ^ 0
sbit c2 = P3 ^ 0
sbit a = P0 ^ 1
void main ()
{
r1 = 0 a = 1
if (c1 == 0)
{
a = 0xFC
}
ఉంటే (సి 2 == 0)
{
a = 0x60
}
if (c3 == 0)
{
a = 0xDA
}
ఉంటే (c4 == 0)
{
a = 0xF2
}
}
8051 మైక్రోకంట్రోలర్తో ఎల్సిడి ప్రోగ్రామింగ్
ది LCD డిస్ప్లే ఎలక్ట్రానిక్ పరికరం, ఇది టెక్స్ట్ లేదా ఇమేజ్ ఫార్మాట్లో సమాచారాన్ని ప్రదర్శించడానికి అనేక అనువర్తనాల్లో తరచుగా ఉపయోగించబడుతుంది. LCD అనేది దాని తెరపై అక్షరాలను సులభంగా చూపించగల ప్రదర్శన. LCD డిస్ప్లేలో 8-డేటా లైన్లు మరియు 3-కంట్రోల్ లైన్లు ఉన్నాయి, ఇవి మైక్రోకంట్రోలర్కు ఇంటర్ఫేస్ చేయడానికి ఉపయోగిస్తారు.

8051 మైక్రోకంట్రోలర్తో ఎల్సిడి ప్రోగ్రామింగ్
LED ప్రదర్శనలో “EDGEFX KITS” ను ప్రదర్శించడానికి WAP?
# చేర్చండి
# కామ్ P0 ని నిర్వచించండి
voidlcd_initi ()
voidlcd_dat (సంతకం చేయని చార్)
voidlcd_cmd (సంతకం చేయని చార్)
శూన్య ఆలస్యం ()
శూన్య ప్రదర్శన (సంతకం చేయని చార్ * లు, సంతకం చేయని చార్ r)
sbitrs = P2 ^ 0
sbitrw = P2 ^ 1
sbit = P2 ^ 2 వద్ద
void main ()
{
lcd_initi ()
lcd_cmd (0x80)
ఆలస్యం (100)
lcd_cmd (0xc0)
ప్రదర్శన (“ఎడ్జ్ఫ్క్స్ కిట్లు”, 11)
అయితే (1)
}
శూన్య ప్రదర్శన (సంతకం చేయని చార్ * లు, సంతకం చేయని చార్ r)
{
సంతకం చేయని w
(w = 0w
lcd_data (లు [w])
}
}
voidlcd_initi ()
{
lcd_cmd (0 × 01)
ఆలస్యం (100)
lcd_cmd (0 × 38)
ఆలస్యం (100)
lcd_cmd (0 × 06)
ఆలస్యం (100)
lcd_cmd (0x0c)
ఆలస్యం (100)
}
voidlcd_dat (సంతకం చేయని చార్ డాట్)
{
comb = ఆ
rs = 1
rw = 0
= 1 లో
ఆలస్యం (100)
= 0 లో
}
}
voidlcd_cmd (సంతకం చేయని చార్ cmd)
{
వచ్చింది = సెం.మీ.
rs = 0
rw = 0
= 1 లో
ఆలస్యం (100)
= 0 లో
}
శూన్య ఆలస్యం (సంతకం చేయని పూర్ణాంకం n)
{
సంతకం చేయనిది a
(a = 0a
ఈ వ్యాసం 8051 మైక్రోకంట్రోలర్ను ఉపయోగించి కొన్ని ఉదాహరణ ప్రోగ్రామ్లతో ఎంబెడెడ్ సిస్టమ్ ప్రోగ్రామింగ్ గురించి ప్రాథమిక సమాచారాన్ని ఇస్తుందని ఆశిస్తున్నాము. వివరణాత్మక ఎంబెడెడ్ సి ప్రోగ్రామింగ్ ట్యుటోరియల్ కోసం దయచేసి మీ వ్యాఖ్యలను మరియు ప్రశ్నలను క్రింది వ్యాఖ్య విభాగంలో పోస్ట్ చేయండి.