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





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









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









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





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

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 20
  1. #1
    2010/01/26
    شبستر گونئی
    688
    388

    روش طراحی فونت فارسی برای LCD KS108

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

    امیدوارم همه بتونن ازش استفاده کنن
    من فرض رو بر این میزارم که شما با سی و کدویژن و LCD KS108 اشنا هستین و نیازی به توضیح و اموزش ندارین.

    یه توضیح مختصری در مورد فونت فارسی اینکه
    هرکدوم از حروف فارسی چهار حالت داره
    1- اول
    2- وست
    3- اخر چسبان
    4- اخر تنها
    مثل حرف ه ( ههه ه)
    مثل حرف ی ( ییی ی) و ...
    ممکنه بعضی از حروف یکی از این حالتها رو نداشته باشه ولی بیشتر از 4 تا نیست

    بنابر این بجر خود فونت یه MAP یا یه جدول دیگه هم نیازه که نوع حرف رو تشخیص بدیم

    اول خود فونت :

    باید با یه نرم افزار فونت ساز یا تبدیل عکس به HEX مثل FAST LCD یه عکس از فونت طراحی بشه
    این نرم افزار
    FAST LCD
    http://s1.picofile.com/file/6789884304/FastLCD.exe.html

    این هم خود فایل فونتمون که فعلا به صورت یه عکسه





    و بعد از تبدیل به صورت HEX میشه

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


    flash unsigned char F_FONT8x8[78][8] = {
    0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x3A, 0x02,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xA0, 0x18,
    0x18, 0x24, 0x20, 0xA0, 0x20, 0x20, 0x20, 0x18,
    0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xA0, 0x98,
    0x18, 0x24, 0x20, 0xA0, 0xA0, 0xA0, 0x20, 0x18,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x22, 0x1A,
    0x18, 0x24, 0x20, 0x22, 0x20, 0x22, 0x20, 0x18,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x21, 0x1A,
    0x18, 0x24, 0x20, 0x24, 0x22, 0x24, 0x20, 0x18,
    0x00, 0x00, 0x20, 0x28, 0x24, 0xA4, 0x28, 0x10,
    0x00, 0x40, 0xA0, 0xA8, 0xA4, 0x24, 0xA8, 0x10,
    0x00, 0x00, 0x20, 0xA8, 0xA4, 0xA4, 0x28, 0x10,
    0x00, 0x40, 0xA0, 0xA8, 0x24, 0xA4, 0xA8, 0x90,
    0x00, 0x00, 0x20, 0x28, 0x24, 0x24, 0x28, 0x10,
    0x00, 0x40, 0xA0, 0xA8, 0xA4, 0x24, 0x28, 0x10,
    0x00, 0x20, 0x22, 0x28, 0x24, 0x24, 0x28, 0x10,
    0x00, 0x40, 0xA2, 0xA8, 0xA4, 0x24, 0x28, 0x10,
    0x00, 0x00, 0x00, 0x20, 0x40, 0x44, 0x28, 0x10,
    0x00, 0x00, 0x00, 0x22, 0x40, 0x44, 0x28, 0x10,
    0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x38,
    0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x3A,
    0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x42, 0x34,
    0x00, 0x20, 0x20, 0x18, 0x20, 0x18, 0x20, 0x18,
    0x70, 0x88, 0x80, 0x78, 0x20, 0x18, 0x20, 0x18,
    0x00, 0x20, 0x20, 0x18, 0x22, 0x19, 0x22, 0x18,
    0x70, 0x88, 0x80, 0x78, 0x22, 0x19, 0x22, 0x18,
    0x00, 0x20, 0x18, 0x30, 0x28, 0x24, 0x24, 0x18,
    0x70, 0x88, 0x80, 0x7C, 0x28, 0x24, 0x24, 0x18,
    0x00, 0x20, 0x18, 0x32, 0x28, 0x24, 0x24, 0x18,
    0x70, 0x88, 0x80, 0x7C, 0x28, 0x25, 0x24, 0x18,
    0x00, 0x00, 0x20, 0x3E, 0x28, 0x24, 0x24, 0x18,
    0x00, 0x00, 0x20, 0x3E, 0x28, 0x25, 0x24, 0x18,
    0x00, 0x00, 0x00, 0x20, 0x38, 0x24, 0x24, 0x28,
    0x00, 0x00, 0x20, 0x28, 0x34, 0x14, 0x34, 0x2C,
    0x00, 0x00, 0x00, 0x40, 0xA8, 0x94, 0x94, 0xA8,
    0x00, 0x00, 0x00, 0x60, 0x90, 0x9C, 0x92, 0x92,
    0x00, 0x00, 0x00, 0x20, 0x38, 0x24, 0x25, 0x28,
    0x00, 0x00, 0x20, 0x28, 0x34, 0x15, 0x34, 0x2C,
    0x00, 0x00, 0x00, 0x40, 0xA8, 0x94, 0x95, 0xA8,
    0x00, 0x00, 0x00, 0x62, 0x90, 0x9C, 0x92, 0x92,
    0x00, 0x00, 0x00, 0x20, 0x38, 0x25, 0x24, 0x18,
    0x18, 0x24, 0x20, 0x20, 0x38, 0x25, 0x24, 0x18,
    0x00, 0x00, 0x00, 0x20, 0x39, 0x24, 0x25, 0x18,
    0x00, 0x30, 0x48, 0x80, 0x99, 0xA4, 0xA5, 0x78,
    0x00, 0x00, 0x20, 0x2C, 0x2A, 0x2A, 0x2A, 0x12,
    0x18, 0x24, 0x20, 0x2C, 0x2A, 0x2A, 0x2A, 0x12,
    0x00, 0x00, 0x20, 0x2C, 0x2A, 0x2B, 0x2B, 0x13,
    0x18, 0x24, 0x20, 0x2C, 0x2A, 0x2B, 0x2B, 0x13,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1E,
    0x00, 0x00, 0x30, 0x48, 0x40, 0x40, 0x20, 0x1E,
    0x00, 0x00, 0x20, 0x20, 0x18, 0x24, 0x24, 0x18,
    0x00, 0x00, 0xF0, 0x08, 0x18, 0x24, 0x24, 0x18,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x22, 0x18,
    0x00, 0x30, 0x48, 0x80, 0x84, 0x80, 0x40, 0x38,
    0x00, 0x00, 0x00, 0x00, 0x98, 0xA4, 0xA4, 0x78,
    0x00, 0x00, 0x20, 0x28, 0x15, 0x2A, 0x24, 0x18,
    0x00, 0x00, 0x20, 0x78, 0xA4, 0x54, 0x28, 0x20,
    0x00, 0x00, 0x00, 0x00, 0x0C, 0x12, 0x02, 0x1E,
    0x00, 0x00, 0x00, 0x00, 0x30, 0x44, 0x48, 0x30,
    0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xA0, 0x18,
    0x00, 0x70, 0x88, 0x80, 0x90, 0xA8, 0x48, 0x10,
    0x00, 0x38, 0x44, 0x80, 0x8C, 0x92, 0x92, 0x64,
    0x00, 0x00, 0x00, 0x00, 0x2C, 0x12, 0x08, 0x04,
    0x00, 0x00, 0x00, 0x00, 0x22, 0x3C, 0x20, 0x1E,
    0x00, 0x18, 0x14, 0x3E, 0x40, 0x3E, 0x40, 0x3E,
    0x00, 0x00, 0x00, 0x0C, 0x12, 0xA2, 0x02, 0x04,
    0x00, 0x00, 0x00, 0x00, 0x30, 0x48, 0x48, 0x30,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E,
    0x00, 0x00, 0x00, 0x00, 0x7E, 0x08, 0x08, 0x06,
    0x00, 0x00, 0x7E, 0x08, 0x08, 0x06, 0x08, 0x06,
    0x00, 0x00, 0x00, 0x7C, 0x10, 0x1C, 0x12, 0x12,
    0x00, 0x00, 0x30, 0x48, 0x22, 0x44, 0x48, 0x30,
    0x00, 0x00, 0x0C, 0x52, 0x30, 0x10, 0x08, 0x04,
    0x00, 0x00, 0x00, 0x06, 0x18, 0x60, 0x18, 0x06,
    0x00, 0x00, 0x00, 0x60, 0x18, 0x06, 0x18, 0x60,
    0x00, 0x00, 0x00, 0x00, 0x0C, 0x12, 0x12, 0x7C,
    };
    حالا به یه MAP نیاز داریم
    این MAP برای تشخیص نوع حرف و حالتش به کار میره
    توی یونیکد حروف فارسی از 127 شروع میشه تا 255 پس یکی یکی شماره حروف رو در میاریم
    و توی یه جدول 128X4 میزاریم

    مثل این


    flash unsigned char F_FONT_MAP[111][4]={
    0xFF, 0xFF, 0xFF, 0xFF, // 127 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 128 =>
    0x06, 0x06, 0x05, 0x05, // 129 => پ
    0xFF, 0xFF, 0xFF, 0xFF, // 130 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 131 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 132 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 133 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 134 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 135 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 136 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 137 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 138 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 139 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 140 =>
    0x0E, 0x0E, 0x0D, 0x0D, // 141 => چ
    0x17, 0x17, 0x17, 0x17, // 142 => ژ
    0xFF, 0xFF, 0xFF, 0xFF, // 143 =>
    0x31, 0x31, 0x30, 0x30, // 144 => گ
    0xFF, 0xFF, 0xFF, 0xFF, // 145 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 146 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 147 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 148 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 149 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 150 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 151 =>
    0x2F, 0x2F, 0x2E, 0x2E, // 152 => ک
    0xFF, 0xFF, 0xFF, 0xFF, // 153 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 154 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 155 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 156 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 157 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 158 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 159 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 160 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 161 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 162 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 163 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 164 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 165 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 166 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 167 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 168 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 169 =>
    0x3C, 0x3B, 0x3A, 0x39, // 170 => ه
    0xFF, 0xFF, 0xFF, 0xFF, // 171 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 172 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 173 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 174 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 175 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 176 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 177 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 178 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 179 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 180 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 181 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 182 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 183 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 184 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 185 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 186 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 187 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 188 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 189 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 190 =>
    0x43, 0x43, 0x43, 0x43, // 191 => ؟
    0x3C, 0x3B, 0xFF, 0xFF, // 192 => ه
    0x40, 0x40, 0x40, 0x40, // 193 => ء
    0xFF, 0xFF, 0xFF, 0x00, // 194 => آ
    0xFF, 0xFF, 0xFF, 0xFF, // 195 => أ
    0xFF, 0xFF, 0xFF, 0xFF, // 196 => ؤ
    0x02, 0x02, 0x02, 0x02, // 197 => إ
    0xFF, 0xFF, 0xFF, 0xFF, // 198 => ئ
    0x02, 0x01, 0x01, 0x02, // 199 => ا
    0x04, 0x04, 0x03, 0x03, // 200 => ب
    0xFF, 0xFF, 0xFF, 0xFF, // 201 => ة
    0x08, 0x08, 0x07, 0x07, // 202 => ت
    0x0A, 0x0A, 0x09, 0x09, // 203 => ث
    0x0C, 0x0C, 0x0B, 0x0B, // 204 => ج
    0x10, 0x10, 0x0F, 0x0F, // 205 => ح
    0x12, 0x12, 0x11, 0x11, // 206 => خ
    0x13, 0x13, 0x13, 0x13, // 207 => د
    0x14, 0x14, 0x14, 0x14, // 208 => ذ
    0x15, 0x15, 0x15, 0x15, // 209 => ر
    0x16, 0x16, 0x16, 0x16, // 210 => ز
    0x19, 0x19, 0x18, 0x18, // 211 => س
    0x1B, 0x1B, 0x1A, 0x1A, // 212 => ش
    0x1D, 0x1D, 0x1C, 0x1C, // 213 => ص
    0x1F, 0x1F, 0x1E, 0x1E, // 214 => ض
    0xFF, 0xFF, 0xFF, 0xFF, // 215 =>
    0x20, 0x20, 0x20, 0x20, // 216 => ط
    0x21, 0x21, 0x21, 0x21, // 217 => ظ
    0x25, 0x24, 0x23, 0x22, // 218 => ع
    0x29, 0x28, 0x27, 0x26, // 219 => غ
    0xFF, 0xFF, 0xFF, 0xFF, // 220 =>
    0x2B, 0x2B, 0x2A, 0x2A, // 221 => ف
    0x2D, 0x2D, 0x2C, 0x2C, // 222 => ق
    0x2F, 0x2F, 0x2E, 0x2E, // 223 => ک
    0xFF, 0xFF, 0xFF, 0xFF, // 224 =>
    0x33, 0x33, 0x32, 0x32, // 225 => ل
    0xFF, 0xFF, 0xFF, 0xFF, // 226 =>
    0x35, 0x35, 0x34, 0x34, // 227 => م
    0x37, 0x37, 0x36, 0x36, // 228 => ن
    0x3C, 0x3B, 0x3A, 0x39, // 229 => ه
    0x38, 0x38, 0x38, 0x38, // 230 => و
    0xFF, 0xFF, 0xFF, 0xFF, // 231 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 232 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 233 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 234 =>
    0xFF, 0xFF, 0xFF, 0xFF, // 235 =>
    0x3F, 0x3E, 0x3D, 0x3D, // 236 => ي
    0x3F, 0x3E, 0x3D, 0x3D // 237 => ي
    };

    حالا کل کار اینه که کد هگز یکی یکی حروف جملتون رو ضرب در چهار کنید و با عدد 127 جمع کنید حالت حرف رو تشخیص بدی (بفهمی کدوم یکی از اون چهارتاست) بعد با خوندن 8 بایت از جدول فونتمون با ابتدای عددی که از توی جدول MAP در اوردیم روی LCD نمایش بدیم
    توی پست بعد روش تشخیص حالتهای حروف رو هم یاد خواهم داد.
    تجربه معلم خشنی هست اول امتحان میگیره بعد درس میده !!!
    به دلیل برخی مشکلات بوجود اماده دیگه امکان ادامه فعالت در این انجمن مقدور نیست.
  2. #2
    2007/11/25
    1,142
    13

    پاسخ : روش طراحی فونت فارسی برای LCD KS108

    واقعا ازت ممنونم برای آموزشهای خوبت اگه برات مقدور بود ساختن اون نوار برای SELECT را هم آموزش بده ممنوندر ضمن در سایت ایران میکرو کاربری به نام AGAPE این فونت را ساخته وشما میتونی توی کدویژن فارسی تایپ کنی و هر فونتی هم که بخوای وسفارش بدی هزینه اش را میگیره و میسازه نمیدونم چطوری این کار را کرده
  3. #3
    2010/01/26
    شبستر گونئی
    688
    388

    پاسخ : روش طراحی فونت فارسی برای LCD KS108

    نقل قول نوشته اصلی توسط زوار
    واقعا ازت ممنونم برای آموزشهای خوبت اگه برات مقدور بود ساختن اون نوار برای SELECT را هم آموزش بده ممنوندر ضمن در سایت ایران میکرو کاربری به نام AGAPE این فونت را ساخته وشما میتونی توی کدویژن فارسی تایپ کنی و هر فونتی هم که بخوای وسفارش بدی هزینه اش را میگیره و میسازه نمیدونم چطوری این کار را کرده
    زوار جان من که قبلا هم گفتم فقط موقع چاپ یا نوشتن رم lcd دیتا رو نات میکنم پیکسلهای سفید سیا میشه و پیکسلهای سیاه سفید همین ولی برای انتخاب عکس یا منوهای گرافیکی مثل صفحه اول اون برد یه تابع نوشتم مثل تابع نمایش عکس که هر جا رو که بگم بایت به بایت از LCD میخونه و ناتشو رو LCD مینویسه
    فکر نمیکنم کسی تا حالا مثل این فونت رو نوشته باشه معمولا برنامه های تجاری مثل این نیست نکته هایی که من توی این فونت در نظر گرفتم ایناست
    1 - اگر دقت بکنی من کل حروف رو با حالت های مختلفش و عداد فارسی در 77 حالت خلاصه کردم اکسر حروف در یک حالت خلاصه شده و طوری طراحی شده که به جای هر چهار حالت مورد استفاده قرار بگیره مثل حروف (ز ر ذ د و .....)
    2 - همه حروف بیشتر از 8X8 پیکسل نیستند چه از ارتفا و چه از طول
    3 - طول حروف کمه و جای کمی میگیره به راحتی میشه یه جمله 5 یا 6 کلمه ای رو در یک سطر نوشت

    این هم یه فیلم شرمنده فقط کمی هجمش بالاست

    http://www.4shared.com/video/hgwjffXh/New_-_MVI_0003.html

    یه چند تا عکس میزارم تا بهتر متوجه بشین













    تجربه معلم خشنی هست اول امتحان میگیره بعد درس میده !!!
    به دلیل برخی مشکلات بوجود اماده دیگه امکان ادامه فعالت در این انجمن مقدور نیست.
  4. #4
    2009/10/27
    تهران
    3,312
    918

    پاسخ : روش طراحی فونت فارسی برای LCD KS108

    این تاپیک بسیار خوبی است که تشکیل دادید و جای تقدیر و تشکر دارد. فقط توضیحات شما در مرحله روش تشخیص بین 4 حالت یک فونت ناتمام ماند که دلیل آن احتمالا این است که کسی ادامه مطلب را پیگیری نکرده است. به همین دلیل شخصا این پست را منتشر کردم تا شما زحمت بکشید و توضیح خود را تکمیل کنید.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد
  5. #5
    2010/01/26
    شبستر گونئی
    688
    388

    پاسخ : روش طراحی فونت فارسی برای LCD KS108

    نقل قول نوشته اصلی توسط طراح
    این تاپیک بسیار خوبی است که تشکیل دادید و جای تقدیر و تشکر دارد. فقط توضیحات شما در مرحله روش تشخیص بین 4 حالت یک فونت ناتمام ماند که دلیل آن احتمالا این است که کسی ادامه مطلب را پیگیری نکرده است. به همین دلیل شخصا این پست را منتشر کردم تا شما زحمت بکشید و توضیح خود را تکمیل کنید.
    سلام اقای کی نژاد شما همیشه به من لطف داشتین چشم ادامه میدم
    برای تشخیص حروف
    قبل از انتخاب نوع حرف ، حرف قبل رو چک میکنیم تا بدونم یکی از این (ا - آ - د - ذ - ر - ز - ژ - و - فاصله)حروف هست یا نه بعد قاصله چک میشه مصل این
    1 - اگر حرف قبل یکی از این نه حرف باشد به شرطی که حرف بعدی فاصله باشه از نوع چهارم یا اخر تنها هست
    2 - اگر حرف قبل یکی از این نه حرف باشد به شرطی که حرف بعدی فاصله نباشه از نوع اول یا اول چسبان هست
    3 - اگر حرف قبل یکی از این نه حرف نباشد به شرطی که حرف بعدی فاصله باشد از نوع سوم یا اخر چسبان هست
    4 - اگر حرف قبل یکی از این نه حرف نباشد به شرطی که حرف بعدی فاصله نباشد از نوع ذوم یا وسط هست
    یه چیزی مثل این البته من اینجا کاراکتر نال یا پایان زشته رو هم همزمان با فاصله چک کردم

    a

    str--;
    val = *str;
    str++;
    if(val==32 || val==199 || val==194 || val==207 || val==208 || val==209 || val==210 || val==142 || val==230)
    {
    str++;
    val = *str;
    str--;
    if(val==32 || val=='\0&#039
    data = 0;
    else
    data = 3;
    }
    else
    {
    str++;
    val = *str;
    str--;
    if(val==32 || val=='\0&#039
    data = 1;
    else
    data = 2;
    }


    این هم کد اسکی حروف فارسی
    ا = 199
    آ = 194
    ب = 200
    پ = 129
    ت = 202
    ث = 203
    ج = 204
    چ = 141
    ح = 205
    خ = 206
    د = 207
    ذ = 208
    ر = 209
    ز = 210
    ژ = 142
    س = 211
    ش = 212
    ص = 213
    ض = 214
    ط = 216
    ظ = 217
    ع = 218
    غ = 219
    ف = 221
    ق = 222
    ک = 223
    گ = 144
    ل = 225
    م = 227
    ن = 228
    و = 230
    ه = 229
    ی = 236
    البته بین اینها حروف مشترک با کدهای اسکی متفاوت و حروف دیگه ای مثل همزه و حرف ی زیر نقطه دار و حرکه ها و یه تعدارد مخلفات دیگه هم هست که چون نیازی بهشون نیست من ننوشتم و فقط به حروف اصلی بسنده کردم
    همونطوری که قبلا هم گفتم من این حروف رو جوری طراحی کردم که بیشترشون فقط یک یا دو حالت دارند مثلا کلا حالت اخر چسبان با حالت اخر تنها بجر حرف ه در دیگر حروف یکسان هست یا حالت اول چسبان با حالت وسط بجز حرف ه در دیگر حروف یکسان هستو ... که این خود حجم فلش رو خیلی کم میکنه
    تجربه معلم خشنی هست اول امتحان میگیره بعد درس میده !!!
    به دلیل برخی مشکلات بوجود اماده دیگه امکان ادامه فعالت در این انجمن مقدور نیست.
  6. #6
    2008/11/14
    238
    1

    پاسخ : روش طراحی فونت فارسی برای LCD KS108

    سلام

    لطفا این آموزش رو برای تابلوروان و طراحی فونت فارسی قرار دهید البته برای بیسیک

    ممنون
  7. #7
    2008/02/19
    2,296
    45

    پاسخ : روش طراحی فونت فارسی برای LCD KS108

    سلام

    اول تشکر از آموزش های بسیار خوبتون

    دوم یه سوال سوال داشتم

    من دلیل استفاده از آرایه ی F_FONT_MAP رو متوجه نمیشم ، میشه یکم توضیح بدید که کارش چیه؟

    ممنون
  8. #8
    2010/01/26
    شبستر گونئی
    688
    388

    پاسخ : روش طراحی فونت فارسی برای LCD KS108

    نقل قول نوشته اصلی توسط ava123
    سلام

    لطفا این آموزش رو برای تابلوروان و طراحی فونت فارسی قرار دهید البته برای بیسیک

    ممنون
    دوست من من با بیسیک زیاد کار نمی کنم ولی اگر مشکلی داشتی میتونی بپرسی
    در مورد فونت برای تابلو روات باید بگم نیازی به فونت نداره شما بهتره با نرم افزار کامپیوترش دیتای متنتون رو تولید و به میکرو اتقال بدین فقط تابلو کار اسکن رو باید بکنه نه بیشتر
    تجربه معلم خشنی هست اول امتحان میگیره بعد درس میده !!!
    به دلیل برخی مشکلات بوجود اماده دیگه امکان ادامه فعالت در این انجمن مقدور نیست.
  9. #9
    2010/01/26
    شبستر گونئی
    688
    388

    پاسخ : روش طراحی فونت فارسی برای LCD KS108

    نقل قول نوشته اصلی توسط حامد مهری
    سلام

    اول تشکر از آموزش های بسیار خوبتون

    دوم یه سوال سوال داشتم

    من دلیل استفاده از آرایه ی F_FONT_MAP رو متوجه نمیشم ، میشه یکم توضیح بدید که کارش چیه؟

    ممنون
    با سلام
    اول اینکه امضای قشنگی داری خوشم اومد از سلیقت
    اما در مورد سوالت ببین دوست مو همونطوری که قبلا توضیح دادم هر حرف 4 حالت داره در صورتی که برای هر چهارتا حالتش فقط یه کد اسکی هست ودر هر چهار حالت مشترکه توی ارایه خود فونت ما نمیتونیم همه حروف رو با حالهای مختلفش قرار بدیم یعنی جا نمیشه شما 32 حرف داری با حرکه ها و چند تا شکلک و علامت 32X4 میشه 128 با 128 تای انگلیسی میشه 256 در صورتی که کد اسکی 8 بیته و 256 اخرشه ولی در واقع این ویندوز یا خود مصرف کننده فونت هست که تصمیم میگیره از کدوم حالت استفاده کنه
    توی هر فونت 256 حرف اصلی داریم که همون کدهای اصلی هستند که 127 تای اول همشون انگلیسی یا همین کدهای اسکی استاندارده و فقط 127 تای بعدی میمونه حالتهای حروف هم کد داره ولی بیشتر از 256 هست اما اونها هم استاندارده یه نرم افزار فونت ادیتور مخصوص کامپیوتر نصب کن بهتر متوجه میشی
    تجربه معلم خشنی هست اول امتحان میگیره بعد درس میده !!!
    به دلیل برخی مشکلات بوجود اماده دیگه امکان ادامه فعالت در این انجمن مقدور نیست.
  10. #10
    2009/10/27
    تهران
    3,312
    918

    پاسخ : روش طراحی فونت فارسی برای LCD KS108

    نقل قول نوشته اصلی توسط POLESTAR
    1 - اگر حرف قبل یکی از این نه حرف باشد به شرطی که حرف بعدی فاصله باشه از نوع چهارم یا اخر تنها هست
    2 - اگر حرف قبل یکی از این نه حرف باشد به شرطی که حرف بعدی فاصله نباشه از نوع اول یا اول چسبان هست
    3 - اگر حرف قبل یکی از این نه حرف نباشد به شرطی که حرف بعدی فاصله باشد از نوع سوم یا اخر چسبان هست
    4 - اگر حرف قبل یکی از این نه حرف نباشد به شرطی که حرف بعدی فاصله نباشد از نوع ذوم یا وسط هست
    با تشکر مجدد از شما، در موارد 4 گانه ای که ذکر کردید جای حرف اول از رشته خالی است که حرف ماقبل آن وجود ندارد و در همان گزینه های 1 و 2 گنجانده می شود. در روش نمایش فونت از طریق تایپ مستقیم فارسی در محیط برنامه، مشکلاتی هم وجود دارد که از جمله آن مسئله نمایش اعداد فارسی است که در ادیتورهای مختلف یا به درستی قابل نمایش نیست و یا در شرایط خاص و با قرار گرفتن بین دو حرف فارسی دیگر قابل نمایش است. یک مسئله دیگر در فونت های متغیر این است که در کاربردهایی که قرار است یک متن از پیش تعیین شده از flash در کنار اطلاعات متغیری از SRAM نمایش داده شود، مکان اطلاعات نمایش داده شده از SRAM به دلیل متغیر بودن طول فونت ها در یک آدرس مشخص نخواهد بود و بستگی به جمله فارسی دارد که در کنار آن قرار می گیرد. بنابراین برنامه نویس یا باید اطلاعات مورد نظر را در یک محل مستقل (و نه به دنبال کاراکترهای فارسی) نمایش دهد و یا برای هر عبارتی آدرس محل مورد نظر را حساب کند که با تغییر متن، آدرس این محل هم تغییر خواهد کرد. این روش البته با یک الگوریتم حساب شده قابل پیاده سازی هست، اما کار برنامه نویسی را با سختی ها و مشکلاتی مواجه می کند که ممکن است برای همه قابل درک و اجرا نباشد. منظور از این توضیحات این است که فونت های با طول ثابت هرچند از نظر زیبایی در مرتبه پائین تری نسبت به فونت های با طول متغیر قرار دارند، اما مزایای خاص خود را هم دارند که گاهی استفاده از آنها را توجیه پذیر می کند.
    در رابطه با پاسخ به آقای مهری هم اگر در Start/All programs/Accessories/System Tools/Character map گزینه Character set را در وضعیت Windows:Arabic قرار دهید، در پائین صفحه در پرانتز، کدهای معادل همان اعدادی که در بالا آورده شده قابل مشاهده است.
    ضمنا ویندوز دارای یک Font editor است که برای دسترسی به آن در Start/Run عبارت eudcedit.exe را تایپ و OK کنید تا اجرا شود و از طریق آن می توانید فونت های مختلف را تصحیح کنید.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 20

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

  1. طریقه ساخت فونت فارسی برای lcd گرافیکی برای بیسکام
    توسط milad2546 در انجمن میکروکنترلرهای AVR
    پاسخ: 45
    آخرين نوشته: 2016/11/25, 18:14
  2. فونت فارسی برای lcd با تاچ ssd1289
    توسط cheshmayebaruni در انجمن میکروکنترلرهای AVR
    پاسخ: 0
    آخرين نوشته: 2015/06/24, 23:32
  3. نرم افزار طراحی فونت فارسی برای lcd128*64 در کدویژن
    توسط eimangh در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2009/11/08, 12:23
  4. فونت فارسی برای GLCD
    توسط tarasheh در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2009/08/17, 10:19

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

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

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

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

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