اطلاعیه

Collapse
No announcement yet.

کمک در مورد برنامه نویسی AT89C52,IC

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

    کمک در مورد برنامه نویسی AT89C52,IC

    سلام
    من می خوام با این IC یه دماسنج دیجیتالی(ترموستات وترمومتر هوشمند) بسازم،ولی اصلا از برنامه نویسی سر در نمی آرم :cry2:
    لطفا اگه میشه یکی کمک کنه :redface:

    #2
    پاسخ : کمک در مورد برنامه نویسی AT89C52,IC

    با سلام
    از خانواده 8051 خودمونه و مقدار حافظه ای که داره هز 89c51بیشتره و با اسمبلی برنامه براش نوشته میشه . تمام کتاب هایی که در مورد خانواده 8051 نوشته شده در مورد89c51 صادقه
    در واقع 89c51 ورژن عملیاتی و کاربردی 8051 هستش

    دیدگاه


      #3
      پاسخ : کمک در مورد برنامه نویسی AT89C52,IC

      ممنون از راهنماییتون :rolleyes:

      دیدگاه


        #4
        پاسخ : کمک در مورد برنامه نویسی AT89C52,IC

        من خودم یه چیزایی پیدا کردم :wow:،ولی نمی دونم درسته یا نه؟ oo:

        #include <reg52.h>
        #include <stdio.h>

        void timer0int(void);
        char *Puts(char* str);

        float read_temp1(void);
        float read_temp1_filter(void);


        char cputick;
        char buffer[24];
        char pulseE;

        char timer3;
        char temp;
        char vout;
        int x1,x2,x3,x4,x5;

        sbit RS=P1^6;
        sbit E =P1^4;
        sbit RW=P1^5;

        sbit CLK=P1^2;
        sbit Data=P1^1;
        sbit CS=P1^3;

        sbit CHG=P3^0;

        int readADC(char n)
        {
        int k;
        char i,channel;
        k=0;

        CS=0;

        if(n==0) channel= 0x0d;
        else channel=0x0f;

        for (i=0;i<4;i++)
        {
        CLK = 0;

        if(channel&8) Data =1;
        else Data = 0;
        CLK =1;
        channel <<=1;
        }

        Data = 1;
        CLK =0;

        for(i=0; i<12;i++)
        {
        k<<=1;
        CLK =1;
        CLK=0;
        if(Data) k|=1;
        else k &=~1;
        }
        CS =1;

        return k&=0xfff;
        }


        void timer0int(void) interrupt 1 using 1

        {
        TH0 |=0xdc;
        cputick++;
        }


        pause(int j)
        { int i;
        for (i=0;i<j;i++)
        continue;
        }


        pulesE()
        {
        E =1;
        ;
        E =0;
        }


        void delay(int m)
        {
        int j;
        for(j=0;j<=m;j++)
        continue;
        }

        LCDWI (char n)
        {
        RW =0;
        RS=0;
        E =0;
        P0=n;
        E =1;
        E =0;
        pause(50);
        }


        LCDWD(char n)
        {
        RW=0;
        RS=1;
        E=0;
        P0=n;
        E=1;
        E=0;
        pause(50);
        }

        print_LCD(char a,char *s)
        {
        LCDWI(a);
        while(*s != 0)
        LCDWD(*s++);
        }


        i_LCD()
        {
        RS=0;
        E=0;
        P0=0x30;pulesE();delay(10);pulesE();delay(1);pules E();delay(1);
        P0=0x20;pulesE();pulesE();pulesE();
        LCDWI(0x38);
        LCDWI(0x0c);
        LCDWI(0x06);
        LCDWI(1);
        delay(50);
        }

        print_ADC()
        {
        char buffer[20];
        if(++timer3<50)
        {
        timer3=0;
        sprintf(buffer,"%0.1fC %0.1fF",read_temp1_filter(),read_temp1_filter ()*9/5+32);
        print_LCD(0xc0,buffer);
        }
        }

        int low_pass_filter1(void)
        {
        x5=x4;
        x4=x3;
        x3=x2;
        x2=x1;
        x1=readADC(0);
        return(x1+x2+x3+x4+x5)/5;
        }

        float read_temp1_filter(void)
        {
        return(0.0323*low_pass_filter1()-15.615);
        }


        void main()
        {
        i_LCD();
        print_LCD(0x80,"LCD Thermometer"
        TMOD |= 0x01;
        TR0 = 1;
        cputick = 0;
        EA = 1;
        ET0 = 1;

        for(;
        {
        while(!TF0)
        continue;
        TF0=0;
        print_ADC();
        }
        }


        دیدگاه


          #5
          پاسخ : کمک در مورد برنامه نویسی AT89C52,IC

          با c تو 8051 کار نکردم ولی با اسمبلی در خدمتتون هستم اگه تو نوشتن برنامه مشکلیی دارین((اسمبلیی))شاید بتونم کمکتون کنم

          دیدگاه


            #6
            پاسخ : کمک در مورد برنامه نویسی AT89C52,IC

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

            دیدگاه


              #7
              پاسخ : کمک در مورد برنامه نویسی AT89C52,IC

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

              دیدگاه

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