Thông báo

Collapse
No announcement yet.

Sửa code mạch đèn giao thông

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

  • Sửa code mạch đèn giao thông

    Em đang tìm hiểu làm mạch đèn giao thông dùng nút bấm để thay đổi thời gian. Khi chạy mô phỏng thì 7 led thanh của em nó đếm ngược về 00 sau đó nó lại chạy số 85 kiểu như không thoát khỏi vòng lặp ấy. Em không biết nó bị sai ở đâu. Các bác xem lại giúp em nhé! THANK
    Code chương trình
    ORG 00H
    JMP MAIN
    ;--------------------------------------------------
    ORG 0BH
    INC R0
    CJNE R0, #40, END_
    MOV R0, #0
    INC R1
    CJNE R1,#100, END_
    MOV R1, #0
    DEC R2
    DEC R3
    CJNE R2, #0, END_
    MOV R2, #0
    CJNE R3, #0, END_
    MOV R3, #0
    END_:
    RETI
    ;------------Chuong trinh dieu khien led------------
    CT1: ; DO 1 - XANH 2
    SETB P1.4
    SETB P1.7
    CALL DELAY
    MOV R2, #5
    MOV R3, #10
    CALL MAINLOOP
    RET
    CT2: ; DO 1 - VANG 2
    CLR P1.7
    CALL DELAY
    SETB P1.5
    SETB P3.7
    MOV R2,#5
    MOV R3,#5
    CALL MAINLOOP
    RET
    CT3: ; XANH 1 - DO 2
    CLR P1.4
    CLR P3.7
    CALL DELAY
    SETB P1.6
    SETB P3.6
    MOV R2, #99
    MOV R3, #94
    CALL MAINLOOP
    RET
    CT4: ; VANG 1 - DO 2
    CLR P1.6
    CALL DELAY
    SETB P3.6
    SETB P1.5
    MOV R2,#5
    MOV R3,#5
    CALL MAINLOOP
    RET
    ;--------------------------------------
    MAIN:
    MOVP1, #00H
    MOV P3, #3FH
    MOV P2, #00H
    MOV P0, #00H
    MOV TMOD, #02H
    MOV TH0,#6
    MOV IE, #87H
    SETB TR0
    CALL CT1
    CALL CT2
    CALL CT3
    CALL CT4
    JMP MAIN
    ;---------------------------
    MAINLOOP:
    MOV A, R2
    MOV B, #10
    DIV AB
    MOV DPTR, #LEDCODE
    MOVC A, @A+DPTR
    MOV P2, A
    SETB P1.2
    CALL DELAY
    CLR P1.2
    MOV A, B
    MOVC A, @A+DPTR
    MOV P2, A
    SETB P1.3
    CALL DELAY
    CLR P1.3
    MOV A, R3
    MOV B, #10
    DIV AB
    MOV DPTR, #LEDCODE
    MOVC A, @A+DPTR
    MOV P0, A
    SETB P1.0
    CALL DELAY
    CLR P1.0
    MOV A, B
    MOVC A, @A+DPTR
    MOV P0, A
    SETB P1.1
    CALL DELAY
    CLR P1.1
    JMP MAINLOOP
    ;------------------------------
    LEDCODE: DB 40H, 79H, 24H, 30H, 19H, 12H, 02H, 78H, 00H, 10H
    ;------------------------------
    DELAY:
    MOV R4, #2
    DELAY1:
    DJNZ R4, DELAY1
    RET
    END
    Hình ảnh mô phỏng

  • #2
    Nguyên văn bởi langtu113 Xem bài viết
    Em đang tìm hiểu làm mạch đèn giao thông dùng nút bấm để thay đổi thời gian. Khi chạy mô phỏng thì 7 led thanh của em nó đếm ngược về 00 sau đó nó lại chạy số 85 kiểu như không thoát khỏi vòng lặp ấy. Em không biết nó bị sai ở đâu. Các bác xem lại giúp em nhé! THANK
    Code chương trình


    Hình ảnh mô phỏng
    thử lại xem sao:
    Code:
    		ORG 00H
    JMP MAIN
    ;--------------------------------------------------
    ORG 0BH
    INC R0
    CJNE R0, #40, END_
    MOV R0, #0
    INC R1
    CJNE R1,#100, END_
    MOV R1, #0
    
    CJNE R2, #0, END_1
    CJNE R3, #0, END_2
    JMP END_
    END_1:
    DEC R2
    CJNE R3, #0, END_2
    JMP END_
    END_2:
    DEC R3
    END_:
    RETI
    ;------------Chuong trinh dieu khien led------------
    CT1: ; DO 1 - XANH 2
    SETB P1.4
    SETB P1.7
    CALL DELAY
    MOV R2, #5
    MOV R3, #10
    CALL MAINLOOP
    RET
    CT2: ; DO 1 - VANG 2
    CLR P1.7
    CALL DELAY
    SETB P1.5
    SETB P3.7
    MOV R2,#5
    MOV R3,#5
    CALL MAINLOOP
    RET
    CT3: ; XANH 1 - DO 2
    CLR P1.4
    CLR P3.7
    CALL DELAY
    SETB P1.6
    SETB P3.6
    MOV R2, #99
    MOV R3, #94
    CALL MAINLOOP
    RET
    CT4: ; VANG 1 - DO 2
    CLR P1.6
    CALL DELAY
    SETB P3.6
    SETB P1.5
    MOV R2,#5
    MOV R3,#5
    CALL MAINLOOP
    RET
    ;--------------------------------------
    MAIN:
    MOV P1, #00H
    MOV P3, #3FH
    MOV P2, #00H
    MOV P0, #00H
    MOV TMOD, #02H
    MOV TH0,#6
    MOV IE, #87H
    SETB TR0
    CALL CT1
    CALL CT2
    CALL CT3
    CALL CT4
    JMP MAIN
    ;---------------------------
    MAINLOOP:
    MOV A, R2
    MOV B, #10
    DIV AB
    MOV DPTR, #LEDCODE
    MOVC A, @A+DPTR
    MOV P2, A
    SETB P1.2
    CALL DELAY
    CLR P1.2
    MOV A, B
    MOVC A, @A+DPTR
    MOV P2, A
    SETB P1.3
    CALL DELAY
    CLR P1.3
    MOV A, R3
    MOV B, #10
    DIV AB
    MOV DPTR, #LEDCODE
    MOVC A, @A+DPTR
    MOV P0, A
    SETB P1.0
    CALL DELAY
    CLR P1.0
    MOV A, B
    MOVC A, @A+DPTR
    MOV P0, A
    SETB P1.1
    CALL DELAY
    CLR P1.1
    CJNE R2,#0,THOAT
    CJNE R3,#0,THOAT
    JMP HET
    THOAT:
    JMP MAINLOOP
    HET:RET
    ;------------------------------
    LEDCODE: DB 40H, 79H, 24H, 30H, 19H, 12H, 02H, 78H, 00H, 10H
    ;------------------------------
    DELAY:
    MOV R4, #2
    DELAY1:
    DJNZ R4, DELAY1
    RET
    END
    |

    Comment


    • #3
      Mình ko rành về asm có ai có code C không? cho mình tham khảo với!

      Comment


      • #4
        Mình mới làm xong. chạy ổn. Nhưng là C, ASM thì không biết mấy.

        Comment


        • #5
          Nguyên văn bởi caonhan_2004 Xem bài viết
          Mình mới làm xong. chạy ổn. Nhưng là C, ASM thì không biết mấy.
          bạn có thể chia sẻ cho mình tham khảo với đc ko?

          Comment


          • #6
            Nguyên văn bởi lee_nguyen Xem bài viết
            bạn có thể chia sẻ cho mình tham khảo với đc ko?
            ok.

            BaiTapLonVXl-Nhom4.zip

            Comment


            • #7
              Nguyên văn bởi caonhan_2004 Xem bài viết
              Mạch của bạn không chỉnh thời gian bằng phần cứng được đúng không? mình đang tìm hiểu cách cài đặt số giây bằng phím bấm ngoài. Dù sao cũng cám ơn bạn!

              Comment


              • #8
                Nguyên văn bởi lee_nguyen Xem bài viết
                Mạch của bạn không chỉnh thời gian bằng phần cứng được đúng không? mình đang tìm hiểu cách cài đặt số giây bằng phím bấm ngoài. Dù sao cũng cám ơn bạn!
                Đèn giao thông thì thường có vài chế độ. muốn thêm chế độ thì viết thêm chương trình thui mà bạn. Mình làm thế vì bài chỉ yêu cầu thế.

                Comment


                • #9
                  Nguyên văn bởi chjpchjp1991
                  Ý bạn muốn thay đổi thời gian bằng nút bấm trên mạch cứng...mà không cần nạp lại chương trình đúng không?
                  yêu cầu thay đổi là của bạn lee_nguyen mà. còn nội dung bài tập của mình chỉ yêu cầu làm một chế độ nên , chương trình và phần cứng chỉ có vậy.

                  Comment


                  • #10
                    bác có chương trình giao tiếp phím hex của con 16f877a không cho em xin. em đang làm bài tập về con này....cảm ơn bác nhiều ạ. em đang rất cần

                    Comment

                    Về tác giả

                    Collapse

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

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

                    Collapse

                    • Andrea14
                      Vấn đề về tốc độ quay
                      bởi Andrea14
                      Chào mọi người,

                      Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
                      Hôm qua, 12:42
                    • 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