உங்கள் மைக்ரோகண்ட்ரோலரில் போதுமான ஐ / ஓ ஊசிகளும் இல்லாத இடத்தில் உட்பொதிக்கப்பட்ட வடிவமைப்பில் சாத்தியங்கள் உள்ளன. அது எந்த காரணத்திற்காகவும் இருக்கலாம், உங்கள் பயன்பாட்டிற்கு பல எல்.ஈ.டிக்கள் தேவைப்படலாம் அல்லது பல 7-பிரிவு காட்சிகளைப் பயன்படுத்த விரும்புகிறீர்கள், ஆனால் உங்கள் மைக்ரோகண்ட்ரோலரில் ஐ / ஓ ஊசிகளும் தேவையில்லை. இங்கே ஒரு சரியான கூறு, ஷிப்ட் பதிவு வருகிறது. ஷிப்ட் பதிவேடு தொடர் தரவை ஏற்றுக்கொண்டு இணையான வெளியீட்டைக் கொடுக்கும். உங்கள் மைக்ரோகண்ட்ரோலருடன் இணைக்க இதற்கு 3 ஊசிகள் மட்டுமே தேவை, அதிலிருந்து 8 க்கும் மேற்பட்ட வெளியீட்டு ஊசிகளைப் பெறுவீர்கள். பிரபலமான ஷிப்ட் பதிவேட்டில் ஒன்று 74HC595 ஆகும். இதில் 8 பிட் சேமிப்பு பதிவு மற்றும் 8 பிட் ஷிப்ட் பதிவு உள்ளது. ஷிப்ட் பதிவேடுகளைப் பற்றி இங்கே மேலும் அறிக.
நீங்கள் ஷிப்ட் பதிவேட்டில் தொடர் தரவை வழங்குவீர்கள், அது சேமிப்பக பதிவேட்டில் இணைக்கப்படும், பின்னர் சேமிப்பக பதிவு 8 வெளியீடுகளை கட்டுப்படுத்தும். நீங்கள் கூடுதல் வெளியீட்டை விரும்பினால் மற்றொரு ஷிப்ட் பதிவேட்டைச் சேர்க்கவும். இரண்டு ஷிப்ட் பதிவேடுகளை அடுக்கி வைப்பதன் மூலம், கூடுதல் 8 வெளியீடுகள், மொத்தம் 16 பிட் வெளியீடு கிடைக்கும்.
ஷிப்ட் பதிவு 74HC595:
தரவுத்தாள் படி 74HC595 இன் பின் அவுட் வரைபடம் இங்கே-

HC595 இல் 16 பின்ஸ் உள்ளது; தரவுத்தாள் பார்த்தால் முள் செயல்பாடுகளை புரிந்துகொள்வோம்-

QH செய்ய மற்றும் QA முள் எண்களிலிருந்து, 1 முதல் 7 மற்றும் 15 பயன்படுத்தப்படுகிறது 8 பிட் வெளியீடு எங்கே போன்ற மாற்று பதிவக இருந்து முள் 14 பெறும் பயன்படுத்தப்படுகிறது தொடர் தரவு. பிற ஊசிகளை எவ்வாறு பயன்படுத்துவது மற்றும் ஷிப்ட் பதிவேட்டின் பிற செயல்பாடுகளை எவ்வாறு பெறுவது என்பது பற்றிய உண்மை அட்டவணையும் உள்ளது.

74HC595 ஐ இணைப்பதற்கான குறியீட்டை நாம் எழுதும்போது, விரும்பிய வெளியீடுகளைப் பெறுவதற்கு இந்த உண்மை அட்டவணையைப் பயன்படுத்துவோம்.
இப்போது, 74HC595 ஐ PIC16F877A உடன் இடைமுகப்படுத்தி 8 எல்.ஈ.டி. 74HC595 ஷிப்ட் பதிவேட்டை மற்ற மைக்ரோகண்ட்ரோலர்களுடன் இணைத்துள்ளோம்:
- ராஸ்பெர்ரி பை உடன் 74HC595 சீரியல் ஷிப்ட் பதிவேட்டை இடைமுகப்படுத்துகிறது
- Arduino Uno உடன் Shift Register 74HC595 ஐ எவ்வாறு பயன்படுத்துவது?
- ஷிப்ட் பதிவேட்டைப் பயன்படுத்தி NodeMCU உடன் எல்.சி.டி.
தேவையான கூறுகள்:
- PIC16F877A
- 2pcs 33pF பீங்கான் வட்டு மின்தேக்கிகள்
- 20 மெகா ஹெர்ட்ஸ் கிரிஸ்டல்
- 4.7 கே மின்தடை
- 8 பிசிக்கள் எல்.ஈ.டி.
- 1 கே மின்தடை -1 பிசி (ஒவ்வொரு லீட்களிலும் தனித்தனி மின்தடையங்கள் தேவைப்பட்டால் 8 பிசிக்கள் 1 கே மின்தடையங்கள் தேவை)
- 74HC595 ic
- 5 வி சுவர் அடாப்டர்
- PIC நிரலாக்க சூழல்
- ப்ரெட்போர்டு மற்றும் கம்பிகள்
சுற்று வரைபடம்:

சுற்று வரைபடத்தில், தொடர் தரவு முள் இணைத்துள்ளோம் ; மைக்ரோகண்ட்ரோலரின் RB0, RB1 மற்றும் RB2 முள் மீது முறையே கடிகாரம் மற்றும் ஸ்ட்ரோப் (தாழ்ப்பாளை) முள். இங்கே 8 எல்.ஈ.டிகளுக்கு ஒரு மின்தடையத்தைப் பயன்படுத்தியுள்ளோம். உண்மை அட்டவணையின்படி, 74HC595 இன் முள் 13 ஐ தரையில் இணைப்பதன் மூலம் வெளியீட்டை இயக்கினோம். QH நாங்கள் மற்றொரு அருவியாய் மாட்டேன் என முள் திறந்த விடப்பட்டது 74HC595 அதை. நாம் தெளிவான உள்ளீடு கொடியை முடக்கப்பட்டுள்ளது இணைப்பதன் மூலம் VCC கொண்டு மாற்று பதிவக இன் முள் 10.
கிரிஸ்டல் ஆஸிலேட்டர் மைக்ரோகண்ட்ரோலரின் OSC ஊசிகளில் இணைக்கப்பட்டுள்ளது. PIC16F877A க்கு எந்த உள் ஆஸிலேட்டரும் இல்லை. இந்த திட்டத்தில், ஷிப்ட் ரெஜிஸ்டரைப் பயன்படுத்தி Q0 முதல் Q7 வரை வழிநடத்தப்பட்டவற்றை ஒவ்வொன்றாக ஒளிரச் செய்வோம்.
சுற்றுவட்டத்தை ஒரு பிரெட்போர்டில் கட்டியுள்ளோம்-

குறியீடு விளக்கம்:
ஷிப்ட் பதிவேட்டில் எல்.ஈ.டிகளைக் கட்டுப்படுத்துவதற்கான முழுமையான குறியீடு கட்டுரையின் முடிவில் கொடுக்கப்பட்டுள்ளது. எப்போதும் போல, PIC மைக்ரோகண்ட்ரோலரில் உள்ளமைவு பிட்களை அமைக்க வேண்டும்.
#pragma config FOSC = HS // ஆஸிலேட்டர் தேர்வு பிட்கள் (HS ஆஸிலேட்டர்) # ப்ராக்மா கட்டமைப்பு WDTE = OFF // வாட்ச் டாக் டைமர் பிட் (WDT முடக்கப்பட்டது) #pragma config PWRTE = OFF // பவர்-அப் டைமர் பிட் (PWRT முடக்கப்பட்டது) # Pragma கட்டமைப்பு Boren = மீது // பிரவுன்-அவுட் மீட்டமை பிட் (BOR செயல்படுத்தப்படும்) இயக்கு #pragma கட்டமைப்பு LVP = நிறுத்தவும் // குறைந்த மின்னழுத்த (ஒற்றை-சப்ளை) உள்-சுற்று சீரியல் புரோகிராமிங் பிட் (RB3 / PGM முள் PGM செயல்பாடு உள்ளது இயக்கவும்; குறைந்த -மின்னழுத்த நிரலாக்க செயல்படுத்தப்படும்) #pragma கட்டமைப்பு CPD = நிறுத்தவும் // தரவு EEPROM நினைவகத்தின் குறியீடு பாதுகாப்பு கடித்தார் (தரவு செய்யப்பட்ட EEPROM- குறியீட்டுப் பாதுகாப்பு ஆஃப்) #pragma கட்டமைப்பு wrt யை = நிறுத்தவும் // ஃப்ளாஷ் திட்டம் நினைவகம் எழுது பிட்கள் (எழுது பாதுகாப்பை இயக்கு ஆஃப் அனைத்து நிரல் நினைவகம் இருக்கலாம் EECON கட்டுப்பாட்டால் எழுதப்பட்டது) #pragma config CP = OFF // ஃப்ளாஷ் நிரல் நினைவக குறியீடு பாதுகாப்பு பிட் (குறியீடு பாதுகாப்பு முடக்கப்பட்டுள்ளது)
அதன் பிறகு தாமதத்திற்குத் தேவையான படிக அதிர்வெண் மற்றும் 74HC595 க்கான பின்-அவுட் அறிவிப்பு ஆகியவற்றை நாங்கள் அறிவித்தோம்.
#சேர்க்கிறது
அடுத்து முள் திசையைத் தொடங்க system_init () செயல்பாட்டை அறிவித்தோம்.
void system_init (வெற்றிடம்) { TRISB = 0x00; }
இரண்டு வெவ்வேறு செயல்பாடுகளைப் பயன்படுத்தி கடிகார துடிப்பு மற்றும் தாழ்ப்பாள் துடிப்பு ஆகியவற்றை உருவாக்கியுள்ளோம்
/ * * இந்த செயல்பாடு கடிகாரத்தை இயக்கும். * / வெற்றிட கடிகாரம் (வெற்றிடத்தை) { CLK_595 = 1; __ தாமத_உஸ் (500); CLK_595 = 0; __ தாமத_உஸ் (500); }
மற்றும்
/ * * இந்த செயல்பாடு ஸ்ட்ரோப் செய்து வெளியீட்டு தூண்டுதலை இயக்கும். * / வெற்றிட ஸ்ட்ரோப் (வெற்றிடத்தை) { STROBE_595 = 1; __ தாமத_உஸ் (500); STROBE_595 = 0; }
இந்த இரண்டு செயல்பாடுகளுக்குப் பிறகு, 74HC595 க்கு தொடர் தரவைச் சமர்ப்பிக்க data_submit (கையொப்பமிடாத முழு தரவு) செயல்பாட்டை அறிவித்தோம்.
வெற்றிடத்தை data_submit (கையொப்பமிடாத முழு எண்ணாக தரவு) { க்கான (எண்ணாக நான் = 0; நான் <8; நான் ++) { DATA_595 = (தரவு >> நான்) & 0x01; கடிகாரம் (); } ஸ்ட்ரோப் (); // தரவு இறுதியாக சமர்ப்பிக்கப்பட்டது }
இந்த செயல்பாடு நாம் 8bit தரவு ஏற்று இரண்டு பிட்வைஸ் ஆபரேட்டர்கள் பயன்படுத்தி ஒவ்வொரு பிட் அனுப்ப விட்டு மாற்றத்தை மற்றும் மற்றும் ஆபரேட்டர். நாம் முதலில் தரவை ஒவ்வொன்றாக மாற்றி 0x01 உடன் AND ஆபரேட்டரைப் பயன்படுத்தி 0 அல்லது 1 ஆக இருக்கிறதா என்பதைக் கண்டுபிடிப்போம். ஒவ்வொரு தரவும் கடிகாரம் துடிப்பு மற்றும் தாழ்ப்பாளை அல்லது ஸ்ட்ரோப் துடிப்பு பயன்படுத்தி செய்யப்படும் இறுதி தரவு வெளியீடு மூலம் சேமிக்கப்படுகிறது. இந்த செயல்பாட்டில் தரவு வெளியீடு முதலில் MSB (மிக முக்கியமான பிட்) ஆக இருக்கும்.
இல் முக்கிய செயல்பாடு நாம் பைனரி சமர்ப்பிக்க மற்றும் ஒவ்வொன்றாக வெளியீடு முனைகளைக் உயர் ஒன்றாக இது திகழ்கிறது.
system_init (); // கணினி தயாராகும்போது (1) { data_submit (0b00000000); __ தாமத_எம்எஸ் (200); data_submit (0b10000000); __ தாமத_எம்எஸ் (200); data_submit (0b01000000); __ தாமத_எம்எஸ் (200); data_submit (0b00100000); __ தாமத_எம்எஸ் (200); data_submit (0b00010000); __ தாமத_எம்எஸ் (200); data_submit (0b00001000); __ தாமத_எம்எஸ் (200); data_submit (0b00000100); __ தாமத_எம்எஸ் (200); data_submit (0b00000010); __ தாமத_எம்எஸ் (200); data_submit (0b00000001); __ தாமத_எம்எஸ் (200); data_submit (0xFF); __ தாமத_எம்எஸ் (200); } திரும்ப; }
என்று ஒரு எப்படி இருக்கிறது மாற்று பதிவக எந்த மைக்ரோகண்ட்ரோலர் மேற்பட்ட இலவச நான் / ஓ ஊசிகளையும் பெற பயன்படுத்த முடியும் மேலும் உணரிகள் இணைக்கும்.
