ايران ويج

نسخه‌ی کامل: شمارنده السیدی با موج مربعی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان من یک مدار می خوام که با یک موج مربعی که به ورودی تایمر وصل میشه روی السیدی این موج رو بشماره مثلا اگه یک پالس لومد روی السیدی بنویسه 1 و همین طور ادامه بده ممنون خیلی برام مهمه لطفا کمک کنیدSadSadSad
سلام.

منظورتون فرکانس متر هست؟!
تو سایت سرچ بزنید قبلا گذاشته شده.
اما بهترهه خودتون بنویسید. یه تایمر راه می ندازید که زمان 1 ثانیه رو درست کنه ، یه تایمر دیگه رو به صورت شمارنده تعریف می کنی و پالس رو می دی به پایه ی مربوطه که تعداد رو بشمارهه.
هر 1 ثانیه که شمارش کرد می رهه به وقفه و مقدار شمارش شده رو روی LCD نمایش می دی و رجیستر شمارنده رو 0 می کنی و به همین صورت ... .

موفق باشی.
خودم نوشتم اما روی السیدی فقط میشماره و به پاسی که به ورودی میدم توجهی نمیکنه بعد من فرکانس متر نمی خوام فقط می خوام پاس هارو بشماره اگه 10 تا پاس اومد بنویسه 10 همین.ممنون از کمکتون
مهندس اینجا فروم هست. صبر داشته باشید، همه 24 ساعته کانکت نیستن یا فرصت ندارن ...!
برنامه ای که نوشتید رو بذارید تا بررسی بشه.
موفق باشید.
برنامه روحذف کردم اگه بتونین بهم بدینش خیلی خوب میشه خیلی ممنون
نهایت کاری که می تونیم در کنار هم، در فروم انجام بدیم، اینه که به هم کمک کنیم تا مشکلات رو حل کنیم. نه اینکه کار همدیگه رو انجام بدیم. حداقل کاری که هر کسی برای خودش هم که شده باید انجام بده، تلاش کردنه.
-----------
شاید 5 دقیقه هم طول نکشه!
علاوه بر برنامه ، شماتیک سخت افزار و مولد پالس هم بذارید.

موفق باشید.
خیلی ممنون پیداش کردم برای بقیه میزارم استفاده کنن از شما خیلی ممنونم.
کد:
#include <mega16.h>
#include <delay.h>
#include <stdlib.h>
#include <lcd.h>
#asm
.equ __lcd_port=0x1B; //PORTA
#endasm
unsigned long int i=0,j=0;
char s[0],k[0];
interrupt [EXT_INT0] void exit_vagfe_int0 (void){
if(PIND.2==1){
i++;
lcd_gotoxy(0,0);
lcd_puts("          ");        
lcd_gotoxy(0,0);
        lcd_puts("V~5 : ");
        itoa(i,s);
        lcd_puts(s);      //نمايش مقدار آرايه
    }
}
/////////////////////////////////////////////////
interrupt [EXT_INT1] void exit_vagfe_int1 (void)
{
    if(PIND.3==0)
    {    
        j++;
        
        lcd_gotoxy(0,1);
        lcd_puts("          ");
        
        lcd_gotoxy(0,1);
        lcd_puts("V~0 : ");
        itoa(j,k);
        lcd_puts(k);
    }
}
/////////////////////////////////////////////////

//تابع اصلي پروژه
void main(void)
{  
    DDRB.0=0;

    lcd_init(16);  
    
    GICR=0xc0;       // فعال کردن وقفه 0 و 1
    MCUCR=0x0b;      // تعيين نحوه فعال و غير فعال شدن (نحوه تحريک شدن) وقفه 0 , 1
    GIFR=0xc0;       //دادن  قدرت تصميم گيري به وقفه 0 و 1
    #asm("sei")      //فعال کردن وقفه سراسري
}