இந்த திட்டத்தில் ஏடிஎம்இஜிஏ 32 டைமர்களைப் பயன்படுத்தி எளிய அலாரம் கடிகாரத்தை வடிவமைக்க உள்ளோம். ATmega32A மைக்ரோகண்ட்ரோலரில் 16 பிட் டைமர் உள்ளது, மேலும் அந்த டைமரை விநாடிகளை எண்ணவும் டிஜிட்டல் கடிகாரத்தை உருவாக்கவும் பயன்படுத்துவோம்.
எல்லா டிஜிட்டல் கடிகாரங்களும் அவற்றின் உள்ளே ஒரு படிகத்தைக் கொண்டுள்ளன, இது கடிகாரத்தின் இதயம். இந்த படிகமானது கடிகாரத்தில் மட்டுமல்ல, எல்லா கணினி நிகழ்நேர அமைப்புகளிலும் உள்ளது. இந்த படிகமானது கடிகார பருப்புகளை உருவாக்குகிறது, இது நேர கணக்கீடுகளுக்கு தேவைப்படுகிறது. கடிகார பருப்புகளைப் பெற வேறு சில வழிகள் இருந்தாலும், துல்லியம் மற்றும் அதிக அதிர்வெண் ஆகியவற்றிற்கு படிக அடிப்படையிலான கடிகாரத்தை விரும்புகிறார்கள். துல்லியமான கடிகாரத்தைப் பெறுவதற்காக ஒரு படிகத்தை ATMEGA32 உடன் இணைக்கப் போகிறோம்.
கூறுகள் தேவை
வன்பொருள்: ATmega32 மைக்ரோகண்ட்ரோலர், 11.0592MHz படிக, 22pF மின்தேக்கி (2 துண்டுகள்), மின்சாரம் (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16x2 LCD), 100uF மின்தேக்கி (மின்சாரம் முழுவதும் இணைக்கப்பட்டுள்ளது), பொத்தான்கள் (நான்கு துண்டுகள்), 10KΩ மின்தடை (ஆறு துண்டுகள்), 100nF கொள்ளளவு ஆர் (நான்கு துண்டுகள்), மூன்று முள் சுவிட்சுகள் (2 துண்டுகள்), 2N2222 டிரான்சிஸ்டர், பஸர், 200Ω மின்தடை.
மென்பொருள்: அட்மல் ஸ்டுடியோ 6.1, புரோகிஸ் அல்லது ஃபிளாஷ் மேஜிக்.
சுற்று வரைபடம் மற்றும் வேலை விளக்கம்

துல்லியமான நேரத்திற்கு, கடிகாரத்திற்காக 11.0592 மெகா ஹெர்ட்ஸ் படிகத்தை இணைத்துள்ளோம். இப்போது ATMEGA இன் உள் கடிகாரத்தை முடக்க, அதன் குறைந்த FUSE BITS ஐ மாற்ற வேண்டும். நாங்கள் அதிக உருகி பிட்களைத் தொடவில்லை என்பதை நினைவில் கொள்ளுங்கள், எனவே JTAG தொடர்பு இன்னும் இயக்கப்பட்டிருக்கும்.
உள் கடிகாரத்தை முடக்கவும், வெளிப்புறத்தில் வேலை செய்யவும் ATMEGA க்கு நாங்கள் அமைக்க வேண்டும்:
குறைந்த பயன்பாடு BYTE = 0xFF அல்லது 0b11111111.
சுற்றுகளில் ATMEGA32 இன் PORTB தரவு துறைமுக LCD உடன் இணைக்கப்பட்டுள்ளது. PORTC ஐ ஒரு சாதாரண தகவல்தொடர்பு துறைமுகமாக பயன்படுத்த விரும்பினால், உயர் உருகி பைட்டுகளை மாற்றுவதன் மூலம் ATMEGA இன் PORTC இல் உள்ள JTAG தகவல்தொடர்புகளை முடக்க இங்கே ஒருவர் நினைவில் கொள்ள வேண்டும். 16x2 எல்சிடியில் கருப்பு விளக்கு இருந்தால் எல்லாவற்றிற்கும் மேலாக 16 ஊசிகளும் உள்ளன, பின் ஒளி இல்லாவிட்டால் 14 ஊசிகளும் இருக்கும். ஒருவர் பின் ஒளி ஊசிகளை சக்தியளிக்கலாம் அல்லது விட்டுவிடலாம். இப்போது 14 ஊசிகளில் 8 தரவு ஊசிகளும் (7-14 அல்லது டி 0-டி 7), 2 மின்சாரம் வழங்கல் ஊசிகளும் (1 & 2 அல்லது விஎஸ்எஸ் & விடிடி அல்லது ஜிஎன்டி & + 5 வி), மாறுபட்ட கட்டுப்பாட்டுக்கு 3 வது முள் (எழுத்துக்கள் எவ்வளவு அடர்த்தியாக இருக்க வேண்டும் என்பதை விஇஇ கட்டுப்படுத்துகிறது காட்டப்பட்டுள்ளது), மற்றும் 3 கட்டுப்பாட்டு ஊசிகளும் (RS & RW & E)
சுற்றில், நான் இரண்டு கட்டுப்பாட்டு ஊசிகளை மட்டுமே எடுத்துள்ளதை நீங்கள் அவதானிக்கலாம். இது சிறந்த புரிதலின் நெகிழ்வுத்தன்மையை அளிக்கிறது, கான்ட்ராஸ்ட் பிட் மற்றும் READ / WRITE ஆகியவை பெரும்பாலும் பயன்படுத்தப்படுவதில்லை, எனவே அவை தரையில் சுருக்கப்படலாம். இது எல்சிடியை மிக உயர்ந்த மாறுபாடு மற்றும் வாசிப்பு பயன்முறையில் வைக்கிறது. எழுத்துக்கள் மற்றும் தரவை அதற்கேற்ப அனுப்ப நாம் இயக்க மற்றும் RS ஊசிகளைக் கட்டுப்படுத்த வேண்டும்.
எல்சிடிக்கு செய்யப்படும் இணைப்புகள் கீழே கொடுக்கப்பட்டுள்ளன:
தரையில் PIN1 அல்லது VSS
PIN2 அல்லது VDD அல்லது VCC to + 5v power
PIN3 அல்லது VEE தரையில் (ஒரு தொடக்கநிலைக்கு அதிகபட்ச மாறுபாட்டை வழங்குகிறது)
UC இன் PD6 க்கு PIN4 அல்லது RS (பதிவு தேர்வு)
PIN5 அல்லது RW (படிக்க / எழுது) தரையில் (எல்சிடியை வாசிப்பு பயன்முறையில் வைக்கிறது பயனருக்கான தகவல்தொடர்புகளை எளிதாக்குகிறது)
UC இன் PD5 க்கு PIN6 அல்லது E (இயக்கு)
UC இன் PIN7 அல்லது D0 முதல் PB0 வரை
UC இன் PIN8 அல்லது D1 முதல் PB1 வரை
UC இன் PIN9 அல்லது D2 முதல் PB2 வரை
UC இன் PIN10 அல்லது D3 முதல் PB3 வரை
UC இன் PIN11 அல்லது D4 முதல் PB4 வரை
UC இன் PIN12 அல்லது D5 முதல் PB5 வரை
UC இன் PIN13 அல்லது D6 முதல் PB6 வரை
UC இன் PIN14 அல்லது D7 முதல் PB7 வரை
சுற்றில் நாங்கள் 8 பிட் தகவல்தொடர்பு (டி 0-டி 7) ஐப் பயன்படுத்தியிருப்பதைக் காணலாம், இருப்பினும் இது கட்டாயமில்லை, நாங்கள் 4 பிட் தகவல்தொடர்பு (டி 4-டி 7) ஐப் பயன்படுத்தலாம், ஆனால் 4 பிட் தகவல்தொடர்பு நிரல் சற்று சிக்கலானது. எனவே மேலே உள்ள அட்டவணையில் காட்டப்பட்டுள்ளபடி, எல்.சி.டி.யின் 10 ஊசிகளை கட்டுப்படுத்தியுடன் இணைக்கிறோம், இதில் 8 ஊசிகளும் தரவு ஊசிகளும், கட்டுப்பாட்டுக்கு 2 ஊசிகளும் ஆகும்.
அலாரம் மற்றும் நேரத்திற்கு இடையில் சரிசெய்தல் அம்சத்தை இயக்குவதற்கு ஒன்று மாறவும். முள் குறைவாக இருந்தால், பொத்தான்களை அழுத்துவதன் மூலம் அலாரம் நேரத்தை சரிசெய்யலாம். அதன் உயர் பொத்தான்கள் TIME ஐ சரிசெய்ய இருந்தால். இங்கே நான்கு பொத்தான்கள் உள்ளன, முதலில் அலாரம் அல்லது நேரத்தில் MINUTES ஐ அதிகரிக்க வேண்டும். இரண்டாவது அலாரம் அல்லது நேரத்தில் MINUTES குறைவதற்கு. மூன்றாவது அலாரம் அல்லது நேரத்தில் HOUR ஐ அதிகரிப்பதாகும். நான்கு என்பது அலாரம் அல்லது நேரத்தில் மணிநேரங்களைக் குறைப்பதாகும்.
இங்கே இருக்கும் மின்தேக்கிகள் பொத்தான்களின் எதிர்க்கும் விளைவை அழிக்க வேண்டும். அவை அகற்றப்பட்டால், ஒவ்வொரு முறையும் பொத்தானை அழுத்தும்போது கட்டுப்படுத்தி ஒன்றுக்கு மேற்பட்டவற்றைக் கணக்கிடக்கூடும். ஊசிகளுடன் இணைக்கப்பட்ட மின்தடையங்கள் மின்னோட்டத்தைக் கட்டுப்படுத்துவதற்காக, முள் தரையில் இழுக்க பொத்தானை அழுத்தும்போது.
ஒரு பொத்தானை அழுத்தும் போதெல்லாம், கட்டுப்படுத்தியின் தொடர்புடைய முள் தரையில் இழுக்கப்படும், இதனால் கட்டுப்படுத்தி சில பொத்தானை அழுத்தி, அதனுடன் தொடர்புடைய நடவடிக்கை எடுக்கப்படுவதை அங்கீகரிக்கிறது.
முதலாவதாக, நாம் இங்கு தேர்ந்தெடுக்கும் கடிகாரம் 11059200 ஹெர்ட்ஸ், அதை 1024 ஆல் வகுத்தால் 10800 கிடைக்கிறது. எனவே ஒவ்வொரு நொடிக்கும் 10800 பருப்புகளைப் பெறுகிறோம். எனவே கவுண்டர் கடிகாரத்தை 10800 ஹெர்ட்ஸாகப் பெற 1024 ப்ரீஸ்கேலருடன் ஒரு கவுண்டரைத் தொடங்க உள்ளோம். இரண்டாவதாக நாம் ATMEGA இன் CTC (Clear Timer Counter) பயன்முறையைப் பயன்படுத்தப் போகிறோம். ஒரு 16 பிட் பதிவேடு இருக்கும், அங்கு நாம் ஒரு மதிப்பை சேமிக்க முடியும் (மதிப்பை ஒப்பிடுங்கள்), கவுண்டர் ஒப்பிடும் மதிப்பைக் கணக்கிடும்போது ஒரு குறுக்கீடு உருவாக்க அமைக்கப்படுகிறது.
ஒப்பீட்டு மதிப்பை 10800 ஆக அமைக்கப் போகிறோம், எனவே அடிப்படையில் ஒவ்வொரு விநாடிக்கும் ஒரு ஐ.எஸ்.ஆர் (ஒவ்வொரு ஒப்பீட்டிலும் குறுக்கீடு சேவை வழக்கம்) இருக்கும். எனவே நமக்குத் தேவையான கடிகாரத்தைப் பெற இந்த சரியான நேர வழக்கத்தைப் பயன்படுத்தப் போகிறோம்.

BROWN (WGM10-WGM13): இந்த பிட்கள் டைமருக்கான செயல்பாட்டு முறையைத் தேர்ந்தெடுப்பதற்கானவை.

இப்போது OCR1A பைட்டில் ஒப்பீட்டு மதிப்புடன் CTC பயன்முறையை நாங்கள் விரும்புவதால், நாம் WGM12 ஐ ஒன்றிற்கு அமைக்க வேண்டும், மீதமுள்ளவை இயல்பாக பூஜ்ஜியமாக இருப்பதால் எஞ்சியுள்ளன.
RED (CS10, CS11, CS12): இந்த மூன்று பிட்கள் ப்ரீஸ்கலரைத் தேர்ந்தெடுப்பதற்கும் பொருத்தமான எதிர் கடிகாரத்தைப் பெறுவதற்கும் ஆகும்.

நாங்கள் 1024 ஐ முன்பதிவு செய்ய விரும்புவதால், நாங்கள் CS12 மற்றும் CS10 இரண்டையும் அமைக்க வேண்டும்.
இப்போது நாம் பரிசீலிக்க வேண்டிய மற்றொரு பதிவு உள்ளது:

க்ரீன் (OCIE1A): நாங்கள் அமைத்த எதிர் மதிப்பு மற்றும் OCR1A மதிப்பு (10800) ஆகியவற்றுக்கு இடையிலான ஒப்பீட்டுப் போட்டியில் குறுக்கீடு பெற இந்த பிட் அமைக்கப்பட வேண்டும்.

OCR1A மதிப்பு (எதிர் ஒப்பீட்டு மதிப்பு), மேலே பதிவேட்டில் எழுதப்பட்டுள்ளது.
நிரலாக்க விளக்கம்
அலாரம் கடிகாரத்தின் வேலை கீழே உள்ள குறியீட்டில் படிப்படியாக விளக்கப்பட்டுள்ளது:
# பின்ஸ் மீது தரவு ஓட்டம் கட்டுப்பாட்டை இயக்க // தலைப்பு # F_CPU 1000000 ஐ வரையறுக்கவும் // கட்டுப்படுத்தி படிக அதிர்வெண் இணைக்கப்பட்டுள்ளது # சேர்க்கவும்
