Thông báo

Collapse
No announcement yet.

tạo chương trình trễ 1 giây cho 89c51

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

  • #16
    Cái này có được không nhỉ delay1s: MOV R2,#14H KKK: MOV R1,#FAH KK: MOV R0,#OC8H K: DJNZ R0,K DJNZ R1,KK DJNZ R2,KKK RET
    No __ Comment

    Comment


    • #17
      delay1s: MOV R2,#14H KKK: MOV R1,#FAH KK: MOV R0,#OC8H K: DJNZ R0,K DJNZ R1,KK DJNZ R2,KKK RET . Mà tiệ thể cho mình hoi xuống dòng kiểu gì vậy
      No __ Comment

      Comment


      • #18
        Nguyên văn bởi trahanam000 Xem bài viết
        delay1s: MOV R2,#14H KKK: MOV R1,#FAH KK: MOV R0,#OC8H K: DJNZ R0,K DJNZ R1,KK DJNZ R2,KKK RET . Mà tiệ thể cho mình hoi xuống dòng kiểu gì vậy
        delay1s:
        MOV R2,#14H
        KKK: MOV R1,#FAH
        KK: MOV R0,#OC8H
        K: DJNZ R0,K
        DJNZ R1,KK
        DJNZ R2,KKK
        RET
        - Mạch nạp vdk 8051, AVR, PIC, EEPROM
        - Linh kiện điện tử cho sinh viên


        Comment


        • #19
          Nguyên văn bởi namkoi312 Xem bài viết
          MÌNH CÓ ĐOẠN CODE NÀY, SAO NÓ KHÔNG CHẠY VẬY?
          ORG 0000H
          MAIN:
          CALL CT1

          JMP MAIN
          CT1:
          SETB P0.0
          CALL delay_s
          CLR P0.0

          delay_s:
          push 7
          push 6
          push 5
          push 4
          mov r4,num_s
          mov r5,#20
          mov r6,#200
          mov r7,#249
          djnz r7,$ ;2*249=498
          djnz r6,$-4 ;(498+2)*200=100000
          djnz r5,$-8 ;(100000+2)*20=2000000
          djnz r4,$-12 ;2000000*num_s = clk_delay
          pop 4 ;
          pop 5 ;T_dl= clk_delay*chu_ki_may=clk_delay*1/(24000000/12)
          pop 6 ; =clk_delay*1/2000000 ~= num_s(s)
          pop
          RET
          END

          chương trình của bạn chạy đó nhưng bạn biết với thạch anh 12Mhz thì chu kì máy là bao nhiêu ko?
          bạn ko có lệnh quay lại nên nó chạy phát hết luôn bạn chưa kip nhìn hehehe
          với PLC thì nó thực hiện quay vòng còn vđk thì ko có mà mình tự tạo nhảy cho nó ko thì gặp END là hết rồi

          Nguyên văn bởi trahanam000 Xem bài viết
          Cái này có được không nhỉ delay1s: MOV R2,#14H KKK: MOV R1,#FAH KK: MOV R0,#OC8H K: DJNZ R0,K DJNZ R1,KK DJNZ R2,KKK RET

          cái này có bạn viết cho rồi đó bạn
          mà lầm sau nhớ viết xuống hàng nhé như vậy đọc ko hiểu luôn


          Nguyên văn bởi trahanam000 Xem bài viết
          delay1s: MOV R2,#14H KKK: MOV R1,#FAH KK: MOV R0,#OC8H K: DJNZ R0,K DJNZ R1,KK DJNZ R2,KKK RET . Mà tiệ thể cho mình hoi xuống dòng kiểu gì vậy
          xuống dòng nhấn inter


          MOV NHÀ,ANH
          MOV NHÀ,EM
          ADD ANH,EM

          Comment


          • #20
            hic
            uh thanks bạn. cứ nhầm với face inter là nó lên luôn
            No __ Comment

            Comment


            • #21
              Nguyên văn bởi trahanam000 Xem bài viết
              hic
              uh thanks bạn. cứ nhầm với face inter là nó lên luôn


              hoá ra là cũng dân nghiện face


              MOV NHÀ,ANH
              MOV NHÀ,EM
              ADD ANH,EM

              Comment


              • #22
                mình thấy dùng delay==> đơn giản nhưng lại k chính xác.
                Timer vấn hơn cả ^^

                Comment


                • #23
                  có ai có mình có lệnh gắn chân trong 8952 không hè?
                  viết trong keil c nha mọi người cảm ơn nha
                  mới tập nên chưa biết nak

                  Comment


                  • #24
                    Nguyên văn bởi dangemailbox Xem bài viết
                    Nếu bạn dùng thạch anh 12Mhz có thể xử dụng chương trình con như sau:

                    void Delay_ms(unsigned int t) // t là thời gian Delay, tính bằng đơn vi ms
                    {
                    unsigned int x,y;
                    for(x=0;x<t;x++)
                    {
                    for(y=0;y<=120;y++);
                    }
                    }

                    Sau đó bạn có thể gọi như sau:
                    Delay_ms(1000); // Delay 1s
                    Bác nào giải thích hộ em từng câu lệnh reong cái chuơng trình tạo trễ 1s này với,
                    em cám ơn

                    Comment


                    • #25
                      Nguyên văn bởi thinhddt14 Xem bài viết
                      Bác nào giải thích hộ em từng câu lệnh reong cái chuơng trình tạo trễ 1s này với,
                      em cám ơn
                      void Delay_ms(unsigned int t) // Delay_ms: là tên chương trình con, khi gọi hàm delay_ms thì phải đưa vào một thông số t để thực hiện
                      {
                      unsigned int x,y; ' // Khai bao bien x, y kieu so nguyen interger gia tri tu 0 den 65535
                      for(x=0;x<t;x++) // vong lap for gia tri dau x=0, neu x < t thi tang x len 1, vong lap thuc hien t lan
                      {
                      for(y=0;y<=120;y++); // y= 0 y < 120 thi tang y len 1, vong lap for thuc hien 120 lan khoang 1ms voi thach anh 12 MHz
                      }
                      }
                      Thông thường theo kinh nghiệm lập trình với led đơn, 1 vòng lặp for chạy delay khoảng 10000 lần là ok với thạch anh 12MHz.
                      Mình vẫn còn là newbie, nếu có gì xin các " đại ca" chỉ giáo.

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X