logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

AT89S52 i wyświetlacze LED - nieprawidłowe znaki na wyświetlaczu, co poprawić?

Johny200 30 Gru 2007 17:48 1229 2
REKLAMA
  • #1 4641274
    Johny200
    Poziom 10  
    Posty: 6
    Ocena: 1
    Witam
    Zbudowałem sobie prosty układzik na AT89S52 i 4 (siedmiosegmentowe) wyświetlacze LED.

    Na Timerze 0

    Cytat:

    ORG 0

    PODZ EQU 60931
    ILZ EQU 4
    ILW EQU 4
    BUFOR EQU 30H

    MOV TMOD,#00000001B
    MOV TH0,#HIGH PODZ
    MOV TL0,#LOW PODZ

    CJNE R7,#ILZ,DALEJ
    MOV R7,#0
    SJMP DAL1

    DALEJ:
    INC R7
    DAL1:
    MOV A,R7
    MOV DPTR,#LED
    MOVC A,@A+DPTR
    MOV P0,A
    MOV A,R7
    ADD A,#BUFOR

    MOV R0,A
    MOV P2,@R0

    RETI


    ZNAK:

    ;DB 01000000B
    ;DB 01000000B
    ;DB 01000000B
    ;DB 01000000B

    DB 01110111B
    DB 00110000B
    DB 01110111B
    DB 01100000B

    LED:

    DB 00001110B
    DB 00001101B
    DB 00001011B
    DB 00000111B ; 4 ZNAK

    END



    Na Timerze 1

    Cytat:

    WEKTOR_T0 Equ 1BH
    PODZ EQU 60931
    ILZ EQU 4
    ILW EQU 4
    BUFOR EQU 30H

    ORG 0
    LJMP start

    ORG WEKTOR_T0
    LJMP PRZERWANIE

    start:
    mov TMOD,#00010010B
    mov TH1,#HIGH PODZ
    mov TL1,#LOW PODZ

    SETB TR1
    SETB ET1
    SETB EA

    Petla:
    MOV R7, #0
    MOV BUFOR,#01110111B
    MOV BUFOR+1,#00010000B
    MOV BUFOR+2,#01010000B
    MOV BUFOR+3,#01001111B
    SJMP $


    ;*****************************************************

    PRZERWANIE:
    MOV TH1,#HIGH PODZ
    MOV TL1,#LOW PODZ

    CJNE R7,#ILZ,DALEJ
    MOV R7,#0
    SJMP DAL1

    DALEJ:
    INC R7
    DAL1:
    MOV A,R7
    MOV DPTR,#LED
    MOVC A,@A+DPTR
    MOV P0,A
    MOV A,R7
    ADD A,#BUFOR

    MOV R0,A
    MOV P2,@R0

    RETI
    ;*****************************************************

    ZNAK:

    DB 01110111B
    DB 01110000B
    DB 01110111B
    DB 01100100B

    LED:

    DB 00001110B
    DB 00001101B
    DB 00001011B
    DB 00000111B ; 4 ZNAK
    END


    Prosiłbym o pomoc co jest w programie źle, że pokazuje mi się jakieś śmieci na wyświetlaczu LED znaczki które w tablicy znaków w ogóle nie są zdefiniowane ?

    Dziękuje za odpowiedź.
  • REKLAMA
  • #2 4641861
    tprzemko
    Poziom 22  
    Posty: 413
    Pomógł: 54
    Ocena: 21
    Witam
    W miejscu gdzie powinieneś pobrac znak do wyświetlenia pobierasz znak z tablicy led zamiast znak.
    Pozdrawiam
  • #3 4641924
    Johny200
    Poziom 10  
    Posty: 6
    Ocena: 1
    Ok już działa, dzięki :) okazuje się, że nie potrzebnie zdefiniowane jest LED:
REKLAMA