پروژه راه اندازی و فارسی نویسی lcd_nokia_5110
به نام خدا و سلام خدمت دوستان
در این مطلب آموزش راه اندازی lcd نوکیا مدل ۵۱۱۰ را توضیح می دهم و پروژه فارسی نویسی برای این lcd همراه با توابع رسم انواع شکل ها و همراه چند سایز فونت (فارسی و انگلیسی )قرار می دهم…
lcd مورد نظر که به صورت شکل زیر است از کیفیت بسیار بالایی برخوردار است و میتوانید در پروژه های صنعتی خود از این lcd به راحتی استفاده کنید…
این نمایشگر از کنترلر PCD8544 استفاده می نماید که در نمایشگر های Nokia 3310 نیز استفاده شده است. PCD8544 یک کنترلر کم مصرف می باشد که برای به کارگیری نمایشگر های دارای ۸۴ ردیف و ۸۴ ستون طراحی گردیده است. ارتباط PCD8544 با میکروکنترل ها از طریق یک رابط سریال باس انجام می پذیرد و برخلاف نمایشگرهای ماتریسی موجود در بازار ایران برای اتصال نمایشگر به میکرو ها تعداد کمتری از پین ها (حداکثر ۵ پین) اشغال می گردد، همچنین بک لایت نمایشگر باعث می شود استفاده از آن در محیط های کم نور و یا شب به راحتی امکان پذیر باشد.
ویژگی های فوق :
Pins:
۱٫ RST——— reset
۲٫ CE———- chip selection
۳٫ DC———- data/commands choice
۴٫ DIN——— serial data line(MOSI)
۵٫ CLK——— serial Clock
۶٫ ۳٫۳V——– VCC
۷٫ LIGHT——- backlight control terminal
۸٫ GND——— power negative(GROUND)
Features:
۱>. 84 X 84 dot matrix LCD,can show 4 lines of characters
۲>. Use serial interface communicate with the master processor,the number of interface signal line reduced greatly, only 8 signal lines including power and GND.Support different types of MCU,such as the arduino,AVR,PIC,STM32,STC MSP430 and so on.Transfer rate up to 4Mbps,can full speed write display data without waiting time.
۳>. Can use the conductive glue to connect the module with the printed board,without connecting cable.The metal hooks on the module can fix the module on the printed board,which is very easy to install and replace.
۴>. LCD controller/driver chip has been bound to LCD chip,the volume of LCD is small
۵>. Low power supply,the working current in normal situation is lower than 200μA,and has power-down mode
ولتاژ کاری ۳ تا ۵ ولت است که به راحتی قابل راه اندازی است،(اگر به هر دلیلی ال سی دی تون مشکی شد و نمایش نداد چیزی رو یه پتانسیومتر ۱۰ کیلو رو در حالت تقسیم ولتاژ ببندین و پایه وسطش رو بدین به vcc ال سی دیتون و با چرخوندن اون تصویر رو ال سی دی نمایش داده میشه)
اگر قصد دارید این lcd را توسط کامپایلر کدویژن راه اندازی کنید کافی است طبق تصویر زیر در بخش کد ویزاد تنظیمات زیر را انجام دهید:
در بخش ۲ که به صورت منوی باز شو است مدل ۵۱۱۰ را انتخاب کنید و در بخش ۳ میتوانید پورت و پایه ها را جهت اتصال به میکرو انتخاب کنید.
راه اندازی این lcd به نکته خاصی نیاز نداره و خیلی راحت راه اندازی میشه…
توضیح توابع پروژه ای که در زیر قرار میدم :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
GLCDINIT_t glcd_init_data; delay_ms(200); glcd_init_data.readxmem=NULL; glcd_init_data.writexmem=NULL; glcd_init_data.temp_coef=PCD8544_DEFAULT_TEMP_COEF; glcd_init_data.bias=PCD8544_DEFAULT_BIAS; glcd_init_data.vlcd=PCD8544_DEFAULT_VLCD; glcd_init(&glcd_init_data); SetBkColor(BLACK); SetFgColor(WHITE); LcdFontSpace(1); glcd_clear(); |
- تابع نمایش تصویر های bmp روی lcd
برای نمایش تصاویر ابتدا در نرم افزار paint سایز تصویرتون رو به ارتفاع ۸۴ و عرض ۸۴ تبدیل کنید(اگر متوجه نشدید به این لینک مراجعه کنید) و سپس عکس رو با پسوند bmp ذخیره کنید;
در مرحله بعد نرم افزار LCD assistant را باز کنید و از قسمت فایل load image را انتخاب کنید و تنظیمات نرم افزار را مانند شکل زیر انجام دهید:
حال از قسمت file گزینه save output را انتخاب کنید و فایل را با پسوند h. مانند شکل زیر ذخیره کنید :
حال کافی است فایل picture.h را اولا در پوشه پروژه کپی کنین و سپس به صورت زیر به هدر برنامه (در کدویژن)اضافه کنید:
#include “my_pic.h”
و سپس فایل picture.h را با نوت پد باز کنید وآن رو به صورت (آرایه)متغییر flash برای میکرو تعریف کنید
flash unsigned char MicroDroidPrj[]={ … };
در نهایت با دستور زیر تصویر مورد نظر را روی lcd نمایش دهید
glcd_putimagef(0,0,MicroDroidPrj,1);
نکته : به نام ارایه که MicroDroidPrj است دقت کنید.
و در نهایت به صورت زیر میشود :
- تابع قرار دادن یک پیکسل در محل دلخواه روی LCD :
نکته : این توابع در پروژه زیر که قرار خواهم داد وجود دارند.
این پیکسل میتواند به رنگ سیاه یا سفید باشد که توسط تابع مشخص میشود
PutPixel(x, y, color); // color=1 : black & color=0 : white
همچنین با دو دستور زیر میتوانید رنگ بک گراند(پس زمینه) و فورگراند(رنگ متن) را تعیین کنید
SetBkColor(BLACK);
SetFgColor(WHITE);
- تابع رسم مستطیل توخالی با گوشه های گرد(میزان گرد کردن گوشه ها قابل تغییر است):
Bevel(x1, y1, x2, y2, r, color) ; //r = شعاع گوشه ها & color = رنگ مستطیل
- تابع رسم مستطیل توپر با گوشه های گرد(میزان گرد کردن گوشه ها قابل تغییر است):
BevelFill(x1, y1, x2, y2, r, color) ; //r = شعاع گوشه ها & color = رنگ مستطیل
- تابع رسم دایره توخالی:
Circle(x, y, r, color); // x,y= مختصات شعاع دایره & color = (رنگ دایره(۰ سفید است و ۱ مشکی است
- تابع رسم دایره توپر:
Circle(x, y, r, color); // x,y= مختصات شعاع دایره & color = (رنگ دایره(۰ سفید است و ۱ مشکی است
- تابع رسم خط عمودی:
VertLine(x, y, length, color) // x,y = مختصات شروع خط & length = طول خط عمودی
- تابع رسم خط افقی:
HoriLine(x, y, length, color) // x,y = مختصات شروع خط & length = طول خط افقی
- تابع دادن انواع فونت ها به lcd :
LcdFont(AF12x16);
فونت های متفاوتی(فارسی و انگلیسی) در پوشه پروژه قرار دارد که با دستور فوق میتوانید آن ها را اعمال کنید ولی اول از همه فونت را در قسمت هدر ها اینکلود کنید.
- تابع نمایش متن انگلیسی روی lcd :
SetLetter(E_LETTER);
DrawStringAt(x, y, “MicroDroidPrj.ir”, BLACK, WHITE);
- تابع نمایش متن فارسی روی lcd :
SetLetter(P_LETTER);
DrawStringAt(0, 2, “بنام خداوند”, BLACK, WHITE);
نحوه عمکرد پروژه نیز به صورت زیر می باشد :
در صورت اشکال در دریافت میتوانید به آی دی تلگرام بنده مراجعه کنید.
دانلود نرم افزار ایجاد عکس روی ال سی دی
دانلود نرم افزار طراحی فونت LFG
لیست قطعات مورد استفاده :
۱-برد بورد
«این قطعات رو از هر فروشگاهی میتونید تهیه کنید»
توضیحات تنظیمات میکروکنترلر:
فرکانس کاری میکرو ۸ مگا هرتز است که میتوانید از اسیلاتور داخلی استفاده کنید و فیوز بیت ها رو به صورت زیر تنظیمات کنید:
کلاک سلکت صفر برابر ۰
کلاک سلکت یک برابر ۰
کلاک سلکت دو برابر ۱
کلاک سلکت سه برابر ۰
و در صورت اتصال کریستال خارجی ۸ مگا هرتز تمامی کلاک سلکت هارو ۱ کنید
توضیحات بیشتر در مورد نحوه پروگرام کردن میکرو از این لینک ببینید.
سلام پروژه ارتباط دو طرفه با nrf موجود دارین؟
سلام بله، این لینک پروژه خدمت شما
لینک
https://microdroidprj.ir/nrf24l01-stm32/