کتابخانه 74HC595 برای ایکسمگا
کتابخانه 74HC595 برای ایکسمگا
حتما برای شما هم پیش آمده تعداد مصرف کننده ها یا فرمان هایی که باید با میکروکنترلر کنترل کنید از تعداد پایه های میکروکنترلر بیشتر باشد در این حالت دو راه وجود دارد:
1- استفاده از میکروکنترلر با پایه های بیشتر
2- استفاده از شیفت رجیستر (مثل 74HC595 یا 74HC164)
شیفت رجیستر چیست؟
شیفت رجیستر (Shift Register) یک مدار دیجیتال است که به منظور انتقال دادهها به صورت متوالی (سریال) یا همزمان (موازی) در یک سیستم الکترونیکی استفاده میشود. این مدار به شکل یک زنجیره از فلیپفلاپها (Flip-Flops) تشکیل شده و دادهها را در خود نگه میدارد تا بتواند آنها را به صورت ترتیبی یا همزمان منتقل کند.
اجزای اصلی یک شیفت رجیستر:
- فلیپفلاپها:
- هر سلول درون یک شیفت رجیستر معمولاً یک فلیپفلاپ است که داده را در خود ذخیره میکند.
- ورودی (Input) و خروجی (Output):
- ورودیهای دیتا (Data In) و کلاک (Clock) برای ورود داده و تعیین زمان شیفت داده، و خروجیهای دیتا (Data Out) برای خروجی داده از شیفت رجیستر.
- پین شیفت (Shift):
- یک پین که برای تحریک شیفت داده به فلیپفلاپها یا تریگرها استفاده میشود.
انواع شیفت رجیستر:
شیفت رجیستر SIPO (Serial-In, Parallel-Out):
در یک شیفت رجیستر SIPO، دادهها به صورت سریال (یک بیت در هر لحظه) وارد و در خروجی به صورت پارالل (همزمان) قرار میگیرند. این نوع شیفت رجیستر به ویژه در مواقعی که نیاز به تبدیل دادههای سریال به شکل پارالل داریم، مفید است. به عنوان مثال، در میکروکنترلرها یا مواردی که اطلاعات از یک سنسور سریال دریافت میشود و سپس به صورت همزمان به سیستم ارسال میشود و یا برای توسعه تعداد خروجی ها.
کاربردهای SIPO:
- تبدیل دادههای سنسورهای سریال به پارالل.
- کنترل واسطهای نمایشی (Display Interfaces).
- استفاده در مدارهای شیفت داده.
شیفت رجیستر PISO (Parallel-In, Serial-Out):
در مقابل، شیفت رجیستر PISO دادهها به صورت پارالل (همزمان) در ورودی دریافت میشوند و به صورت سریال (یک بیت در هر لحظه) از خروجی خارج میشوند. این نوع شیفت رجیستر در مواقعی که نیاز به ارسال دادههای پارالل به صورت سریال داریم، کارآمد است. به عنوان مثال، در ارتباط با دیگر دستگاهها یا مواقعی که دادهها به صورت سریال از یک میکروکنترلر به یک ماژول دیگر ارسال میشوند.
کاربردهای PISO:
- انتقال دادههای پارالل به صورت سریال.
- ارتباط با سایر سیستمها با ساختارهای ارتباطی سریال.
- استفاده در انتقال دادهها به صورت سریال از میکروکنترلر به سایر دستگاهها.
شیفت رجیسترهای SIPO و PISO هرکدام ویژگیها و کاربردهای خاص خود را دارند. این اجزا مهم در طراحی مدارهای دیجیتال، ارتباطات سریال، و کنترل دادهها به صورت پارالل یا سریال، نقش مهمی ایفا میکنند. با استفاده از این شیفت رجیسترها، انتقال دادهها به سادگی و با کارآیی بیشتر انجام میشود.
در اینجا دو کتابخانه برای استفاده قرار میدهم.
در کتابخانه اول پایه های متصل به شیفت رجیستر 74HC595 یک بار به صورت ثابت در کتابخانه میشوند.
در کتابخانه دوم با استفاده از تابع HC595_set_bus میتوانید در هر جای برنامه اصلی که نیاز باشد پایه های متصل به شیفت رجیستر را تعریف یا تغییر دهید.
برای توضیح توابع میتوانید به کتابخانه 74HC595 اتمگا مراجعه کنید.