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





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









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





  1. #1
    2019/10/19
    3
    0

    روشن شدن led بصورت شمارنده باینری

    کد نویسی در کد ویژن
    برنامه ای باشد که درصورتی که پورت A ( که به dipswitch هشتایی وصل است) عدد فرد بود خروجی پورت c که یک پک led متصل است را بصورت باینری معادل آن عدد فرد را با روشن کردن led های مربوطه نمایش دهد و درصورتی که ورودی پورت A زوج بود معادل آن عدد زوج را در پورت D نمایش دهد نمیدونم اشکال کارم کجاست ولی جواب نمیگیرم


    کدی که خودم نوشتم:

    DDRA=0X00
    PORTA=0XFF
    DDRC=0XFF
    DDRC=0XFF
    void main(){
    DDRA=0X00
    PORTA=0XFF
    DDRC=0XFF
    DDRC=0XFF
    while(){
    i=portA
    if ( pinA%2==0)
    portC =i
    else if (pinA%2 !=0)
    portD=i
    }}
  2. #2
    2017/06/13
    1,392
    867

    پاسخ : روشن شدن led بصورت شمارنده باینری

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

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

    عضویت

    کد نویسی در کد ویژن
    برنامه ای باشد که درصورتی که پورت A ( که به dipswitch هشتایی وصل است) عدد فرد بود خروجی پورت c که یک پک led متصل است را بصورت باینری معادل آن عدد فرد را با روشن کردن led های مربوطه نمایش دهد و درصورتی که ورودی پورت A زوج بود معادل آن عدد زوج را در پورت D نمایش دهد نمیدونم اشکال کارم کجاست ولی جواب نمیگیرم


    کدی که خودم نوشتم:

    DDRA=0X00
    PORTA=0XFF
    DDRC=0XFF
    DDRC=0XFF
    void main(){
    DDRA=0X00
    PORTA=0XFF
    DDRC=0XFF
    DDRC=0XFF
    while(){
    i=portA
    if ( pinA%2==0)
    portC =i
    else if (pinA%2 !=0)
    portD=i
    }}
    سلام
    این برنامه پر از غلطه کدومو بگم؟ حالا از اینکه کامپایل نمیشه (به دلیل نذاشتن نقطه ویرگول انتهای دستورات و اشتباه بودن اسم رجیسترها به دلیل کوچک بودن حروف) بگذریم و بگیم سهوی بوده، مقدار دهی رجیسترها خارج از تابع main هم غلطه و کامپایلر حتما ارور میده.
    خوب شما گفتید اگر عدد فرد بود، مقدار روی پورت C ریخته بشه و اگر زوج بود روی پورت D. اما این کد کاملا برعکس این حالت رو نشون میده!!! اگر عددی باقی مانده اش در تقسیم به 2، صفر بشه، یعنی اون عدد کامل بر 2 بخش پذیره بنابر این عدد زوجه و برای اعداد فرد باقی مانده تقسیم به 2 همیشه 1 خواهد بود. شما توی کد بالا این شرط ها رو جابجا اعمال کردید!
    مورد بعدی اینکه شما متغیر i رو با مقدار رجیستر PORTA مقدار دهی کردید که این کار عملکرد مطلوب شما رو در بر نمیگیره. باید جای PORTA از PINA استفاده کنید. مقدار رجیستر PORTx در حالت ورودی، نمایانگر روشن یا خاموش بودن مقاومت پول آپ داخلی هستش نه نمایانگر سطح منطقی ورودی!
    ضمنا با توجه به این که ورودی (که همون پورت A هستش) توسط رجیستر PORTA به صورت داخلی pull up شده، در نتیجه کلیدها باید به زمین متصل باشن و عملکرد کلیدها توی این حالت، کاملا برعکس خواهد بود. یعنی کلید باز به معنی 1 منطقی و کلید بسته به معنی 0 منطقی هستش. این نکات رو در نظر گرفته بودید؟
    یک مورد دیگه ای که یادم رفت بگم اینه که شرط حلقه while خالیه. باید داخل پرانتز عدد 1 قرار بگیره تا حلقه تا بی نهایت ادامه داشته باشه.
    ویرایش توسط hossein.m98 : 2019/10/19 در ساعت 18:23 دلیل: تکمیل
  3. #3
    2019/10/19
    3
    0

    پاسخ : روشن شدن led بصورت شمارنده باینری

    مرسی از پاسختون
    نکاتی که گفته بودید رو من توی کدویژن رعایت کردم ولی بازم نتیجه نمیداد اگه براتون مقدوره کدبرنامه رو خودتون بنویسید تا اون رو هم امتحان کنم.
  4. #4
    2017/06/13
    1,392
    867

    پاسخ : روشن شدن led بصورت شمارنده باینری

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

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

    عضویت

    مرسی از پاسختون
    نکاتی که گفته بودید رو من توی کدویژن رعایت کردم ولی بازم نتیجه نمیداد اگه براتون مقدوره کدبرنامه رو خودتون بنویسید تا اون رو هم امتحان کنم.
    #include <mega32.h>

    void main(void)
    {
    DDRA = 0x00;
    PORTA = 0xFF;


    DDRC = 0xFF;


    DDRD = 0xFF;


    while (1)
    {
    if(PINA%2 == 0)
    PORTD = PINA;


    else
    PORTC = PINA;
    }
    }
    ویرایش توسط hossein.m98 : 2019/10/19 در ساعت 19:47 دلیل: تصحیح اشتباه
  5. #5
    2019/08/23
    38
    17

    پاسخ : روشن شدن led بصورت شمارنده باینری

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

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

    عضویت

    کد نویسی در کد ویژن
    برنامه ای باشد که درصورتی که پورت A ( که به dipswitch هشتایی وصل است) عدد فرد بود خروجی پورت c که یک پک led متصل است را بصورت باینری معادل آن عدد فرد را با روشن کردن led های مربوطه نمایش دهد و درصورتی که ورودی پورت A زوج بود معادل آن عدد زوج را در پورت D نمایش دهد نمیدونم اشکال کارم کجاست ولی جواب نمیگیرم


    کدی که خودم نوشتم:

    DDRA=0X00
    PORTA=0XFF
    DDRC=0XFF
    DDRC=0XFF
    void main(){
    DDRA=0X00
    PORTA=0XFF
    DDRC=0XFF
    DDRC=0XFF
    while(){
    i=portA
    if ( pinA%2==0)
    portC =i
    else if (pinA%2 !=0)
    portD=i
    }}

    دوستان توضیحات رو گفتند ولی به عنوان یک راهنمایی اگه عدد شما بصورت باینری هست که در اینجا هم همینطور هست کافیست که تنها بیت اول عدد رو مورد بررسی قرار بدید.(در اینجا ورودی A0).اگه1 بود فرد و اگه 0 بود زوج است
    ویرایش توسط ویرا : 2019/10/29 در ساعت 23:44
  6. #6
    2020/07/10
    4
    0

    پاسخ : روشن شدن led بصورت شمارنده باینری

    وقتتون بخیر دوستان . یک برنامه دارم که باید شمارنده باینری توسط میکرو رو بر روی ۴ LED نشون بده ؛ اگر کمکم کنید ممنون میشم
  7. #7
    2017/06/13
    1,392
    867

    پاسخ : روشن شدن led بصورت شمارنده باینری

    نقل قول نوشته اصلی توسط reza.s1999

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

    عضویت

    وقتتون بخیر دوستان . یک برنامه دارم که باید شمارنده باینری توسط میکرو رو بر روی ۴ LED نشون بده ؛ اگر کمکم کنید ممنون میشم
    سلام
    با کدوم قسمتش مشکل دارید؟
  8. #8
    2020/07/10
    4
    0

    پاسخ : روشن شدن led بصورت شمارنده باینری

    چندین سایت گشتم ولی برنامه ای نزدیک به این هم پیدا نکردم که از روش الگو بگیرم . بخش شبیه سازی پروتئوس رو مشکلی ندارم فقط نمیدونم برای شمارنده باینری باید چه کدی رو بزنم . ممنون که وقت میذارید
  9. #9
    2017/06/13
    1,392
    867

    پاسخ : روشن شدن led بصورت شمارنده باینری

    نقل قول نوشته اصلی توسط reza.s1999

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

    عضویت

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

    DDRA = 0x0F;
    PORTA = 0x00;
    while (1)
    {
    if (PORTA < 0x0F)
    PORTA++;
    else
    PORTA = 0;


    delay_ms(250);
    }

    دیگه از این ساده تر نداریم. شمارش روی 4 بیت پایینی PORTA هستش.
  10. #10
    2020/07/10
    4
    0

    پاسخ : روشن شدن led بصورت شمارنده باینری

    بسیار ممنون از لطف شما ، زحمت کشیدید
نمایش نتایج: از 1 به 10 از 10

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

  1. تعداد 1 های عدد باینری
    توسط samaneh.r در انجمن Matlab
    پاسخ: 2
    آخرين نوشته: 2012/12/17, 11:03
  2. روشن شدن 50 ال ای دی یا بیشتر بصورت پشت سر هم chaser
    توسط ms2000 در انجمن میکروکنترلرهای AVR
    پاسخ: 48
    آخرين نوشته: 2012/01/02, 18:41
  3. کد باینری برنامه c
    توسط rezara در انجمن ATMEL
    پاسخ: 1
    آخرين نوشته: 2011/06/07, 20:03
  4. تبدیل کد گری به کد باینری
    توسط mohamad12490 در انجمن مدار های ديجيتال
    پاسخ: 4
    آخرين نوشته: 2011/05/07, 22:08
  5. ضرب و تقسیم باینری
    توسط milad_arm در انجمن مدار های ديجيتال
    پاسخ: 1
    آخرين نوشته: 2011/01/20, 17:53

کاربرانی که این تاپیک را مشاهده کرده اند: 0

هیچ عضوی در لیست وجود ندارد.

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

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

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

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