ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

نمایش نتایج: از 1 به 8 از 8
  1. #1
    2009/05/29
    AMOL
    21
    0

    تبديل برنامه C به Basic

    با عرض سلام به دوستان گرامي
    براي پروژه دانشگاهيم يه برنامه دارم که به زبان C نوشته شده ولي چون بايد ارايه بدم بايد زبان Basic رو داشته باشم و بايد تا آخر فروردين تحويل بدم براي همين اگر کسي ميتونه اين کارو واسم انجام بده ممنون ميشم
    خيلي بهش نياز دارم :angry:
    برنامه رو قرار ميدم اگه درهم شد آدرس پلود شده رو هم قرار ميدم
    http://www.4shared.com/zip/O7ePUAxy/file.html

    /************************************************** ***
    This program was produced by the
    CodeWizardAVR V2.05.0 Advanced
    Automatic Program Generator
    © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com

    Project :
    Version :
    Date : 10/20/2011
    Author : www.Eca.ir *** www.Webkade.ir
    Company :
    Comments:


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

    #include <mega8.h>
    #include <delay.h>
    #include <stdio.h>

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

    long int timer0_ov;
    long int in_freq;
    char buff[16],buff2[16];
    int humidity;

    // Timer 0 overflow interrupt service routine
    interrupt [TIM0_OVF] void timer0_ovf_isr(void)
    {
    timer0_ov++;

    }

    // 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: T0 pin Falling Edge
    TCCR0=0x06;
    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=0x01;

    // USART initialization
    // USART disabled
    UCSRB=0x00;

    // 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 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)
    {

    TCCR0=0x06;
    #asm("sei&quot
    delay_ms(50);
    #asm("cli&quot
    in_freq=20*(timer0_ov*256+TCNT0);
    sprintf(buff,"Freq=%d",in_freq);
    //delay_ms(250);
    lcd_clear();
    lcd_puts(buff);
    TCCR0=0x00;
    timer0_ov=0;
    TCNT0=0;

    humidity=(-0.075872)*(in_freq-7351);
    lcd_gotoxy(0,1);
    sprintf(buff2,"Humidity=%d",humidity);
    lcd_puts(buff2);

    }
    }

  2. #2
    2007/12/09
    تهران
    1,626
    20

    پاسخ : تبديل برنامه C به Basic

    داداش برنامه چیز زیادی نداره که. نصف بیشترش کامنت های کد ویژن هست که حذف میشه.شما شروع کن تبدیل رو دوستان کمک میکنند.
    [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]
  3. #3
    2011/06/19
    تهران
    1,706
    7

    پاسخ : تبديل برنامه C به Basic

    سلام

    من به بیسک می نویسم ولی C بلد نیستم :mrgreen:

    اگه بگید برنامه چی به چیه می تونم بنویسم اگه عجله نداشت باشید تازه تا چند روز اینده هم نیستم :biggrin:

  4. #4
    2009/05/29
    AMOL
    21
    0

    پاسخ : تبديل برنامه C به Basic

    خوشحالم که تو ايام عيد هم انجمن به فکر ما هم هست :applause:
    ظاهرا بيشتر پيکر بندي تايم/کانتر و LCD و..است
    اين برنامه مال يه پروژه رطوبت سنجه لينکشو قرار ميدم اگه لطف کنين سر بزنين ممنون ميشم
    http://www.iranmicro.ir/forum/showthread.php?t=5534&highlight=HS1101
    خروجي IC555 ميره به پورت D.4 که رو سطر اول فرکانس رو نشون ميده و رو سطر دوم مقدار رطوبت رو
    يعني يه برنامه فرکانس متر ميشه با ATMEGA8 که با کريستال داخلي 1 MHZ کار ميکنه
    براي نشان دادن فرکانس و رطوبت از چند خط فرمول آخر ميشه کمک گرفت
    با تشکر.
  5. #5
    2009/05/29
    AMOL
    21
    0

    پاسخ : تبديل برنامه C به Basic

    توضيحات بيشتر رو در قالب يه فايل PDF با حجم 400KB در آدرس زير قرار دادم

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    يا

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    بعد يه مشکله ديگه هم دارم اينه که تو شبيه ساز برنامه کار ميکنه اما تو عمل بيشتر اوقات يک مرتبه نوشته هاي روي LCD تغيير نميکنه و ثابت ميمونه ولي در حالي که نبايد همچين چيزي باشه و تغييرات رو به صورت پيوسته نشون بده
    به نظرتون مشکل از چي ميتونه باشه؟
    ممنون ميشم اگه يک راهنمايي و راه حلي واسه اين مشکلم هم بفرماييد.
  6. #6
    2009/05/29
    AMOL
    21
    0

    پاسخ : تبديل برنامه C به Basic

    کسي نيست :redface:
  7. #7
    2009/10/25
    133
    4

    پاسخ : تبديل برنامه C به Basic

    دوست من پیغام خصوصی تون رو الان دیدم ببخشید.

    من بیسیک کار نکردم چون اصلا خوشم نمیاد به نظر من برای برنامه نویسی حرفه ای اصلا دستمون باز نیست.

    من توضیحات برنامه ای که گذاشتین رو میدم دوستان زحمتش تبدیل به بیسیکش رو بکشن.

    منتها الان دیر وقته یه زره (ساعت 2:40 نیمه شب) انشاء الله بعد ظهر براتون کامل توضیح میدم ببخشید.
    [size=12pt][glow=red,2,300]گرد هم آمدن شروع است.با هم ماندن پيشرفت است.با هم کار کردن موفقيت است.[/glow][/size]
    [img width=98 height=100]http://s3.picofile.com/file/7407857311/icon3.png[/img]
  8. #8
    2009/10/25
    133
    4

    پاسخ : تبديل برنامه C به Basic

    سلام متاسفانه قولی که دادم با تاخیر مواجه شد امیدوارم منو ببخشید .

    دوستان عزیز نوشتن توضیحات حدود یک ساعت ونیم از وقتم رو گرفت خواهشا برا این که کارم بیهدوه نشه به دوست خوبمون که کارش گیره کمک کنید و برنامه رو با این توضیحات با زبان بیسیک بنویسید.

    توضیحات کامل هست و نیازی به توضیح کارکرد دستگاه نیست.اگه کسی بیسیک کار کرده باشه به راحتی میتونه تبدیلش کنه.

    برا اینکه توضیحات رو بهتر ببینید برنامه رو داخل word کپی کنید.

    و اما توضیحات برنامه :

    خب ابتدا در مورد راه اندازی و مشخصات فنی توضیح میدم.

    فرکانس کاری میکرو که مشخصه 1 مگاهرتز انتخاب شده.بسته به دلخواه خودتون میتونید از RC داخلی یا کریستال خارجی استفاده کنید در صورتی که کریستال داخلی انتخاب کردین به غیر از تنظیم فیوز بیت ها کلاک(CKSELx) ، باید فیوز بیت های SUT0=0 , SUT1=1 انتخاب بشه. اما در صورتی که کریستال خارجی انتخاب بشه کافیه فقط فیوز بیت CKOPT=0 انتخاب بشه و همه فیوز بیت های دیگه برابر 1 انتخاب بشن.

    از لحاظ سخت افزار تو این برنامه فقط lcd متصل شده .lcd هم 16*2 میباشد. پایه ها رو مشخص کردم:

    // 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

    تو برنامه فقط از تایمر 0 استفاده شده که راه اندازیش به صورت زیر هست:
    تایمر به صورت کانتر راه اندازی شده که به پایه ی T0 متصل شده و به صورت لبه ی نزولی. وقفه سرریز فعال شده و مقدار اولیه رجیستر TCNT برابر صفر میباشد.

    از اینجا دارم توضیحات رو به ترتیب میدم:


    long int timer0_ov; // تعریف متغییر 32 بیتی بدون علامت با مقدار اولیه صفر
    long int in_freq; //تعریف متغییر 32 بیتی بدون علامت با مقدار اولیه صفر
    char buff[16],buff2[16]; //تعریف متغییر های آرایه 8 بیتی با علامت با تعداد داریه 16
    int humidity; //تعریف متغییر 16 بیتی با علامت با مقدار اولیه صفر


    interrupt [TIM0_OVF] void timer0_ovf_isr(void)
    {
    timer0_ov++; // این یه تکیه مربوط به زیر روال وقفه هست کاری که قرار انجام بشه در اینجا ، اضافه کردن
    //مقدار متغییر(timer0_ov) به اندازه ی یه واحد بهد از هر بار اجرای وقفه هست.
    }

    [hr]

    در main برنامه با استفاده از دستور لوپ باید دستوارت زیر اجرا بشه تمام کارایی که قراره انجام بشه.


    TCCR0=0x06;

    //مقدار دهي رجيستر TCNT با 6 هگز

    #asm("sei&quot

    //فعال کردن یا اجازه دادن اجرای وقفه

    delay_ms(50);

    //ایجاد تاخیر به اندازه ی 50 میلی ثانیه

    #asm("cli&quot

    //غیر فعال کردن یا اجازه دادن اجرای وقفه

    in_freq=20*(timer0_ov*256+TCNT0);

    // مقدار متغییر (timer0_ov) در مقدار 255 ضرب شده و با مقدار //رجیستر TCNT جمع شده حاصل کل در مقدار عددی 20 ضرب
    //شده ودر نهایت در متغییر (in_freq) که قبلا تعریف کردیم ریخته میشه

    sprintf(buff,"Freq=%d",in_freq);

    //تبدیل مقدار متغییر in_freq به رشته و ریختن اون در متغییر آرایه ی buff

    lcd_clear();

    //پاک کردن صفحه ی lcd

    lcd_puts(buff);

    // نمایش مقدار رشته ی داخل آرایه ی buff بر روی lcd

    TCCR0=0x00;

    // صفر کردن محتویات رجیستر TCCR0 تایمر

    timer0_ov=0;

    //صفر کردن محتویات متغییر timer0_ov

    TCNT0=0;

    //صفر کردن محتویات رجیستر TCNT0 تایمر

    humidity=(-0.075872)*(in_freq-7351);

    //مقدار متغییر in_freq از عدد7351 کم شده و درمقدار اعشاری -0.075872 ضرب شده و در نهایت در متغییر humidity ریخته میشه

    lcd_gotoxy(0,1);

    // پرش به مختصات سطر دوم و ستون اول lcd

    sprintf(buff2,"Humidity=%d",humidity);

    // تبدیل مقدار متغییر humidity به رشته و ریختن اون در متغییر آرایه یbuff2

    lcd_puts(buff2);

    //نمایش مقدار رشته ی داخل آرایه ی buff2 بر روی lcd
    [size=12pt][glow=red,2,300]گرد هم آمدن شروع است.با هم ماندن پيشرفت است.با هم کار کردن موفقيت است.[/glow][/size]
    [img width=98 height=100]http://s3.picofile.com/file/7407857311/icon3.png[/img]
نمایش نتایج: از 1 به 8 از 8

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

  1. پاسخ: 0
    آخرين نوشته: 2014/03/07, 13:35
  2. تبديل برنامه C به Basic
    توسط amard_1368 در انجمن C , C++ , C#
    پاسخ: 0
    آخرين نوشته: 2012/03/24, 17:14
  3. مشکل کوچیک در برنامه ی یک پروژه (basic )
    توسط a-0852 در انجمن میکروکنترلرهای AVR
    پاسخ: 8
    آخرين نوشته: 2011/07/15, 12:44
  4. کمک فوری برای برنامه ی ساعت با pic basic pro
    توسط mina ghasemi در انجمن میکروکنترلرهای PIC
    پاسخ: 3
    آخرين نوشته: 2009/01/13, 16:27
  5. برنامه کنترل دور موتور dc به زبان basic
    توسط mjtb_sar در انجمن برنامه نويسي و اينترفيس
    پاسخ: 1
    آخرين نوشته: 2008/09/10, 22:50

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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