اطلاعیه

Collapse
No announcement yet.

شمارنده 0 تا 999 با 16f688

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

    شمارنده 0 تا 999 با 16f688

    سلام من به برنامه شمارنده احتیاج دارم واسه تست میکرو و درایور 7سگمنت
    درایور 7سگمنتم max 7219
    بچه ها مثل همیشه کمکم کنید امشب باید تستش کنم

    #2
    پاسخ : شمارنده 0 تا 999 با 16f688

    سلام دوست عزیز
    با چه میکرویی و چه زبانی؟
    من میتونم بهت کمک بکنم

    دیدگاه


      #3
      پاسخ : شمارنده 0 تا 999 با 16f688

      نوشته اصلی توسط محمد مومنی تزنگی
      سلام دوست عزیز
      با چه میکرویی و چه زبانی؟
      من میتونم بهت کمک بکنم
      زبانش واسم فرق نداره
      قفط IC 16F688 و درایور MAX 7219
      ممنونم :applause:

      دیدگاه


        #4
        پاسخ : شمارنده 0 تا 999 با 16f688

        سلام.نیازی به درایور نیست. یه قطعه کد مینویسین که اون کدها بستگی به ترتیب اتصالات پایه های سون سگمنت به پایه های اون پورت از میکرو داره. مثل این:

        کد:
        char Digit(char num)
        {
        switch(num)
            {
            case(0):return 63;break;
            case(1):return 6;break;
            case(2):return 91;break;
            case(3):return 79;break;
            case(4):return 102;break;
            case(5):return 109;break;
            case(6):return 125;break;
            case(7):return 7;break;
            case(8):return 127;break;
            case(9):return 111;break;
            }
        }
        این عددها از کجا به دست اومده؟ اومدم پایه های سون سگمنت رو وصل کردم به پورت X ، بعد اعداد 0 تا 9 رو نوشتم، بعد دیدم که تو چه عددی کدوم پایه ها باید روشن بشه.

        دیگه چی موند؟ موندش نمایش عدد؛ که اون هم از طریق تقسیم بر 10 یا 100 و باقیمانده بر 10 یا 100 باید ارقام یکان-دهگان-صدگان رو استخراج بکنی.
        بعد این یکان-دهگان-صدگان رو جدا جدا ذخیره میکنی و میری تو زیربرنامه ی نمایش اعداد.
        برای نمایش چیکار میکنی؟ پایه ی رقم یکان رو فعال میکنی؛ یه for مینویسی که مثلا 7 بار تکرار بشه و داخلش با یه تاخیر مثلا 4 میلی ثانیه عدد یکان رو میفرستی از اون جدول که بالا نمونه ش رو گذاشتم، کدش رو میخونه و میفرسته به خروجی.(مثلا ;(PORTB=Digit(num_x1 که Digit همون زیربرنامه ی بالایی هست و num_x1 رقم یکان محاسبه شده.سون سگمنت هم به پورت B وصله که دیتا رو میفرستیم بهش ) بعد از نمایش رقم یکان، پایه ی مشترک یکان رو خاموش میکنی و مشترک دهگان رو روشن میکنی و همون کاری که برای یکان کردی، برای دهگان هم تکرار میکنی و صدگان هم همینطور. بعد از نمایش هر سه عدد، یه دونه شمارش رو افزایش میدی و دوباره تکرار همین ماجرا.

        دیدگاه


          #5
          پاسخ : شمارنده 0 تا 999 با 16f688

          نوشته اصلی توسط شاهرخ مستقیمی
          سلام.نیازی به درایور نیست. یه قطعه کد مینویسین که اون کدها بستگی به ترتیب اتصالات پایه های سون سگمنت به پایه های اون پورت از میکرو داره. مثل این:

          کد:
          char Digit(char num)
          {
          switch(num)
              {
              case(0):return 63;break;
              case(1):return 6;break;
              case(2):return 91;break;
              case(3):return 79;break;
              case(4):return 102;break;
              case(5):return 109;break;
              case(6):return 125;break;
              case(7):return 7;break;
              case(8):return 127;break;
              case(9):return 111;break;
              }
          }
          این عددها از کجا به دست اومده؟ اومدم پایه های سون سگمنت رو وصل کردم به پورت X ، بعد اعداد 0 تا 9 رو نوشتم، بعد دیدم که تو چه عددی کدوم پایه ها باید روشن بشه.

          دیگه چی موند؟ موندش نمایش عدد؛ که اون هم از طریق تقسیم بر 10 یا 100 و باقیمانده بر 10 یا 100 باید ارقام یکان-دهگان-صدگان رو استخراج بکنی.
          بعد این یکان-دهگان-صدگان رو جدا جدا ذخیره میکنی و میری تو زیربرنامه ی نمایش اعداد.
          برای نمایش چیکار میکنی؟ پایه ی رقم یکان رو فعال میکنی؛ یه for مینویسی که مثلا 7 بار تکرار بشه و داخلش با یه تاخیر مثلا 4 میلی ثانیه عدد یکان رو میفرستی از اون جدول که بالا نمونه ش رو گذاشتم، کدش رو میخونه و میفرسته به خروجی.(مثلا ;(PORTB=Digit(num_x1 که Digit همون زیربرنامه ی بالایی هست و num_x1 رقم یکان محاسبه شده.سون سگمنت هم به پورت B وصله که دیتا رو میفرستیم بهش ) بعد از نمایش رقم یکان، پایه ی مشترک یکان رو خاموش میکنی و مشترک دهگان رو روشن میکنی و همون کاری که برای یکان کردی، برای دهگان هم تکرار میکنی و صدگان هم همینطور. بعد از نمایش هر سه عدد، یه دونه شمارش رو افزایش میدی و دوباره تکرار همین ماجرا.
          ممنونم کلا از pic سر در نمیارم :cry:

          دیدگاه


            #6
            پاسخ : شمارنده 0 تا 999 با 16f688

            ای بابا، نشد که عزیز من، نشد!
            من اینجا یک کلمه ازpicحرفی زدم؟
            من فقط از برنامه نویسی صحبت کردم، شما برنامه نویسی میکرو قبلا انجام دادین؟ اگه آره، باید الان رو هوا میآ‌گرفتین من چی گفتم. برای راهنمایی بیشتر واسه راه اندازی میکرو های pic برین قسمت پروژه های انجام شده باpicکه بالای همین انجمن هست.
            اونجا کدهای آماده هست که واسه رهنمایی مناسب هستن.

            دیدگاه

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