Thông báo

Collapse
No announcement yet.

Làm sao để dùng timer 1 tính 1 s trong 8051 !

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

  • Làm sao để dùng timer 1 tính 1 s trong 8051 !

    Code:
    void TM1_INT() interrupt 3 using 0 {
    		TH1=0x3c;
    		TL1=0xb0;
    		TF1=0;
    		TR1=0;
    		dem++; //Lap 20 lan se duoc 1 s
    		if(dem==20) {giay++; dem=0;}
    		if(giay>=60) {
    		   giay=0;
    		   phut++;
    		}
    		if(phut>=60) {
    		   phut=0;
    		  gio++;
    		}
    		if(gio>=24) gio =0;
    		TR1=1;
    	}

    Để tính 1 s thì mình làm như sau : Sử dùng timer1 để đếm 50000 xung(TH1=0x3c;TL1=0xb0);, mỗi lần đếm được như vậy thì tăng biến dem lên 1. Sau 20 lần ta được 1 triệu xung tức 1 s. Lý thuyết là thế nhưng khi nạp vào VĐK thì nó lại đếm 1 s rất nhanh . Có phải mình tính toán sai chỗ nào không???

  • #2
    mình cũng đang lập trình cho 8051 để hẹn giờ tắt led tính theo đơn vị phút đây,vẫn chưa làm được

    Comment


    • #3
      Nguyên văn bởi AKA_QUAN Xem bài viết
      Code:
      void TM1_INT() interrupt 3 using 0 {
      		TH1=0x3c;
      		TL1=0xb0;
      		TF1=0;
      		TR1=0;
      		dem++; //Lap 20 lan se duoc 1 s
      		if(dem==20) {giay++; dem=0;}
      		if(giay>=60) {
      		   giay=0;
      		   phut++;
      		}
      		if(phut>=60) {
      		   phut=0;
      		  gio++;
      		}
      		if(gio>=24) gio =0;
      		TR1=1;
      	}

      Để tính 1 s thì mình làm như sau : Sử dùng timer1 để đếm 50000 xung(TH1=0x3c;TL1=0xb0);, mỗi lần đếm được như vậy thì tăng biến dem lên 1. Sau 20 lần ta được 1 triệu xung tức 1 s. Lý thuyết là thế nhưng khi nạp vào VĐK thì nó lại đếm 1 s rất nhanh . Có phải mình tính toán sai chỗ nào không???
      chưa khai báo chế độ cho TMOD

      Comment


      • #4
        mình nghĩ là bạn AKA_QUAN đã khai báo ở hàm main rồi chứ nhỉ

        Comment


        • #5
          Bạn này cắt đầu cắt đuôi.Chà ai biết mà lần.
          , , ,

          Comment


          • #6
            Tất nhiên khai báo TMOD rồi nó mới chạy, và mình chỉ rối đoạn code này thôi! Không dám đưa hết lên vì dễ làm các bạn rối và tìm lỗi không đâu ! Mình chỉ hỏi cách tính Timer như vậy có đúng không mà sao giây nó chạy nhanh quá trời luôn !

            Comment


            • #7
              thuật toán như sau:

              giả sử ta sử dụng timer 0, chế độ 16 bít tức tối đa là đếm được 65536

              tính toán như sau:

              sử dụng thạch anh 12Mhz => T = 1us
              đếm timer từ 15536 đến khi đầy ( bạn tự tính để có được số hex cho TH0 và TL0) => cứ 1 lần đếm được 50000us ứng với 50ms
              như vậy tràn 20 lần sẽ đủ 1s

              hix. có vậy thui
              Be quan. Plz contact through email:

              Comment


              • #8
                Giờ mới phát hiện ra, giáo trình viết sai nên mới timer1 chạy sai. Đã fix xong, mod close được rồi !

                Comment


                • #9
                  #include <sfr52.inc>
                  BEGIN :
                  CPL P2.0
                  LCALL DELAY1S
                  SJMP BEGIN
                  DELAY1S:
                  MOV TMOD,#01H
                  MOV R2,#20
                  RE:
                  mov TH0,#HIGH(-50000)
                  MOV TL0,#LOW(-50000)


                  SETB TR0
                  JNB TF0,$
                  CLR TR0
                  CLR TF0
                  DJNZ R2,RE

                  RET
                  END



                  Ngắt timer 1 s dùng source assembly

                  Comment


                  • #10
                    Ko dám múa rìu wa mắt thợ,mình cũng góp vui

                    DELAY:
                    MOV TMOD,#01H
                    MOV R1,#100
                    X: MOV TH0,#HIGH(-10000)
                    MOV TL0,#LOW(-10000)
                    SETB TR0
                    JNB TF0,$
                    CLR TR0
                    CLR TF0
                    DJNZ R1,X
                    RET

                    bữa trước học trên lớp làm lập trình cái đèn giao thông, chính xác lắm, đã test trên protus

                    Comment


                    • #11
                      Nguyên văn bởi vietanhk4 Xem bài viết
                      Ko dám múa rìu wa mắt thợ,mình cũng góp vui

                      DELAY:
                      MOV TMOD,#01H
                      MOV R1,#100
                      X: MOV TH0,#HIGH(-10000)
                      MOV TL0,#LOW(-10000)
                      SETB TR0
                      JNB TF0,$
                      CLR TR0
                      CLR TF0
                      DJNZ R1,X
                      RET

                      bữa trước học trên lớp làm lập trình cái đèn giao thông, chính xác lắm, đã test trên protus
                      tạo giây bằng phần mềm ko bao giờ chính xác nổi đâu

                      Comment


                      • #12
                        xin hỏi pro mình muốn delay 8 phut thì sao?
                        các pro nào biết xin chỉ dùm

                        Comment


                        • #13
                          có 1 giây rồi thì gọi 60 lần được 1 phút. 1 phút gọi 60 lần được 1 giờ, cứ thế mà tiến. Chắc chắn sẽ có sai số nên cần mềm dẻo khắc phục.
                          QTCP

                          Comment

                          Về tác giả

                          Collapse

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

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

                          Collapse

                          • since0501
                            Trả lời cho Pin Li-FePO4 (pin sắt) rất dể hỏng! Các biện pháp ngăn ngừa.
                            bởi since0501
                            Mình đào mộ xíu, cho mình hỏi là pin của bác vẫn ok chứ? Mình vừa đóng khối pin 16 cell 40135 thì khi chạy điện áp nó sụt so với khi nghỉ như video mình dẫn link, vậy cho mình hỏi là dung lượng pin sẽ tính khi áp nghỉ hay áp đang hoạt động, và pin sụt áp như vậy là bình thường hay pin kém?
                            ht...
                            hôm nay, 17:56
                          • mèomướp
                            Trả lời cho Sửa bộ nguồn DC 60V 45A
                            bởi mèomướp
                            Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
                            Hôm qua, 13:11
                          • tuyennhan
                            Trả lời cho Sửa bộ nguồn DC 60V 45A
                            bởi tuyennhan
                            Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
                            Hôm qua, 09:25
                          • tuyennhan
                            Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                            bởi tuyennhan
                            Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
                            Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
                            Hôm qua, 09:10
                          • Ng.Phuong.5
                            Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
                            bởi Ng.Phuong.5
                            Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
                            Mấy con...
                            09-01-2025, 19:44
                          • viettinh
                            Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                            bởi viettinh
                            Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
                            Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
                            09-01-2025, 18:12
                          • nguyendinhvan
                            Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                            bởi nguyendinhvan
                            Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
                            Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
                            Cách đơn giản...
                            09-01-2025, 00:04
                          • mèomướp
                            Trả lời cho Sửa bộ nguồn DC 60V 45A
                            bởi mèomướp
                            Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
                            08-01-2025, 19:02
                          • tuyennhan
                            Trả lời cho Sửa bộ nguồn DC 60V 45A
                            bởi tuyennhan
                            Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
                            08-01-2025, 15:43
                          • tuyennhan
                            Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                            bởi tuyennhan
                            Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
                            08-01-2025, 15:28
                          Đang tải...
                          X