منو

کتابخانه LCD با سه پایه میکروکنترلر

کتابخانه LCD کارکتری با سه پایه میکروکنترلر – (74hc164)

به راحتی با استفاده از یک شیفت رجیستر 74HC164 (از نوع SIPO است) و سه پایه میکروکنترلر LCD کارکتری راه اندازی کنید. در صورتی که در پروژه خود با محدودیت تعداد پایه های میکروکنترلر روبرو هستید میتوانید با استفاده از این کتابخانه و فقط سه پایه از میکروکنترلر LCD کارکتری را راه اندازی کنید.

کتابخانه LCD

شیفت رجیستر SIPO

SIPO  به معنای “شیفت به یک طرف” است که اختصار عبارت “Serial In Parallel Out” را تشکیل می‌دهد. رجسیترهای SIPO از یک سری فلیپ فلاپ (D یا JK) تشکیل شده‌اند. این رجسیترها به صورت متوالی داده‌ها را از ورودی دریافت کرده و در خروجی‌ها به صورت همزمان (پارالل) ارائه می‌دهند.

در یک  SIPO، داده‌ها به صورت سریال (یک بیت در هر لحظه) وارد می‌شوند و به صورت همزمان از خروجی‌ها خوانده می‌شوند (پارالل). این عمل باعث ایجاد یک رجسیتر می‌شود که داده‌ها به صورت متوالی وارد شده، در زمان مشخص به صورت همزمان به خروجی‌ها انتقال یابد.

یکی از کاربردهای شیفت رجیسترهای SIPO در سیستم‌های دیجیتال و میکروکنترلرهاست. این رجسیترها برای انتقال داده از یک بخش از مدار به بخش دیگر به کار می‌روند.

کتابخانه را ابتدای برنامه اضافه کنید و وارد فایل آن شوید، در ابتدای کتابخانه پایه های مورد استفاده از میکروکنترلر را تعریف کنید.

#define data_port			PORTC
#define direction_port		DDRC
#define clk_port			PORTC
#define clk_direction		DDRC
#define enable_port			PORTC
#define enable_direction	DDRC
//-----------define port-----------------------------------------------
#define datapin			0 	// define datapin from atmega8 to 74HC164
#define clockpin		1 	// define clock pin from atmega8 to 74HC164
#define Epin			2	// controller pin that enables LCD

تعریف پایه ها در کتابخانه میکروکنترلر ایکسمگا

#define data_port			PORTC.OUT
#define direction_port		PORTC.DIR
#define clk_port			PORTC.OUT
#define clk_direction		PORTC.DIR
#define enable_port			PORTE.OUT
#define enable_direction	PORTE.DIR
//-----------define port-----------------------------------------------
#define datapin			6	
#define clockpin		7
#define Epin			7

در ابتدای برنامه اصلی تابع آماده سازی LCD را فراخوانی کنید

LCDinit();

در ادامه از توابع کتابخانه LCD برای نمایش اطلاعات استفاده کنید

LCDclr();
void LCDGotoXY(uint8_t, uint8_t);
void LCDstring(uint8_t*, uint8_t);
void LCDshiftRight(uint8_t);	//shift by n characters Right
void LCDshiftLeft(uint8_t);		//shift by n characters Left
void LCDcursorOn(void);			//Underline cursor ON
void LCDcursorOnBlink(void);	//Underline blinking cursor ON
void LCDcursorOFF(void);		//Cursor OFF
abolfazl وب‌سایت

دیدگاهتان را بنویسید