پیغام مدیر :
با سلام خدمت شما بازديدكننده گرامي ، خوش آمدید به سایت من . لطفا براي هرچه بهتر شدن مطالب اين وب سایت ، ما را از نظرات و پيشنهادات خود آگاه سازيد و به ما را در بهتر شدن كيفيت مطالب ياري کنید.
کنترول سرو موتور
نوشته شده در یکشنبه 18 مهر 1389
بازدید : 2532
نویسنده : takpar

در برنامه زیر کنترول سرو موتور را به وسیله یک پتانسیومتر کنترول می کنیم  

 

#include
#include
#include
#include

#asm
  .equ __lcd_port=0x18
#endasm
#include
#define adc_vref_type 0xC0
unsigned int read_adc(unsigned char);
    float drj;
    unsigned int data;
char code[20];
void main(void)
    {

    PORTA=0x00;
    DDRA=0x00;
    DDRD=0x20;
        
    ADMUX=adc_vref_type;
    ADCSRA=0x85;
    lcd_init(16);
    
    TCCR1A=0x80;
    TCCR1B=0x12;
    TCNT1=0;
    ICR1H=0x4E;
    ICR1L=0x20;
    OCR1A=1000;
    
    while (1)
        {
        data=read_adc(0);
        lcd_clear();
        sprintf(code,"ADC=%d",data);
        lcd_puts(code);
        lcd_gotoxy(0,1);
        if(data>=500)
            {
            drj=(data-500)/5.5556;

            }
        if(data<500)
            {
            drj=(500-data)/-5.5556;
            }    
        ftoa(drj,2,code);
        lcd_putsf("zavye=");
        lcd_puts(code);  
        OCR1A=data+1000;   
        delay_ms(500);
        };     
    }
unsigned int read_adc(unsigned char adc_input)
    {
    ADMUX|=adc_input;
    ADCSRA|=0x40;
    while((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCW;
    }

شماتیک

الکترونیک ایران





مطالب مرتبط با این پست
.



می توانید دیدگاه خود را بنویسید


ورود کاربران

خوش آمدید! لطفا وارد حساب خود شوید

رمز عبور را فراموش کرده‌اید؟
حساب کاربری ندارید؟

فراموشی رمز عبور

نام کاربری یا ایمیل خود را وارد کنید

یا

ثبت نام کاربران

در چند ثانیه حساب کاربری خود را بسازید

قبلا ثبت نام کرده‌اید؟

نظرات کاربران

دیدگاه خود را با ما در میان بگذارید