- தேவையான பொருட்கள்:
- ஆர்டிசி தொகுதி:
- DS3231 RTC ஐ PIC மைக்ரோகண்ட்ரோலருடன் இணைக்கிறது:
- ஆர்டிசி தொகுதிக்கான பிஐசி புரோகிராமிங்:
- PIC16F877a_DS3231.h தலைப்பு கோப்பின் சுருக்கமான விளக்கம்:
- உருவகப்படுத்துதல்:
- எல்சிடியில் நேரம் மற்றும் தேதியைக் காண்பி:
கிட்டத்தட்ட அனைத்து உட்பொதிக்கப்பட்ட சாதனங்களும் உண்மையான உலகத்துடன் தொடர்பு கொள்ள வடிவமைக்கப்பட்டுள்ளன. அவை டிஜிட்டல் உலகத்துக்கும் உண்மையான உலகத்துக்கும் இடையில் தொடர்புகொள்வதற்கான ஒரு பாலமாக செயல்படுகின்றன. இந்த செயல்முறையை எளிதாகவும் திறமையாகவும் செய்ய, டிஜிட்டல் உலகம் சில நேரங்களில் உண்மையான உலகின் நேரத்தையும் தேதியையும் கண்காணிக்க வேண்டியிருக்கும். இந்த வழியில் டிஜிட்டல் உலகம் உண்மையான உலகில் எந்த நேரம் / நாள் என்பதை அறிந்து கொள்ளும், மேலும் பகல் அல்லது இரவு நேரத்தை கூட வேறுபடுத்தி அறிய முடியும். ஒரு குறிப்பிட்ட நேரத்தில் அல்லது தேதியில் சில பணிகளைச் செய்வதற்கான நேர மூலமாகவும் இது செயல்படலாம். எனவே இங்கே நாம் ஒரு ஆர்டிசி தொகுதியை பிஐசி மைக்ரோகண்ட்ரோலருடன் இணைக்கிறோம் மற்றும் நேரம் மற்றும் தேதியை 16x2 எல்சிடியில் காண்பிக்கிறோம். இந்த திட்டத்தை டிஜிட்டல் கடிகாரமாகவும் பயன்படுத்தலாம்.
தேவையான பொருட்கள்:
- ஒழுங்குபடுத்தப்பட்ட 5 வி வழங்கல்
- PIC16F877A
- கிரிஸ்டல் ஆஸிலேட்டர் 20 மெகா ஹெர்ட்ஸ்
- மின்தேக்கி 33pf - 2 எண்
- 10 கே, 5.1 கே, 1 கே மின்தடை
- DS3231 RTC தொகுதி
- POT -10k
- எல்சிடி தொகுதி 16 * 2
- கம்பிகளை இணைக்கிறது
ஆர்டிசி தொகுதி:
ஒரு மைக்ரோகண்ட்ரோலருக்கு நிஜ உலகங்களின் நேரம் அல்லது தேதியைக் கண்காணிக்க மிகவும் பொதுவான வழி ஆர்டிசி ஐசியைப் பயன்படுத்துவதாகும். ஆர்டிசி என்ற சொல் ரியல் டைம் கடிகாரத்தை குறிக்கிறது; இந்த ஐசி உண்மையான உலக நேரத்தையும் தேதியையும் கண்காணிக்கும் மற்றும் கோரப்படும் போதெல்லாம் இந்த தகவலை மைக்ரோகண்ட்ரோலருடன் பகிர்ந்து கொள்ளும். நாங்கள் இங்கே பயன்படுத்தும் ஆர்டிசி ஐசி மிகவும் பிரபலமான மற்றும் துல்லியமான DS3231 ஆகும். இந்த ஐசி ஒவ்வொரு ஆண்டும் சில வினாடிகள் மட்டுமே செல்கிறது, எனவே மிகவும் நம்பகமானது. இந்த டுடோரியலின் பொருட்டு, ஆன்லைனில் அல்லது உள்ளூர் வன்பொருள் கடையிலிருந்து எளிதாக வாங்கக்கூடிய DS3231 RTC தொகுதியைப் பயன்படுத்துகிறோம். தொகுதி 3 வி நாணய கலத்துடன் வருகிறது, இது எப்போதும் ஆர்டிசி தொகுதிக்கு சக்தியை அளிக்கிறது, எனவே நேரம் மற்றும் தேதி அமைக்கப்பட்டவுடன் அது நாணய செல் உயிரோடு இருக்கும் வரை புதுப்பிக்கப்படும்.

DS3231 தொகுதி I2C நெறிமுறையின் உதவியுடன் தொடர்பு கொள்கிறது, எனவே அது என்ன, அது எவ்வாறு PIC உடன் பயன்படுத்தப்படுகிறது என்பது உங்களுக்குத் தெரியாவிட்டால், தொடர்வதற்கு முன் I2C ஐ PIC டுடோரியலுடன் படிக்கவும். இந்த டுடோரியலில், எங்கள் ஆர்டிசி தொகுதிடன் தொடர்புகொள்வதற்குப் பயன்படுத்தக்கூடிய ஒரு தலைப்பு கோப்பை உருவாக்கப் போகிறோம், மேலும் எல்சிடி டிஸ்ப்ளேயில் நேரத்தையும் தேதியையும் காண்பிப்பதன் மூலம் வன்பொருளிலும் சோதிக்கலாம், எனவே எல்சிடியை எவ்வாறு இடைமுகப்படுத்துவது என்பதைக் கற்றுக்கொள்வதும் முக்கியம் PIC மைக்ரோகண்ட்ரோலருடன் காட்சி. DS3231 க்கான இந்த டுடோரியலில் உருவாக்கப்பட்ட தலைப்பு கோப்பு பின்னர் உங்கள் பயன்பாடுகளுக்கு ஏற்றவாறு பயன்படுத்தப்படலாம் / மாற்றப்படலாம்.
நாங்கள் முன்பு DS3231 RTC ஐ Arduino உடன் கீழே உள்ள திட்டங்களில் பயன்படுத்தினோம்:
- Arduino ஐப் பயன்படுத்தி தானியங்கி செல்லப்பிராணி ஊட்டி
- Arduino Data Logger
DS3231 RTC ஐ PIC மைக்ரோகண்ட்ரோலருடன் இணைக்கிறது:
பிஐசி மைக்ரோகண்ட்ரோலர் அடிப்படையிலான டிஜிட்டல் கடிகாரத்திற்கான சுற்று வரைபடம் கீழே கொடுக்கப்பட்டுள்ளது. முன்னர் கூறியது போல், டிஎஸ் 3231 ஐ 2 சி தகவல்தொடர்பு உதவியுடன் செயல்படுகிறது, எனவே இது ஒரு சீரியல் கடிகாரம் (எஸ்சிஎல்) மற்றும் சீரியல் டேட்டா (எஸ்.டி.ஏ) முள் ஆகியவற்றைக் கொண்டிருக்கும், இது எங்கள் பி.ஐ.சி-யில் ஐ 2 சி ஊசிகளுடன் இணைக்கப்பட வேண்டும், இது முள் 18 (எஸ்.சி.எல்) மற்றும் முள் 23 (எஸ்.டி.ஏ). பஸ்ஸை செயலற்ற நிலையில் வைத்திருக்க, 4.7 கே மதிப்புள்ள ஒரு புல் அப் மின்தடை பயன்படுத்தப்படுகிறது.
தற்போதைய தேதி மற்றும் நேரத்தைக் காண்பிக்க போர்ட் டி இல் உள்ள ஊசிகளுடன் எல்சிடி டிஸ்ப்ளே இணைக்கப்பட்டுள்ளது. முழுமையான சுற்று வரைபடம் புரோட்டியஸில் வடிவமைக்கப்பட்டது மற்றும் கீழே காட்டப்பட்டுள்ளது. இந்த டுடோரியலில் பின்னர் உருவகப்படுத்த அல்லது நிரல் செய்ய இதைப் பயன்படுத்தப் போகிறோம்.

சுற்று வரைபடத்தைப் பின்பற்றி அதற்கேற்ப இணைப்புகளை உருவாக்கவும், மேலே காட்டப்பட்டுள்ள I2C பெட்டி I2C பிழைத்திருத்தத்திற்கு பயன்படுத்தப்படுகிறது, எனவே அதை எங்கள் இணைப்புகளில் சேர்க்க மாட்டோம். மேலும் ஆர்.டி.சி தொகுதி + 5 வி சப்ளை மூலம் வி.சி.சி மற்றும் கிரவுண்ட் ஊசிகளைப் பயன்படுத்தி இயக்கப்பட வேண்டும் என்று காட்டப்படவில்லை. இணைப்பை உருவாக்க நான் எனது பிரெட்போர்டைப் பயன்படுத்தினேன், தேவையான இணைப்புகளைச் செய்தபின் எனது அமைவு கீழே உள்ளதைப் போன்றது.

நீங்கள் PIC மைக்ரோகண்ட்ரோலருக்கு புதியவர் என்றால், PIC மைக்ரோகண்ட்ரோலருடன் தொடங்குவதைத் தொடங்குங்கள்.
ஆர்டிசி தொகுதிக்கான பிஐசி புரோகிராமிங்:
முழு திட்டம் இந்த டிஜிட்டல் கடிகாரம் இங்கே ZIP கோப்பை இருந்து பதிவிறக்கம் செய்யலாம். நிரலில் மூன்று தலைப்பு கோப்புகள் உள்ளன. அவை lcd.h எல்சிடி காட்சி, வேலை கோப்பு PIC16F877a_I2C.h PIC கொண்டு I2C தொடர்பு பணிபுரியும் இறுதியாக கோப்பு PIC16F877a_DS3231.h RTC தொகுதிகளுடன் வேலை செய்ய கோப்பு. இந்த திட்டத்திற்கு மூன்று தலைப்பு கோப்புகளும் தேவை, அவை மேலே உள்ள ZIP கோப்பில் கிடைக்கின்றன. ஆர்டிசி தொகுதியிலிருந்து நேரத்தையும் தேதியையும் படித்து எல்சிடி திரையில் காண்பிக்க இந்த தலைப்பு கோப்பைப் பயன்படுத்தும் முக்கிய நிரலை மேலும் கீழே விளக்குகிறேன். அதன் பிறகு ஆர்டிசி தலைப்பு கோப்பில் உண்மையில் என்ன நடக்கிறது என்பதை விளக்குகிறேன். உள்ளமைவு பிட்களை அமைப்பதன் மூலமும், கடிகார அதிர்வெண்ணை 20 மெகா ஹெர்ட்ஸ் என அமைப்பதன் மூலமும் நிரலைத் தொடங்குங்கள்.
#pragma config FOSC = HS // ஆஸிலேட்டர் தேர்வு பிட்கள் (HS ஆஸிலேட்டர்) # ப்ராக்மா கட்டமைப்பு WDTE = OFF // வாட்ச் டாக் டைமர் பிட் இயக்கு (WDT முடக்கப்பட்டது) #pragma config PWRTE = ON // பவர்-அப் டைமர் பிட் (PWRT இயக்கப்பட்டது) # Pragma கட்டமைப்பு Boren = மீது // பிரவுன்-அவுட் மீட்டமை பிட் இயக்கு (BOR செயல்படுத்தப்படும்) #pragma கட்டமைப்பு LVP = நிறுத்தவும் // குறைந்த மின்னழுத்த (ஒற்றை-சப்ளை) உள்-சுற்று சீரியல் புரோகிராமிங் பிட் இயக்கு (RB3 டிஜிட்டல் I / O, மீது HV உள்ளது MCLR நிரலாக்கத்திற்காக பயன்படுத்தப்பட வேண்டும்) #pragma கட்டமைப்பு CPD = நிறுத்தவும் // தரவு EEPROM நினைவகத்தின் குறியீடு பாதுகாப்பு (தரவு செய்யப்பட்ட EEPROM- குறியீட்டுப் பாதுகாப்பு ஆஃப்) கடித்தார் அனைத்து நிரல் நினைவகம்; #pragma கட்டமைப்பு wrt யை = நிறுத்தவும் // ஃப்ளாஷ் திட்டம் நினைவகம் எழுது ஆஃப் பிட்கள் (எழுது பாதுகாப்பை இயக்கு EECON கட்டுப்பாட்டால் எழுதப்படலாம்) #pragma config CP = OFF // ஃப்ளாஷ் நிரல் நினைவக குறியீடு பாதுகாப்பு பிட் (குறியீடு பாதுகாப்பு முடக்கப்பட்டுள்ளது) # _XTAL_FREQ 20000000 ஐ வரையறுக்கவும்
அடுத்த கட்டமாக எல்சிடி ஊசிகளை வரையறுப்பதாக இருக்கும், நீங்கள் வன்பொருளைப் பார்த்தால் , எல்சிடியின் ஊசிகளை PORT D உடன் RD2 முதல் RD7 வரை இணைத்துள்ளோம் என்பதை நீங்கள் கவனிக்க முடியும், எனவே கீழே காட்டப்பட்டுள்ளதை நாங்கள் வரையறுக்கிறோம்.
# RS RD2 ஐ வரையறுக்கவும் # EN RD3 ஐ வரையறுக்கவும் # D4 RD4 ஐ வரையறுக்கவும் # D5 RD5 ஐ வரையறுக்கவும் # D6 RD6 ஐ வரையறுக்கவும் # D7 RD7 ஐ வரையறுக்கவும்
இயல்பாக நீங்கள் ஆர்டிசி தொகுதியை வாங்கியபோது சரியான நேரமும் தேதியும் அதில் அமைக்கப்படாது, எனவே அதை எங்கள் நிரல் மூலம் அமைக்க வேண்டும். எனவே ஒவ்வொரு தரவிற்கும் மாறியை அறிவித்து, கீழே காட்டப்பட்டுள்ளபடி உண்மையான உலக நேரம் மற்றும் தேதியில் ஊட்டமளிக்கிறோம். நிரலைப் பதிவேற்றும் நேரத்தில் எனது நேரமும் தேதியும் காலை 6-5-2018 அன்று காலை 10:55 ஆக இருந்தது, எனவே மாறிகளை கீழே அமைத்துள்ளேன். உங்கள் உண்மையான பயன்பாட்டின்படி சரியான நேரத்தையும் தேதியையும் அமைக்கலாம்
/ * தேதி மற்றும் நேரத்தின் தற்போதைய மதிப்பை கீழே அமைக்கவும் * / int sec = 00; int நிமிடம் = 55; முழு நேரம் = 10; முழு தேதி = 06; முழு மாதம் = 05; முழு ஆண்டு = 18; / * நேரம் மற்றும் தேதி அமைத்தல் * /
அடுத்து நாம் விவாதித்த அனைத்து தலைப்பு கோப்புகளையும் சேர்க்கிறோம். நீங்கள் ZIP கோப்பிலிருந்து நிரலை பதிவிறக்கம் செய்து திறந்திருந்தால், அது வேறு சிக்கலாக இருக்காது, எல்லா தலைப்பு கோப்புகளும் உங்கள் மூல கோப்பில் அல்லது உங்கள் திட்ட கோப்பகத்தில் சேர்க்கப்பட்டுள்ளதா என்பதை உறுதிப்படுத்தவும்.
#சேர்க்கிறது
எல்.சி.டியை இடைமுகப்படுத்துவதற்கான வெளியீட்டு ஊசிகளாக நாங்கள் PORT D ஐப் பயன்படுத்தியுள்ளதால், அவற்றை எங்கள் நிரலில் வெளியீட்டு ஊசிகளாக அறிவிக்க வேண்டும் மற்றும் கீழே காட்டப்பட்டுள்ளபடி எல்சிடி காட்சியைத் தொடங்க வேண்டும்
TRISD = 0x00; // எல்சிடி இன்டர்ஃபேசிங் எல்சிடி_ஸ்டார்ட் () க்கான போர்ட் டி ஊசிகளை வெளிப்புறமாக மாற்றவும்; // எல்சிடி தொகுதியைத் தொடங்கவும்
ஆர்டிசி தொகுதி I2C நெறிமுறையின் உதவியுடன் தொடர்பு கொள்கிறது, எனவே I2C தகவல்தொடர்புகளை எங்கள் PIC மைக்ரோகண்ட்ரோலரை இயக்க வேண்டும். எங்கள் DS3231 தொகுதிகள் உள்ளிட்ட பெரும்பாலான சாதனங்கள் 100KHz இன் I2C இயக்க அதிர்வெண்ணைக் கொண்டுள்ளன, எனவே கீழே காட்டப்பட்டுள்ளபடி 100KHz அதிர்வெண்ணுடன் I2C தகவல்தொடர்புகளைத் தொடங்குகிறோம்
I2C_Initialize (100); // 100KHz கடிகாரத்துடன் I2C மாஸ்டரைத் தொடங்கவும்
ஆர்டிசி தொகுதிடன் ஒரு ஐ 2 சி தகவல்தொடர்புகளை நாங்கள் நிறுவியவுடன், நாங்கள் முதலில் செய்வது எங்கள் திட்டத்தில் நுழைந்த தற்போதைய நேரத்தையும் தேதியையும் அமைப்பதாகும். கீழே காட்டப்பட்டுள்ளபடி set_Time_Date செயல்பாட்டை அழைப்பதன் மூலம் இதைச் செய்யலாம். நேரம் மற்றும் தேதி அமைக்கப்பட்டதும் தொகுதி தானாகவே அதைக் கண்காணித்து டிஜிட்டல் கடிகாரத்தைப் போலவே அதிகரிக்கும்.
அமை_நேரம்_ தேதி (); // ஆர்டிசி தொகுதியில் நேரம் மற்றும் தேதியை அமைக்கவும்
நிரல் தொடங்கியுள்ளது என்பதைக் குறிக்க, ஒரு சிறிய அறிமுக செய்தியைக் காண்பிப்போம், அதற்காக 2 விநாடிகள் திரையில் இருக்கும். இந்த செய்தி RTC ஐ PIC –Circuit Digest உடன் திரையில் காண்பிக்கும். அதற்கான நிரல் கீழே காட்டப்பட்டுள்ளது
Lcd_Clear (); எல்சிடி_செட்_ கர்சர் (1,1); Lcd_Print_String ("PIC உடன் RTC"); எல்சிடி_செட்_ கர்சர் (2,1); Lcd_Print_String ("-சர்குட் டைஜஸ்ட்"); __ தாமத_எம்எஸ் (1500);
எங்கள் எல்லையற்ற போது சுழற்சியின் உள்ளே நாம் தற்போதைய நேரத்தையும் தேதியையும் படித்து பின்னர் எல்சிடி திரையில் மதிப்புகளைக் காட்ட வேண்டும். ஆர்டிசி தொகுதியிலிருந்து நேரம் மற்றும் தேதியைப் படிக்க, புதுப்பிப்பு_ தற்போதைய_நேர_தேதி செயல்பாடு கீழே காட்டப்பட்டுள்ளபடி பயன்படுத்தப்படலாம். இந்த செயல்பாடு ஆர்டிசி தொகுதிக்கான மதிப்பைப் படித்து, தற்போதைய மதிப்புகளுடன் நொடி, நிமிடம், மணிநேரம், தேதி, மாதம் மற்றும் ஆண்டு ஆகிய மாறிகளைப் புதுப்பிக்கும். பின்னர் அவற்றை நம் நோக்கத்திற்காக பயன்படுத்தலாம்.
புதுப்பிப்பு_ தற்போதைய_தேதி_நேரம் (); // ஆர்டிசி தொகுதியிலிருந்து தற்போதைய தேதி மற்றும் நேரத்தைப் படியுங்கள்
மாறிகள் முழு தரவு வகையாகும், அவற்றை நாம் தனித்தனி எழுத்துக்களாக மாற்ற வேண்டும், இதனால் அவற்றை எல்சிடி திரையில் காண்பிக்க முடியும். எனவே ஒரு முறை இலக்கத்தைப் பெற மாடுலஸ் ஆபரேட்டரைப் பயன்படுத்துகிறோம், மேலும் பத்து இலக்கத்தைப் பெற மாறியை 10 ஆல் வகுக்கிறோம். எல்லா மாறிகளுக்கும் இது செய்யப்படுகிறது.
// எல்சிடி கரி sec_0 = நொடி% 10 இல் காட்ட கரிக்குள் பிரிக்கவும்; கரி sec_1 = (நொடி / 10); கரி min_0 = நிமிடம்% 10; கரி min_1 = நிமிடம் / 10; கரி மணி_0 = மணி% 10; கரி மணி_1 = மணி / 10; கரி தேதி_0 = தேதி% 10; கரி தேதி_1 = தேதி / 10; கரி மாதம்_0 = மாதம்% 10; கரி மாதம்_1 = மாதம் / 10; கரி ஆண்டு_0 = ஆண்டு% 10; கரி ஆண்டு_1 = ஆண்டு / 10;
எல்.சி.டி திரையில் நாங்கள் வாங்கிய தகவல்களைக் காண்பிப்பதே மிச்சம். எங்கள் எல்சிடி டுடோரியலில் முன்னர் விவாதித்த எல்சிடி செயல்பாடுகளுடன் இதை எளிதாக செய்ய முடியும். எனவே நேரத்தைக் காண்பிப்பதற்கான குறியீடு கீழே கொடுக்கப்பட்டுள்ளது, தேதியையும் காண்பிக்க அதே முறை பயன்படுத்தப்படுகிறது. தரவைக் காண்பித்த பிறகு 500 எம்.எஸ் தாமதம் வழங்கப்படுகிறது, இதனால் இது புதுப்பிப்பு இடைவெளியாக செயல்படுகிறது.
Lcd_Clear (); எல்சிடி_செட்_ கர்சர் (1,1); Lcd_Print_String ("TIME:"); Lcd_Print_Char (மணிநேர_1 + '0'); Lcd_Print_Char (மணி_0 + '0'); Lcd_Print_Char (':'); Lcd_Print_Char (min_1 + '0'); Lcd_Print_Char (min_0 + '0'); Lcd_Print_Char (':'); Lcd_Print_Char (sec_1 + '0'); Lcd_Print_Char (sec_0 + '0');
PIC16F877a_DS3231.h தலைப்பு கோப்பின் சுருக்கமான விளக்கம்:
இதுவரை விளக்கப்பட்ட விஷயங்கள் உங்கள் சொந்த திட்டங்களுக்கு பி.ஐ.சி உடன் டி.எஸ்.3231 தொகுதியைப் பயன்படுத்த போதுமானது, ஆனால் அங்குள்ள ஆர்வமுள்ள மனதுக்கு தலைப்பு கோப்பிற்குள் உண்மையில் என்ன நடக்கிறது என்பதை அறிய விரும்புகிறது மற்றும் தரவு உண்மையில் பி.ஐ.சி யால் ஆர்.டி.சி தொகுதியிலிருந்து பெறப்படுகிறது, மேலும் படிக்க.
இதன் மூலம் செல்ல சிறந்த வழி, DS3231 இன் தரவுத்தாள் முழுவதையும் படிப்பதன் மூலம். தேவையானதைச் சுருக்கமாகக் கூற, தொகுதி PIC க்கு அடிமையாக செயல்படுகிறது மற்றும் அனைத்து DS3231 தொகுதிகளின் முகவரி D0 ஆகும். எனவே தொகுதிக்கு தரவை எழுதுங்கள் நாம் D0 முகவரியை அனுப்ப வேண்டும் மற்றும் RTC இலிருந்து தரவைப் படிக்க நாம் D1 முகவரியை அனுப்ப வேண்டும். நாங்கள் RTC தொகுதிக்கு எழுதும் முகவரியைக் கடந்து சென்றால், PIC இலிருந்து தரவைப் பெற நாங்கள் தயாராகி வருகிறோம், எனவே PIC ஆல் எழுதப்பட்ட தரவு RTC தொகுதியில் பெறப்பட்டு சேமிக்கப்படும். இதேபோல் நாம் படிக்க முகவரியை அனுப்பினால்ஆர்டிசி தொகுதி தன்னிடம் உள்ள எல்லா தரவையும் அனுப்பத் தொடங்கும் என்பதால், பி.டி.சி ஆர்.டி.சி யிலிருந்து மதிப்புகளைப் படிக்கத் தயாராக வேண்டும். D0 மற்றும் D1 இரண்டிற்கான பிட் வரிசை தரவுத்தாள் இருந்து கீழே காட்டப்பட்டுள்ளது. 0b11010000 முகவரி D0 (எழுது) மற்றும் 0b11010001 D01 ஐ குறிக்கிறது (படிக்க)

PIC எழுத அல்லது படிக்க D0 அல்லது D1 முகவரியை அனுப்பும்போது, பின்வரும் தரவு ஒரு வரிசையில் படிக்க வேண்டும் அல்லது எழுதப்பட வேண்டும். இந்த ஆர்டர் கீழே உள்ள அட்டவணையில் காட்டப்பட்டுள்ளது. எனவே முதல் தரவு நொடி (00 மணி) பின்னர் நிமிடங்கள் (01 மணி) பின்னர் மணிநேரம் (02 மணி) பின்னர் நாள் (03 மணி) மற்றும் வெப்பநிலை எம்எஸ்பி வரை இருக்கும்.

ஆர்டிசி தொகுதிக்கு தசம மதிப்புகள் புரியவில்லை, இது பிசிடி மதிப்புகள் மூலம் மட்டுமே தொடர்பு கொள்கிறது. ஆகவே, ஆர்.டி.சி தொகுதிக்கு ஏதேனும் மதிப்புகளை எழுதுவதற்கு முன்பு அது பி.சி.டி ஆக மாற்றப்பட வேண்டும், மேலும் ஆர்.டி.சி தொகுதியிலிருந்து பெறப்பட்ட மதிப்புகள் பி.சி.டி வடிவத்தில் இருக்கும், மேலும் இது நமக்கு புரியவைக்க டெசிமலுக்கு மாற்றப்பட வேண்டும். இதை மனதில் கொண்டு ஆர்டிசி தொகுதியைப் பயன்படுத்துவதற்கு தேவையான அனைத்து செயல்பாடுகளையும் உருவாக்க உதவுகிறது.
BCD_2_DEC மற்றும் DEC_2_BCD செயல்பாடுகள்:
முதல் இரண்டு செயல்பாடுகள் பி.சி.டி தரவை தசமமாகவும் தசம தரவை பி.சி.டி ஆகவும் மாற்ற பயன்படும், ஏனெனில் ஆர்.டி.சி தொகுதி பி.சி.டி.யை மட்டுமே புரிந்துகொள்கிறது. BCD ஐ தசமமாகவும், BCD ஐ தசமமாகவும் மாற்றுவதற்கான சூத்திரங்கள்
தசம = (BCD >> 4) * 10 + (BCD & 0x0F) BCD = ((தசம / 10) << 4) + (தசம% 10)
எதிர் அலகு அளவுருவாக எடுத்து தேவையான வடிவத்திற்கு மாற்றி அதை திருப்பித் தரும் ஒரு செயல்பாட்டை உருவாக்க இந்த இரண்டு சூத்திரங்களையும் நாம் பயன்படுத்த வேண்டும், அதையே செய்வதற்கான செயல்பாடு கீழே காட்டப்பட்டுள்ளது
int BCD_2_DEC (int to_convert) { திரும்ப (to_convert >> 4) * 10 + (to_convert & 0x0F); } int DEC_2_BCD (int to_convert) { திரும்ப ((to_convert / 10) << 4) + (to_convert% 10); }
Set_Time_Date () செயல்பாடு:
இந்த செயல்பாடு PIC இலிருந்து RTC தொகுதிக்கு நேரம் மற்றும் தேதியின் மதிப்பை எழுதும். உண்மையான நேரம் மற்றும் தேதியின் மதிப்புகள் பயனரால் நொடி, நிமிடம், மணிநேரம், தேதி, மாதம் மற்றும் ஆண்டு ஆகிய மாறிகளில் புதுப்பிக்கப்பட வேண்டும். இந்த மதிப்புகள் பின்னர் BCD ஆக மாற்றப்பட்டு RTC தொகுதிக்கு எழுதப்படும்.
நாங்கள் விவாதித்தபடி, ஆர்டிசி தொகுதிக்கு ஒரு மதிப்பை எழுத நாம் D0 முகவரியை அனுப்ப வேண்டும் மற்றும் எழுதும் செயல்முறையைத் தொடங்க ஒரு புல் பிட் 0 ஐ எழுத வேண்டும். மேலே உள்ள அட்டவணையில் காட்டப்பட்டுள்ளபடி தரவை வரிசையில் அனுப்பலாம்.
Set_Time_Date () { I2C_Begin (); I2C_Write (0xD0); I2C_Write (0); I2C_Write (DEC_2_BCD (நொடி)); // புதுப்பிப்பு நொடி I2C_Write (DEC_2_BCD (நிமிடம்)); // புதுப்பிப்பு நிமிடம் I2C_Write (DEC_2_BCD (மணிநேரம்)); // புதுப்பிப்பு நேரம் I2C_Write (1); // புதுப்பித்தல் நாள் I2C_Write (DEC_2_BCD (தேதி)) ஐ புறக்கணிக்கவும் ; // புதுப்பிப்பு தேதி I2C_Write (DEC_2_BCD (மாதம்)); // புதுப்பிப்பு மாதம் I2C_Write (DEC_2_BCD (ஆண்டு)); // புதுப்பிப்பு ஆண்டு I2C_End (); }
புதுப்பிப்பு_ தற்போதைய_தேதி_நேர () செயல்பாடு:
ஆர்.டி.சி தொகுதியிலிருந்து நேரத்தையும் தேதியையும் படித்து அதை பி.ஐ.சி மைக்ரோகண்ட்ரோலருக்கு அனுப்ப பயன்படும் நூலகத்தின் கடைசி செயல்பாடு . இந்த செயல்பாடு மூன்று பிரிவுகளாகப் பிரிக்கப்பட்டுள்ளது, ஒன்று மதிப்புகளைப் படிப்பதற்கும், நொடி, நிமிடம், மணிநேரம், தேதி, மாதம் மற்றும் ஆண்டு போன்ற உலகளாவிய மாறிகள் சேமிப்பதற்கும் வாசிப்பு செயல்முறையைத் தொடங்குவது. மூன்றாவது வாசிப்பு வெற்றிகரமாக இருந்தது என்பதை ஒப்புக்கொள்வது.
ஒவ்வொரு செயலுக்கும் I2C தகவல்தொடர்பு தொடங்கப்பட்டு முடிக்கப்பட வேண்டும் என்பதைக் கவனியுங்கள்.
RTC இலிருந்து மதிப்புகளைப் படிக்க நாம் D0 என்ற முகவரியைத் தொடர்ந்து 0 ஐ அனுப்ப வேண்டும். இது RTC தொகுதி மேலே உள்ள அட்டவணையில் காட்டப்பட்டுள்ள வரிசையில் உள்ள அனைத்து மதிப்புகளையும் அனுப்பும். அவற்றை நாம் தசமமாக மாற்றி அதே வரிசையில் மாறிகளுக்கு சேமிக்கலாம்.
இறுதியாக, வாசிப்பு முடிந்தபின், ஆர்டிசி தொகுதி ஒரு ஒப்புதல் பிட்டை அனுப்பும், அதைப் படித்து ஒப்புக் கொள்ள வேண்டும்.
வெற்றிடத்தை Update_Current_Date_Time () { // வாசிக்க தொடங்க I2C_Begin (); I2C_Write (0xD0); I2C_Write (0); I2C_End (); // READ I2C_Begin (); I2C_Write (0xD1); // தரவைப் படிக்க ஆரம்பிக்க நொடி = BCD_2_DEC (I2C_Read (1)); நிமிடம் = BCD_2_DEC (I2C_Read (1)); மணிநேரம் = BCD_2_DEC (I2C_Read (1)); I2C_Read (1); தேதி = BCD_2_DEC (I2C_Read (1)); மாதம் = BCD_2_DEC (I2C_Read (1)); ஆண்டு = BCD_2_DEC (I2C_Read (1)); I2C_End (); // END படித்தல் I2C_Begin (); I2C_Write (0xD1); // தரவைப் படிக்க I2C_Read (1); I2C_End (); }
உருவகப்படுத்துதல்:
புரோட்டஸ் சிமுலேஷன் மென்பொருளைப் பயன்படுத்தி திட்டத்தை உருவகப்படுத்தலாம். சுற்று வரைபடத்தில் காட்டப்பட்டுள்ளபடி இணைப்புகளை உருவாக்கி, ஹெக்ஸ் கோப்பை PIC கட்டுப்படுத்தியில் ஏற்றவும். நீங்கள் அதை உருவகப்படுத்தும்போது இரண்டு பாப்-அப் பெட்டிகளையும் கீழே காட்டப்பட்டுள்ளபடி எல்சிடியில் காட்டப்படும் தேதி மற்றும் நேரத்தையும் காண்பீர்கள்.

மேலே உள்ள சிறியது ஆர்டிசி தொகுதிக்குள் தற்போதைய நேரம் மற்றும் தேதியைக் காட்டுகிறது மற்றும் இரண்டாவது பாப்-அப் I2C பிழைத்திருத்தமாகும். I2C பிழைக்கு உள்ளேயும் வெளியேயும் என்ன தரவு உண்மையில் அனுப்பப்படுகிறது என்பதை சரிபார்க்க இது ஒரு சிறந்த கருவியாகும்.
எல்சிடியில் நேரம் மற்றும் தேதியைக் காண்பி:
உங்கள் வன்பொருள் தயாராகி, குறியீடு ஜிப் கோப்பாக பதிவிறக்கம் செய்யப்பட்ட இணைப்பு மூலம் MPLABX IDE ஐப் பயன்படுத்தி நிரலைத் திறக்கவும். நீங்கள் முதலில் IDE ஐத் தொடங்க வேண்டும் மற்றும் திறந்த திட்ட விருப்பத்தைப் பயன்படுத்தி ZIP கோப்பில் உள்ள உள்ளடக்கங்களை உலாவவும்.X கோப்புறையைத் திறக்கவும்.
நிரல் தொகுக்கப்படுகிறதா என்று சரிபார்த்து, பிக்கிட் 3 ஐப் பயன்படுத்தி குறியீட்டை உங்கள் வன்பொருளில் பதிவேற்றவும். நிரல் பதிவேற்றப்பட்டவுடன் நீங்கள் அறிமுக செய்தியைக் காண வேண்டும், பின்னர் நேரம் மற்றும் தேதி கீழே காட்டப்பட்டுள்ளபடி காட்டப்பட வேண்டும்.

எல்சிடியில் எதுவும் இல்லை என்றால், உங்கள் இணைப்புகளைச் சரிபார்த்து, பொட்டென்டோமீட்டரை மாற்றுவதன் மூலம் மாறுபட்ட நிலை சரியாக அமைக்கப்பட்டிருப்பதை உறுதிசெய்க. உங்கள் PIC மைக்ரோகண்ட்ரோலர் திட்டங்களுக்கு நேரத்தையும் தேதியையும் எப்படிக் காண்பிக்க முடியும், இதை டிஜிட்டல் கடிகாரமாகப் பயன்படுத்தலாம். நீங்கள் புதிதாக ஒன்றைக் கற்றுக் கொண்டீர்கள், இந்த டுடோரியலைக் கற்றுக் கொண்டீர்கள் என்று நம்புகிறேன். நீங்கள் ஏதேனும் சிக்கலை எதிர்கொண்டிருந்தால், அவற்றை கீழே உள்ள கருத்துகளில் அல்லது தொழில்நுட்ப உதவிக்காக மன்றங்களில் இடுங்கள்.
இந்த திட்டத்திற்கான முழுமையான PIC நிரலை தலைப்பு கோப்புகளுடன் இங்கே பதிவிறக்கம் செய்து, எங்கள் எல்லா PIC பயிற்சிகளையும் இங்கே சரிபார்க்கவும்.
