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

                • bqviet
                  Trả lời cho Đấu tắt điện cho máy tính bảng
                  bởi bqviet
                  Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                  06-12-2025, 17:17
                • nguyendinhvan
                  Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                  bởi nguyendinhvan
                  Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                  05-12-2025, 19:59
                • afrendly
                  Trả lời cho Đấu tắt điện cho máy tính bảng
                  bởi afrendly
                  Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                  04-12-2025, 01:27
                • nick22
                  Trả lời cho Máy điện châm ?
                  bởi nick22
                  Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
                  01-12-2025, 13:23
                Đang tải...
                X