NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4153 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 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
    همکار علمی zakariya moradi آواتار ها
    تاریخ عضویت
    Sep 2012
    نام
    ذکریا مرادی
    نوشته ها
    206
    تشکر
    86
    تشکر شده 448 بار در 125 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sarfraz3 نمایش پست ها
    دوستان کسی قصد کمک نداره
    دوست عزیز شما انتظار دارید بقیه به سرعت به درخواست های شما جواب بدن ؟
    کمی صبر کنید .در ضمن همه دوستان سی و بیسیک رو با هم مسلط نیستند .

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

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

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

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