Thông báo

Collapse
No announcement yet.

cần giúp sữa lỗi cho mạch quét led này

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

  • cần giúp sữa lỗi cho mạch quét led này

    mọi người xem giùm mình xem code này nó sai ở đoạn nào với nha, mình làm mà nó cứ chớp tắt như dưới hoài



    đây là code nè
    org 0000h
    main:
    mov r0,#00h

    main2:
    mov r2,#100
    loop0:
    mov r1,#250
    loop:
    mov a,r0
    mov b,#10
    div ab
    mov dptr,#bangled
    movc a,@a+dptr
    mov p2,a
    setb p3.7
    clr p3.6
    call delay
    mov a,b
    mov dptr,#bangled
    movc a,@a+dptr
    mov p2,a
    clr p3.7
    setb p3.6
    call delay
    djnz r1,$
    djnz r2,loop0

    inc r0
    mov a,r0
    cjne a,#100,main1
    sjmp main
    delay:
    mov tmod,#01h
    mov th0,#high(-5000)
    mov tl0,#low(-1000)
    setb tr0
    jnb tf0,$
    clr tf0
    clr tr0
    ret
    bangled:
    db 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H
    end

  • #2
    Nguyên văn bởi chick3nb0y9x Xem bài viết
    mọi người xem giùm mình xem code này nó sai ở đoạn nào với nha, mình làm mà nó cứ chớp tắt như dưới hoài



    đây là code nè
    code sửa lai:
    Code:
             org 0000h
        AJMP MAIN
    main:
    mov r0,#00h
    
    main2:
    mov r2,#1//tốc độ đếm
    loop0:
    mov r1,#100
    loop:
    mov a,r0
    mov b,#10
    div ab
    mov dptr,#bangled
    movc a,@a+dptr
    mov p2,a
    setb p3.7
    clr p3.6
    call delay
    mov p2,#0xff
    mov a,b
    mov dptr,#bangled
    movc a,@a+dptr
    mov p2,a
    clr p3.7
    setb p3.6
    call delay
      mov p2,#0xff
    djnz r1,loop
    djnz r2,loop0
    inc r0
    mov a,r0
    cjne a,#100,main2
    sjmp main
    delay:
    mov tmod,#01h
    mov th0,#high(-5000)
    mov tl0,#low(-1000)
    setb tr0
    jnb tf0,$
    clr tf0
    clr tr0
    ret
    bangled:
    db 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H
    end
    mô phỏng bằng proteus thì dùng led 7 đoạn dang thanh.
    Last edited by tdm; 30-04-2011, 16:37.
    |

    Comment


    • #3
      led 7 thanh dạng này mình chưa hiểu rõ nguyên lý nó lắm bạn à, mình chỉ mới bắt đầu nên muốn học từ cái đơn giản trước đã
      mà bạn ơi, bạn giải thích giùm mình tại sao ở code của bạn, tại sao r1 bạn gán 100 mà r2 bạn gán là 1, nếu là 1 thì nó có ý nghĩa gì đâu, vì bạn djnz thì nó chỉ giảm có 1 lần chứ mấy
      còn ở cái timer, đáng lẽ bạn phải để 2 giá trị high và low = 5000 hoặc 1000 chứ? để 2 giá trị như thế là sao hả bạn?

      Comment


      • #4
        r2 chứa số lần lặp r1 đó bạn , r2=1 là lặp 100 lần vậy led được quét 100 lần với số r0 rồi mới tăng r0 lên.Như vậy nếu bạn cho r2=2,3,4..n bạn sẽ có r1=n*100 n càng tăng thì led được quét càng lâu mà khi quét xong thì r0 mới được tăng vậy tốc độ đếm tỉ lệ thuận với n, do đó r2 được chỉnh càng lớn thì tốc độ đếm càng lâu.

        Comment


        • #5
          Nguyên văn bởi trimen Xem bài viết
          r2 chứa số lần lặp r1 đó bạn , r2=1 là lặp 100 lần vậy led được quét 100 lần với số r0 rồi mới tăng r0 lên.Như vậy nếu bạn cho r2=2,3,4..n bạn sẽ có r1=n*100 n càng tăng thì led được quét càng lâu mà khi quét xong thì r0 mới được tăng vậy tốc độ đếm tỉ lệ thuận với n, do đó r2 được chỉnh càng lớn thì tốc độ đếm càng lâu.
          ừ, thế còn cái delay là sao bạn, tại sao lại để 2 giá trị khác nhau như thế

          Comment


          • #6
            cái này mình đã gặp rồi, thằng bạn mình cũng bị mãi.
            khi làm mạch thật thì các led 7 thanh ko bị nhấp nháy như vậy. nhưng khi làm mô phỏng led 7 thanh đơn bị như vậy.
            giờ cậu nên mô phỏng bằng led 7 thanh loại nhiều led. như bạn "tdm " nói đó là được.
            mình thấy với loại led 7 thanh nhiều số như vậy, tiện đi dây ( các chân đã nối chung sẵn ) trông đẹp hơn nhiều

            Comment


            • #7
              Nguyên văn bởi chick3nb0y9x Xem bài viết
              ừ, thế còn cái delay là sao bạn, tại sao lại để 2 giá trị khác nhau như thế
              cái này mình hem rõ lắm nhưng theo mình nghĩ nên để 5000 hoặc 1000 hết cho dễ tính hơn.

              Comment


              • #8
                chào các bạn
                mình đag làm cái đồng hồ số dùng led 7 đoạn
                nhưng ko biết code bị lỗi j mà cái dèn giây nó nhảy số lung tung.
                các bạn xem giúp mình với

                đây là code
                Code:
                 ;CAC LENH GAN
                        GIAY_CHUC       EQU     P2.1
                        GIAY_DVI        EQU     P2.0
                        PHUT_CHUC       EQU     P2.3
                        PHUT_DVI        EQU     P2.2
                        GIO_CHUC        EQU     P2.5
                        GIO_DVI         EQU     P2.4
                        DOT             EQU     P2.6
                        DATA_LED        EQU     P0
                        GIO             EQU     30H
                        PHUT            EQU     31H
                        GIAY            EQU     32H
                        VI_TRI          EQU     33H     ;THU TU HIEN THI
                        DEM             EQU     34H
                        KIEM_TRA        EQU     35H     ;KIEM_TRA DINH CACH THUC LAM VIEC VOI CAC LED
                                                        ;KIEM_TRA=0 HOAT DONG O CHE DO BINH THUONG
                                                        ;KIEM_TRA=1 LAM VIEC VOI GIAY,DIEU CHINH TANG GIAM
                                                        ;KIEM_TRA=2 LAM VIEC VOI PHUT
                                                        ;KIEM_TRA=3 LAM VIEC VOI GIO
                        NN_GIO          EQU     36H
                        NN_PHUT         EQU     37H
                        NN_GIAY         EQU     38H
                ;---------------------------------
                ORG     0000H
                LJMP    START
                ;---------------------------------
                ORG     03H                   ;external interrupt 0
                        LJMP    DOC_NUT   
                RETI
                        
                ORG     0BH                   ;timer 0 interrupt
                        LJMP    NGAT_T0
                        ;=====================================
                ORG     30H
                ;=====================================
                KHOI_TAO:                     ;set up control registers
                     MOV   TCON,#01H
                     MOV   TMOD,#00000001B
                     MOV   PSW,#00H             
                     MOV   IE,#10000011B      ;CHO PHEP NGAT TIMER0, NGAT INT0
                RET
                ;-------------------------------------
                ;HAM MAIN
                ;-------------------------------------
                START:
                        ACALL   KHOI_TAO        ;KHOI TAO CAC THANH GHI
                        MOV     KIEM_TRA,#1
                        MOV     TH0,#0F2H
                        MOV     TL0,#0FAH
                        SETB    TR0
                        MOV     NN_GIAY,#1
                        MOV     NN_PHUT,#1
                        MOV     NN_GIO,#1
                        MOV     VI_TRI,#0
                        MOV     GIO,#0
                        MOV     PHUT,#0
                        MOV     GIAY,#0
                        MOV     DEM,#0
                        MOV     R3,#0
                LOOP:
                        CJNE    R6,#225,LAI
                        MOV     KIEM_TRA,#0
                 LAI:
                        JB     P3.0,S1          ;p3.0=0 tang thoi gian
                        JNB     P3.0,$          ;giu p3.0 khi nha nut moi thuc hien len tang
                        MOV     R6,#0
                        MOV     A,KIEM_TRA      
                        CJNE    A,#1,T1         ;kiem_tra =1 dang làm viec voi giay
                        INC     GIAY
                        MOV     A,GIAY
                        CJNE    A,#60,T1
                        MOV     GIAY,#0
                 T1:
                        MOV     A,KIEM_TRA
                        CJNE    A,#2,T2         ;kiem tra =2 dang lam viec voi phut
                        INC     PHUT
                        MOV     A,PHUT
                        CJNE    A,#60,T2
                        MOV     PHUT,#0
                 T2:
                        MOV     A,KIEM_TRA
                        CJNE    A,#3,S1         ;kiem tra=3 dang lam viec voi gio
                        INC     GIO
                        MOV     A,GIO
                        CJNE    A,#24,S1
                        MOV     GIO,#0
                 S1:
                ;------------------------------------
                        JB      P3.1,S2         ;p3.1 =0 giam thoi gian
                        JNB     P3.1,$
                        MOV     R6,#0
                        MOV     A,KIEM_TRA
                        CJNE    A,#1,G1
                        DEC     GIAY
                        MOV     A,GIAY
                        CJNE    A,#255,G1
                        MOV     GIAY,#59
                 G1:
                        MOV     A,KIEM_TRA
                        CJNE    A,#2,G2
                        DEC     PHUT
                        MOV     A,PHUT
                        CJNE    A,#255,G2
                        MOV     PHUT,#59
                 G2:
                        MOV     A,KIEM_TRA
                        CJNE    A,#3,S1
                        DEC     GIO
                        MOV     A,GIO
                        CJNE    A,#255,S2
                        MOV     GIO,#23
                 S2:
                        LJMP    LOOP
                RET
                ;-------------------------------------
                DOC_NUT:
                        MOV     R6,#0
                        MOV     R1,#0
                        MOV     R2,#0
                        MOV     R3,#0
                        INC     KIEM_TRA  
                        MOV     R5,KIEM_TRA  
                        CJNE    R5,#4,THOAT
                        MOV     KIEM_TRA,#0
                 THOAT:
                RETI
                ;-------------------------------------
                NGAT_T0:
                        CLR     TR0
                        MOV     TH0,#0F2H
                        MOV     TL0,#0FAH
                        SETB    TR0
                        ACALL   HT_GPG
                        ACALL   DC_GPG
                 EXIT:
                RETI
                ;-------------------------------------
                HT_GPG:
                        MOV     A,VI_TRI
                        CJNE    A,#0,VI_TRI_1
                        ACALL   HT_GIAY_DVI
                        LJMP    TANG_VI_TRI
                 VI_TRI_1:
                        CJNE    A,#1,VI_TRI_2
                        ACALL   HT_GIAY_CHUC
                        LJMP    TANG_VI_TRI
                 VI_TRI_2:
                        CJNE    A,#2,VI_TRI_3
                        ACALL   HT_PHUT_DVI
                        LJMP    TANG_VI_TRI
                 VI_TRI_3:
                        CJNE    A,#3,VI_TRI_4
                        ACALL   HT_PHUT_CHUC
                        LJMP    TANG_VI_TRI
                 VI_TRI_4:
                        CJNE    A,#4,VI_TRI_5
                        ACALL   HT_GIO_DVI
                        LJMP    TANG_VI_TRI
                 VI_TRI_5:
                        ACALL   HT_GIO_CHUC
                        MOV     VI_TRI,#0
                        RET     
                 TANG_VI_TRI:
                        INC     VI_TRI
                RET
                ;-------------------------------------
                HT_GIAY_DVI:
                        MOV     A,KIEM_TRA
                        CJNE    A,#1,SANG_GIAY
                        MOV     A,R3
                        CJNE    A,#20,HT_G
                        MOV     R3,#0
                        MOV     A,NN_GIAY
                        XRL     A,#1
                        MOV     NN_GIAY,A
                 HT_G:  
                        INC     R3
                        MOV     A,NN_GIAY
                        CJNE    A,#1,TAT_GIAY_DVI 
                 SANG_GIAY:
                        CLR     GIAY_DVI
                 TAT_GIAY_DVI:             
                        SETB    GIAY_CHUC
                        SETB    PHUT_DVI
                        SETB    PHUT_CHUC
                        SETB    GIO_DVI
                        SETB    GIO_CHUC
                        MOV     A,GIAY
                        LCALL   HT_DVI
                        
                RET
                ;-------------------------------------
                HT_GIAY_CHUC:
                        MOV     A,KIEM_TRA
                        CJNE    A,#1,HT_G_1
                        MOV     A,NN_GIAY
                        CJNE    A,#1,TAT_GIAY_CHUC
                HT_G_1:
                        CLR     GIAY_CHUC
                 TAT_GIAY_CHUC:
                        SETB    PHUT_DVI
                        SETB    PHUT_CHUC
                        SETB    GIO_DVI
                        SETB    GIO_CHUC
                        MOV     A,GIAY
                        ACALL   HT_CHUC
                RET
                ;-------------------------------------
                HT_PHUT_DVI:
                        MOV     A,KIEM_TRA
                        CJNE    A,#2,SANG_PHUT
                        MOV     A,R2
                        CJNE    A,#20,HT_P
                        MOV     R2,#0
                        MOV     A,NN_PHUT
                        XRL     A,#1
                        MOV     NN_PHUT,A
                 HT_P:  
                        INC     R2
                        MOV     A,NN_PHUT
                        CJNE    A,#1,TAT_PHUT_DVI 
                 SANG_PHUT:
                        CLR     PHUT_DVI
                 TAT_PHUT_DVI:             
                        SETB    GIAY_DVI
                        SETB    GIAY_CHUC
                        SETB    PHUT_CHUC
                        SETB    GIO_DVI
                        SETB    GIO_CHUC
                        MOV     A,PHUT
                        ACALL   HT_DVI
                RET
                ;-------------------------------------
                HT_PHUT_CHUC:
                        MOV     A,KIEM_TRA
                        CJNE    A,#2,HT_P_1
                        MOV     A,NN_PHUT
                        CJNE    A,#1,TAT_PHUT_CHUC
                 HT_P_1:
                        CLR     PHUT_CHUC
                 TAT_PHUT_CHUC:
                        SETB    GIAY_DVI
                        SETB    GIAY_CHUC
                        SETB    PHUT_DVI
                        SETB    GIO_DVI
                        SETB    GIO_CHUC
                        MOV     A,PHUT
                        ACALL   HT_CHUC
                RET
                ;-------------------------------------
                HT_GIO_DVI:
                        MOV     A,KIEM_TRA
                        CJNE    A,#3,SANG_GIO
                        MOV     A,R1
                        CJNE    A,#20,HT_H
                        MOV     R1,#0
                        MOV     A,NN_GIO
                        XRL     A,#1
                        MOV     NN_GIO,A
                 HT_H:  
                        INC     R1
                        MOV     A,NN_GIO
                        CJNE    A,#1,TAT_GIO_DVI 
                 SANG_GIO:
                        CLR     GIO_DVI
                 TAT_GIO_DVI:             
                        SETB    GIAY_DVI
                        SETB    GIAY_CHUC
                        SETB    PHUT_DVI
                        SETB    PHUT_CHUC
                        SETB    GIO_CHUC
                        MOV     A,GIO
                        ACALL   HT_DVI
                RET
                ;-------------------------------------
                HT_GIO_CHUC:
                        MOV     A,KIEM_TRA
                        CJNE    A,#3,HT_H_1
                        MOV     A,NN_GIO
                        CJNE    A,#1,TAT_GIO_CHUC
                 HT_H_1:
                        CLR     GIO_CHUC
                 TAT_GIO_CHUC:
                        SETB    GIAY_DVI
                        SETB    GIAY_CHUC 
                        SETB    PHUT_DVI
                        SETB    PHUT_CHUC
                        SETB    GIO_DVI
                        MOV     A,GIO
                        ACALL   HT_CHUC
                RET
                ;-------------------------------------
                DC_GPG:
                        MOV     A,DEM
                        CJNE    A,#0FFH,TANG_DEM        ;255
                        MOV     A,R0                    ;
                        CJNE    A,#45,TANG_DEM          ;45
                        MOV     DEM,#0                  ;=300
                        MOV     R0,#0
                        CPL     DOT
                        ACALL   DC_THOI_GIAN
                        LJMP    EXIT_DC_GPG
                 TANG_DEM: 
                        MOV     A,DEM
                        CJNE    A,#0FFH,TANG_2
                        INC     R0
                        INC     R6              ;R0 DEM TOI 45 LÀ DC 1 GIAY-> R6=45*5=225=5 GIAY
                        SJMP    EXIT_DC_GPG
                TANG_2:
                        INC     DEM
                 EXIT_DC_GPG:
                RET
                ;-------------------------------------
                DC_THOI_GIAN:
                        MOV     A,KIEM_TRA
                        CJNE    A,#0,EXIT_DC_THOI_GIAN
                        INC     GIAY
                        MOV     A,GIAY
                        CJNE    A,#60,EXIT_DC_THOI_GIAN
                        MOV     GIAY,#0
                        ;----------------
                        INC     PHUT
                        MOV     A,PHUT
                        CJNE    A,#60,EXIT_DC_THOI_GIAN
                        MOV     PHUT,#0
                        ;----------------
                        INC     GIO
                        MOV     A,GIO
                        CJNE    A,#24,EXIT_DC_THOI_GIAN
                        MOV     GIO,#0
                        ;----------------
                 EXIT_DC_THOI_GIAN:
                RET
                ;-------------------------------------
                HT_CHUC:
                        MOV     B,#10
                        DIV     AB
                        ACALL   DOI_MA_LED
                        ORL     A,#80H
                        MOV     DATA_LED,A
                RET
                ;-------------------------------------
                HT_DVI:
                        MOV     B,#10
                        DIV     AB
                        MOV     A,B
                        ACALL   DOI_MA_LED
                        MOV     DATA_LED,A
                RET
                
                ;-------------------------------------
                DOI_MA_LED:
                        INC     A
                        MOVC    A,@A+PC
                RET
                DB 01000000B,01111001B,00100100B,00110000B,00011001B,  00010010B,00000010B,01111000B,00000000B
                DB 00010000B
                ;-------------------------------------
                END

                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                Đang tải...
                X