Thông báo

Collapse
No announcement yet.

Tính tổng số chu kì máy

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

  • Tính tổng số chu kì máy

    Hi,
    Cho mình hỏi cách tính tổng số chu kì máy với đoạn Delay dưới.
    (Có thể cho mình công thức tổng quát với đoạn lệnh dưới)


    Delay:
    Mov R7,#0FFH
    Kt1: Mov R6,#0FFH
    Kt2 Mov R5,#0FFH
    Kt3: Djnz R5,Kt3
    Djnz R6,Kt2
    Djnz R7,Kt1
    Ret

  • #2
    hai vòng lặp thì tính như dưới, còn 3 cái thì tính sao nhỉ. Ai giúp mình đi


    Tổng thời gian của chương trình con Delay:

    Nếu sử dụng thạch anh 12MHz thì mỗi chu kì máy là 1µs
    Lệnh Mov R7,#0FFH thực hiện 1 lần và mất 1 chu kì máy
    Lệnh Djnz R6,Kt1 thực hiện 255 lần và mỗi lần mất 2 chu kì máy
    Đoạn lệnh
    Kt2: Mov R6,#0FFH
    Kt1: Djnz R6,Kt1 ;kí hiệu Kt thay cho kiểm tra
    Djnz R7,Kt2
    Đoạn lệnh này được thực hiện 255 lần với mỗi lần gồm
    (255×2)chu kì máy của lệnh Djnz R6,Kt1
    và 2 chu kì máy của lệnh Djnz R7,Kt2
    và 1 chu kì máy của lệnh Mov R6,#0FFH
    Tổng cộng đoạn trên đã thực hiện (1+(255×2)+2)×255)=130815 chu kì máy
    Vậy tổng cộng chương trình con Delay đã thực hiện 130815+1=130816 chu kì máy
    tức là đã thực hiện trong 130816µs , khoảng thời gian gần bằng 0.13s
    Như vậy trong 1s led sáng khoảng 4 lần đủ để mắt người có thể nhận ra được

    Comment


    • #3
      Nguyên văn bởi binhdao123 Xem bài viết
      Hi,
      Cho mình hỏi cách tính tổng số chu kì máy với đoạn Delay dưới.
      (Có thể cho mình công thức tổng quát với đoạn lệnh dưới)


      Delay:
      Mov R7,#0FFH
      Kt1: Mov R6,#0FFH
      Kt2 Mov R5,#0FFH
      Kt3: Djnz R5,Kt3
      Djnz R6,Kt2
      Djnz R7,Kt1
      Ret
      Delay:
      Mov R7,#0FFH
      Kt1: Mov R6,#0FFH
      Kt2 Mov R5,#0FFH
      Kt3: Djnz R5,Kt3 ; Thời gian trễ vòng này = 2*255 = 510 MC
      Djnz R6,Kt2 ; Thời gian trễ vòng này = (510 + 2 + 1) * 255 = 130815 MC
      Djnz R7,Kt1 ; Thời gian trễ vòng này = (130815 + 2 + 1) * 255 = 33358590 MC

      => Tổng thời gian tính từ khi gọi lệnh delay đến khi kết thúc lệnh trở về là: 33358590 + 1 + 1 = 33358592 chu kỳ máy.
      Nếu dùng thạch anh 12MHz thì (1MC = 1us) chương trình trên tạo trễ 1 khoảng thời gian là: 33358592 * 1us = 33358592 us ~= 33,34s

      Comment


      • #4
        Delay:
        Mov R7,#0FFH
        Kt1: Mov R6,#0FFH
        Kt2 Mov R5,#0FFH
        Kt3: Djnz R5,Kt3 ; Thời gian trễ vòng này = 2*255 = 510 MC
        Djnz R6,Kt2 ; Thời gian trễ vòng này = (510 + 2 + 1) * 255 = 130815 MC // số 2 và 1 là của 2 đoạn lệnh nào vậy bạn.
        Djnz R7,Kt1 ; Thời gian trễ vòng này = (130815 + 2 + 1) * 255 = 33358590 MC //số 2 và 1 là của 2 đoạn lệnh nào vậy bạn.
        33358590 + 1 + 1 = 33358592 // 1 và 1 là của đoạn lệnh nào vậy bạn.

        Có thể rút ra công thức tính tổng quát được không bạn.

        Thank.
        P/S: Mình không phải chuyên ngành điện tử nhưng có học môn vi điều khiển nên bạn có thể giải thích kĩ hơn cho mình nhe.

        Comment


        • #5
          Nguyên văn bởi binhdao123 Xem bài viết
          Delay:
          Mov R7,#0FFH
          Kt1: Mov R6,#0FFH
          Kt2 Mov R5,#0FFH
          Kt3: Djnz R5,Kt3 ; Thời gian trễ vòng này = 2*255 = 510 MC
          Djnz R6,Kt2 ; Thời gian trễ vòng này = (510 + 2 + 1) * 255 = 130815 MC // số 2 và 1 là của 2 đoạn lệnh nào vậy bạn.
          Djnz R7,Kt1 ; Thời gian trễ vòng này = (130815 + 2 + 1) * 255 = 33358590 MC //số 2 và 1 là của 2 đoạn lệnh nào vậy bạn.
          33358590 + 1 + 1 = 33358592 // 1 và 1 là của đoạn lệnh nào vậy bạn.

          Có thể rút ra công thức tính tổng quát được không bạn.

          Thank.
          P/S: Mình không phải chuyên ngành điện tử nhưng có học môn vi điều khiển nên bạn có thể giải thích kĩ hơn cho mình nhe.
          Delay:
          Mov R7,#0FFH
          Kt1: Mov R6,#0FFH
          Kt2 Mov R5,#0FFH
          Kt3: Djnz R5,Kt3 ; Thời gian trễ vòng này = 2*255 = 510 MC
          Djnz R6,Kt2 ; Thời gian trễ vòng này = (510 + 2 + 1) * 255 = 130815 MC | Số 2 cho lệnh Djzn R6, Kt21 cho lệnh Kt2 Mov R5,#0FFH
          Djnz R7,Kt1 ; Thời gian trễ vòng này = (130815 + 2 + 1) * 255 = 33358590 MC | Tương tự như bên trên.

          Còn ở dòng: 33358590 + 1 + 1 = 33358592 thì 1MC cho lệnh RET1 MC cho lệnh Mov R7,#0FFH (đây là các lệnh ở ngoài vòng lặp chính - còn vòng lặp chính được thực hiện bởi các lệnh DJNZ)

          Nếu bạn muốn viết những câu lệnh do một thời gian trễ định trước thì có thể tính được. Còn nếu cho một đoạn lệnh trước và tính thời gian trễ của đoạn lệnh (như đề bài trên của bạn) thì đành phải lần theo từng dòng lệnh để tính thôi.

          Comment


          • #6
            Nguyên văn bởi Ck33spkt Xem bài viết
            Delay:
            Mov R7,#0FFH
            Kt1: Mov R6,#0FFH
            Kt2 Mov R5,#0FFH
            Kt3: Djnz R5,Kt3 ; Thời gian trễ vòng này = 2*255 = 510 MC
            Djnz R6,Kt2 ; Thời gian trễ vòng này = (510 + 2 + 1) * 255 = 130815 MC | Số 2 cho lệnh Djzn R6, Kt21 cho lệnh Kt2 Mov R5,#0FFH
            Djnz R7,Kt1 ; Thời gian trễ vòng này = (130815 + 2 + 1) * 255 = 33358590 MC | Tương tự như bên trên.

            Còn ở dòng: 33358590 + 1 + 1 = 33358592 thì 1MC cho lệnh RET1 MC cho lệnh Mov R7,#0FFH (đây là các lệnh ở ngoài vòng lặp chính - còn vòng lặp chính được thực hiện bởi các lệnh DJNZ)

            Nếu bạn muốn viết những câu lệnh do một thời gian trễ định trước thì có thể tính được. Còn nếu cho một đoạn lệnh trước và tính thời gian trễ của đoạn lệnh (như đề bài trên của bạn) thì đành phải lần theo từng dòng lệnh để tính thôi.
            Thanks!!!!
            P/S: Cho mình xin yahoo hoặc email đi.

            Comment


            • #7
              thank!!!cho minh xin fb di Ck33spkt va binhdao123

              Comment


              • #8
                Đề : cho tần số thạch anh 6Mhz , viết chương trình delay 192ms .
                => fmay = fxn/12 = 6/12=0.5
                1 chu kỳ máy thực hiện mất 0.5*10^-6 s
                tìm X chu kỳ máy để trễ 1 khoảng 192*10^-3 s
                ==> X = (192*10^-3 ) /(0.5*10^-6) = 384000 chu kỳ máy
                vậy phải viết hàm delay thường như thế nào để thực hiến 384000 chu kỳ máy (trễ 192ms )
                và nếu viết bằng time thì viết ntn để trễ 192ms . mong các bác chỉ giúp . ( nếu phía trên e tính sai thì mong các bác chỉ bảo thêm )
                Ph.vmr

                Comment


                • #9
                  Nguyên văn bởi phonghp91 Xem bài viết
                  Đề : cho tần số thạch anh 6Mhz , viết chương trình delay 192ms .
                  => fmay = fxn/12 = 6/12=0.5
                  1 chu kỳ máy thực hiện mất 0.5*10^-6 s
                  tìm X chu kỳ máy để trễ 1 khoảng 192*10^-3 s
                  ==> X = (192*10^-3 ) /(0.5*10^-6) = 384000 chu kỳ máy
                  vậy phải viết hàm delay thường như thế nào để thực hiến 384000 chu kỳ máy (trễ 192ms )
                  và nếu viết bằng time thì viết ntn để trễ 192ms . mong các bác chỉ giúp . ( nếu phía trên e tính sai thì mong các bác chỉ bảo thêm )
                  1 chu kì máy của 6Mhz là 2uS

                  Comment


                  • #10
                    úi chết mình nhầm đó là f chứ không phải T . vậy với Tmay=2us thì để trễ 192ms cần thực hiện 96000 chu ky máy đúng không b chung 1608 . nếu đúng thì chỉ mình cách viết hàm delay nhé . thankss
                    Ph.vmr

                    Comment


                    • #11
                      Nguyên văn bởi phonghp91 Xem bài viết
                      úi chết mình nhầm đó là f chứ không phải T . vậy với Tmay=2us thì để trễ 192ms cần thực hiện 96000 chu ky máy đúng không b chung 1608 . nếu đúng thì chỉ mình cách viết hàm delay nhé . thankss
                      Đây là đoạn code thực hiện delay 192ms với thạch anh 12MHz, bạn có thể tham khảo và phát triển thêm với thạch anh 6MHz của bạn:
                      Code:
                      ; START: Wait loop, time: 192 ms
                      ; Clock: 12000.0 kHz (12 / MC)
                      ; Used registers: R0, R1, R2, R3
                          MOV    R3, #002h
                          MOV    R2, #0BAh
                          MOV    R1, #004h
                          MOV    R0, #03Eh
                          NOP
                          DJNZ    R0, $
                          DJNZ    R1, $-5
                          DJNZ    R2, $-9
                          DJNZ    R3, $-13
                          MOV    R0, #0CEh
                          DJNZ    R0, $
                      ; Rest: 0
                      ; END: Wait loop

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      • 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 nay, 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 nay, 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 nay, 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...
                        Hôm qua, 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 ...
                        Hôm qua, 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...
                        Hôm qua, 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
                      • mèomướp
                        Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                        bởi mèomướp
                        Dạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
                        08-01-2025, 11:44
                      Đang tải...
                      X