விசைப்பலகைகள் பரவலாகப் பயன்படுத்தப்படும் உள்ளீட்டு சாதனங்கள் பல்வேறு மின்னணுவியல் மற்றும் உட்பொதிக்கப்பட்ட திட்டங்களில் பயன்படுத்தப்படுகின்றன. அவை எண்கள் மற்றும் ஆல்பாபெட்டுகள் வடிவில் உள்ளீடுகளை எடுக்கப் பயன்படுகின்றன, மேலும் செயலாக்கத்திற்கான கணினியில் உணவளிக்கின்றன. இந்த டுடோரியலில் 8051 மைக்ரோகண்ட்ரோலருடன் 4x4 மேட்ரிக்ஸ் விசைப்பலகையை இடைமுகப்படுத்த உள்ளோம்.
4 எக்ஸ் 4 மேட்ரிக்ஸ் கீபேட்
விசைப்பலகையை மைக்ரோகண்ட்ரோலருடன் இடைமுகப்படுத்துவதற்கு முன்பு, அது எவ்வாறு இயங்குகிறது என்பதை முதலில் புரிந்து கொள்ள வேண்டும். மேட்ரிக்ஸ் விசைப்பலகையானது புஷ் பொத்தான்களின் தொகுப்பைக் கொண்டுள்ளது, அவை ஒன்றோடொன்று இணைக்கப்பட்டுள்ளன. எங்கள் விஷயத்தைப் போலவே நாங்கள் 4 எக்ஸ் 4 மேட்ரிக்ஸ் விசைப்பலகையைப் பயன்படுத்துகிறோம், இதில் நான்கு வரிசைகளில் ஒவ்வொன்றிலும் 4 புஷ் பொத்தான்கள் உள்ளன. மேலும் புஷ் பொத்தான்களின் முனையங்கள் வரைபடத்தின்படி இணைக்கப்பட்டுள்ளன. முதல் வரிசையில், அனைத்து 4 புஷ் பொத்தான்களின் ஒரு முனையமும் ஒன்றாக இணைக்கப்பட்டுள்ளன, மேலும் 4 புஷ் பொத்தான்களின் மற்றொரு முனையம் ஒவ்வொன்றும் 4 நெடுவரிசைகளைக் குறிக்கும், ஒவ்வொரு வரிசையிலும் ஒரே மாதிரியாக இருக்கும். எனவே மைக்ரோகண்ட்ரோலருடன் இணைக்க 8 டெர்மினல்களைப் பெறுகிறோம்.

8051 மைக்ரோகண்ட்ரோலருடன் (AT89S52) இடைமுக விசைப்பலகை

KEYPAD மூலம் ஊட்டப்படும் தரவைக் காண்பிக்க முதலில் எல்சிடி தொகுதியை நாம் இடைமுகப்படுத்த வேண்டும், எனவே தயவுசெய்து KEYPAD ஐ இடைமுகப்படுத்துவதற்கு முன்பு “8051 மைக்ரோகண்ட்ரோலருடன் எல்சிடி இன்டர்ஃபேசிங்” கட்டுரையின் வழியாக செல்லுங்கள்.
மேலேயுள்ள சுற்று வரைபடத்தில் காட்டப்பட்டுள்ளபடி, விசைப்பலகையை இடைமுகப்படுத்த, விசைப்பலகையின் 8 முனையங்களை மைக்ரோகண்ட்ரோலரின் எந்த துறைமுகத்திற்கும் (8 பின்ஸ்) இணைக்க வேண்டும். 8051 இன் போர்ட் 1 உடன் கீபேட் டெர்மினல்களை இணைத்துள்ளதைப் போல. எந்த பொத்தானையும் அழுத்தும் போதெல்லாம் நாம் பொத்தானின் இருப்பிடத்தைப் பெற வேண்டும், அதாவது அதனுடன் தொடர்புடைய ROW ஒரு COLUMN எண். பொத்தானின் இருப்பிடத்தைப் பெற்றதும், அதற்கேற்ப எழுத்தை அச்சிடலாம்.
இப்போது கேள்வி அழுத்தும் பொத்தானின் இருப்பிடத்தை எவ்வாறு பெறுவது? இதை நான் கீழே உள்ள படிகளில் விளக்கப் போகிறேன், மேலும் நீங்கள் குறியீட்டைப் பார்க்க விரும்புகிறேன்:
1. முதலில் நாம் அனைத்து வரிசைகளையும் லாஜிக் நிலை 0 ஆகவும், அனைத்து நெடுவரிசைகளையும் லாஜிக் நிலை 1 ஆகவும் செய்துள்ளோம்.
2. நாம் ஒரு பொத்தானை அழுத்தும் போதெல்லாம், அந்த பொத்தானுடன் தொடர்புடைய நெடுவரிசை மற்றும் வரிசை குறுகியதாகி, அதனுடன் தொடர்புடைய நெடுவரிசையை தர்க்க நிலை 0 ஆக மாற்றுகிறது. ஏனெனில் அந்த நெடுவரிசை வரிசையுடன் இணைக்கப்பட்டுள்ளது (சுருக்கப்பட்டது), இது தர்க்க நிலை 0 இல் உள்ளது. நெடுவரிசை எண். முக்கிய () செயல்பாட்டைக் காண்க.

3. இப்போது நாம் வரிசை எண் கண்டுபிடிக்க வேண்டும், எனவே ஒவ்வொரு நெடுவரிசையுடனும் நான்கு செயல்பாடுகளை உருவாக்கியுள்ளோம். நெடுவரிசை ஒன்றின் எந்த பொத்தானையும் அழுத்தினால் போல, வரிசை எண் கண்டுபிடிக்க, செயல்பாடு row_finder1 () ஐ அழைக்கிறோம்.
4. row_finder1 () செயல்பாட்டில், நாங்கள் தர்க்க நிலைகளை மாற்றியமைத்தோம், அதாவது இப்போது அனைத்து வரிசைகளும் 1 மற்றும் நெடுவரிசைகள் 0 ஆகும். இப்போது அழுத்தப்பட்ட பொத்தானின் வரிசை 0 ஆக இருக்க வேண்டும், ஏனெனில் அது பொத்தானை அழுத்தும் நெடுவரிசையுடன் இணைக்கப்பட்டுள்ளது (சுருக்கப்பட்டது), மற்றும் அனைத்து நெடுவரிசைகளும் 0 தர்க்கத்தில் உள்ளன. எனவே அனைத்து வரிசைகளையும் 0 க்கு ஸ்கேன் செய்துள்ளோம்.

5. ஆகவே, தர்க்கம் 0 இல் வரிசையைக் கண்டால், அது அழுத்தும் பொத்தானின் வரிசை என்று பொருள். எனவே இப்போது நெடுவரிசை எண் (படி 2 இல் கிடைத்தது) மற்றும் வரிசை எண்., இல்லை என்பதை அச்சிடலாம். lcd_data செயல்பாட்டைப் பயன்படுத்தி அந்த பொத்தானின்.
ஒவ்வொரு பொத்தானை அழுத்தவும் அதே நடைமுறை பின்பற்றப்படுகிறது, மேலும் பொத்தானை அழுத்துகிறதா இல்லையா என்பதை தொடர்ந்து சரிபார்க்க (1) பயன்படுத்துகிறோம்.
