Thông báo

Collapse
No announcement yet.

giải thích về vòng lặp for

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

  • #31
    Nguyên văn bởi Acxen_lupine Xem bài viết
    Vẫn chưa ổn bạn dinhnam123 ạ:
    - Bạn đưa ra và thử nghiệm trên 1 hàm delay có cách viết khác (khác cấu trúc, khác kiểu biến).
    - Bằng một cái hình hiện sóng không biết là bao nhiêu s/DIV... Bạn đưa ra kết luận con số 55 quá vội vàng...

    Sau mấy năm không "nghịch cái món diễn đàn"... giờ quay lại, sao mà lại thấy các bạn làm kỹ thuật mà không có chút nào là tỉ mỉ...Thật thất vọng!!!!
    sorry bạn! vì mình lâu lắm cũng k nghịch 8051 nứa.
    nhưng với đoạn code của L.T.M ta có đồ thị xung như sau t_delay=1s:
    Click image for larger version

Name:	1s.PNG
Views:	1
Size:	88.6 KB
ID:	1372624
    còn mình thử nghiệm với đoạn code:
    #include <AT89X51.H>
    //khai bao thu vien
    #define bat 1
    #define tat 0
    unsigned int i,j;
    //khai bao bien toan cuc
    sbit led1=P1^0;
    //tao ham delay
    void delay(long ms)
    {
    for(i=0;i<ms;i++)
    for(j=0;j<120;j++)
    ;
    }// tao tre 1ms
    void main()
    {
    while(1)// Lap vo han
    {
    led1=bat;
    delay(100);//t_delay=100ms
    led1=tat;
    delay(100);
    }
    }
    thì đồ thị nó như sau: Click image for larger version

Name:	100ms.PNG
Views:	1
Size:	87.2 KB
ID:	1372625
    vậy với đoạn for thì t_delay=100ms
    vậy công thức cho đoạn như trên "Ko phải là ms*12us đâu bạn ak!! mà là ms*120*50 us".có chính xác k?
    theo trên thì t_delay=100*120*50=600000=600ms. ?????
    mình cũng đã đua ra kết luận vội vàng cho vòng for trên, nhưng với cấu trúc for:
    void delay(long time)
    {
    long n;
    for(n=0;n<time;n++)
    ;
    }
    thì t_delay=ms*120*55 là chính xác(tuơng đối)
    còn với vòng for của L.T.M thì t_delay=ms*120*8.3 (tương đối)
    để hiểu vì sao thế thì ta debug trên kielc sẽ biêt!
    Last edited by dinhnam123; 14-01-2013, 14:02.
    |

    Comment


    • #32
      Các anh ơi giúp em cái này với ạ
      So sánh 2 phương pháp lập trình tạo trễ trong 8051 là
      1. Dùng Timer.
      2. Dùng vòng lặp.
      Em cảm ơn các anh trước ạ.

      Comment


      • #33
        HIx có ai không ạ giúp em với huhu

        Comment

        Về tác giả

        Collapse

        L.T.M Tìm hiểu thêm về L.T.M

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

        Collapse

        Đang tải...
        X