ايران ويج

نسخه‌ی کامل: شمارنده دو رقمی با سون سگمنت زبان C و AVR
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام درود
من چندروزی دنبال شمارنده دو رقمی با سون سگمنت زبان C و AVR هستم که توی برنامش for به کار نرفته باشه در ضمن سون سگمنت ها به صورت مالتی پلکس بسته شده باشد
متشکرم.
سلام
فایلی که پیوست کردم پروژه راه اندازی سون سگمن مالتی پلکس 2تایی با AVR
این پروژه صرفا دوتا رقم رو روی نمایشگر سون سگمنت نشون میده و شمارش نمیکنه
نرم افزار کدویژن رو سسیتم اجرا نشد واستون تغییر بدم
کار سختی نیست و با چندتا دستور ساده میتونید برنامه رو به شمارنده تبدیل کنید
سلام درود بر شما
من گیر همون چند تا دستور بدون for هستم
اگه میشه راهنمای کنید
دستون درد نکنه مشکلم حل شد
پس از برسی های متعدد برنامه ها و مثال های دوستان تکنیک مرتبط به این موضوع را پیدا کرده و مورد برسی قرار دادم و بهترین برنامه را نوشتم
برنامه اش میزارم
باسپاس

سلام
اینم برنامه شمارنده دو رقمی با سون سگمنت زبان C و AVR
پیوست فایل

[attachment=12529]
سلام
من یه 7seg دورقمی گرفتم که 10 تا پایه داره و هیج جا نقشه پین هاشو پیدا نکردم :(
میخوام یه شمارنده از 0 تا 99 بسازم باهاش و تو اتصال پین ها مشکل دارم.
مشیه کمکم کنید
(۰۴-بهمن-۱۳۹۳, ۲۳:۵۹:۲۳)mahdad نوشته است: [ -> ]سلام
من یه 7seg دورقمی گرفتم که 10 تا پایه داره و هیج جا نقشه پین هاشو پیدا نکردم :(
میخوام یه شمارنده از 0 تا 99 بسازم باهاش و تو اتصال پین ها مشکل دارم.
مشیه کمکم کنید

سلام

ضمن عرض خوش آمدگویی خدمت شما دوست عزیز ..

اگه شماره نوشته شده روی سون سگمنتتون رو سرچ کنین حتما می تونین عکس پایه هاشو پیدا کنین

اگه نتونستین اسمشو دقیق بنویسین تا ما پیدا کنیم
(۰۵-بهمن-۱۳۹۳, ۰۱:۱۴:۱۵)رسول نوشته است: [ -> ]
(۰۴-بهمن-۱۳۹۳, ۲۳:۵۹:۲۳)mahdad نوشته است: [ -> ]سلام
من یه 7seg دورقمی گرفتم که 10 تا پایه داره و هیج جا نقشه پین هاشو پیدا نکردم :(
میخوام یه شمارنده از 0 تا 99 بسازم باهاش و تو اتصال پین ها مشکل دارم.
مشیه کمکم کنید

سلام

ضمن عرض خوش آمدگویی خدمت شما دوست عزیز ..

اگه شماره نوشته شده روی سون سگمنتتون رو سرچ کنین حتما می تونین عکس پایه هاشو پیدا کنین

اگه نتونستین اسمشو دقیق بنویسین تا ما پیدا کنیم

با تشکر از شما
به سختی پیدا شد!
بچه ها یه سون سگمنت چند رقمی وقتی A,B,C,... همه ی رقم ها به هم وصله چجوری میشه به سگمنت های فقط یک رقم فرمان داد؟؟(همین مورد بالا)
اگه سورس کدویژن شمارنده سون سگمنت دورقمی که تا 99 رو بشمره داشتید لطف کنید بذارید
ممنون
(۰۵-بهمن-۱۳۹۳, ۱۸:۱۲:۴۹)mahdad نوشته است: [ -> ]بچه ها یه سون سگمنت چند رقمی وقتی A,B,C,... همه ی رقم ها به هم وصله چجوری میشه به سگمنت های فقط یک رقم فرمان داد؟؟(همین مورد بالا)

سون سگمنتهای چندتایی علاوه بر پایه های A,B,C و .. واسه هر سگمنت یه پایه راه انداز هم دارن که اگه به هر کدومش تغذیه وصل کنی اون سگمنت روشن میشه و اگه تغذیه وصل نکنی روشن نمیشه .. این پایه ها با شماره مشخص شدن داخل دیتاشیت .. مثل 1 و 2 و 3 و
4
(۰۴-بهمن-۱۳۹۳, ۲۳:۵۹:۲۳)mahdad نوشته است: [ -> ]سلام
من یه 7seg دورقمی گرفتم که 10 تا پایه داره و هیج جا نقشه پین هاشو پیدا نکردم :(
میخوام یه شمارنده از 0 تا 99 بسازم باهاش و تو اتصال پین ها مشکل دارم.
مشیه کمکم کنید

سلام
من بموقع ندیدم سوالتون و
ولی تو انجمن سرچ میزنید شماره پایه ها رو تو تاپیک "نکته های کوچک الکترونیک" قرار داده بودم

موفق باشید.
سلام دوستان روزتان به خیر
من یک شمارنده up/down با سون سگمنت نوشتم که با دو کلید اعداد را روی سون سگمن کم و زیاد می کند ولی مشکل برنامه این است که int1 که برای up کردن اعداد تعریف کرده ام کاری نمیکند و عدد روی سون سگمنت را reset می کند به عدد اول. فایل برنامه را کپی می کنم لطفا اگر در حل مشکل برنامه به من کمک کنید. تشکر می کنم.



کد:
#include <mega16.h]

#include <delay.h>
char seven[10]={63,6,91,79,102,109,125,7,127,111},a=100;


void display(int seg);


// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
  a--;
}

// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
// Place your code here
  a--;
}



// Declare your global variables here

void main(void)
{
DDRA=0xFF;
DDRC=0xFF;
DDRD=0x00;
PORTD=0x00;
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Falling Edge
// INT1: On
// INT1 Mode: Falling Edge
GICR|=0xC0;
MCUCR=0x0A;
GIFR=0xC0;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

#asm("sei")

while (1)
      {
      display(a);

      }
}
                void display(int seg)
                {
                 char a0=0,a1=0,a2=0;
                  int i;
                 for(i=0;i<seg;i++)
                 {
                  a0++;
                  if (a0>=10)
                   {
                    a0=0;
                    a1++;
                   }
                  
                 if (a1>=10)
                   {
                    a1=0;
                    a2++;
                   }
                  
                 if (a2>=10)
                   {a0=0;
                    a1=0;
                    a2=0;
                   }
                 }
                 for (i=0;i<5;i++)
                 {
                 PORTC=0x7b;
                 PORTA=seven[a0];
                 delay_ms(2);
                 PORTC=0x7d;
                 PORTA=seven[a1];
                 delay_ms(2);
                 PORTC=0x7e;
                 PORTA=seven[a2];
                 delay_ms(2);
                 }
                }
صفحه‌ها: 1 2