پروژه فارسی نویسی lcd گرافیکی nokia 5110 توسط stm32

با سلام خدمت همه دوستان

در این مطلب lcd گرافیکی نوکیا ۵۱۱۰ را با استفاده از میکرو کنترلر stm32f103c8t6 و توابع HAL و CubeMx توسط کامپایلر keil راه اندازی خواهیم کرد و در پروژه  فارسی نویسی و انگلیسی نویسی را با دو سایز  فونت برای هرکدام خواهیم داشت.

نکته : پروژه و پین های lcd کاملا منطبق بر cubeMx هستند و برای تعریف پایه های جدید فقط کافیست فایل کیوب را باز کرده و تغییر دهید و نکته مهم این که هیچ ترتیبی برای پایه ها نیاز نیست اما همه پایه های انتخابی از یک پورت باشند که من در این پروژه از پورت B  به صورت زیر استفاده کردم:

 

 

مشخصات lcd nokia 5110 به صورت زیر است:

 

Features:
۱>. 84 X 48 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

Description: The Nokia 5110 is a basic graphic LCD screen for lots of applications. It was originally intended for as a cell phone screen. This one is mounted on an easy to solder PCB.

It uses the PCD8544 controller, which is the same used in the Nokia 3310 LCD. The PCD8544 is a low power CMOS LCD controller/driver, designed to drive a graphic display of 48 rows and 84 columns. All necessary functions for the display are provided in a single chip, including on-chip generation of LCD supply and bias voltages, resulting in a minimum of external components and low power consumption. The PCD8544 interfaces to microcontrollers through a serial bus interface.

Pins:
۱٫ RST——— reset
۲٫ CE———- chip selection
۳٫ DC———- data/commands choice
۴٫ DIN——— serial data line(MOSI)
۵٫ CLK——— serial Clock
۶٫ ۳٫۳V——– VCC
۷٫ LIGHT——- backlight control terminal to 3.3v
۸٫ GND——— power negative

پس از اینکه پین های lcd را مطابق فایل کیوب به میکروکنترلر متصل کردین کد را پروگرام کنید و توابع زیر برای شما متن فارسی و انگیسی و اشکال هندسی را نمایش می دهند.

PCD_LcdInit();

LcdClear();

LcdClear_black();

PCD8544_DrawLine(0,0,30,30,1);

PCD8544_DrawCircle(10, 10, 8,1);

PCD8544_DrawRectangle(10,10, 30, 30, 1);

PCD8544_DrawFilledRectangle(5, 5, 30, 70, 1);

در توابع که برای نوشتن متن انگلیسی است آرگومان اول و دوم مختصات x و y نوشته هستند و سوم رشته شما و چهارم سایز فونت در دو شماره ۱ و ۲ و آرگومان پنجم حالت invert mode هستش که تعیین میکنید نوشته شما با بک گراند سفید باشد یا مشکی.

put_string_EN(1 , 1,”Mehdi Sehati”,1,0);

put_string_EN(1 , 1,”Mehdi”,2,0);

put_string_EN(0 , 0,”Mehdi Sehati”,1,1);

put_string_EN(1 , 1,”Mehdi”,2,1);

////—————————————————————–

در توابع که برای نوشتن متن فارسی است آرگومان اول و دوم و سوم و چهارم ابتدا و انتهای متن فارسی شماست و آرگومان  پنجم سایز فونت در دو شماره ۱ و ۲ و آرگومان ششم حالت وسط چین نوشته است .

 

تابع نمایش تصویر های bmp روی lcd

برای نمایش تصاویر ابتدا در نرم افزار paint  سایز تصویرتون رو به ارتفاع ۸۴ و عرض ۸۴ تبدیل کنید(اگر متوجه نشدید به این لینک مراجعه کنید) و  سپس عکس رو با پسوند bmp ذخیره کنید;

در مرحله بعد نرم افزار LCD assistant را باز کنید و از قسمت فایل load image را انتخاب کنید و تنظیمات نرم افزار را مانند شکل زیر انجام دهید:

حال از قسمت file گزینه save output را انتخاب کنید و فایل را با پسوند h. و نام مثلا my_pic.h مانند شکل زیر ذخیره کنید :

 

حال کافی است فایل my_pic.h را اولا در پوشه inc پروژه کپی کنین و سپس به صورت زیر به هدر برنامه (در keil) اضافه کنید:

#include “my_pic.h”

و سپس فایل my_pic.h را با نوت پد باز کنید و آن را به صورت (آرایه) متغییر const برای میکرو تعریف کنید تا ارایه در حافظه فلش میکرو ذخیره شود:

در نهایت با دستور زیر تصویر مورد نظر را روی lcd نمایش دهید

LcdBitmap(0,0,MicroDroidPrj);

نکته : به نام ارایه که MicroDroidPrj است دقت کنید.

ویدئو عملکرد پروژه به صورت زیر است:

 

برنامه به زبان سی تواسط توابع HAL و cubeMx و در ide Keil نوشته شده است و از لینک زیر قابل تهیه است:

 

لینک دانلود راه اندازی فقط به صورت انگلیسی

 

mehdi sehati

در این سایت پروژه و آموزش های انواع ماژول ها و میکروکنترلر ها و نحوه ارتباط سخت افزار با نرم افزار (برنامه نویسی اندروید برای گوشی و برنامه نویسی سی شارپ برای کامپیوتر) و برنامه نویسی پایتون و رسبری پای و ماژول های وای فای قرار میگیرد همچنین دوستان برای توضیحات بیشتر و سفارش پروژه میتوانند به آی دی تلگرام بنده مراجعه کنند

مطالب مرتبط

Subscribe
Notify of
guest

5 نظرات
Inline Feedbacks
View all comments
Farshad
Farshad
4 years ago

سلام برای نمایش یک ععد متغیر باید چه کنیم

محمد
محمد
2 years ago

خطای ۴۰۴ میده میگه که فایلو پیدا نکرده اگه میشه واتس اپ برام بفرستی‌ش

محمد
محمد
2 years ago
Reply to  mehdi sehati

ممنون عزیز بی زحمت زحمتش برامون بکش

5
0
Would love your thoughts, please comment.x