- 16x2 எல்சிடி டிஸ்ப்ளே வேலை
- STM8 மைக்ரோகண்ட்ரோலருடன் இடைமுக எல்சிடிக்கு சுற்று வரைபடம்
- STM8 LCD நூலகம் - STM8S103F3P6 க்கான தலைப்பு கோப்பு
- STM8S மைக்ரோகண்ட்ரோலருக்கான எல்சிடி திட்டம்
- எல்.சி.டி உடன் எஸ்.டி.எம் 8 - வேலை செய்கிறது
16x2 எண்ணெழுத்து எல்சிடி டிஸ்ப்ளே பொழுதுபோக்கு மற்றும் ஆர்வலர்களிடையே பொதுவாக பயன்படுத்தப்படும் காட்சி. நீங்கள் பயனருக்கு அடிப்படை தகவல்களைக் காட்ட விரும்பும் போது காட்சி மிகவும் பயனுள்ளதாக இருக்கும், மேலும் எங்கள் குறியீட்டைச் சோதிக்க அல்லது பிழைத்திருத்தத்திற்கும் இது உதவும். இந்த குறிப்பிட்ட 16x2 எல்சிடி தொகுதி எளிதில் கிடைக்கிறது மற்றும் நீண்ட காலமாக பிரபலமாக உள்ளது. இணைக்கப்பட்ட கட்டுரையில் 16x2 எல்சிடி தொகுதியின் அடிப்படைகளைப் பற்றி மேலும் அறியலாம்.
எங்கள் தொடர் STM8 மைக்ரோகண்ட்ரோலர் டுடோரியல்களைத் தொடர, இந்த டுடோரியலில், STM8 மைக்ரோகண்ட்ரோலருடன் எல்சிடியை எவ்வாறு இடைமுகப்படுத்துவது என்பதைக் கற்றுக்கொள்வோம். நாங்கள் முன்னர் 16x2 எல்சிடியை பல மைக்ரோகண்ட்ரோலர்களுடன் இணைத்துள்ளோம், பயிற்சிகள் கீழே பட்டியலிடப்பட்டுள்ளன, ஆர்வமாக இருந்தால் அவற்றை நீங்கள் சரிபார்க்கலாம்.
நீங்கள் STM8 க்கு புதியவராக இருந்தால், கட்டுப்பாட்டு வாரியம் மற்றும் நிரலாக்க சூழலின் அடிப்படைகளைப் புரிந்துகொள்ள STM8 மைக்ரோகண்ட்ரோலர் கட்டுரையுடன் தொடங்குவதைப் பாருங்கள். இந்த டுடோரியலில் உள்ள அடிப்படைகளை நாங்கள் மறைக்க மாட்டோம்.
16x2 எல்சிடி டிஸ்ப்ளே வேலை
பெயர் குறிப்பிடுவதுபோல், 16x2 எல்சிடிக்கு 16 நெடுவரிசைகள் மற்றும் 2 வரிசைகள் இருக்கும். ஆக மொத்தத்தில், இந்த காட்சியில் 32 எழுத்துக்களைக் காண்பிக்க முடியும், மேலும் இந்த எழுத்துக்கள் எழுத்துக்கள் அல்லது எண்கள் அல்லது குறியீடுகளாக இருக்கலாம். இந்த டுடோரியலில் நாம் பயன்படுத்தும் எளிய 16x2 எல்சிடி பின்அவுட் கீழே காட்டப்பட்டுள்ளது-

நீங்கள் பார்க்க முடியும் என, காட்சி 16 ஊசிகளைக் கொண்டுள்ளது, மேலும் அதை கீழே உள்ள அட்டவணையில் காட்டப்பட்டுள்ளபடி பவர் பின்ஸ், கான்ட்ராஸ்ட் பின், கண்ட்ரோல் பின்ஸ், டேட்டா பின்ஸ் மற்றும் பேக்லைட் பின்ஸ் என ஐந்து பிரிவுகளாக பிரிக்கலாம். இந்த டுடோரியலின் சுற்று வரைபடத்தைப் பற்றி விவாதிக்கும்போது ஒவ்வொரு முள் பற்றிய விவரங்களையும் பெறுவோம்.
| வகை | முள் இல்லை. | முள் பெயர் | செயல்பாடு |
| பவர் பின்ஸ் | 1 | வி.எஸ்.எஸ் | கிரவுண்ட் முள், மைதானத்துடன் இணைக்கப்பட்டுள்ளது |
| 2 | VDD அல்லது Vcc | மின்னழுத்த முள் + 5 வி | |
| மாறுபட்ட முள் | 3 | V0 அல்லது VEE | மாறுபட்ட அமைவு, மாறி மின்தடையின் மூலம் Vcc உடன் இணைக்கப்பட்டுள்ளது. |
| கட்டுப்பாட்டு ஊசிகளை | 4 | ஆர்.எஸ் | பதிவு முள், ஆர்எஸ் = 0 கட்டளை முறை, ஆர்எஸ் = 1 தரவு பயன்முறை |
| 5 | ஆர்.டபிள்யூ | படிக்க / எழுத முள், RW = 0 எழுதும் முறை, RW = 1 வாசிப்பு முறை | |
| 6 | இ | இயக்கு, எல்சிடியை இயக்க உயர் முதல் குறைந்த துடிப்பு தேவை | |
| தரவு பின்ஸ் | 7-14 | டி 0-டி 7 | தரவு பின்ஸ், எல்சிடி அல்லது கட்டளை வழிமுறைகளில் காட்டப்பட வேண்டிய தரவை சேமிக்கிறது |
| பின்னொளி ஊசிகளும் | 15 | எல்.ஈ.டி + அல்லது ஏ | பின்னொளி + 5 வி சக்தியளிக்க |
| 16 | எல்.ஈ.டி- அல்லது கே | பின்னொளி மைதானம் |
எல்சிடியின் பின்புறத்தில், கீழே உள்ள படத்தில் காட்டப்பட்டுள்ளபடி, நீங்கள் இரண்டு கருப்பு புள்ளிகளைக் காண்பீர்கள், அதன் உள்ளே எங்களிடம் HD44780 எல்சிடி டிரைவர் ஐசி (சிவப்பு நிறத்தில் சூழப்பட்டுள்ளது) உள்ளது. எங்கள் மைக்ரோகண்ட்ரோலர் இந்த ஐசியுடன் தொடர்பு கொள்ள வேண்டும், இது எல்சிடியில் காண்பிக்கப்படுவதைக் கட்டுப்படுத்தும். இவை அனைத்தும் எவ்வாறு சரியாக இயங்குகின்றன என்பதை அறிய நீங்கள் ஆர்வமாக இருந்தால், 16x2 எல்சிடி டிஸ்ப்ளேவின் செயல்பாட்டை நீங்கள் பார்க்க வேண்டும், அங்கு எல்சிடி எவ்வாறு விரிவாக செயல்படுகிறது என்பதை நாங்கள் ஏற்கனவே விவாதித்தோம்.

இந்த டுடோரியலில், எளிய எல்சிடி_பிரண்ட் _சார் மற்றும் எல்சிடி_பிரண்ட்_ஸ்ட்ரிங் கட்டளைகளைப் பயன்படுத்தி 16x2 எல்சிடி டிஸ்ப்ளேயில் அகரவரிசை எழுத்துக்கள் (எழுத்துக்கள் மற்றும் எண்கள்) காண்பிக்க சுற்று வரைபடம் மற்றும் குறியீட்டைப் பற்றி விவாதிப்போம். இந்த கட்டளைகளை எங்கள் தலைப்புக் கோப்பைச் சேர்த்த பிறகு நிரலில் நேரடியாகப் பயன்படுத்தலாம். தலைப்பு கோப்பு உங்களுக்கான எல்லா விஷயங்களையும் கையாள்கிறது, எனவே காட்சி அல்லது HD44780 இயக்கி ஐசி எவ்வாறு இயங்குகிறது என்பதை அறிந்து கொள்வது கட்டாயமில்லை.
STM8 மைக்ரோகண்ட்ரோலருடன் இடைமுக எல்சிடிக்கு சுற்று வரைபடம்
முழுமையான STM8 LCD சர்க்யூட்டை கீழே உள்ள படத்தில் காணலாம். எல்.சி.டி உடனான எஸ்.டி.எம் 8 எஸ் 103 எஃப் 3 பி 6 கன்ட்ரோலருக்கான இணைப்பு மிகவும் எளிதானது என்பதை நீங்கள் காண முடியும் என்பதால், எல்.சி.டி டிஸ்ப்ளே எங்கள் போர்டுடன் நேரடியாக இணைக்கப்பட்டுள்ளது, மேலும் எஸ்.டி-லிங்க் போர்டையும் நிரல் செய்ய இணைக்கப்பட்டுள்ளது.

பவர் பின்கள் Vss மற்றும் Vcc ஆகியவை STM8S போர்டில் உள்ள 5V முள் உடன் இணைக்கப்பட்டுள்ளன, எல்சிடியின் இயக்க மின்னழுத்தம் 5 வி மற்றும் 3.3 வி இல் இயங்க இணைக்கப்பட்டுள்ளது என்பதை நினைவில் கொள்க. எனவே STM8S103F3P6 மைக்ரோகண்ட்ரோலர் 3.3V இல் இயங்குகிறது என்றாலும், எல்சிடிக்கு 5 வி சப்ளை செய்வது கட்டாயமாக இருந்தாலும், சார்ஜ் கன்ட்ரோலர் ஐசியைப் பயன்படுத்துவதன் மூலம் இதைத் தவிர்க்கலாம், ஆனால் இந்த டுடோரியலில் நாங்கள் அதைப் பற்றி விவாதிக்க மாட்டோம்.
அடுத்து, எல்.சி.டியின் மாறுபாட்டை அமைக்கப் பயன்படுத்தப்படும் கான்ட்ராஸ்ட் முள் எங்களிடம் உள்ளது, அதை நாம் பொட்டென்டோமீட்டருடன் இணைத்துள்ளோம், இதனால் மாறுபாட்டைக் கட்டுப்படுத்த முடியும். நாங்கள் ஒரு 10 கே பானையைப் பயன்படுத்தினோம், ஆனால் நீங்கள் அருகிலுள்ள பிற மதிப்புகளையும் பயன்படுத்தலாம், பானை கான்ட்ராஸ்ட் முள் 0-5 V ஐ வழங்குவதற்கான சாத்தியமான வகுப்பாளராக செயல்படுகிறது, பொதுவாக நியாயமான மாறுபாட்டிற்காக 2.2V ஐ வழங்க நேரடியாக ஒரு மின்தடையையும் பயன்படுத்தலாம். மதிப்பு. பின்னர் மீட்டமை (RS), படிக்க / எழுது (RW) மற்றும் இயக்கு (E) ஊசிகளை வைத்திருக்கிறோம். எல்.சி.டி யிலிருந்து எதையும் நாங்கள் படிக்க மாட்டோம், ஏனெனில் நாங்கள் எழுதும் செயல்பாடுகளை மட்டுமே செய்வோம். மற்ற இரண்டு கட்டுப்பாட்டு ஊசிகளான ரூ மற்றும் ஈ முறையே பிஏ 1 மற்றும் பிஏ 2 ஊசிகளுடன் இணைக்கப்பட்டுள்ளன.
பின்னர் DB0 முதல் DB7 வரை தரவு ஊசிகளை வைத்திருக்கிறோம். 16x2 எல்சிடி இரண்டு முறைகளில் இயங்க முடியும், ஒன்று 8-பிட் செயல்பாட்டு பயன்முறையாகும், அங்கு எல்சிடி-யில் உள்ள அனைத்து 8 டேட்டா பின்ஸையும் (டிபி 0-டிபி 7) பயன்படுத்த வேண்டும், மற்றொன்று 4 பிட் ஆபரேஷன் பயன்முறையாகும். தரவு ஊசிகளும் (DB4-DB7). 4-பிட் பயன்முறை பொதுவாகப் பயன்படுத்தப்படுகிறது, ஏனெனில் இதற்கு கட்டுப்படுத்தியிடமிருந்து குறைந்த ஜிபிஐஓ ஊசிகளும் தேவைப்படுகின்றன, எனவே இந்த டுடோரியலில் 4 பிட் பயன்முறையையும் பயன்படுத்தியுள்ளோம், மேலும் டிபி 4, டிபி 5, டிபி 6 மற்றும் டிபி 7 ஊசிகளை மட்டுமே பி.டி 1, பி.டி 2, பி.டி 3 உடன் இணைத்துள்ளோம்., மற்றும் PD4 முறையே.
கடைசி இரண்டு ஊசிகளான பி.எல்.ஏ மற்றும் பி.எல்.கே ஆகியவை உள் பின்னொளி எல்.ஈ. எங்கள் முந்தைய டுடோரியலில் எப்போதும் போலவே ST-Link புரோகிராமர் இணைக்கப்பட்டுள்ளது. நான் ப்ரெட்போர்டில் முழுமையான இணைப்பைச் செய்தேன், எனது அமைவு கீழே உள்ள படத்தில் காட்டப்பட்டுள்ளது போல் தெரிகிறது.

STM8 LCD நூலகம் - STM8S103F3P6 க்கான தலைப்பு கோப்பு
சுற்று வரைபடத்தில் தொடர்வதற்கு முன், பின்வரும் இணைப்பைப் பயன்படுத்தி கிட்ஹப்பிலிருந்து STM8 LCD தலைப்பு கோப்பைப் பெறுவோம்-
STM8S 16x2 LCD தலைப்பு கோப்பு
நீங்கள் முழுமையான ரெப்போவை பதிவிறக்கம் செய்து stm8s103_LCD_16x2.h கோப்பைப் பெறலாம் அல்லது மேலே உள்ள இணைப்பிலிருந்து குறியீட்டை எளிமையாக்கலாம். திட்டத்தை அமைக்கும் போது, இந்த தலைப்புக் கோப்போடு தேவையான அனைத்து தலைப்பு கோப்புகளையும் இன்க் கோப்பகத்தில் சேர்ப்பதை உறுதிசெய்க.

தலைப்பு கோப்புகளை எவ்வாறு சேர்ப்பது மற்றும் நிரலை தொகுப்பது என்று உங்களுக்குத் தெரியாவிட்டால், இந்தப் பக்கத்தின் கீழே உள்ள வீடியோவைப் பின்தொடரவும். தலைப்பு கோப்பின் உள்ளே உள்ள குறியீடு எவ்வாறு செயல்படுகிறது என்பது பற்றி நீங்கள் ஆர்வமாக இருந்தால், எல்.சி.டி டுடோரியலுடன் PIC ஐப் பார்க்கலாம். இந்த திட்டத்தில் பயன்படுத்தப்படும் தலைப்பு கோப்பு அங்கு விளக்கப்பட்டுள்ள கோப்பிற்கு மிகவும் ஒத்திருக்கிறது, எனவே அதன் விவரங்களை நாங்கள் பெற மாட்டோம்.
STM8S மைக்ரோகண்ட்ரோலருக்கான எல்சிடி திட்டம்
ஆர்ப்பாட்டத்திற்காக, "சர்க்யூட் டைஜஸ்ட்" போன்ற எளிய சரம் காண்பிக்க எங்கள் STM8S கட்டுப்படுத்தியை நிரல் செய்வோம், பின்னர் இரண்டாவது வரியில் ஒவ்வொரு விநாடிக்கும் ஒரு "சோதனை" மதிப்பை அதிகரிப்போம். முழுமையான நிரலை இந்த பக்கத்தின் கீழே காணலாம். விளக்கம் பின்வருமாறு.
ஊசிகளை வரையறுத்து, தேவையான தலைப்பு கோப்புகளை எப்போதும் சேர்ப்பதன் மூலம் எங்கள் நிரலைத் தொடங்குகிறோம். மேலே விவாதிக்கப்பட்ட எங்கள் சுற்று வரைபடத்தில், நாங்கள் LCD_RS ஐ PA1 உடன் இணைத்துள்ளோம் , எனவே இதை LCD_RS GPIOA, GPIO_PIN_1 என வரையறுத்துள்ளோம் . இதேபோல், மற்ற ஊசிகளுக்கும் நாங்கள் செய்துள்ளோம். அவர்கள் வேறு சுற்றுகளைப் பின்பற்றுகிறார்களானால், அதற்கேற்ப இந்த மதிப்புகளை மாற்றுவதை உறுதிசெய்க.
வரையறுத்து LCD_RS GPIOA, GPIO_PIN_1 வரையறுத்து LCD_EN GPIOA, GPIO_PIN_2 வரையறுத்து LCD_DB4 GPIOD, GPIO_PIN_1 வரையறுத்து LCD_DB5 GPIOD, GPIO_PIN_2 வரையறுத்து LCD_DB6 GPIOD, GPIO_PIN_3 வரையறுத்து LCD_DB7 GPIOD, GPIO_PIN_4 # அடங்கும் "STM8S.h" # அடங்கும் "stm8s103_LCD_16x2.h"
எங்கள் பிரதான நிரலுக்குள், இந்த மாதிரி குறியீட்டிற்கு தேவையான மாறிகள் அறிவித்துள்ளோம். டெஸ்ட்_வார் எனப்படும் சோதனை மாறி எங்களிடம் உள்ளது, இது பூஜ்ஜியத்திற்கு துவக்கப்படுகிறது, நாங்கள் மாறியை அதிகரித்து எல்சிடியில் காண்பிப்போம். டி 1 முதல் டி 4 வரையிலான எழுத்துக்கள் சோதனை மாறியின் 4 இலக்கங்களைக் குறிக்கின்றன, ஏனெனில் எங்கள் எல்சிடி முழு எண்ணை நேரடியாகக் காட்ட முடியாது, அவற்றை நாம் எழுத்துக்களாக மாற்ற வேண்டும்.
// மாறி அறிவிப்புகள் int test_var = 0; கரி d4, d3, d2, d1;
LCD_Begin () செயல்பாடு எல்சிடி துவக்க பயன்படுத்தப்படுகிறது. இந்த செயல்பாடு தேவையான அனைத்து GPIO ஊசிகளையும் துவக்கும் மற்றும் LCD ஐ 16x2 LCD பயன்முறையில் அமைக்கும். எல்.சி.டி.யில் உள்ள அனைத்து மதிப்புகளையும் அழிக்கப் பயன்படும் எல்.சி.டி_ கிளியர் () செயல்பாடு எங்களிடம் உள்ளது, இது எல்.சி.டி-யில் உள்ள அனைத்தையும் அழித்துவிடும், இதனால் புதிய மதிப்புகளை எழுதுவது சுத்தமாக இருக்கும். எல்.சி.டி_செட்_ கர்சர் (எக்ஸ், ஒய்) செயல்பாடு எங்களிடம் உள்ளது, அங்கு x மற்றும் y என்பது நமது புதிய எழுத்தை எழுத வேண்டிய நிலைகள். எடுத்துக்காட்டாக, (1,1) முதல் வரிசை மற்றும் முதல் கோலம் என்று பொருள்படும், இதேபோல் (2,12) இரண்டாவது வரிசை 12 நெடுவரிசை என்று பொருள். நாம் முன்பு விவாதித்தபடி இங்கே 2 வரிசைகள் மற்றும் 16 நெடுவரிசைகள் உள்ளன என்பதை நினைவில் கொள்க.
Lcd_Begin (); Lcd_Clear (); எல்சிடி_செட்_ கர்சர் (1,1);
இப்போது, எல்சிடி அமைக்கப்பட்டுள்ளது, அழிக்கப்படுகிறது, மற்றும் கர்சர் அந்த இடத்தில் உள்ளது. அடுத்த விஷயம் திரையில் ஏதாவது அச்சிடுவது. நாம் பயன்படுத்த முடியும் LCD_Print_String ("மாதிரி சரம்") எல்சிடி மற்றும் ஒரு சரம் அச்சிட LCD_Print_Char (அ) எல்சிடி ஒரு பாத்திரம் மதிப்பு அச்சிட. இங்கே எங்கள் திட்டத்தில் “STM8S103F3P3 LCD” ஐ அச்சிட்டு, கீழே உள்ள குறியீட்டைப் பயன்படுத்தி 5 விநாடிகள் தாமதத்தை உருவாக்கியுள்ளோம்.
Lcd_Print_String ("STM8S103F3P3 LCD"); delay_ms (5000);
5 வினாடி தாமதத்திற்குப் பிறகு, எல்.சி.டி.யை மீண்டும் அழித்து, முதல் வரிசையில் “சர்க்யூட் டைஜஸ்ட்” மற்றும் “டெஸ்ட்:” ஐ இரண்டாவது வரிசையில் காண்பிப்போம்.
Lcd_Clear (); எல்சிடி_செட்_ கர்சர் (1,1); Lcd_Print_String ("சர்க்யூட் டைஜஸ்ட்"); எல்சிடி_செட்_ கர்சர் (2,1); Lcd_Print_String ("சோதனை:");
உள்ளே போது லூப், நாம் முழு மாறி மதிப்பு பிளவு படுத்திவிடும் test_var எனவே தனிப்பட்ட எழுத்துக்கள் அதை எளிய பிரிவு மற்றும் தனிமதிப்பு ஆபரேட்டர்கள் ஐப் பயன்படுத்தும் LCD காட்டப்படும் முடியும் என்று. ஆஸ்கி மதிப்பை எழுத்துக்குறி மாற்ற '0' ஐ சேர்த்துள்ளோம்.
d4 = test_var% 10 + '0'; d3 = (test_var / 10)% 10 + '0'; d2 = (test_var / 100)% 10 + '0'; d1 = (test_var / 1000) + '0';
இரண்டாவது வரிசையில் 6 எழுத்துக்கள் கொண்ட “டெஸ்ட்:” ஐ ஏற்கனவே எழுதியுள்ளதால் கர்சரை (2,6) அமைத்துள்ளோம். நாம் மேலெழுதினால், இருக்கும் எழுத்துக்குறி எல்சிடியில் புதிய எழுத்துடன் மாற்றப்படும். தாமதத்தை 1 வினாடி சேர்த்துள்ளோம் மற்றும் மாறியை அதிகரிக்கிறோம்.
எல்சிடி_செட்_ கர்சர் (2,6); எல்சிடி_பிரண்ட்_சார் (டி 1); எல்சிடி_பிரிண்ட்_சார் (டி 2); எல்சிடி_பிரிண்ட்_சார் (டி 3); எல்சிடி_பிரண்ட்_சார் (டி 4); delay_ms (1000); test_var ++;
எல்.சி.டி உடன் எஸ்.டி.எம் 8 - வேலை செய்கிறது
எங்கள் நிரலைச் சோதிக்க, குறியீட்டை எங்கள் கட்டுப்படுத்தியில் பதிவேற்றி, மைக்ரோ-யூ.எஸ்.பி போர்ட்டுடன் அதை இயக்கவும். எல்சிடிக்கு வேலை செய்ய 5 வி தேவைப்படுகிறது என்பதை நினைவில் கொள்க, எனவே யூ.எஸ்.பி போர்ட்டிலிருந்து போர்டை இயக்குவது கட்டாயமாகும். 5 வி வழங்கல் எங்களுக்குத் தேவையில்லை என்பதால் இதை எஸ்.டி-இணைப்பிலிருந்து நேரடியாக இயக்கியுள்ளோம்.

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