Thông báo

Collapse
No announcement yet.

Tính delay 1s dùng timer ??

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

  • Tính delay 1s dùng timer ??

    Mình cũng mới tập tành thôi nên ko rõ lắm mong mấy bác chỉ giùm :
    Mình muốn tạo 1 hàm delay dùng timer
    Mình có đọc mấy bài trên thì tìm mấy bác có chỉ :
    Code:
    void delay (unsigned char time)
    {	while(time--)
    	{
    		TMOD=0x01;
    		TH=0x00;
    		TL=0x00;
    		TR0=1;
    		while(TF0);
    		TF0=0;
    		TR0=0;
    	 }
    }
    theo tính toán thì hàm trên sẽ trễ 71ms. Vậy mình phải dùng vòng lặp như thế nào để nó trễ 1s ?
    Hàm while(time--) có nghĩa là gì vậy.

  • #2
    Nguyên văn bởi CNX.
    Tôi không chỉ dẫn trực tiếp code, tôi hướng dẫn em thế này.

    Với 89sxxx hay 89cxxx. Với thạch anh ngoài là 12Mhz thì xung nội hệ thống sẽ là 1Mhz, tương tự các chip avr hay pic thì sẽ có tỉ lệ chia khác. vậy xung nhịp hệ thống là 1us.

    Nếu em dùng timer 8 bit thì giá trị đếm max là 255 tuơng đương 255us.
    Nếu em dùng timer 16 bit thì giá trị đếm max là 65535 tuơng đương 65535us.


    ở đây e cần định thời 1s (cú pháp của em hình như có vấn đề TH?, TL?)
    1s=1E6us.
    e nên cho bộ đếm tới 250 giá trị là tràn, như vậy sẽ được 250us, để được 1E6us thì cần cho vòng lặp 4000 lần. như vậy giá trị nạp ban đầu cho THx=0, TLx=5.
    Suy luận tương tự cho với timer16 bit

    Giá trị timer ở đây là thời gian họ cần delay. ví dụ nếu hàm trên trễ 71ms, nếu em cho timer=1 thì thời gian delay là 71*1=71ms.

    *Em nên học lập trình C căn bản và cấu trúc timer trước khi làm việc này.
    em cám ơn nhiều.Em đã hiểu và làm được.
    Nhưng hàm while(TF0); ở đây phải sửa lại thành while(!TF0); thì mới được.Em cũng ko rõ chỗ này

    Comment


    • #3
      cái đấy là viết tắt thôi. nghĩa là 1 cái #0 và 1 cái =0. khi tràn cờ sẽ được set lên 1 và #0
      Website chính thức đổi địa chỉ website thành
      Mời các bạn ghé thăm !!!

      Comment


      • #4
        mình vẫn còn chưa hiểu : while (!TF0) thì tuơng đuơng while(TF0==0)
        ko lẽ hàm này hiểu là : cho đến khi TF0 =1 (hoặc TF0 =/0)

        Comment


        • #5
          Nguyên văn bởi hada242 Xem bài viết
          mình vẫn còn chưa hiểu : while (!TF0) thì tuơng đuơng while(TF0==0)
          ko lẽ hàm này hiểu là : cho đến khi TF0 =1 (hoặc TF0 =/0)
          While (!TF0) có nghĩa: Khi TF0 còn bằng 0 thì biểu thức quan hệ (!TF0) còn bằng 1 lúc này tương đương với lệnh While (1). Vòng lặp này còn được thực hiện đến khi nào TF0 = 1 mới thôi.
          Trong trường hợp này: while (!TF0) tương đương while (TF0==0)

          Comment


          • #6
            Nguyên văn bởi ck33spkt Xem bài viết
            while (!tf0) có nghĩa: Khi tf0 còn bằng 0 thì biểu thức quan hệ (!tf0) còn bằng 1 lúc này tương đương với lệnh while (1). Vòng lặp này còn được thực hiện đến khi nào tf0 = 1 mới thôi.
            Trong trường hợp này: While (!tf0) tương đương while (tf0==0)
            mÌnh ĐÃ hiỂu,cÁm Ơn bẠn nhiỀu

            Comment

            Về tác giả

            Collapse

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

            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
            Đang tải...
            X