எல்.ஈ.டி இடைமுகம் என்பது முதல் விஷயம், எந்த மைக்ரோகண்ட்ரோலருடன் தொடங்கும்போது ஒருவர் செய்ய முயற்சிப்பார். எனவே இங்கே இந்த டுடோரியலில் 8051 மைக்ரோகண்ட்ரோலருடன் ஒரு எல்.ஈ.டி இடைமுகப்படுத்தப் போகிறோம், மேலும் எல்.ஈ.டி ஒளிர ஒரு சி நிரலை எழுதுவோம். ஏடிஎம்இஎல் நிறுவனத்தால் 8051 குடும்பத்தில் மிகவும் பிரபலமான மைக்ரோகண்ட்ரோலர் AT89S52 ஐப் பயன்படுத்தியுள்ளோம்.
விரிவாகச் செல்வதற்கு முன், மைக்ரோகண்ட்ரோலர் AT89S52 பற்றி சில சுருக்கமான யோசனைகளைப் பெற வேண்டும். இது 40 முள் மைக்ரோகண்ட்ரோலர், மற்றும் 4 துறைமுகங்கள் (பி 0, பி 1, பி 2, பி 3) உள்ளன, ஒவ்வொரு துறைமுகத்திலும் 8 ஊசிகள் உள்ளன. மென்பொருள் பார்வையில் இருந்து ஒவ்வொரு துறைமுகத்தையும் 8 பிட் பதிவாக நாம் கருதலாம். ஒவ்வொரு முள் ஒரு உள்ளீடு / வெளியீட்டு வரியைக் கொண்டிருக்கிறது, அதாவது ஒவ்வொரு முள் உள்ளீட்டிற்கும் வெளியீட்டிற்கும் பயன்படுத்தப்படலாம், அதாவது தரவைப் படிக்க சென்சார் போன்ற சில சாதனங்களை உருவாக்குகிறது அல்லது அதன் வெளியீட்டை சில வெளியீட்டு சாதனத்திற்கு வழங்கலாம். சில ஊசிகளின் இரட்டை செயல்பாடு உள்ளது, இது கீழே உள்ள முள் வரைபடத்தில் அடைப்புக்குறிக்குள் குறிப்பிடப்பட்டுள்ளது. குறுக்கீடு, கவுண்டர்கள், டைமர்கள் போன்றவற்றுக்கு இரட்டை செயல்பாட்டு ரீதியாக.

AT89S52 இரண்டு வகையான நினைவகங்களைக் கொண்டுள்ளது, முதலாவது ரேம் 256 பைட்டுகள் நினைவகம் மற்றும் இரண்டாவது EEPROM (மின்னணு முறையில் அழிக்கக்கூடிய மற்றும் நிரல்படுத்தக்கூடிய படிக்க மட்டும் நினைவகம்) 8k பைட்டுகள் நினைவகத்தைக் கொண்டுள்ளது. ஒரு நிரலை செயல்படுத்தும்போது தரவை சேமிக்க ரேம் பயன்படுத்தப்படுகிறது மற்றும் நிரலை சேமிக்க EEPROM பயன்படுத்தப்படுகிறது. EEPROM என்பது ஃபிளாஷ் நினைவகம், இது நிரலை எரிக்க நாங்கள் பயன்படுத்தினோம்.
சுற்று வரைபடம் மற்றும் விளக்கம்
எல்.ஈ.டியை இணைக்க போர்ட் 1 இன் பின் ஒன்றைப் பயன்படுத்துகிறோம். இல் பதிக்கப்பட்ட சி நிரலாக்க நாங்கள் P1_0 பயன்படுத்தி துறைமுக 1 பின்னை 1 அணுக முடியும். 11.0592MHz அதிர்வெண் கொண்ட ஒரு படிக ஆஸிலேட்டரை PIN 19 மற்றும் 18 உடன் இணைத்துள்ளோம், அதாவது XTAL1 மற்றும் XTAL2. கடிகார பருப்புகளை உருவாக்க கிரிஸ்டல் ஆஸிலேட்டர் பயன்படுத்தப்படுகிறது, மேலும் நேரக் கணக்கீட்டிற்கான சராசரியை வழங்க கடிகார துடிப்பு பயன்படுத்தப்படுகிறது, இது அனைத்து நிகழ்வுகளையும் ஒத்திசைக்க கட்டாயமாகும். கணினிகள், கைக்கடிகாரங்கள் போன்ற ஒவ்வொரு நவீன டிஜிட்டல் சாதனங்களிலும் இந்த வகை படிகங்கள் பயன்படுத்தப்படுகின்றன. பொதுவாக பயன்படுத்தப்படும் கிரிஸ்டல் குவார்ட்ஸ் ஆகும். இது ஒரு அதிர்வு ஆஸிலேட்டர் சுற்று மற்றும் படிகங்களை ஊசலாடுவதற்கு மின்தேக்கிகள் பயன்படுத்தப்படுகின்றன, எனவே 22pf மின்தேக்கிகளை இங்கு இணைத்துள்ளோம். மேலும் அறிய “அதிர்வு சுற்றுகள்” பற்றி நீங்கள் படிக்கலாம்.

தலைமையிலான சுற்று வரைபடத்தை 8051 மைக்ரோகண்ட்ரோலர் 89S52 தொடர்புறுத்தும் மேலே படத்தில் காட்டப்பட்டிருக்கிறது. முள் 31 (EA) Vcc உடன் இணைக்கப்பட்டுள்ளது, இது செயலில் குறைந்த முள் ஆகும். நாம் எந்த வெளிப்புற நினைவகத்தையும் பயன்படுத்தாதபோது இது Vcc உடன் இணைக்கப்பட வேண்டும். மைக்ரோகண்ட்ரோலரை வெளிப்புற நினைவகத்துடன் இணைக்க முள் 30 (ALE) மற்றும் முள் 29 (PSEN) பயன்படுத்தப்படுகின்றன, மேலும் முள் 31 மைக்ரோகண்ட்ரோலரை மைதானத்துடன் இணைக்கும்போது வெளிப்புற நினைவகத்தைப் பயன்படுத்தச் சொல்கிறது. நாங்கள் எந்த வெளிப்புற நினைவகத்தையும் பயன்படுத்தவில்லை, எனவே Pin31 ஐ Vcc உடன் இணைத்தோம்.
பின் 9 (ஆர்எஸ்டி) என்பது மீட்டமைவு பின் ஆகும், இது மைக்ரோகண்ட்ரோலரை மீட்டமைக்கப் பயன்படுகிறது மற்றும் நிரல் மீண்டும் தொடக்கத்திலிருந்து தொடங்குகிறது. HIGH உடன் இணைக்கப்படும்போது இது மைக்ரோகண்ட்ரோலரை மீட்டமைக்கிறது. RST முள் இணைக்க நிலையான மீட்டமைப்பு சுற்று, 10k ஓம் மின்தடை மற்றும் 1uF மின்தேக்கியைப் பயன்படுத்தியுள்ளோம்.
இப்போது இங்கே சுவாரஸ்யமான பகுதி என்னவென்றால், எல்.ஈ.டியை தலைகீழாக இணைக்கிறோம், அதாவது மைக்ரோகண்ட்ரோலர் பின் உடன் எதிர்மறை கால் என்று பொருள், ஏனென்றால் மைக்ரோகண்ட்ரோலர் ஒரு எல்.ஈ.டி ஒளிரும் அளவுக்கு சக்தியை வழங்காது, எனவே இங்கே எல்.ஈ.டி எதிர்மறை தர்க்கத்தில் இயங்கும் போது, பின் பி 1_0 1 பின்னர் எல்.ஈ.டி முடக்கப்படும் மற்றும் முள் வெளியீடு 0 ஆக இருக்கும்போது எல்.ஈ.டி இயக்கப்படும். பின் வெளியீடு 0 ஆக இருக்கும்போது, அது தரை மற்றும் எல்.ஈ.டி ஒளிரும் போல செயல்படுகிறது.
குறியீடு விளக்கம்
அடிப்படை பதிவு வரையறைகளைச் சேர்க்க தலைப்பு REGX52.h சேர்க்கப்பட்டுள்ளது. உட்பொதிக்கப்பட்ட சி இல் எண்ணாக, கரி, கையொப்பமிடாத முழு எண்ணாக, மிதவை போன்றவற்றில் பல வகையான மாறிகள் மற்றும் மாறிலிகள் உள்ளன, அவற்றை நீங்கள் எளிதாகக் கற்றுக்கொள்ளலாம். இங்கே நாம் கையொப்பமிடாத எண்ணைப் பயன்படுத்துகிறோம், அதன் வரம்பு 0 முதல் 65535 வரை இருக்கும். தாமதத்தை உருவாக்குவதற்கு “ஃபார் லூப்” ஐப் பயன்படுத்துகிறோம், இதனால் எல்இடி சிறிது நேரம் இயங்கும் (பி 1_0 = 0, எதிர்மறை எல்இடி லாஜிக்) மற்றும் ஆஃப் (பி 1_0 = 1, எதிர்மறை எல்.ஈ.டி தர்க்கம்) தாமதமான நேரத்திற்கு. பொதுவாக “for loop” 1275 மடங்கு இயங்கும் போது, 1ms தாமதத்தைக் கொடுக்கும், எனவே DELAY ஐ உருவாக்குவதற்கான 'தாமதம்' செயல்பாட்டை உருவாக்கி, அதை பிரதான நிரலிலிருந்து (main ()) அழைத்தோம். முக்கிய செயல்பாட்டிலிருந்து “தாமதம்” செயல்பாட்டை அழைக்கும் போது நாம் தாமத நேரத்தை (எம்.எஸ்ஸில்) அனுப்பலாம். நிரலில், “போது (1)” என்பது நிரல் எண்ணற்ற அளவில் இயங்கும்.
நான் சுருக்கமாக விளக்குகிறேன், “for” லூப்பின் 1275 முறை எவ்வாறு 1ms தாமதத்தை அளிக்கிறது:
8051 இல், 1 இயந்திர சுழற்சிக்கு 12 படிக பருப்புகளை இயக்க வேண்டும், மேலும் 11.0592 மெகா ஹெர்ட்ஸ் படிகத்தைப் பயன்படுத்துகிறோம்.
எனவே 1 இயந்திர சுழற்சிக்கு தேவையான நேரம்: 12 / 11.0592 = 1.085us
எனவே 1275 * 1.085 = 1.3ms, “for” லூப்பின் 1275 மடங்கு கிட்டத்தட்ட 1ms தாமதத்தை அளிக்கிறது.
“சி” நிரலால் தயாரிக்கப்படும் சரியான நேர தாமதத்தை கணக்கிடுவது மிகவும் கடினம், அலைக்காட்டி (சிஆர்ஓ) இலிருந்து அளவிடும்போது, (ஜே = 0; ஜே <1275; ஜே ++) கிட்டத்தட்ட 1 மீ தாமதத்தை அளிக்கிறது.
எனவே எல்.ஈ.டியை 8051 மைக்ரோகண்ட்ரோலருடன் இணைப்பதன் மூலம் நாம் புரிந்து கொள்ள முடியும், இது ஒரு எளிய குறியீட்டுடன், மைக்ரோகண்ட்ரோலரைப் பயன்படுத்தி மென்பொருள் (நிரலாக்க) மூலம் வன்பொருளைத் தொடர்புகொண்டு கட்டுப்படுத்தலாம். நிரலாக்கத்தின் மூலம் மைக்ரோகண்ட்ரோலரின் ஒவ்வொரு போர்ட் மற்றும் முள் ஆகியவற்றை நாம் கையாளலாம்.
