Thông báo

Collapse
No announcement yet.

pwm với 8051

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • pwm với 8051

    e đang tìm hiểu về điều chế pwm của 8051. e có viết đoạn code như sau, các b chỉ e chỗ nào còn thiếu mà nó ko chạy vs nhé.
    #include <REGX51.H>
    unsigned char dem,phantramxung;
    void delay(long time)
    {long n;
    for(n=0;n<time;n++)
    {
    ;
    }
    }
    void khoitaotimer0()
    {EA=0;
    TMOD=0x02;
    TH0=0x9B;
    TL0=0X9B;
    EA=1;
    ET0=1;
    TR0=1;
    }
    void ngattimer0()interrupt 0
    {TR0=0;
    TF0=0;
    dem++;
    if(dem<phantramxung)P2_0=1;
    else P2_0=0;
    if(dem==10)
    dem=0;
    TR0=1;
    }
    void main()
    {khoitaotimer0();
    while(1)
    {phantramxung=9;
    delay(20000);
    phantramxung=4;
    delay(20000);
    }
    }
    Nguyễn Huy Biên - 01649 802 694
    gmail :

  • #2
    Bạn thử như này xem sao
    Code:
    #include <REGX51.H>
    unsigned char dem,phantramxung;
    
    void delay_ms(unsigned int ms)
    {
    unsigned int i,j;
    for(i=0;i<ms;i++)
    	for(j=0;j<140;j++);
    }
    
    void khoitaotimer0()
    {
    EA=0;
    TMOD=0x02;
    TH0=0x9B;
    TL0=0X9B;
    EA=1;
    ET0=1;
    TR0=1;
    }
    
    void ngattimer0()interrupt 0
    {
    TR0=0;
    TF0=0;
    dem++;
    if(dem==0) P2_0=1;
    if(dem==phantramxung) P2_0=0;
    if(dem>100) dem=0;
    TR0=1;
    }
    
    void main()
    {
    khoitaotimer0();
         while(1)
         {
         phantramxung=90;
         delay_ms(2000);
         phantramxung=40;
         delay_ms(2000);
         }
    }
    Bạn Debug xem timer0 đã chạy chưa?
    Phone No: 0989.437.312
    Email:
    Live in: Ha noi

    Comment


    • #3
      uhm.thanks bạn. mình chưa rõ về cái debug lắm. ai hướng dẫn mình vs
      Nguyễn Huy Biên - 01649 802 694
      gmail :

      Comment


      • #4
        em đã thử lại rồi. vẫn ko được.
        mọi người giúp đỡ em.!
        thanks.
        Nguyễn Huy Biên - 01649 802 694
        gmail :

        Comment


        • #5
          Nguyên văn bởi bienhou Xem bài viết
          uhm.thanks bạn. mình chưa rõ về cái debug lắm. ai hướng dẫn mình vs
          Bạn dùng trình biên dịch gì?
          Phone No: 0989.437.312
          Email:
          Live in: Ha noi

          Comment


          • #6
            Nguyên văn bởi loveelectron Xem bài viết
            Bạn dùng trình biên dịch gì?
            e dùng kiel C 4
            Nguyễn Huy Biên - 01649 802 694
            gmail :

            Comment


            • #7
              Ok mình đã check lại
              Code:
              #include <REGX51.H>
              unsigned char dem,phantramxung;
              
              void delay_ms(unsigned int ms)
              {
              unsigned int i,j;
              for(i=0;i<ms;i++)
              	{
              	for(j=0;j<140;j++);
              	}
              }
              
              void khoitaotimer0()
              {
              EA=0;
              TMOD=0x02;
              TH0=0x9B;
              TL0=0X9B;
              EA=1;
              ET0=1;
              TR0=1;
              }
              
              void ngattimer0()interrupt 1
              {
              TR0=0;
              TF0=0;
              if(dem==0) P2_0=1;
              if(dem==phantramxung) P2_0=0;
              dem=dem+1;
              if(dem>100) dem=0;
              TR0=1;
              }
              
              void main()
              {
              khoitaotimer0();
                   while(1)
                   {
                   phantramxung=90;
                   delay_ms(2000);
                   phantramxung=40;
                   delay_ms(2000);
                   }
              }
              Bạn sai ở chỗ vector ngắt. vector ngắt của Timer 0 phải là 1.
              Phone No: 0989.437.312
              Email:
              Live in: Ha noi

              Comment


              • #8
                thanks bác nhiêu .!
                Nguyễn Huy Biên - 01649 802 694
                gmail :

                Comment

                Về tác giả

                Collapse

                bienhou Tìm hiểu thêm về bienhou

                Bài viết mới nhất

                Collapse

                Đang tải...
                X