اطلاعیه

Collapse
No announcement yet.

ترجمه کد

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

    ترجمه کد

    سلام بر اساتید محترم انجمن
    من دوتا کد به زبان کد ویژن دارم اگه از اساتید محترم لطف کرده واونوبه بسکام ترجمه کنن ممنون میشم
    /************************************************** ***
    This program was produced by the
    CodeWizardAVR V2.05.3 Standard
    Automatic Program Generator
    © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com

    Project :
    Version :
    Date : 07/04/2012
    Author : Mahbod
    Company :
    Comments:


    Chip type : ATmega8
    Program type : Application
    AVR Core Clock frequency: 8.000000 MHz
    Memory model : Small
    External RAM size : 0
    Data Stack size : 256
    ************************************************** ***/

    #include <mega8.h>

    // Alphanumeric LCD functions
    #include <alcd.h>

    #ifndef RXB8
    #define RXB8 1
    #endif

    #ifndef TXB8
    #define TXB8 0
    #endif

    #ifndef UPE
    #define UPE 2
    #endif

    #ifndef DOR
    #define DOR 3
    #endif

    #ifndef FE
    #define FE 4
    #endif

    #ifndef UDRE
    #define UDRE 5
    #endif

    #ifndef RXC
    #define RXC 7
    #endif

    #define FRAMING_ERROR (1<<FE)
    #define PARITY_ERROR (1<<UPE)
    #define DATA_OVERRUN (1<<DOR)
    #define DATA_REGISTER_EMPTY (1<<UDRE)
    #define RX_COMPLETE (1<<RXC)

    // USART Receiver buffer
    #define RX_BUFFER_SIZE 8
    char rx_buffer[RX_BUFFER_SIZE];

    #if RX_BUFFER_SIZE <= 256
    unsigned char rx_wr_index,rx_rd_index,rx_counter;
    #else
    unsigned int rx_wr_index,rx_rd_index,rx_counter;
    #endif

    // This flag is set on USART Receiver buffer overflow
    bit rx_buffer_overflow;

    // USART Receiver interrupt service routine
    interrupt [USART_RXC] void usart_rx_isr(void)
    {
    char status,data;
    status=UCSRA;
    data=UDR;
    //data processing
    if(data == '$&#039 lcd_clear();
    if(data != '@' && data != '$&#039
    lcd_putchar(data);

    if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
    {
    rx_buffer[rx_wr_index++]=data;
    #if RX_BUFFER_SIZE == 256
    // special case for receiver buffer size=256
    if (++rx_counter == 0) rx_buffer_overflow=1;
    #else
    if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
    if (++rx_counter == RX_BUFFER_SIZE)
    {
    rx_counter=0;
    rx_buffer_overflow=1;
    }
    #endif
    }
    }

    #ifndef _DEBUG_TERMINAL_IO_
    // Get a character from the USART Receiver buffer
    #define _ALTERNATE_GETCHAR_
    #pragma used+
    char getchar(void)
    {
    char data;
    while (rx_counter==0);
    data=rx_buffer[rx_rd_index++];
    #if RX_BUFFER_SIZE != 256
    if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
    #endif
    #asm("cli&quot
    --rx_counter;
    #asm("sei&quot
    return data;
    }
    #pragma used-
    #endif

    // Standard Input/Output functions
    #include <stdio.h>

    // Declare your global variables here

    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTB=0x00;
    DDRB=0x00;

    // Port C initialization
    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTC=0x00;
    DDRC=0x00;

    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTD=0x00;
    DDRD=0x00;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    TCCR0=0x00;
    TCNT0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer1 Stopped
    // Mode: Normal top=0xFFFF
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer2 Stopped
    // Mode: Normal top=0xFF
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    MCUCR=0x00;

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

    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: On
    // USART Transmitter: Off
    // USART Mode: Asynchronous
    // USART Baud Rate: 4800
    UCSRA=0x00;
    UCSRB=0x90;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x67;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;

    // ADC initialization
    // ADC disabled
    ADCSRA=0x00;

    // SPI initialization
    // SPI disabled
    SPCR=0x00;

    // TWI initialization
    // TWI disabled
    TWCR=0x00;

    // Alphanumeric LCD initialization
    // Connections are specified in the
    // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
    // RS - PORTB Bit 0
    // RD - PORTB Bit 1
    // EN - PORTB Bit 2
    // D4 - PORTB Bit 4
    // D5 - PORTB Bit 5
    // D6 - PORTB Bit 6
    // D7 - PORTB Bit 7
    // Characters/line: 16
    lcd_init(16);

    // Global enable interrupts
    #asm("sei&quot

    while (1)
    {
    // Place your code here

    }
    }
    کد بعدی:
    /************************************************** ***
    This program was produced by the
    CodeWizardAVR V2.05.3 Standard
    Automatic Program Generator
    © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com

    Project :
    Version :
    Date : 07/04/2012
    Author : Mahbod
    Company :
    Comments:


    Chip type : ATmega8
    Program type : Application
    AVR Core Clock frequency: 8.000000 MHz
    Memory model : Small
    External RAM size : 0
    Data Stack size : 256
    ************************************************** ***/

    #include <mega8.h>

    // Alphanumeric LCD functions
    #include <alcd.h>

    // Standard Input/Output functions
    #include <stdio.h>

    #include <delay.h>

    #define CHAR_UP PIND.2
    #define NUM_UP PIND.3
    #define PUN_UP PIND.4
    #define ENTER PIND.5
    #define BCK_SPC PIND.6
    #define SEND PIND.7

    #define CHAR_COUNT 26
    #define NUM_COUNT 10
    #define PUN_COUNT 4


    // Declare your global variables here
    char characters[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
    char numbers[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
    char puncts[] = {'.', ',', ' ', '-'};
    char count_char=-1, count_num=-1, count_pun=-1;
    char code='@';
    char lcd_buffer[16], data_buffer[17];
    char buffer_pointer=0;


    interrupt [TIM1_OVF] void timer1_ovf_isr(void){
    TCNT1 = 0xFD8F;
    putchar(code);
    }

    void back_space(void){
    lcd_buffer[buffer_pointer] = '';
    if(buffer_pointer != 0)
    buffer_pointer--;
    }

    void add_char(char c){
    lcd_buffer[buffer_pointer] = c;
    if(buffer_pointer == 16)
    buffer_pointer = 0;
    }



    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTB=0x00;
    DDRB=0x00;

    // Port C initialization
    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTC=0x00;
    DDRC=0x00;

    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=P State4=P State3=P State2=P State1=P State0=p
    PORTD=0xfc;
    DDRD=0x00;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    TCCR0=0x00;
    TCNT0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    TCCR1A = 0x00;
    TCCR1B = 0x04;
    TCNT1 = 0xFD8F;


    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer2 Stopped
    // Mode: Normal top=0xFF
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    MCUCR=0x00;

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

    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: Off
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud Rate: 4800
    UCSRA=0x00;
    UCSRB=0x08;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x67;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;

    // ADC initialization
    // ADC disabled
    ADCSRA=0x00;

    // SPI initialization
    // SPI disabled
    SPCR=0x00;

    // TWI initialization
    // TWI disabled
    TWCR=0x00;

    #asm("sei&quot

    // Alphanumeric LCD initialization
    // Connections are specified in the
    // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
    // RS - PORTB Bit 0
    // RD - PORTB Bit 1
    // EN - PORTB Bit 2
    // D4 - PORTB Bit 4
    // D5 - PORTB Bit 5
    // D6 - PORTB Bit 6
    // D7 - PORTB Bit 7
    // Characters/line: 16
    lcd_init(16);
    delay_ms(250);
    lcd_clear();
    lcd_putsf("TEST"
    delay_ms(1000);
    lcd_clear();
    _lcd_write_data(0x0f);
    while (1)
    {
    if(CHAR_UP==0){
    count_char++;
    if(count_char == CHAR_COUNT)
    count_char = 0;
    add_char(characters[count_char]);
    lcd_clear();
    _lcd_write_data(0x0f);
    lcd_puts(lcd_buffer);
    while(CHAR_UP==0);
    }
    if(NUM_UP==0){
    count_num++;
    if(count_num == NUM_COUNT)
    count_num = 0;
    add_char(numbers[count_num]);
    lcd_clear();
    _lcd_write_data(0x0f);
    lcd_puts(lcd_buffer);
    while(NUM_UP==0);
    }
    if(PUN_UP==0){
    count_pun++;
    if(count_pun == PUN_COUNT)
    count_pun = 0;
    add_char(puncts[count_pun]);
    lcd_clear();
    _lcd_write_data(0x0f);
    lcd_puts(lcd_buffer);
    while(PUN_UP==0);
    }

    if(ENTER==0){
    count_char = count_num = count_pun = -1;
    buffer_pointer++;
    lcd_clear();
    _lcd_write_data(0x0f);
    lcd_puts(lcd_buffer);
    while(ENTER==0);
    }
    if(BCK_SPC == 0){
    back_space();
    lcd_clear();
    _lcd_write_data(0x0f);
    lcd_puts(lcd_buffer);
    while(BCK_SPC==0);
    }
    if(SEND==0){
    sprintf(data_buffer, "$%s", lcd_buffer);
    puts(data_buffer);
    while(SEND==0);
    }
    }
    }
    MEHRENIA1366@GMAIL.COM
    مغز انسان خيلي پيچيده است و بخاطر همين هميشه دنبال راه حلهاي پيچيده ميگرده با کمي تامل ميشه راه حلهاي ساده تري رو پيدا کرد.هميشه پيچدگي وحجم بالا نشانه داشتن علم زياد نيست.

    #2
    پاسخ : ترجمه کد

    اساتید محترم نمیخان کمک کن یا قضیه چیز دیگه ای هتش لااقل از بین این 25 بازدید یه نفر نشد یه کلام برام بنویسه که مثلا چه کار کنم بابا ایول به مرام اساتید
    MEHRENIA1366@GMAIL.COM
    مغز انسان خيلي پيچيده است و بخاطر همين هميشه دنبال راه حلهاي پيچيده ميگرده با کمي تامل ميشه راه حلهاي ساده تري رو پيدا کرد.هميشه پيچدگي وحجم بالا نشانه داشتن علم زياد نيست.

    دیدگاه


      #3
      پاسخ : ترجمه کد

      نوشته اصلی توسط mehrenia_1366
      اساتید محترم نمیخان کمک کن یا قضیه چیز دیگه ای هتش لااقل از بین این 25 بازدید یه نفر نشد یه کلام برام بنویسه که مثلا چه کار کنم بابا ایول به مرام اساتید
      دوست عزیز تبدیل این چند خط برنامه خودش فرآیندی است بس طاقت فرسا و طولانی
      من که بیسیک بلد نیستم اما امیدوارم که کسی پیدا بشه که صبور باشه اینو تبدیل کنه برات
      اما میتونم بهت توصیه ی دوستانه ای کنم که بیسیک رو ترک کنی و سی یا اسمبلی رو یاد بگیری ، هرچی به زبان ماشین نزدیک تر بشی راحت تری ، من اگه برم اردبیل فارسی حرف بزنم کارم راه میوفته اما اگه به زبان خودشون حرف بزنم خب خیلی فرق داره

      دیدگاه

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