- பி.ஐ.சி மைக்ரோகண்ட்ரோலருடன் எல்.சி.டி.யை இடைமுகப்படுத்துவதற்கான செயல்பாடுகள்:
- சுற்று வரைபடம் மற்றும் சோதனை:
இது எங்கள் PIC டுடோரியல் தொடரில் எங்கள் ஆறாவது பயிற்சி, இந்த டுடோரியலில் PIC மைக்ரோகண்ட்ரோலருடன் 16x2 LCD இன் இடைமுகத்தைக் கற்றுக்கொள்கிறோம். எங்கள் முந்தைய டுடோரியல்களில், சில எல்.ஈ.டி ஒளிரும் திட்டங்களைப் பயன்படுத்தி பி.ஐ.சியின் அடிப்படைகளை நாங்கள் கற்றுக் கொண்டோம், மேலும் பி.ஐ.சி மைக்ரோகண்ட்ரோலரில் டைமர்களை எவ்வாறு பயன்படுத்துவது என்பதையும் கற்றுக்கொண்டோம். MPLABX மற்றும் XC8 கம்பைலரைப் பயன்படுத்தி PIC மைக்ரோகண்ட்ரோலர்களைக் கற்றல் குறித்த அனைத்து பயிற்சிகளையும் இங்கே பார்க்கலாம்.
இந்த பயிற்சி ஒரு சுவாரஸ்யமான ஒன்றாக இருக்கும், ஏனெனில் PIC16F877A உடன் 16 × 2 எல்சிடியை எவ்வாறு இடைமுகப்படுத்துவது என்பதைக் கற்றுக்கொள்வோம், இந்த டுடோரியலின் முடிவில் விரிவான வீடியோவைச் சரிபார்க்கவும். பயனர் அறிகுறிகளுக்கு எல்.ஈ.டிகளைப் பயன்படுத்திய பழைய நாட்கள் முடிந்துவிட்டன. எல்சிடி டிஸ்ப்ளேக்களைப் பயன்படுத்துவதன் மூலம் எங்கள் திட்டங்களை எவ்வாறு மிகவும் குளிராகவும் பயனுள்ளதாகவும் மாற்றலாம் என்பதைப் பார்ப்போம். 8051 உடன் இடைமுக எல்சிடி பற்றிய எங்கள் முந்தைய கட்டுரைகளையும், அர்டுயினோவுடன், ராஸ்பெர்ரி பை, ஏ.வி.ஆருடன் சரிபார்க்கவும்.
பி.ஐ.சி மைக்ரோகண்ட்ரோலருடன் எல்.சி.டி.யை இடைமுகப்படுத்துவதற்கான செயல்பாடுகள்:
விஷயங்களை எளிதாக்குவதற்கு, இந்த எல்.சி.டி.யை எங்கள் PIC16F877A உடன் பயன்படுத்தும் போது விஷயங்களை எளிதாக்கும் ஒரு சிறிய நூலகத்தை நாங்கள் செய்துள்ளோம். "MyLCD.h" என்ற தலைப்பு கோப்பு பதிவிறக்கத்திற்காக இங்கே கொடுக்கப்பட்டுள்ளது, இதில் PIC MCU ஐப் பயன்படுத்தி எல்சிடியை இயக்க தேவையான அனைத்து செயல்பாடுகளும் உள்ளன. கருத்துக் கோடுகளால் நூலகக் குறியீடு நன்கு விளக்கப்பட்டுள்ளது, ஆனால் உங்களுக்கு இன்னும் சந்தேகம் இருந்தால் கருத்துப் பிரிவு மூலம் எங்களை அணுகலாம். அடிப்படை எல்சிடி வேலை மற்றும் அதன் பின்அவுட்களுக்காக இந்த கட்டுரையை சரிபார்க்கவும்.
குறிப்பு: உங்கள் தலைப்பு கோப்பில் உண்மையில் என்ன நடக்கிறது என்பதை அறிய எப்போதும் பரிந்துரைக்கப்படுகிறது, ஏனெனில் இது பிழைத்திருத்தத்தில் அல்லது MCU ஐ மாற்றும்போது உங்களுக்கு உதவும்.
இப்போது, இந்த நிரலை உங்கள் நிரலில் சேர்க்க இரண்டு வழிகள் உள்ளன. நீங்கள் மேலே உள்ள அனைத்து குறியீடுகளையும் MyLCD.h இல் நகலெடுத்து வெற்றிட பிரதான () க்கு முன் ஒட்டலாம். அல்லது இணைப்பைப் பயன்படுத்தி தலைப்பு கோப்பை பதிவிறக்கம் செய்து அவற்றை உங்கள் திட்டத்தின் தலைப்பு கோப்பில் சேர்க்கலாம் ( # அடங்கும் "MyLCD.h "; ). தலைப்பு கோப்பில் வலது கிளிக் செய்து, ஏற்கனவே உள்ள பொருளைச் சேர் என்பதைத் தேர்ந்தெடுத்து இந்த தலைப்பு கோப்பில் உலாவுவதன் மூலம் இதைச் செய்யலாம்.
இங்கே நான் தலைப்பு கோப்பு குறியீட்டை எனது பிரதான சி கோப்பில் நகலெடுத்து ஒட்டினேன். எனவே நீங்கள் எங்கள் குறியீட்டைப் பயன்படுத்துகிறீர்கள் என்றால், உங்கள் நிரலில் தலைப்பு கோப்பை பதிவிறக்கம் செய்து சேர்க்க தேவையில்லை , இந்த டுடோரியலின் முடிவில் கொடுக்கப்பட்ட முழுமையான குறியீட்டைப் பயன்படுத்தவும். இந்த நூலகம் PIC16F தொடர் PIC மைக்ரோகண்ட்ரோலரை மட்டுமே ஆதரிக்கும் என்பதையும் நினைவில் கொள்க.
இங்கே எங்கள் தலைப்பு கோப்பின் உள்ளே ஒவ்வொரு செயல்பாட்டையும் விளக்குகிறேன்:
void Lcd_Start (): இந்த செயல்பாடு எங்கள் எல்சிடியுடன் வேலை செய்ய அழைக்கப்பட வேண்டிய முதல் செயல்பாடாக இருக்க வேண்டும். நிரலில் பின்னடைவைத் தவிர்க்க இந்த செயல்பாட்டை ஒரு முறை மட்டுமே அழைக்க வேண்டும்.
வெற்றிட Lcd_Start () {Lcd_SetBit (0x00); for (int i = 1065244; i <= 0; i--) NOP (); எல்சிடி_சிஎம்டி (0x03); __ தாமத_எம்எஸ் (5); எல்சிடி_சிஎம்டி (0x03); __ தாமத_எம்எஸ் (11); எல்சிடி_சிஎம்டி (0x03); எல்சிடி_சிஎம்டி (0x02); // 02H வீடு திரும்புவதற்கு பயன்படுத்தப்படுகிறது -> ரேமை அழித்து எல்சிடி எல்சிடி_சிஎம்டியை (0x02) துவக்குகிறது; // 02H வீடு திரும்புவதற்கு பயன்படுத்தப்படுகிறது -> ரேமை அழித்து எல்சிடி எல்சிடி_சிஎம்டியை (0x08) துவக்குகிறது; // வரிசை 1 Lcd_Cmd (0x00) ஐத் தேர்ந்தெடுக்கவும்; // வரிசை 1 காட்சியை அழி Lcd_Cmd (0x0C); // வரிசை 2 Lcd_Cmd (0x00) ஐத் தேர்ந்தெடுக்கவும்; // வரிசை 2 காட்சி தெளிவான Lcd_Cmd (0x06); }
Lcd_Clear (): இந்த செயல்பாடு எல்சிடி திரையை அழிக்கிறது மற்றும் முந்தைய தரவுகளின் தோற்றத்தை அழிக்க சுழல்களுக்குள் பயன்படுத்தலாம்.
Lcd_Clear () {Lcd_Cmd (0); // எல்சிடி எல்சிடி_சிஎம்டியை அழிக்கவும் (1); // கர்சரை முதல் நிலைக்கு நகர்த்தவும்}
வெற்றிட Lcd_Set_Cursor (x pos, y pos): தொடங்கியதும், எங்கள் எல்சிடி கட்டளைகளை எடுக்கத் தயாராக உள்ளது, இந்தச் செயல்பாட்டைப் பயன்படுத்தி எல்சிடியின் கர்சரை உங்களுக்கு விருப்பமான இடத்தில் அமைக்குமாறு அறிவுறுத்தலாம். 1 வது வரிசையின் 5 வது எழுத்தில் கர்சர் தேவைப்பட்டால், பின்னர் செயல்பாடு Lcd_Set_Cursor (1, 5) வெற்றிடமாக இருக்கும்
வெற்றிட Lcd_Set_Cursor (char a, char b) {char temp, z, y; if (a == 1) {temp = 0x80 + b - 1; // 80H கர்சரை நகர்த்த பயன்படுகிறது z = temp >> 4; // குறைந்த 8-பிட்கள் y = தற்காலிக & 0x0F; // மேல் 8-பிட்கள் Lcd_Cmd (z); // வரிசை Lcd_Cmd (y) ஐ அமைக்கவும்; // நெடுவரிசையை அமைக்கவும்} else என்றால் (a == 2) {temp = 0xC0 + b - 1; z = தற்காலிக >> 4; // குறைந்த 8-பிட்கள் y = தற்காலிக & 0x0F; // மேல் 8-பிட்கள் Lcd_Cmd (z); // வரிசை Lcd_Cmd (y) ஐ அமைக்கவும்; // நெடுவரிசையை அமைக்கவும்}}
வெற்றிட Lcd_Print_Char (கரி தரவு): கர்சர் அமைக்கப்பட்டவுடன், இந்த செயல்பாட்டை எளிமையாக அழைப்பதன் மூலம் ஒரு எழுத்தை அதன் நிலைக்கு எழுதலாம்.
வெற்றிட Lcd_Print_Char (கரி தரவு) // 4-பிட் பயன்முறையின் மூலம் 8-பிட்களை அனுப்பவும் {char Lower_Nibble, Upper_Nibble; லோயர்_நிபிள் = தரவு & 0x0F; மேல்_நிபிள் = தரவு & 0xF0; ஆர்எஸ் = 1; // => RS = 1 Lcd_SetBit (மேல்_நிபில் >> 4); // 4 EN = 1 ஆல் மாற்றுவதன் மூலம் மேல் பாதியை அனுப்பவும்; for (int i = 2130483; i <= 0; i--) NOP (); EN = 0; எல்சிடி_செட் பிட் (லோயர்_நிபிள்); // கீழ் பாதியை அனுப்பவும் EN = 1; for (int i = 2130483; i <= 0; i--) NOP (); EN = 0; }
வெற்றிட Lcd_Print_String (char * a): எழுத்துகளின் குழு காட்டப்பட வேண்டுமானால், சரம் செயல்பாட்டைப் பயன்படுத்தலாம்.
வெற்றிட Lcd_Print_String (char * a) {int i; for (i = 0; a! = '\ 0'; i ++) Lcd_Print_Char (a); // சுட்டிகளைப் பயன்படுத்தி சரத்தைப் பிரித்து சார் செயல்பாட்டை அழைக்கவும்}
ஒவ்வொரு முறையும் Lcd_Print_Char (char data) என்று அழைக்கப்படும் போது, அந்தந்த எழுத்து மதிப்புகள் எல்சிடியின் தரவு வரிகளுக்கு அனுப்பப்படும். இந்த எழுத்துக்கள் பிட்கள் வடிவில் HD44780U ஐ அடைகின்றன. இப்போது இந்த ஐசி கீழே உள்ள அட்டவணையில் காட்டப்பட்டுள்ளபடி அதன் ரோம் நினைவகத்தைப் பயன்படுத்தி காண்பிக்கப்பட வேண்டிய எழுத்துக்குறியுடன் தொடர்புடையது. HD44780U எல்சிடி கன்ட்ரோலரின் தரவுத்தாள் அனைத்து எழுத்துக்களுக்கும் பிட்களைக் காணலாம் .

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

மேலேயுள்ள சுற்றுக்கு மின்சாரம் அல்லது ஐசிஎஸ்பி இணைப்பை நான் காட்டவில்லை, முந்தைய டுடோரியலில் நாங்கள் பயன்படுத்திய அதே போர்டை நாங்கள் பயன்படுத்துகிறோம் என்பதால், இங்கே பாருங்கள்.

நிரலில் கவனிக்க வேண்டிய ஒரு முக்கியமான விஷயம் எல்சிடியின் முள் வரையறைகள்:
# RS RD2 ஐ வரையறுக்கவும் # EN RD3 ஐ வரையறுக்கவும் # D4 RD4 ஐ வரையறுக்கவும் # D5 RD5 ஐ வரையறுக்கவும் # D6 RD6 ஐ வரையறுக்கவும் # D7 RD7 ஐ வரையறுக்கவும்
புரோகிராமர்கள் வன்பொருள் அமைப்பின் படி இந்த முள் வரையறைகளை மாற்றலாம். நீங்கள் இங்கே மாறினால் முக்கிய செயல்பாட்டில் மதிப்பிற்குரிய போர்ட் உள்ளமைவை மாற்ற நினைவில் கொள்ளுங்கள்.
இந்த திட்டத்திற்கான வன்பொருள் மிகவும் எளிது. நாங்கள் கடைசியாக பயன்படுத்திய அதே PIC தொகுதியை மீண்டும் பயன்படுத்தப் போகிறோம், மேலும் எல்.சி.டி தொகுதியை ஜம்பர் கம்பிகளைப் பயன்படுத்தி எங்கள் PIC உடன் இணைக்கப் போகிறோம்.
இணைப்பை பின்வரும் அட்டவணையால் புரிந்து கொள்ளலாம்:
|
எல்சிடி முள் எண். |
எல்சிடி முள் பெயர் |
MCU முள் பெயர் |
MCU முள் எண். |
|
1 |
தரையில் |
தரையில் |
12 |
|
2 |
வி.சி.சி. |
+ 5 வி |
11 |
|
3 |
VEE |
தரையில் |
12 |
|
4 |
பதிவு தேர்வு |
ஆர்.டி 2 |
21 |
|
5 |
படிக்க / எழுது |
தரையில் |
12 |
|
6 |
இயக்கு |
ஆர்.டி 3 |
22 |
|
7 |
தரவு பிட் 0 |
என்.சி. |
- |
|
8 |
தரவு பிட் 1 |
என்.சி. |
- |
|
9 |
தரவு பிட் 2 |
என்.சி. |
- |
|
10 |
தரவு பிட் 3 |
என்.சி. |
- |
|
11 |
தரவு பிட் 4 |
ஆர்.டி 4 |
27 |
|
12 |
தரவு பிட் 5 |
ஆர்.டி 5 |
28 |
|
13 |
தரவு பிட் 6 |
ஆர்.டி 6 |
29 |
|
14 |
தரவு பிட் 7 |
ஆர்.டி 7 |
30 |
|
15 |
எல்.ஈ.டி நேர்மறை |
+ 5 வி |
11 |
|
16 |
எல்.ஈ.டி எதிர்மறை |
தரையில் |
12 |
இப்போது வெறுமனே இணைப்புகளை உருவாக்குவோம், குறியீட்டை எங்கள் MCU க்கு டம்ப் செய்து வெளியீட்டை சரிபார்க்கலாம்.

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