PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : نوشتن حروف فارسي در ال سي دي كارا



abbas1371sa
19-08-2008, 17:16
سلام
من ميخواستم روي ال سي دي كاراكتري 2*16 متن فارسي بنويسم (در محيط برنامه نويسي بسكام ) ولي نتونستم :?or:(
كسي هست كه يك راه چاره سراغ داشته باشه ؟؟؟

saeed_niknami
19-08-2008, 22:27
با سلام دوسته عزيز

مي توني با ايجاد اطلاعات كاراكتري اون ها رو تو ال سي دي نمايش بدي

اطلاعات كاراكتري مانند نقشه فرش مي مونه تو تاپيك تابلو روان توضيح دادم

و هر سگمنت ال سي دي آدرس مشخصي داره مي توني با استفاده از ديتا شيت تو اين آدرس ها متن فارسي بنويسي (يا هر متن ديگه)

ديتا شيت بخون بعد من بقيه رو مي گم

1nafar
20-08-2008, 17:26
سلام
برای فارسی نوشتن در lcd کارکتری مراحل زیر رو انجام بده
1 - از منوی tools گزینه lcd disainer رو انتخاب کن
2 در پنجره باز شده کارکتر مورد نظرت رو بساز
3- روی ok کلیک کن ، پنجره بسته میشود و یک خط کد مانند زیر به برنامه ات اضافه میشود که به جای علامت سوال باید یکی از اعداد بین صفر تا7 را قرار بدهی
Deflcdchar ?,1,14,20,4,4,4,4,4' replace ? with number (0-7)
4- بعد از انجام مراحل بالا با دستور زیر میتوانی کاراکتر خود را در محل دلخواه نشان دهی
lcd chr (?)
که علامت سوال همان عددی است که در مرحله قبل به جای علامت سوال گذاشتی
این مثال رو ببین

$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
Deflcdchar 0 , 1 , 14 , 20 , 4 , 4 , 4 , 4 , 4 ' replace ? with number (0-7)
Deflcdchar 1 , 32 , 32 , 32 , 32 , 32 , 17 , 31 , 4 ' replace ? with number (0-7)
Deflcdchar 2 , 32 , 32 , 32 , 5 , 31 , 16 , 16 , 32 ' replace ? with number (0-7)
Locate 1 , 1
Lcd Chr(0)
Locate 1 , 2
Lcd Chr(1)
Locate 1 , 3
Lcd Chr(2)
end

alitaroosheh
20-08-2008, 18:10
يه نكته رو در نظر داشته باشيد همه حروف فارسي توي يك كاركتر جا نميشن مثله ش ii998)


اينجا يه مثال توپ گذاشته ازش ميتونيد كمك بگيريد همه كاري بكنيد
You can see links before reply

abbas1371sa
20-08-2008, 19:56
خيلي خيلي ممنون aa) aa) aa) :wink:

5aztv8
30-08-2008, 01:38
چرا همه با بیسیک یاد میدن :x :x :x :x

یکی با c کامل توضیح بده :x :x :x

SMRS
30-08-2008, 04:56
توی کدویژن شما باید کاراکتر دلخواه رو با نرم افزار زیر بسازید و کد اون رو تو برنامه استفاده کنی.
مثلا برای حرف "ب" اینطوری هست.

You can see links before reply

flash unsigned char char1[8] = { 0x0, 0x0, 0x0, 0x11, 0x11, 0xE, 0x0,0x4 };

علامت سوال رو تبدیل به یک عدد کن.

برنامه Lcd Char (You can see links before reply)

CINAPA
26-03-2013, 16:33
توی کدویژن شما باید کاراکتر دلخواه رو با نرم افزار زیر بسازید و کد اون رو تو برنامه استفاده کنی.
مثلا برای حرف "ب" اینطوری هست.

You can see links before reply

flash unsigned char char1[8] = { 0x0, 0x0, 0x0, 0x11, 0x11, 0xE, 0x0,0x4 };

علامت سوال رو تبدیل به یک عدد کن.

برنامه Lcd Char (You can see links before reply)
سلام
میشه توضیح بیشتری بدین من برنامشو نوشتم ولی ارور میده
ارورش هم از اینه ---
_lcd_ready();
فکر کنم یه تابعی نیاز داره و این کد را اصلا نمیشناسه
تشکر

shahrivar88
26-03-2013, 17:24
lcd_write_byte در help کدویژن سرچ کنید توضیحات لازم رو داره.


نمونه یرنامه ای رو پیوست کردم که کاراکتر دلخواه منو نشون میده به مراحل کار توجه کنید و هرجا که لازمه تغیرش بدید. سوالی هم هست درخدمتم.

CINAPA
26-03-2013, 19:49
lcd_write_byte در help کدویژن سرچ کنید توضیحات لازم رو داره.


نمونه یرنامه ای رو پیوست کردم که کاراکتر دلخواه منو نشون میده به مراحل کار توجه کنید و هرجا که لازمه تغیرش بدید. سوالی هم هست درخدمتم.

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

shahrivar88
26-03-2013, 22:58
من از روشی که خود کدویژن گفته استفاده کردم کاراکتر هام رو هم با نرم افزار PicPars میسازم. تا حالا هم مشکلی نداشتم.

لینک دانلود.:


برنامه نویسی میکروکنترلرها - نرم افزار PicPars tools (ساخت کاراکتر های LCD و محاسبه مقامت) (You can see links before reply)

CINAPA
27-03-2013, 00:51
lcd_write_byte در help کدویژن سرچ کنید توضیحات لازم رو داره.


نمونه یرنامه ای رو پیوست کردم که کاراکتر دلخواه منو نشون میده به مراحل کار توجه کنید و هرجا که لازمه تغیرش بدید. سوالی هم هست درخدمتم.

سلام مجدد مهندس
یه زحمتی برات دارم
این فایل را بی زحمت یه چک بکن برنامه + فایل پروتوس هست در کدویژن
که برای ال سی دی 1100 نوشته شده من کامپایلش میکنم ارور میده لطف ببین مشکلی از کجاست؟
تشکر
You can see links before reply

shahrivar88
27-03-2013, 02:02
البته کامپایلش تو کدوژن مشکلی نداره فقط توی پروتیوس ران نمیشه که مشکل از موجود نبودن درایور ال سی دیه pcf8814.dll حلش کنم میذارم.

shahrivar88
27-03-2013, 02:38
C:\Program Files (x86)\Labcenter Electronics\Proteus 7 Professional\MODELS

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

shahrivar88
27-03-2013, 03:22
اینا هم هست پوشه دمو رو نگاه کن

درایور ها هم یادت نره مسیر بالا کپی کنی!!!

CINAPA
27-03-2013, 08:28
اینا هم هست پوشه دمو رو نگاه کن

درایور ها هم یادت نره مسیر بالا کپی کنی!!!
مهندس . اینا را که گذاشتی که مال من نبود این با میکر pic هست در صورتی که از من با مگا 32 بود خواهشن همون جا . هم فایل پروتوش هست و هم برنامش یه نگاه بنداز و چک کن . من چک میکنم تو کدویژن ارور میده ولی مشکلی تو پروتوس باش ندارم حلش کردی فقط فایل سورس شو برام بده تا بریزم تو مگا 32 .
یه سوال دیگه داشتم بابت اون برنامه قبلیت بیزحمت برای این تابع و دستوراتش توضیح بده که برای چی هست و اگه نباشه مشکل ایجاد میکنه ؟؟؟
-----------------------------------------------------------------------------
void define_char(byte flash *pc,byte char_code)
{
byte i,a;
a=(char_code<<3) | 0x40;
for (i=0; i<8; i++) lcd_write_byte(a++,*pc++);

}
-----------------------------------------------------------------------------
شرمنده انداختمت تو زحمت

CINAPA
27-03-2013, 17:23
سلام خوبی مهندس
جریان این توابع و دستوراتشو خودم فهمیدم فقط لطف کن و فایل سورس برنامه که بهت دادم را که برای میکر مگا 32 هست را چک کن و برام بزارش . ممنون

shahrivar88
27-03-2013, 20:09
البته کامپایلش تو کدوژن مشکلی نداره فقط توی پروتیوس ران نمیشه که مشکل از موجود نبودن درایور ال سی دیه pcf8814.dll حلش کنم میذارم.


عرض کردم که بدون مشکل کامپایل شد. توی سیستم من اروری نداره.

ارورش توی سیستم شما چیه؟

نسخه کدوژنتون کدومه.؟

اگه اونارم گذاشتم که مال PIC بود! خیال کردم مشکل شما هم تو پروتیوسه چون اونا بدون مشکل اجرا میشد.

حالا اونارم با هزار زخمت از سایت اجنبی گرفتم!!:alc:

CINAPA
27-03-2013, 20:25
عرض کردم که بدون مشکل کامپایل شد. توی سیستم من اروری نداره.

ارورش توی سیستم شما چیه؟

نسخه کدوژنتون کدومه.؟

اگه اونارم گذاشتم که مال pic بود! خیال کردم مشکل شما هم تو پروتیوسه چون اونا بدون مشکل اجرا میشد.

حالا اونارم با هزار زخمت از سایت اجنبی گرفتم!!:alc:
خوب اینم حلش کردم یه مشکل کوچیکی بود خودم حلش کردم کامپایل میشه ولی چیزی نشون نمیده روی ال سی دی فقط یک لحظه السی دی روشن وخاموش میشه مال شما هم همینطوره
اگه چیزی نشون میده لطف بگید تا ببینم مشکل کجاست
ورژن نرم افزار من 2.5 هست

shahrivar88
27-03-2013, 20:46
یه سوال دیگه داشتم بابت اون برنامه قبلیت بیزحمت برای این تابع و دستوراتش توضیح بده که برای چی هست و اگه نباشه مشکل ایجاد میکنه ؟؟؟
-----------------------------------------------------------------------------
void define_char(byte flash *pc,byte char_code)
{
byte i,a;
a=(char_code<<3) | 0x40;
for (i=0; i<8; i++) lcd_write_byte(a++,*pc++);

}
-----------------------------------------------------------------------------
شرمنده انداختمت تو زحمت

typedef unsigned char byte;
این خط یعنی واژه byte مث unsigned char عمل کند یعنی هرچی با بایت تعریف یشه مث اینه که با unsigned char تعریف شده.


void define_char(byte flash *pc,byte char_code)

این تابع کاراکتر نمایشی مارو توی متغیر byte char_code قرار میده ما هم متغیر byte char_code را ارسال میکنیم سمت ال سی دی


lcd_putchar(0);

این تابع هم که کاراکتر رو جهت نمایش با ال سی دی ارسال میکنه.

دیگه دقیقا از جزیات کار السیدی خبر ندارم که علتشو بدونم:(

flash byte char03[8]={31,31,0,0,0,16,24,14};


define_char(char03,2);
lcd_gotoxy(8,0);
lcd_putchar(2);


char03 توی 2 قرار میگیره
lcd_gotoxy(8,0);:baad:

lcd_putchar(2); بعد 2 ارسال شد جهت نمایش در مختصات 8و0

CINAPA
28-03-2013, 00:43
typedef unsigned char byte;
این خط یعنی واژه byte مث unsigned char عمل کند یعنی هرچی با بایت تعریف یشه مث اینه که با unsigned char تعریف شده.


Void define_char(byte flash *pc,byte char_code)

این تابع کاراکتر نمایشی مارو توی متغیر byte char_code قرار میده ما هم متغیر byte char_code را ارسال میکنیم سمت ال سی دی


lcd_putchar(0);

این تابع هم که کاراکتر رو جهت نمایش با ال سی دی ارسال میکنه.

دیگه دقیقا از جزیات کار السیدی خبر ندارم که علتشو بدونم:(

flash byte char03[8]={31,31,0,0,0,16,24,14};


define_char(char03,2);
lcd_gotoxy(8,0);
lcd_putchar(2);


char03 توی 2 قرار میگیره
lcd_gotoxy(8,0);:baad:

Lcd_putchar(2); بعد 2 ارسال شد جهت نمایش در مختصات 8و0
خوب مهندس .
اینا را که خودم تو پست قبلی خدمتت عرض کردم که فهمیدم ویکی از دوستان یه مجله بهم معرفی کرد که تمام کد ها داخلش بود با توضیحات کامل دستش درد نکنه ...ولی انگار دلت نمی امد اون برنامه ای که مال 1100 بود توضیح بدی . البته مشکلی دیگه ندارم چون اینم فهمیدم نویسندش خود اقای نوربخش بود که باهاش تماس گرفتم و کاملا توضیح داد .دیگه مشکلی ندارم
بازم ممنون از راهنمایی و پاسخ های شما

shahrivar88
28-03-2013, 02:00
سلام مجدد مهندس
یه زحمتی برات دارم
این فایل را بی زحمت یه چک بکن برنامه + فایل پروتوس هست در کدویژن
که برای ال سی دی 1100 نوشته شده من کامپایلش میکنم ارور میده لطف ببین مشکلی از کجاست؟
تشکر
1100 nokia (You can see links before reply)

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



.یه سوال دیگه داشتم بابت اون برنامه قبلیت بیزحمت برای این تابع و دستوراتش توضیح بده که برای چی هست و اگه نباشه مشکل ایجاد میکنه ؟؟؟
-----------------------------------------------------------------------------
void define_char(byte flash *pc,byte char_code)
{
byte i,a;
a=(char_code<<3) | 0x40;
for (i=0; i<8; i++) lcd_write_byte(a++,*pc++);

}


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


.ولی انگار دلت نمی امد اون برنامه ای که مال 1100 بود توضیح بدی . البته مشکلی دیگه ندارم چون اینم فهمیدم نویسندش خود اقای نوربخش بود که باهاش تماس گرفتم و کاملا توضیح داد


من خودم میکرو رو از همین سایت یاد گرفتم به کسایی هم مدیونم که اسمشون رو هم نمیدونم دینم رو هم نسبت به شمایی که نمیشناسم ادا میکنم دلیلی نداره من 1 چیزی بلد باشم ولی دلم نخاد بگم
مشکلتونم که حل شده والا نگا میکردم 1100 رو هم خدمتتون عرض میکردم

mamool
07-08-2013, 03:18
سلام
ممنون از سایت خوبتون
من یه مشکل در مورد کار با پروتئوس ۸ داشتم اونهم اینه که فایلهای ورژن قدیم رو که باز میکنم میگه import کن لطفا نحوه import کردن فایل قدیمی رو برام توضیح بدین
ممنون