یکی از بهترین و کاربردی ترین LCD هایی که توی بازار موجود هست LCD های کارکتری هستند که معمولا از چیپ HD44780 در اونها استفاده شده
اینجا میخوام یک کتابخانه خوب که ترکیبی از چند کتابخانه دیگه هست معرفی کنم
این کتابخانه از دو فایل hd44780.c و hd44780.h تشکیل دشه و به وصورت بیت به بیت اقدام به درایو LCD کرده که محدودت های ممکن در ارتباط پیهای میکرو رو به LCD از بین میبره
این کتابخانه به صورت 4 بیت نوشته شده و کلا از 31 تابع مختلف تشکیل شده که 9 تا از این توابع به صورت استاتیک نوشته شده و 22 تابع دیگه در اختیار کاربر قرار میگیره و کلیه موارد مورد نیاز و شرایط مختلف کار با این LCD رو در بر میگره
میشه گفت یکی از بهترین و کاملترین کتابخانه هایی هست که در این زمینه معرفی میشه
لیست توابع
برای استفاده بعد از اضافه کردن فایل به پروژه باید در فایل hd44780.h هفت پین RS - RW - EN و چهار بیت دیتا رو تعریف کنید و تنظیمات لازم رو انجام بدید
سه تابع اخر این کتابخانه برای ایجاد Progress Point و Progress Bar و تابع اخر برای کاراکتر میزان شارژ باتری توسط اقای چان نوشته شده که که بنده با توابع کتابخانه هماهنگ کردم
نمونه کد با میکروی ATmega32 در ادیتور EmBitz و کتابخانه ضمیمه پست شده است
آخرین تغییرات:
2019/2/18 امکان بودن یا نبودن پین RW به کد اضافه شد .
2020/1/16 نمونه کد برای میکرو کنترلر های ارم stm32
اینجا میخوام یک کتابخانه خوب که ترکیبی از چند کتابخانه دیگه هست معرفی کنم
این کتابخانه از دو فایل hd44780.c و hd44780.h تشکیل دشه و به وصورت بیت به بیت اقدام به درایو LCD کرده که محدودت های ممکن در ارتباط پیهای میکرو رو به LCD از بین میبره
این کتابخانه به صورت 4 بیت نوشته شده و کلا از 31 تابع مختلف تشکیل شده که 9 تا از این توابع به صورت استاتیک نوشته شده و 22 تابع دیگه در اختیار کاربر قرار میگیره و کلیه موارد مورد نیاز و شرایط مختلف کار با این LCD رو در بر میگره
میشه گفت یکی از بهترین و کاملترین کتابخانه هایی هست که در این زمینه معرفی میشه
لیست توابع
کد:
void HD44780_Init(uint8_t rows, uint8_t cols);
void HD44780_WriteInstruction(void);
void HD44780_DisplayOn(void);
void HD44780_DisplayOff(void);
void HD44780_Clear(void);
void HD44780_Putc(char c);
void HD44780_CursorSet(uint8_t row, uint8_t col);
void HD44780_Puts(uint8_t x, uint8_t y, char* str);
void HD44780_Putsn(uint8_t x, uint8_t y, char* str, uint8_t len);
void HD44780_BlinkOn(void);
void HD44780_BlinkOff(void);
void HD44780_ReturnHome(void);
void HD44780_CursorOn(void);
void HD44780_CursorOff(void);
void HD44780_ScrollLeft(void);
void HD44780_ScrollRight(void);
void HD44780_Scroll(uint8_t dir, uint8_t step, uint32_t delay);
void HD44780_CreateChar(uint8_t location, uint8_t n, uint8_t* data);
void HD44780_PutCustom(uint8_t x, uint8_t y, uint8_t location);
void HD44780_Put_Bar (uint16_t val, uint8_t width, uint8_t chr);
void HD44780_Put_Point (uint16_t val, uint8_t width, uint8_t chr);
void HD44780_Put_Fuel (int8_t val, uint8_t chr);
برای استفاده بعد از اضافه کردن فایل به پروژه باید در فایل hd44780.h هفت پین RS - RW - EN و چهار بیت دیتا رو تعریف کنید و تنظیمات لازم رو انجام بدید
سه تابع اخر این کتابخانه برای ایجاد Progress Point و Progress Bar و تابع اخر برای کاراکتر میزان شارژ باتری توسط اقای چان نوشته شده که که بنده با توابع کتابخانه هماهنگ کردم
نمونه کد با میکروی ATmega32 در ادیتور EmBitz و کتابخانه ضمیمه پست شده است
آخرین تغییرات:
2019/2/18 امکان بودن یا نبودن پین RW به کد اضافه شد .
2020/1/16 نمونه کد برای میکرو کنترلر های ارم stm32
پیوستها
آخرین ویرایش: