اطلاعیه

Collapse
No announcement yet.

نمایش کیبورد روی سون سگمنت- لطفا بخوانید

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    نمایش کیبورد روی سون سگمنت- لطفا بخوانید

    سلام من یه برنامه c میخوام که از کیپد 4*4 عدد بگیره و روی یک سون سگمت نشون بده برنامه رو ال سی دی زیاد دیدم اما رو سون سگمنت نیست خودمم که مینویسم ارور داره خواهشا راهنمایی کنید

    #2
    پاسخ : نمایش کیبورد روی سون سگمنت- لطفا بخوانید

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

    دیدگاه


      #3
      پاسخ : نمایش کیبورد روی سون سگمنت- لطفا بخوانید

      این برنامه که شما میخوای بنویسی، دو تا قسمت داره.
      1. گرفتن عدد از کیپد که برنامه اش تو سایتا تا دلت بخواد هست (همون اسکن کردن کیپد) حالا شما میتونی بزاری میکروت همیشه کیپد رو اسکن کنه یا اینکه از روش هایی مثل وقفه استفاده کنی تا برنامه ات حرفه ای تر شه. تو این قسمت برای اعداد 0 تا 9، یه متغیر بزار که همون 0 تا 9 رو برگردونه.
      2. یک کارکتر تعریف کن و کد 7seg اعداد 0 تا 9 رو به ترتیب داخلش تعریف کن. حالا کافیه که اندیس داخل کارکتر رو همون متغیری بزاری که تابع کیپد بر میگردونه.
      امیدوارم تونسته باشم خوب توضیح بدم. نوشتن برنامه اش کار راحتیه، من خواستم تا خودت کد بنویسی چون بهترین روش یادگیریه قلق های برنامه نویسیه (از نظر من).
      میتونی اون قسمت از کدت رو هم که خطا میده به همراه خطاش بزاری اینجا تا بیشتر کمکت کنیم.
      ---------
      .
      .
      ...........

      دیدگاه


        #4
        پاسخ : نمایش کیبورد روی سون سگمنت- لطفا بخوانید

        #include <mega16.h>


        void main(void)

        {

        DDRA=0XFF;
        DDRD=0x0f;
        PORTD=0x0f;
        while(1)
        {
        PORTD.0=0;

        if(PIND.4==0){PORTA=0XFF;}
        if(PIND.5==0){PORTA=0XFF;}
        if(PIND.6==0){PORTA=0XFF;}
        if(PIND.7==0){PORTA=0XFF;}
        PORTD.0=1;
        PORTD.1=0;

        if(PIND.4==0){PORTA=0XFF;}
        if(PIND.5==0){PORTA=0XFF;}
        if(PIND.6==0){PORTA=0XFF;}
        if(PIND.7==0){PORTA=0XFF;}
        PORTD.1=1;
        PORTD.2=0;

        if(PIND.4==0){PORTA=0XFF;}
        if(PIND.5==0){PORTA=0XFF;}
        if(PIND.6==0){PORTA=0XFF;}
        if(PIND.7==0){PORTA=0XFF;}
        PORTD.2=1;
        PORTD.3=0;

        if(PIND.4==0){PORTA=0XFF;}
        if(PIND.5==0){PORTA=0XFF;}
        if(PIND.6==0){PORTA=0XFF;}
        if(PIND.7==0){PORTA=0XFF;}
        PORTD.3=1;
        }
        }
        un port a=oxff meghdare 7 segmente dorost neveshtam?

        دیدگاه


          #5
          پاسخ : نمایش کیبورد روی سون سگمنت- لطفا بخوانید

          این کدی که شما گذاشتی من نمی دونم به چه دردی می خوره !! oo: (البته سوت تفاهم نشه برات)
          شما یه پورت مثلا D رو برای کیپد و یه پورت دیگه مثلا A برای روشن کردن 7seg نیاز داری.
          مثلا برای 7seg کاتد مشترک کدهای اعداد 0 تا 9 میشه :
          unsigned char cathode_seg[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6 F};حالا میخوای عدد 0 رو نشون بدی کافیه که بنویسی [PORTA=cathode_seg[0
          ---------
          .
          .
          ...........

          دیدگاه

          لطفا صبر کنید...
          X