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





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









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





صفحه 1 از 2 12 آخرین
  1. #1
    تاریخ عضویت
    2014/07/10
    54
    1

    مالتی پلکس کردن سون سگمنت ها- سون سگمنت سه رقمی با کیپد

    با سلام و خسته نباشید.
    من یک پروژه کیپد و سون سگمنت دارم. تو این پروژه عدد سه رقمی توسط کاربر از کیپد وارد میشه و با زدن کلید تایید روی کیپد با شماره سه رقمی روی سون سگمنت نمایش بشه.
    تو مالتی پلکس کردن سون سگمنتها از عمل ریفرش یا روشن خاموش کردن سون سگمنتها استفاده میکنم.
    تو برنامم نوشتم که وقتی اعداد گرفته شد اونو تو متغیر number ذخیره کنه و بفرسته به تابع segment که قراره عملیات ریاضی انجام بده و اعداد رو به تفکیک رو سگمنتها نمایش بده و هر میلی ثانیه خاموش کنه
    الان مشکلم اینه که عدد رو فقط یه بار نشون میده و خاموش میشن. نمدونم چطور تو حلقه بذارمش که تا ابد ادامه پیدا نکنه نمایش. با زدن شماره جدید رو کیبد و زدن کلید تایید اون عدد هم عوض بشه.
    اللن فقط یه بار عدد رو نمایش میده خاموش میشه. میخام خاموش نشه و رو سون سگمنت بمونه و هم اینکه دیگه با زدن عدد بعدی عدد جدید رو نمایش نمیده.
    خواستین برنامه و کدهاشم بفرستم؟؟؟
    ویرایش توسط aashkanpasha : 2019/08/06 در ساعت 11:15
    • تبلیغات
      .

  2. #2
    تاریخ عضویت
    2016/06/21
    316
    100

    پاسخ : مالتی پلکس کردن سون سگمنت ها- سون سگمنت سه رقمی با کیپد

    سلام.اگه ممکنه برنامه رو اینجا بزارید تا بهتر بتونم کمکتون کنم اگه فایل پروژه باشه که چه بهتر.
  3. #3
    تاریخ عضویت
    2014/07/10
    54
    1

    پاسخ : مالتی پلکس کردن سون سگمنت ها- سون سگمنت سه رقمی با کیپد

    بله چشم.

    while(1){
    kp=keypad();
    t=kpd_scan(kp);

    if(t<16){

    if(t==14){state=3;}


    switch(state){
    case 0: number=t; alcd_gotoxy(0,0); alcd_puts(" Number:"); int2char(number); state++; break;
    case 1: number=(number*10)+t; alcd_clear(); alcd_gotoxy(0,0); alcd_puts(" Number:"); int2char(number); state++; break;
    case 2: number=(number*10)+t; alcd_clear(); alcd_gotoxy(0,0); alcd_puts(" Number:"); int2char(number); state++; break;
    case 3: state=0; alcd_clear(); alcd_gotoxy(0,0); alcd_puts(" Number:"); alcd_gotoxy(1,2); int2char(number); [COLOR=#ff0000]segment(number);[/COLOR] break;
    }
    }


    تابع segment برای نمایش عدد روی سون سگمنت که ملتی پلکس شده:(کلمات قرمز رنگ)
    [LEFT]
    oid segment([COLOR=#ff0000]number[/COLOR]){

    DDRA=0xff;
    DDRD=0xff;
    PORTA=0xff;
    PORTD=0x00;
    a=number/100;
    number=number%100;
    b=number/10;
    number=number%10;
    c=number;

    switch(a){
    case 0:PORTA=0xfe; PORTD=0X3F;break;
    case 1:PORTA=0xfe;PORTD=0X06;break;
    case 2:PORTA=0xfe;PORTD=0X5B;break;
    case 3:PORTA=0xfe;PORTD=0X4F;break;
    case 4:PORTA=0xfe;PORTD=0X66;break;
    case 5:PORTA=0xfe;PORTD=0X6D;break;
    case 6:PORTA=0xfe;PORTD=0X7D;break;
    case 7:PORTA=0xfe;PORTD=0X07;break;
    case 8:PORTA=0xfe;PORTD=0X7F;break;
    case 9:PORTA=0xfe;PORTD=0X6F;break;
    }
    _delay_ms(1000); PORTA=0xff; PORTD=0X00;
    [/LEFT]
    عدد اول رو یک میلی ثانیه رو سون سگمنت خودش نشون میده و خاموش میشه و میره پایین عدد دوم و سوم همچنین.
    [LEFT] switch(b){
    case 0:PORTA=0xfd;PORTD=0X3F;break;
    case 1:PORTA=0xfd;PORTD=0X06;break;
    case 2:PORTA=0xfd;PORTD=0X5B;break;
    case 3:PORTA=0xfd;PORTD=0X4F;break;
    case 4:PORTA=0xfd;PORTD=0X66;break;
    case 5:PORTA=0xfd;PORTD=0X6D;break;
    case 6:PORTA=0xfd;PORTD=0X7D;break;
    case 7:PORTA=0xfd;PORTD=0X07;break;
    case 8:PORTA=0xfd;PORTD=0X7F;break;
    case 9:PORTA=0xfd;PORTD=0X6F;break;
    }
    _delay_ms(1000); PORTA=0xff; PORTD=0X00;

    switch(c){
    case 0:PORTA=0xfb;PORTD=0X3F;break;
    case 1:PORTA=0xfb;PORTD=0X06;break;
    case 2:PORTA=0xfb;PORTD=0X5B;break;
    case 3:PORTA=0xfb;PORTD=0X4F;break;
    case 4:PORTA=0xfb;PORTD=0X66;break;
    case 5:PORTA=0xfb;PORTD=0X6D;break;
    case 6:PORTA=0xfb;PORTD=0X7D;break;
    case 7:PORTA=0xfb;PORTD=0X07;break;
    case 8:PORTA=0xfb;PORTD=0X7F;break;
    case 9:PORTA=0xfb;PORTD=0X6F;break;
    }
    _delay_ms(1000); PORTA=0xff; PORTD=0X00;

    }

    [/LEFT]
    مشکل من اینه که اولا: یک بار نشون میده و خاموش میشه و تموم.مخام تا زمانی که عدد جدید وارد و با کلید مربع فرستاده نشده همینو نشون بده.
    دوما وقتی میذارم تو حلقه while(1) یا do while تا ابد این نشون میده و نمتونم عدد جدید بگیرم از کیپدم.
    تو این موضوع موندم.
    نقل قول نوشته اصلی توسط MM320

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام.اگه ممکنه برنامه رو اینجا بزارید تا بهتر بتونم کمکتون کنم اگه فایل پروژه باشه که چه بهتر.
    ویرایش توسط aashkanpasha : 2019/08/06 در ساعت 12:07
  4. #4
    تاریخ عضویت
    2016/06/21
    316
    100

    پاسخ : مالتی پلکس کردن سون سگمنت ها- سون سگمنت سه رقمی با کیپد

    لصفا شماتیک و فایل کامل پروژه رو ارسال کنید.تا خودم برنامه چک کنم
  5. #5
    تاریخ عضویت
    2014/07/10
    54
    1

    پاسخ : مالتی پلکس کردن سون سگمنت ها- سون سگمنت سه رقمی با کیپد

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

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    لصفا شماتیک و فایل کامل پروژه رو ارسال کنید.تا خودم برنامه چک کنم
  6. #6
    تاریخ عضویت
    2016/06/21
    316
    100

    پاسخ : مالتی پلکس کردن سون سگمنت ها- سون سگمنت سه رقمی با کیپد

    دوست عزیز.منظورم فایل پروتئوس و کدویژون بود
  7. #7
    تاریخ عضویت
    2014/07/10
    54
    1

    پاسخ : مالتی پلکس کردن سون سگمنت ها- سون سگمنت سه رقمی با کیپد

    من تو اتمل برنامه نویسی میکنم .اتمل رو بفرستم؟ و پرتئوس من 8.6 هستش میتونین؟

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

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    دوست عزیز.منظورم فایل پروتئوس و کدویژون بود
  8. #8
    تاریخ عضویت
    2016/06/21
    316
    100

    پاسخ : مالتی پلکس کردن سون سگمنت ها- سون سگمنت سه رقمی با کیپد

    ببینید.من من با کد یژون می نویسم. ولی یه نکته هست وقتی AVR اسکن سون سگمنت می کنید باید به این نکته توجه کنید برنامه نباید وقفه یا ایستی نداشته باشه در صورت اعداد روی نمایشکر بصورت تاخیری که چشم انسان اونو ببنه میشه یا روی یک رقم می ایسته .راه حل:یا از آیسی MAX7219 استفاده کنن که خودش سون سگمنت راه اندازی می کنه یا اینه از تایمر ها استفاده کن به این صورت که هر 1ms یک رقم نشان بده و وقتی کلید ها رو فشار می دی اسکن نمایشگر متوقف نمی شه چونکه برنامه هر جا که می خواد باشه اولویت برنامه با وقفه تایمر میشه.موفق باشید.
  9. #9
    تاریخ عضویت
    2014/07/10
    54
    1

    پاسخ : مالتی پلکس کردن سون سگمنت ها- سون سگمنت سه رقمی با کیپد

    من مشکل رو حل کردم تقریبا. الان داره هم اسکن مکنه هم نشون میده . با اینکه تاخیر رو 1 میلی ثانیه گذاشتم ولی اعداد روی سگمنت 1میلی ثانیه روشنه بعد 1 ثانیه خاموشه . نمدونم سرعت کامپیوتر پایینه اینطوری دیده میشه یا فرکانس کارمو اشتباه در نظر گرفتم.

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

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ببینید.من من با کد یژون می نویسم. ولی یه نکته هست وقتی AVR اسکن سون سگمنت می کنید باید به این نکته توجه کنید برنامه نباید وقفه یا ایستی نداشته باشه در صورت اعداد روی نمایشکر بصورت تاخیری که چشم انسان اونو ببنه میشه یا روی یک رقم می ایسته .راه حل:یا از آیسی MAX7219 استفاده کنن که خودش سون سگمنت راه اندازی می کنه یا اینه از تایمر ها استفاده کن به این صورت که هر 1ms یک رقم نشان بده و وقتی کلید ها رو فشار می دی اسکن نمایشگر متوقف نمی شه چونکه برنامه هر جا که می خواد باشه اولویت برنامه با وقفه تایمر میشه.موفق باشید.
  10. #10
    تاریخ عضویت
    2016/06/21
    316
    100

    پاسخ : مالتی پلکس کردن سون سگمنت ها- سون سگمنت سه رقمی با کیپد

    زیاد به پروتئوس اعتماد نکنید .گاهی پیش می یاد قطعه مشکل داره اجرا سیمولاتور با مشکل رو می کنه.شما یه کاری کن هر دستوری مثل اسکن صفحه کلید و غیره رو توی برنامه غیر فعال کن و فقط برنامه راه اندازی سون سگمنت بزار و تست کن ببین که مثلا ععد 123 روی سون سگمنت نمایش بده بین برنامه نمایشگر مشکلی داره یا نه؟این جوری بهتر مشکل پیدا می کنی
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 18

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

  1. شمارنده 4 رقمی با سون سگمنت
    توسط sinaa2251 در انجمن میکروکنترلرهای AVR
    پاسخ: 0
    آخرين نوشته: 2015/03/12, 12:25
  2. نمایش عدد دو رقمی با سون سگمنت
    توسط MA90 در انجمن مفاهیم پایه برق و الکترونیک
    پاسخ: 1
    آخرين نوشته: 2014/12/30, 12:40
  3. نحوه اتصال 6 عدد سگمنت 3 رقمی به میکرو مگا 16
    توسط yasser2000 در انجمن مدار های ديجيتال
    پاسخ: 22
    آخرين نوشته: 2013/02/12, 09:52
  4. اتصال کیپد با سون سگمنت
    توسط navid_sa_198 در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2012/04/14, 16:19
  5. شمارنده صفر تا 99 با سون سگمنت مالتی پلکسری ؟
    توسط KINDA در انجمن میکروکنترلرهای AVR
    پاسخ: 6
    آخرين نوشته: 2012/04/03, 21:04

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

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

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

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