NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4159 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 3 از 3

موضوع: کمک فوری در تبدیل برنامه به بیسیک

  1. #1
    عضو جدید
    تاریخ عضویت
    Jul 2011
    نوشته ها
    6
    تشکر
    3
    تشکر شده 1 بار در 1 پست

    Icon17 کمک فوری در تبدیل برنامه به بیسیک

    سلام ، یه برنامه زبان C دارم که برای یه میکرو pic نوشته شده، میخوام این برنامه به بیسیک برای میکروهای AVR مثلا ATMEGA 32 بنویسم ، دوستان اگه به این دو زبان تسلط دارند ممنون میشم که این برنامه به بیسیک تبدیل کنند. خیلییی خیلیییییییی ممنون.
    این سایتی که این برنامه برداشتم : http://embedded-lab.com/blog/?p=4400
    این هم خود برنامه :

    /*
    Description : CapMeter based on RC time constant
    MCU: PIC16F28A
    Oscillator: HS, 4.0000 MHz externa

    */

    // LCD module connections
    sbit LCD_RS at RB2_bit;
    sbit LCD_EN at RB3_bit;
    sbit LCD_D4 at RB4_bit;
    sbit LCD_D5 at RB5_bit;
    sbit LCD_D6 at RB6_bit;
    sbit LCD_D7 at RB7_bit;
    sbit LCD_RS_Direction at TRISB2_bit;
    sbit LCD_EN_Direction at TRISB3_bit;
    sbit LCD_D4_Direction at TRISB4_bit;
    sbit LCD_D5_Direction at TRISB5_bit;
    sbit LCD_D6_Direction at TRISB6_bit;
    sbit LCD_D7_Direction at TRISB7_bit;

    sbit Va at RA0_bit;
    sbit Switch at RB0_bit;

    char message1[] = "Capacitance";
    char message2[] = "Meter";

    unsigned int T_Value, Num;
    unsigned short i, j, TimerValue, OverRange = 0;
    char Capacitance[] = "00.000 uF";

    void interrupt(){
    if(PIR1.TMR2IF){
    TMR2 = TimerValue;
    Num ++;
    if(Num > 9999) OverRange = 1; // Range is 99.99 uF
    PIR1.TMR2IF =0; // Clear TMR0 interrupt flag
    }
    }

    void Display_Cap(unsigned int n){
    Capacitance[0] = n/10000 + 48;
    Capacitance[1] = (n/1000)%10 + 48;
    Capacitance[3] = (n/100)%10 + 48;
    Capacitance[4] = (n/10)%10 + 48;
    Capacitance[5] = (T_Value*10)/153 + 48;
    Lcd_Cmd(_Lcd_Clear);
    Lcd_Out(1, 1, "C = ");
    Lcd_Out(1, 5, Capacitance);

    }

    void reset(){
    TRISA = 0b00000100;
    CMCON = 7;
    RA1_bit = 0;
    Delay_ms(2000);
    TRISA = 0b00000110;
    CMCON = 5;
    }

    void main(){

    char cap_size;
    TRISB = 0b00000001;
    PORTB = 0;
    TRISA = 0b00000110;
    OPTION_REG.T0CS = 0;
    INTCON.GIE = 1; //Enable global interrupt
    INTCON.PEIE = 1; //Enable peripheral interrupt

    // Configure Timer2 module
    PIE1.TMR2IE = 1; // Enable Timer2 interrupt
    T2CON = 0; // Prescaler 1:1, and Timer2 is off initially
    PIR1.TMR2IF =0; // Clear int bit

    // Configure Comparator module
    CMCON = 5; // Independent comparator between RA1 (-) and RA2(+)

    Lcd_Init();
    Lcd_Cmd(_Lcd_Clear);
    Lcd_Cmd(_LCD_CURSOR_OFF);
    Lcd_Out(1, 1, message1);
    Lcd_Out(2, 1, message2);
    delay_ms(2000);
    Lcd_Cmd(_Lcd_Clear);

    Lcd_Out(1, 1, "C = ");
    Lcd_Out(1, 5, Capacitance);
    Va = 0;
    TimerValue = 108; // 104 + 4 additional clock cycles delay on branching to ISR
    while(1){
    if(!Switch) {
    Num = 0;
    OverRange =0;
    Lcd_Cmd(_Lcd_Clear);
    Lcd_Out(1, 1, "Testing.");
    Lcd_Out(2, 1, "...");
    TMR2 = TimerValue; // Initialize Timer2
    Va = 1; //apply voltage
    T2CON.TMR2ON = 1; // start timer
    while(CMCON.C2OUT) {
    if(OverRange) break;
    }
    T2CON.TMR2ON = 0; // stop timer
    T_Value = TMR2 - TimerValue; // T_Value is used for improved resolution
    Va = 0;
    //---------------------------------
    if(!OverRange){
    Display_Cap(Num*10);
    }
    else{
    OverRange = 0;
    Lcd_Cmd(_Lcd_Clear);
    Lcd_Out(1, 1, "Out of Range!");
    }
    reset();
    }
    }
    }

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    عضو جدید
    تاریخ عضویت
    Jul 2011
    نوشته ها
    6
    تشکر
    3
    تشکر شده 1 بار در 1 پست

    پیش فرض

    کسی اینجا نیست ،

  4. #3
    ناظم انجمن vahidasm آواتار ها
    تاریخ عضویت
    Feb 2010
    نام
    وحید
    نوشته ها
    754
    تشکر
    1,068
    تشکر شده 881 بار در 470 پست

    پیش فرض

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

  5. کاربران : 4 تشکر کرده اند از شما vahidasm برای ارسال این پست سودمند:


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

  1. ارور در برنامه به زبان بیسیک
    توسط masiria در انجمن AVR
    پاسخ: 1
    آخرين نوشته: 16-01-2014, 01:32
  2. زبان بیسیک
    توسط eiliya در انجمن میکرو کنترلر های 32 بیتی(arm)
    پاسخ: 4
    آخرين نوشته: 29-03-2013, 01:01
  3. پاسخ: 2
    آخرين نوشته: 14-12-2012, 21:01
  4. ساخت تلفن بیسیم
    توسط eiliya در انجمن ماژول ها و دستگاه های مخابراتی
    پاسخ: 8
    آخرين نوشته: 07-02-2011, 14:08
  5. برنامه بیسیک برای ارتباط سریال
    توسط wwwa در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 12
    آخرين نوشته: 22-03-2010, 03:24

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

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