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





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









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





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

نمایش نتایج: از 1 به 9 از 9
  1. #1
    2012/07/23
    67
    2

    راه اندازی lcd کارکتری 4بیت 100% عملی

    :wow:سلام. این برنامه رو خودم نوشتم و در اختیار شما گذاشتم. این برنامه رو با برد خودم تست کردم و 100% جواب داد بدون مشکلی.
    اول فایل lcd4bit.h:
    ifndef _LCD4BIT_H
    #define _LCD4BIT_H

    void lcd_init();//function for frist setting lcd
    void lcd_clear();//function for clear lcd
    void lcd_gotoxy(unsigned char,unsigned char);//function for change position on lcd
    void lcd_print(char *);//function for write data on lcd
    void wrcmd(char str);//function for command
    void wrdata(char str);//function for set data on lcd
    void wr4bit(char str);//function for set command on lcd

    #endif

    دوم فایل lcd4bit.c:
    #include "delay.h"
    #include "lcd4bit.h"

    //Control of pin's
    #define e (1UL<<24)
    #define rw (1UL<<25)
    #define rs (1UL<<26)
    #define pins_control (e|rw|rs)
    //Data of pin's
    #define db4 (1UL<<4)
    #define db5 (1UL<<5)
    #define db6 (1UL<<6)
    #define db7 (1UL<<7)
    #define out_data (db4|db5|db6|db7)

    void lcd_init()
    {
    SCS=1;//for fast PORT0 and PORT1
    FIO2DIR|=0x000000f0;//out pin0.4 until pin0.7 for lcd.
    FIO0DIR|=pins_control;
    /************Start program for configuration lcd 4 bit mode**********/
    delay(15);//delay 15ms
    wr4bit(0x03);//set interface 4 bit
    delay(3);//delay 5ms
    wr4bit(0x03);
    delay(1);
    wr4bit(0x03);
    wr4bit(0x02);
    wr4bit(0x02);
    wr4bit(0x08);
    wr4bit(0x28);//set font 5*8 matris
    wr4bit(0x0c);//display on and crusor off
    wr4bit(0x06);//finish configuration lcd 4 bit mode
    }
    /************************************************** ****************************/
    void lcd_clear()
    {
    wr4bit(0x01);//clear display
    wr4bit(0x80+0);//move crusor to home
    }
    /************************************************** ****************************/
    void lcd_gotoxy(unsigned char x,unsigned char y)
    {

    switch(y)
    {
    case 0: wr4bit(0x80+x);break;//Change position 1-line
    case 1: wr4bit(0xC0+x);break;//Change position 2-line
    }
    }
    /************************************************** ****************************/
    void wr4bit(char str)
    {
    wrcmd(str>>4);
    wrcmd(str);
    }

    /************************************************** ****************************/
    void lcd_print(char *s)
    {
    while(*s!=0)
    {
    wrdata(*s++);
    }
    }
    /************************************************** ****************************/
    void wrcmd(char str)
    {
    FIO0CLR|=rw;
    FIO0CLR|=rs;
    FIO2SET|=(str&0x0f)<<4;//4 shift for set for pin0.4 until p0.7
    FIO0SET|=e;
    delay(1);
    FIO0CLR|=e;
    delay(3);
    FIO2CLR|=out_data;//clear pin0.0 until p0.7(data pin)

    }
    /************************************************** ****************************/
    void wrdata(char str)
    {
    FIO2CLR|=out_data;//clear pin0.0 until p0.7(data pin)
    FIO0SET|=rs;
    FIO0SET|=e;
    FIO2SET|=((str>>4)&0x0f)<<4;//4 shift for set for pin0.4 until p0.7
    delay(1);
    FIO0CLR|=e;
    delay(3);

    FIO2CLR|=out_data;//clear pin0.0 until p0.7(data pin)
    FIO0SET|=rs;
    FIO2SET|=((str)&0x0f)<<4;//4 shift for set for pin0.4 until p0.7
    FIO0SET|=e;
    delay(1);
    FIO0CLR|=e;
    delay(3);
    FIO2CLR|=out_data;//clear pin0.0 until p0.7(data pin)
    }
    /*EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEE*/
    هر سوالی داشتید و یا جایی رو متوجه نشدید بگید. نظر هم بدید لطفاً :job:
  2. #2
    2012/07/23
    67
    2

    راه اندازی lcd کارکتری 4بیت 100% عملی

    راستی برای delay() از کریستال خارجی استفاده کردم 12MHz خودتون و با lpc2368 کار کردم.
  3. #3
    2007/08/04
    اصفهان
    577
    5

    پاسخ : راه اندازی lcd کارکتری 4بیت 100% عملی

    سلام
    اگه تابع delay را هم می گذاشتید همین جا بهتر بود
    فيلم آموزشي ميکروکنترلر LPC1768
    فيلم آموزشي تکميلي و پيشرفته ميکروکنترلر LPC1768
    فيلم آموزش کاربردی زبان سی در میکروکنترلر ARM
    فیلم آموزش مقدماتی میکروکنترلر LPC1788 به زودی ...
  4. #4
    2012/07/23
    67
    2

    پاسخ : راه اندازی lcd کارکتری 4بیت 100% عملی

    اگه برای delay مشکل دارین که چه مقدار داره بگین تا براتون حلش کنم. اینو روی برد lpc2368 eca جواب گرفتم و هم روی بردی که خودم طراحی کردم.
  5. #5
    2008/10/29
    2,098
    219

    پاسخ : راه اندازی lcd کارکتری 4بیت 100% عملی

    سلام
    ممنونم از اینکه سورس کدتون رو قرار دادین برای بقیه دوستان
    من برای PIC در حال نوشتن کتابخانه ال سی دی 16*2 توسط 4 بیت بودم که متاسفانه به دلیل کمبود و یا پیدا نکردن رفرنس مناسب موفق به انجام چنین کاری نشدم.می شه روال کار رو بگین که نهایتا بنده با تبدیل به سورس PIC این کتابخانه و کار شما رو گشترش داده باشم؟

    ممنون می شم راهنمایی به صورت توضیحات فارسی در مرحله بگین(سورس 8 بیت رو نوشتم اما 4 بیت اهمیتش بیشتر هست)
    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.
  6. #6
    2012/05/30
    کرمان
    793
    19

    پاسخ : راه اندازي lcd کارکتري 4بيت 100% عملي

    تفاوت زيادي بين 8 بيت و 4 بيتي نيست.در مد 4 بيتي اطلاعات به دو قسمت چهار بيتي(نيپل) تقسيم ميشن و ابتدا 4 بيت پر ارزش ارسال ميشن و بعد 4 بيت کم ارزش.
    و همون طور که در مد 8 بيتي کامند 0x38 رو براي قرار دادن lcd در مد 8 بيتي ارسال ميکنيد در اين جا هم بايد کامندي رو براي قرار دادن lcd در مد 4 بيتي ارسال کنيد که اون 0x28 هسته.
    تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا
  7. #7
    2007/08/04
    اصفهان
    577
    5

    پاسخ : راه اندازی lcd کارکتری 4بیت 100% عملی

    نقل قول نوشته اصلی توسط dantte
    هر سوالی داشتید و یا جایی رو متوجه نشدید بگید. نظر هم بدید لطفاً :job:
    سلام
    برای تنظیمات اولیه بهتر بود یه تابع مثل lcd_init4(); قرار می دادید که کدهایی که به lcd می گفت می خواهید مد چهارتایی کار کنید را در آن قرار می دادید:
    کد:
    void lcd_init4(void){ /******Start program for configuration lcd 4 bit mode*******/ delay(15);//delay 15ms wr4bit(0x03);//set interface 4 bit delay(3);//delay 5ms wr4bit(0x03); delay(1); wr4bit(0x03); wr4bit(0x02); wr4bit(0x02); wr4bit(0x08); wr4bit(0x28);//set font 5*8 matris wr4bit(0x0c);//display on and crusor off wr4bit(0x06);//finish configuration lcd 4 bit mode }
    فيلم آموزشي ميکروکنترلر LPC1768
    فيلم آموزشي تکميلي و پيشرفته ميکروکنترلر LPC1768
    فيلم آموزش کاربردی زبان سی در میکروکنترلر ARM
    فیلم آموزش مقدماتی میکروکنترلر LPC1788 به زودی ...
  8. #8
    2012/07/23
    67
    2

    پاسخ : راه اندازی lcd کارکتری 4بیت 100% عملی

    :byeخواهشا یه ذره درست نگاه کنید. یه تابع هست به اسم void lcd_init() که برای تنظیمات اولیه است تا lcd روی مد 4 بیت بره.حالا شما برای اینکه راحتر بفهمید یه 4bit هم بهش اضافه کنید. خودتونم باید خلاقیت نشون بدین. :cry:
  9. #9
    2007/08/04
    اصفهان
    577
    5

    پاسخ : راه اندازی lcd کارکتری 4بیت 100% عملی

    سلام
    بله درسته.تمام این قسمت پیکر بندی در تابع void lcd_init() هست. کدها از راست به چپ بود یه مقدار خوندنش سخته :sad: درست ندیدم!
    چطوریه تو این انجمن نمیشه یه کد را درست از چپ به راست گذاشت که این قدر به هم ریخته نباشه. حتی وقتی در قسمت کد قرار میدی و گزینه left را هم میزنی بازم کد ناجوره :cry:
    فيلم آموزشي ميکروکنترلر LPC1768
    فيلم آموزشي تکميلي و پيشرفته ميکروکنترلر LPC1768
    فيلم آموزش کاربردی زبان سی در میکروکنترلر ARM
    فیلم آموزش مقدماتی میکروکنترلر LPC1788 به زودی ...
نمایش نتایج: از 1 به 9 از 9

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

  1. راه اندازی lcd کارکتری خاص
    توسط سید سجاد احدزاده در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2015/02/20, 17:30
  2. طریقه راه اندازی lcd کارکتری
    توسط ircaspianhero در انجمن میکروکنترلرهای AVR
    پاسخ: 14
    آخرين نوشته: 2015/02/10, 15:58
  3. راه اندازی lcd کارکتری در زبان c
    توسط سید سجاد احدزاده در انجمن میکروکنترلرهای AVR
    پاسخ: 19
    آخرين نوشته: 2015/01/23, 20:36
  4. راه اندازی LCD کارکتری 2*16
    توسط mojtaba_led در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2011/09/02, 01:41
  5. راه اندازی 2سگمنت با 4بیت اطلاعات
    توسط 1846 در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2009/12/20, 06:51

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

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

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

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

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