ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 8 12345678 آخرین
نمایش نتایج: از 1 به 10 از 72
  1. #1
    2007/03/01
    تهران
    1,248
    232

    آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

    با سلام خدمت کلیه دوستان عزیز :bye

    مقدمه :
    با توجه به درخواست برخی از دوستان مبنی بر نحوه استفاده از توابع فونت فارسی، عربی و انگلیسی در LCD های گرافیکی و با استفاده از توابع راه انداز و درایور LCD که خودشون دارند و باهاشون راحت ترند و بطور معمول از اونها استفاده میکنند، تصمیم گرفتم که یک آموزش قدم به قدم در این خصوص در چند مرحله تقدیم حضور دوستان کنم.

    [shadow=red,left]لطفا صبور باشید و از طرح هرگونه سوالی تا انتهای آموزش خودداری کنید! [/shadow] :mrgreen:

    از توجه شما ممنونم
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Hidden Content

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp
  2. #2
    2007/03/01
    تهران
    1,248
    232

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

    قسمت اول :
    در اولین قدم، باید یک LCD گرافیکی متناسب با نیازمون انتخاب کنیم. که من تصمیم گرفتم از LCD گوشی نوکیا 1100 برای این کار استفاده کنم، چونکه هم ارزونه ( 3 الی 4 هزار تومن ) و هم اینکه به راحتی هم قابل تهیه هستش و کمی هم با صفحه های نمایش مورد استفاده دوستان متفاوته و مشخصاتش هم از این قراره :


    Phone : NOKIA 1100
    Driver : PCF8814
    Resolution : 65x96 pixels
    Communication : I2C-BUS INTERFACE (HS-MODE)

    و اما قدم بعدی، نوشتن یه درایور برای این LCD هستش که بتونه اون رو مقدار دهی اولیه و راه اندازی و بطور خلاصه، مدیریت کنه، که البته این موضوع و جزئیاتش، بحث اصلی ما نیست!
    ولی این درایور به اجبار باید یه سری امکانات رو به ما بده، از جمله، امکان ست و ریست کردن یک پیکسل در هر نقطه مورد نظر، رسم یه چهار گوش تو پر و پاک کردن صفحه نمایش و همچنین برگردوندن حداکثر مقادیر X و Y ، اما سایر امکاناتش هم امکانات جنبی محسوب میشه و الزامی نیست .....
    لازم به ذکره که توابع فونت برای رسم کاراکترها از امکانات ست کردن یک پیکسل استفاده میکنه، برای رسم باکسهای نوشته از امکانات رسم چهار گوش تو پر و از حداکثر مقادیر X و Y هم برای چیدمان نوشته ها بهره میبره.

    و تا یادم نرفته، یه نکته هم در مورد این LCD اینه که امکان خوندن رم صفحه نمایش رو به ما نمیده، پس باید اطلاعات صفحه نمایش رو برای پردازش های خودمون Cache کنیم تا بتونیم باهاش کار کنیم! برای اطلاعات بیشتر به دیتاشیت مربوطه مراجعه بفرمائید... :surprised:

    مرسی
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Hidden Content

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp
  3. #3
    2007/03/01
    تهران
    1,248
    232

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

    قسمت دوم :

    لطفا به این نکته هم توجه داشته باشید، از اونجایی که من با WinAVR ( یا AVR-GCC ) برنامه مینویسم، پایه برنامه ها توی WinAVR هستش که بعد از تست، توی CodeVision و Keil هم تست میکنم و اگر ارور یا وارنینگ جدیی بود برطرف میکنم و در توابع و برنامه هایی که در این سلسله آموزش ارائه میکنم، با توجه به اینکه توی این سایت اکثرا با کدویژن کار میکنند، بطور پیش فرض تنظیمات مربوط به کدویژنه ....
    برای تغییر کامپایلر، یک سری موارد توی فایل app_config.h تعریف شدند ( که البته موارد مربوط به Keil رو از توش حذف کردم تا زیادی شلوع نشه ) لطفا اونا رو هم بررسی کنید و در صورت نیاز به تغییر کامپایلر مورد استفاده، تغییرات لازم رو در app_config.h اعمال کنید. ( با توجه به توضیحات فوق، کدویژنی ها نیاز به اعمال تغییرات ندارند! )
    برای اونایی که با WinAVR کار میکنند سه تا فایل هست Makefile و MCUprog_make و Global_make که در فایل Makefile تنظیمات اصلی کامپایلر هست و معمولا نیاز به تغییر نداره و در MCUprog_make اطلاعات پروگرامر هست که اگر بخواهید مستقیم میکرو رو پروگرام کنید نیاز به کنترل و اصلاح داره و نهایتا Global_make که اطلاعات پروژه توشه و تغییرات عمده به تناسب هر پروژه ای فقط توی این فایل انجام میشه و الی آخر ....
    و نکته بعدی اینکه بنا به همین توضیحات اخیر، کدویژنی ها با اعمال تغییرات اندکی میتونند از برنامه های تحت WinAVR استفاده کنند و نهایتا یه سری وارنینگ که خیلی هم مهم نیستند رو میگیرند ولی اونایی که Keil کار میکنند باید توی Include کردن ها یه کمی بیشتر دقت کنند! ولی در کل چونکه از C استاندارد استفاده میشه، مشکل خاصی در استفاده از کمپایلر های مختلف وجود نداره...

    ادامه داره .... :biggrin:
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Hidden Content

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp
  4. #4
    2007/03/01
    تهران
    1,248
    232

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

    قسمت سوم :

    از اینجا دیگه روال برنامه نویسی شروع میشه! و اول از همه، درایور LCD که البته همونطور که قبلا گفتم، کاری به جزئیاتش نداریم. این فایل ها توی پوشه N11 هستند و یه فایل به اسم N1100config.h و تنها فایلی که نیاز به اعمال تغییرات داره، چونکه تنظیمات سخت افزاری LCD این توئه! و بعدی هم فایل N1100.c که توابع راه انداز و سایر توابع مورد نیاز توشه و هیچ وقت هم نیاز به تغییرات نداره و نهایتا هم فایل N1100.h که شاید یه وقتی نیاز به تغییرات داشته باشه. برای هدف ما، باید N1100.h رو بیشتر بررسی کنیم!

    اینا رزولوشن صفحه رو بر میگردونن :
    #define N11_SIZE_X 96
    #define N11_SIZE_Y 65


    و اینا مقادیر حداکثری X و Y رو که جزو ملزومات کار ما هستند ( دقیقا با همین اسم ها ) :

    #define GetMaxX() ((unsigned char)N11_SIZE_X-1)
    #define GetMaxY() ((unsigned char)N11_SIZE_Y-1)


    و اینا هم توابع مورد نیاز که اصلی ها رو های لایت میکنم و در قسمت بعد ازشون استفاده میکنیم :

    //******************* Function Prototypes
    void N11_Init(void);
    void N11_CLS(void);
    void N11_Update(void);

    void N11_Contrast(unsigned char cont);
    void N11_Backlight(unsigned char x);

    void N11_SetPixel(unsigned char x, unsigned char y, N11_Pmode mode);
    unsigned char N11_ReadPixel(unsigned char x, unsigned char y);
    void N11_FillRect(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, N11_Pmode mode);

    و نتیجه کار میشه این :


    اینم فایل های مربوطه :
    http://s2.picofile.com/file/7151500107/N1100_P1.rar.html

    بازم ادامه داره ..... :mrgreen:
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Hidden Content

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp
  5. #5
    2007/03/01
    تهران
    1,248
    232

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

    قسمت چهارم :

    خوب، توی این مرحله باید توابع Graphic که توی یه پوشه به همین اسمه، به پروژه خودمون اضافه کنیم. این مرحله، از مراحل اصلی و اساسی کار ما محسوب میشه چونکه توابع فونت فقط از این توابع جهت رسم کاراکترها وغیره استفاده میکنند.

    در مورد توابع گرافیک باید بگم که این توابع امکان رسم خط افقی و عمودی و یا در هر جهت مورد نیاز، دایره تو پر و تو خالی، چهار گوش تو پر و تو خالی ساده و گوشه گرد، ست و ریست کردن نقطه رو از توابع اصلی LCD و مشخصا از روتین های N11_SetPixel و N11_FillRect به ارث میبره!

    تنها تغییرات لازم رو در فایل Graphic.h اعمال میکنیم، من این موارد رو های لایت میکنم :

    #define PutPixel(x, y, clr) N11_SetPixel(x, y, clr)
    #define RectangleFill(x1, y1, x2, y2, clr) N11_FillRect(x1, y1, x2, y2, clr)

    و

    #define VertLine(x, y, length, clr) N11_FillRect(x, y, x, y+length, clr)
    #define HoriLine(x, y, length, clr) N11_FillRect(x, y, x+length, y, clr)


    و این معنیش اینه که شما روتین های رسم پیکسل و چهارگوش تو پر رو از توابع LCD به توابع Graphic معرفی میکنید...

    و نتیجه کار میشه این :


    اینم فایل های مربوطه :
    http://s2.picofile.com/file/7152555478/N1100_P2.rar.html

    تا فردا، کلا خوش گذشت ...
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Hidden Content

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp
  6. #6
    2007/03/01
    تهران
    1,248
    232

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

    قسمت آخر :

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

    قبل از شروع به نوشتن، باید در ابتدای main.c خطوط زیر رو که فونت های موجودمون رو معرفی میکنند، اضافه کنیم.

    #include "FONT\font\f5x7.h" //english font 5x7
    #include "FONT\font\f9x14.h" //english font 9x14
    #include "FONT\font\AF12x16.h" //english/persian/arabic font 12x16


    سعی کردم که نحوه استفاده از این توابع رو با ذکر مثال هایی در فایل main.c آموزش داده باشم.

    و در نهایت نتیجه کار میشه این :


    اینم فایل های مربوطه :
    http://s2.picofile.com/file/7152634943/N1100_P3.rar.html

    حالا دیگه اگر سوال و نکته خاصی باشه در حد بضاعتم در خدمت دوستان هستم.

    باز هم از توجه و ابراز لطف همه دوستان تشکر میکنم، موفق و پیروز باشید....
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Hidden Content

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp
  7. #7
    2007/03/01
    تهران
    1,248
    232

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

    با سلام، :bye

    فایل پیوست، تکمیل شده فایل های قبلیه، البته ربط چندانی به این مبحث نداره!
    به توابع درایور LCD تابع نمایش تصویر BMP هم اضافه کردم، گفتم شما هم داشته باشید شاید بکارتون بیاد :mrgreen:

    http://s2.picofile.com/file/7154965913/N1100_3.rar.html

    این روتین اضافه شده :
    void N11_DrawBitmap(_const unsigned char *bitmap, unsigned char x, unsigned char y, N11_Pmode mode);

    توضیح اینکه این تابع تصویر BMP رو در هر نقطه X و Y که مشخص کنید رسم میکنه و mode هم میتونه BLACK یعنی حالت عادی و یا INVERS یعنی جای سیاه و سفید معکوس، باشه...

    خوش گذشت....
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Hidden Content

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp
  8. #8
    2007/03/01
    تهران
    1,248
    232

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

    با سلام، :bye

    حسب درخواست برخی از دوستان، درایور KS0108 رو بازنگری کردم و بعد از اعمال تغییرات کلی، فونت فارسی و قابلیت رسم BMP در هر نقطه از صفحه نمایش رو اضافه نمودم.

    سعی کردم که این توابع رو طوری تغییر بدم که هم سرعت قابل قبولی داشته باشن و هم اینکه در WinAVR و CodeVision ( همزمان ) قابل استفاده باشن. نکته اینکه چون بیس برنامه نویسی من WinAVR هستش، یک سری وارنینگ توی CV مشاهده میشن که من سعی کردم تا حد امکان اونها رو برطرف کنم. کنترل کردم، وارنینگ های باقیمانده چیز مهمی نیستن! ( من توی هر دو محیط کمپایل و تست کردم )

    برای آشنایی با نحوه نوشتن برنامه هایی که همزمان بشه توی دوتا پلتفرم کمپایلشون کرد، به فایل app_config.h توجه بفرمائید. ( جنبه آموزشی داره و مفیده :mrgreen: ) توجه کنید که باید Define ها و Include های اختصاصی کامپایلر خودتون رو در این فایل و حتما در قسمت مربوط به خودش اضافه کنید.

    در ضمن سعی کردم که روتین های غیر مرتبط کاملا از همدیگه جدا باشن تا به فراخور برنامه خودتون اونها رو کم و زیاد کنید تا حجم و سرعت برنامتون بهینه باشه.

    تنظیمات سخت افزاری KS0108 در فایل ks0108config.h قرار داره و این تنها فایلی هست که شما با توجه به پروژه خودتون باید تغییرش بدید. توجه کنید که این درایور قابلیت اتصال در حالت پورت ( اتصال معمولی ) و اتصال در حالت Memory mapped رو داره که در همین فایل باید انتخاب کنید....

    اگر مشکلی مشاهده کردید و یا سوالی داشتید، من در خدمتم

    http://s2.picofile.com/file/7161140749/pGLCD4.rar.html
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Hidden Content

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp
  9. #9
    2007/11/21
    ایران - تهران
    352
    3
    mrh

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

    نقل قول نوشته اصلی توسط aivhl
    با سلام، :bye

    حسب درخواست برخی از دوستان، درایور KS0108 رو بازنگری کردم و بعد از اعمال تغییرات کلی، فونت فارسی و قابلیت رسم BMP در هر نقطه از صفحه نمایش رو اضافه نمودم.

    سعی کردم که این توابع رو طوری تغییر بدم که هم سرعت قابل قبولی داشته باشن و هم اینکه در WinAVR و CodeVision ( همزمان ) قابل استفاده باشن. نکته اینکه چون بیس برنامه نویسی من WinAVR هستش، یک سری وارنینگ توی CV مشاهده میشن که من سعی کردم تا حد امکان اونها رو برطرف کنم. کنترل کردم، وارنینگ های باقیمانده چیز مهمی نیستن! ( من توی هر دو محیط کمپایل و تست کردم )

    برای آشنایی با نحوه نوشتن برنامه هایی که همزمان بشه توی دوتا پلتفرم کمپایلشون کرد، به فایل app_config.h توجه بفرمائید. ( جنبه آموزشی داره و مفیده :mrgreen: ) توجه کنید که باید Define ها و Include های اختصاصی کامپایلر خودتون رو در این فایل و حتما در قسمت مربوط به خودش اضافه کنید.

    در ضمن سعی کردم که روتین های غیر مرتبط کاملا از همدیگه جدا باشن تا به فراخور برنامه خودتون اونها رو کم و زیاد کنید تا حجم و سرعت برنامتون بهینه باشه.

    تنظیمات سخت افزاری KS0108 در فایل ks0108config.h قرار داره و این تنها فایلی هست که شما با توجه به پروژه خودتون باید تغییرش بدید. توجه کنید که این درایور قابلیت اتصال در حالت پورت ( اتصال معمولی ) و اتصال در حالت Memory mapped رو داره که در همین فایل باید انتخاب کنید....

    اگر مشکلی مشاهده کردید و یا سوالی داشتید، من در خدمتم

    http://s2.picofile.com/file/7161140749/pGLCD4.rar.html
    سلام دوست عزیز. واقعا از زحماتی که کشیدید تشکر میکنم.
    یک سوال داشتم و اینه که فونت ها رو با چه نرم افزاری تهیه میکنید و میشه به راحتی فونت های ویندوز رو برای lcd تبدیل کنیم؟
    بگذارعشق خاصیت تو باشد نه رابطه خاص تو باکسی
    موفقيت پيش رفتن است نه به نقطه ي پايان رسيدن
    نلسون ماندلا
  10. #10
    2007/03/01
    تهران
    1,248
    232

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

    نقل قول نوشته اصلی توسط رضا بابایی
    سلام دوست عزیز. واقعا از زحماتی که کشیدید تشکر میکنم.
    یک سوال داشتم و اینه که فونت ها رو با چه نرم افزاری تهیه میکنید و میشه به راحتی فونت های ویندوز رو برای lcd تبدیل کنیم؟
    با سلام،

    از ابراز لطفتون ممنونم....
    من از برنامه فونت ادیتور H. Reddmann استفاده میکنم که برنامه اش توی پیوست لینک زیر در دایرکتوری Font هستش :
    http://www.eca.ir/forum2/index.php?topic=52090.msg296549#msg296549

    این فونت ادیتور قابلیت import فونت های ویندوز رو هم داره ولی توی فونت های با سایز کوچیک (ارتفاع کمتر از 10 ) فونتها خیلی خوب در نمیاد و کار دستی زیاد میبره که البته این مشکل این برنامه نیست، مشکل همه فونت ادیتورهاست. در کل نرم افزار راحت و خوبیه....
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Hidden Content

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp
صفحه 1 از 8 12345678 آخرین
نمایش نتایج: از 1 به 10 از 72

موضوعات مشابه

  1. پاسخ: 171
    آخرين نوشته: 2020/11/14, 23:57
  2. پاسخ: 22
    آخرين نوشته: 2019/06/10, 16:31
  3. فونت فارسی برای توابع استاندارد GLCD های کدویژن
    توسط aivhl در انجمن پروژه ها و مقالات تكميل شده AVR
    پاسخ: 28
    آخرين نوشته: 2016/10/06, 09:24
  4. پاسخ: 8
    آخرين نوشته: 2015/10/05, 19:53

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •