Thông báo

Collapse
No announcement yet.

[ Cấp cứu ] Giúp code về hiển thị led 7 thanh qua 89C51 + 74HC595

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

  • #16
    thanks bạn...bạn sao khi mình mô phỏng thử á kìa...mình cho 1 cái là 100 thì led nó k hiên ra 00 mà hiên ra 80, 101 thì nó hiện ra 81 là sao ta @@
    Last edited by kubjn810; 21-02-2014, 17:07.

    Comment


    • #17
      [/COLOR][/COLOR]
      Nguyên văn bởi kubjn810 Xem bài viết
      thanks bạn...bạn sao khi mình mô phỏng thử á kìa...mình cho 1 cái là 100 thì led nó k hiên ra 00 mà hiên ra 80, 101 thì nó hiện ra 81 là sao ta @@
      Ý bạn là nạp 1 số bất kỳ, nhưng không được lớn hơn 100 : Bạn sửa lại đoạn chuyển đổi từ hex sang bcd như sau nhé
      HEXTOBCD1:
      MOV A,R1
      MOV B,#10
      ;===chia lan 1 de lay so don vi====
      DIV AB
      MOV DONVI1,B
      MOV B,#10
      ;===chia lan 2 de lay so hang chuc va hang tram===
      DIV AB
      MOV CHUC1,B
      ;===so sanh so hang tram====
      ;neu ton tai so hang tram tuc la so hang tram #0 thi nhay den nhan~ TRAR1VE0
      ;neu khong ton tai so hang tram tuc la so hang tram =0 thi thoat khoi ham con

      CJNE A,#0,TRAR1VE0
      JMP EXIT1
      ;======nap gia tri R1 =0======
      TRAR1VE0:
      MOV R1,#0
      ;sau khi nap R1 = 0 thi quay lai chuyen hex sang bcd de hien thi
      JMP HEXTOBCD1
      EXIT1:
      RET
      Hàm main :

      MAIN:
      MOV R1,#200
      MOV R2,#255
      LCALL HEXTOBCD1
      LCALL HEXTOBCD2
      LCALL GIAIMA1
      LCALL GIAIMA2
      LCALL DELAY_HIENTHI1
      LCALL DELAY_HIENTHI2
      JMP MAIN
      Last edited by tramng; 21-02-2014, 18:27.

      Comment


      • #18
        MAIN:
        MOV R3,#200
        MOV R4,#66
        LCALL HEXTOBCD1
        LCALL HEXTOBCD2
        LCALL GIAIMA1
        LCALL GIAIMA2
        LCALL DELAY_HIENTHI1
        LCALL DELAY_HIENTHI2
        JMP MAIN
        ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX
        ;CHUYEN KET QUA DEM TRONG THANH GHI TL0 SANG SO BCD
        ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX
        HEXTOBCD1:
        MOV A,R3
        MOV B,#10
        ;===chia lan 1 de lay so don vi====
        DIV AB
        MOV DONVI1,B
        MOV B,#10
        ;===chia lan 2 de lay so hang chuc va hang tram===
        DIV AB
        MOV CHUC1,B
        ;===so sanh so hang tram====
        ;neu ton tai so hang tram tuc la so hang tram #0 thi nhay den nhan~ TRAR1VE0
        ;neu khong ton tai so hang tram tuc la so hang tram =0 thi thoat khoi ham con
        CJNE A,#0,TRAR1VE0
        JMP EXIT1
        ;======nap gia tri R1 =0======
        TRAR1VE0:
        MOV R1,#00
        ;sau khi nap R1 = 0 thi quay lai chuyen hex sang bcd de hien thi
        JMP HEXTOBCD1
        EXIT1:
        RET

        HEXTOBCD2:
        MOV A,R4
        MOV B,#10
        ;===chia lan 1 de lay so don vi====
        DIV AB
        MOV DONVI2,B
        MOV B,#10
        ;===chia lan 2 de lay so hang chuc va hang tram===
        DIV AB
        MOV CHUC2,B
        ;===so sanh so hang tram====
        ;neu ton tai so hang tram tuc la so hang tram #0 thi nhay den nhan~ TRAR1VE0
        ;neu khong ton tai so hang tram tuc la so hang tram =0 thi thoat khoi ham con
        CJNE A,#0,TRAR1VE0_1
        JMP EXIT2
        ;======nap gia tri R1 =0======
        TRAR1VE0_1:
        MOV R1,#00
        ;sau khi nap R1 = 0 thi quay lai chuyen hex sang bcd de hien thi
        JMP HEXTOBCD2
        EXIT2:
        RET
        mình làm như bạn nói nhưng khi mô phỏng 1 trong 2 số mà trên 100 thì cả 2 nó đều trả về 88
        còn chỗ mà chia lần thứ 2 thì phải chuyển MOV CHUC2,A chứ bạn A mới là phần nguyên mà
        Last edited by kubjn810; 21-02-2014, 19:11.

        Comment


        • #19
          Bạn xem lại code mà bạn sửa nhé !

          Comment


          • #20
            thanks...mình biết sai chỗ nào rồi

            Comment


            • #21
              Nguyên văn bởi kubjn810 Xem bài viết
              còn chỗ mà chia lần thứ 2 thì phải chuyển MOV CHUC2,A chứ bạn A mới là phần nguyên mà
              Giả sử bạn nạp vô R2 = 230 thì :
              -khi chia lần 1 : A = 23 (phần nguyên), B = 0 (số dư) => lấy số 0 (số ở vị trí hàng đơn vị) nạp vào DONVI
              -khi chia lần 2 (tức là lấy giá trị đang có trong A = 23 để chia tiếp) : A = 2 (phần nguyên), B = 3 (số dư) => ta lấy số 3 (số ở vị trí hàng chục) nạp vo CHUC => MOV CHUC2,B và A là số hàng trăm.

              Comment

              Về tác giả

              Collapse

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

              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
              • nick22
                Trả lời cho Máy điện châm ?
                bởi nick22
                Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
                01-12-2025, 13:23
              Đang tải...
              X