Thông báo

Collapse
No announcement yet.

Dịch code asm sang c, mạch hẹn giờ.

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

  • Dịch code asm sang c, mạch hẹn giờ.

    Chào cả nhà ạ.
    Em nhờ mọi người dịch giúp em đoạn code asm này sang c ạ. Vì em k biết chút nào về asm và cũng k rành về C và 8051 nhưng em có thể mò mò và sử dụng tạm thời được.
    Code:
    Code:
    ;PHAN KHAI BAO BIEN NGO VAO
    TANG        BIT     P3.2
    GIAM        BIT    P3.3
    START        BIT    P3.4
    ;PHAN KHAI BAO BIEN NGO RA
    DATA_LED1     EQU    P2
    DATA_LED2    EQU    P1
    DENBAO        BIT    P3.5
    ;PHAN KHAI BAO O NHO SU DUNG TRONG CHUONG TRINH
    SODEM        EQU    30H
    DEM_TG        EQU    31H
    TT_GIAM        BIT    7FH
    ORG    0000H
        LJMP SETUP
    ORG    000BH
        LJMP NGAT_TIMER_0    ;NGAT DE GIAM SO DEM
    ORG    0030H
    SETUP:
        SETB EA        ;CHO PHEP NGAT TOAN CUC
        SETB ET0    ;CHO PHEP NGAT TIMER0
        MOV TH0,#HIGH(-50000)
        MOV TL0,#LOW(-50000)
        SETB TR0
        SETB DENBAO    ;TAT DEN BAO HIEU
        MOV SODEM,#90
        MOV DEM_TG,#0
        CLR TT_GIAM    ;MAC DINH LA CHUA CHO GIAM
        MOV DPTR,#TB_LED
    MAIN:
        LCALL HIENTHI
        JB TANG,KTGIAM
        JNB TANG,$
        INC SODEM
        MOV A,SODEM
        CJNE A,#100,THOATTANG
        MOV SODEM,#99
    THOATTANG:
        JMP MAIN
    KTGIAM:
        JB GIAM,KTSTART
        JNB GIAM,$
        DEC SODEM
        MOV A,SODEM
        CJNE A,#-1,THOATGIAM
        MOV SODEM,#0
    THOATGIAM:
        JMP MAIN
    KTSTART:
        JB START,MAIN
        JNB START,$
        SETB TT_GIAM
        JMP MAIN
    NGAT_TIMER_0:
        CLR TR0
        MOV TH0,#HIGH(-50000)
        MOV TL0,#LOW(-50000)
        SETB TR0
        PUSH ACC
        INC DEM_TG
        MOV A,DEM_TG
        CJNE A,#200,THOATNGAT
        MOV DEM_TG,#0
        JNB TT_GIAM,THOATNGAT
        MOV A,SODEM
        CJNE A,#0,TIEPTUC
        CLR DENBAO
        JMP THOATNGAT
    TIEPTUC:
        DEC SODEM
    THOATNGAT:
        POP ACC
        RETI
    HIENTHI:
        MOV A,SODEM
        MOV B,#10
        DIV AB
        MOVC A,@A+DPTR
        MOV DATA_LED1,A
        MOV A,B
        MOVC A,@A+DPTR
        MOV DATA_LED2,A
        RET
    TB_LED:
        DB 01000000B    ;0
        DB 01111001B    ;1
        DB 00100100B    ;2
        DB 00110000B    ;3
        DB 00011001B    ;4
        DB 00010010B    ;5
        DB 00000010B    ;6
        DB 01011000B    ;7
        DB 00000000B    ;8
        DB 00010000B    ;9
    END
    Code này em tìm được là dùng 89c51 để hẹn giờ. Nguyên lý hoạt động của mạch là khi có nhấn nút ở nút nhấn p3.3 thì bộ đếm ở led tăng lên 1 ,nhấn nút giảm ở chân p3.4 thì bộ đếm giảm 1.khi nhấn nút Start ở p3.2 thì bộ đếm bắt đầu đếm ngược cho đến khi = 0 thì đưa ra tín hiệu ở chân p3.5 làm led sáng
    Sơ đồ mạch ạ.
    Click image for larger version

Name:	MACHHENGIO.jpg
Views:	1
Size:	55.9 KB
ID:	1421315

    Mong mọi người giúp em dịch nó sang C và giải thích em chỗ thời gian của code trên ạ.
    Em cảm ơn mọi người nhiều.

  • #2
    Mọi người giúp em với ạ.

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    Đang tải...
    X