Anonymní profil 01tom – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil 01tom – Programujte.comAnonymní profil 01tom – Programujte.com

 

Příspěvky odeslané z IP adresy 77.48.31.–

Assembler › Assembler 8051
10. 6. 2017   #216704

#93 MilanL
Vím vím odpovídala jsem takkdzy tka tam

lucie
Assembler › Assembler 8051
10. 6. 2017   #216701

mam tak trochu zmatek v tech kodec -,- tak ktery mam ppouzit

lucie
Assembler › Assembler 8051
10. 6. 2017   #216700

#89 MilanL
jo dobre :)

lucie
Assembler › Assembler 8051
8. 6. 2017   #216668

mno jasny ja vbychazim ztoho co jsme programovali :) zitra vyzjkousim :)

lucie
Assembler › Assembler 8051
8. 6. 2017   #216655

#72 MilanL
Nekdo mi to radil..

Jaka tabulka ??

lucie
Assembler › Assembler 8051
8. 6. 2017   #216653

Ale ja ten kod nedam do tohodle ne ?

KLAV    EQU    P2    ;port s klávesnicí
DISP    EQU    P0    ;port s displejem
MARK    EQU    6CH    ;ukazatel videoRAM
JED    EQU    35H    ;registr jednotek
DES    EQU    34H    ;registr desítek
STO    EQU    33H    ;registr stovek
TIS    EQU    32H    ;registr tisíců
DIS    EQU    31H    ;registr desítek tisíc

DAT    EQU    DISP.0    ;data pro displej
CLK    EQU    DISP.1    ;hodiny pro displej
BLANK    EQU    DISP.2    ;strobovací pulzy pro displej
STISK    BIT    6CH    ;byl zachycen stisk
IDENT    BIT    6EH    ;klávesa byla rozpoznána
POCET    EQU    36H
VSTUP    DATA    30H


;Nulování VIDEORAM

ZAC:    MOV JED,#0
    MOV DES,#0
    MOV STO,#0
    MOV TIS,#0
    MOV DIS,#0

    JMP HLAVNI1
start_pismeno: jmp hlavni1
        jmp start_cislo
start_cislo: jmp hlavni0
    jmp start_cislo


    
HLAVNI1:CALL TEST    ;test klávesnice
    JNB STISK,HLAVNI1;nebyl-li stisk, opakuj test
    CALL DEKOD_pismena    ;dekódování SCAN kódu
    JNB IDENT,HLAVNI1;kontrola
    ORL A,#10H    ;aktivizace znaku (v 5. bitu H)
    MOV DIS,A    ;znak na pozici desítek
    CALL DISPLEJ    ;zobrazení znaku
    CALL DELAY    ;podržení znaku na displeji
    CLR STISK

    JMP start_cislo
;------------------------------------------------------------pismeno-----------------

HLAVNI0:CALL TEST    ;test klávesnice
    JNB STISK,HLAVNI0;nebyl-li stisk, opakuj test
    CALL DEKOD    ;dekódování SCAN kódu
    JNB IDENT,HLAVNI0;kontrola
    ORL A,#10H    ;aktivizace znaku (v 5. bitu H)
    MOV DIS,A    ;znak na pozici desítek
    CALL DISPLEJ    ;zobrazení znaku
    CALL DELAY    ;podržení znaku na displeji
    CLR STISK


HLAVNI2:CALL TEST    ;test klávesnice
    JNB STISK,HLAVNI2;nebyl-li stisk, opakuj test
    CALL DEKOD    ;dekódování SCAN kódu
    JNB IDENT,HLAVNI2;kontrola
    ORL A,#10H    ;aktivizace znaku (v 5. bitu H)
    MOV TIS,A    ;znak na pozici stovek
    CALL DISPLEJ    ;zobrazení znaku
    CALL DELAY    ;podržení znaku na displeji
    CLR STISK

HLAVNI3:CALL TEST    ;test klávesnice
    JNB STISK,HLAVNI3;nebyl-li stisk, opakuj test
    CALL DEKOD    ;dekódování SCAN kódu
    JNB IDENT,HLAVNI3;kontrola
    ORL A,#10H    ;aktivizace znaku (v 5. bitu H)
    MOV STO,A    ;znak na pozici tisíc
    CALL DISPLEJ    ;zobrazení znaku
    CALL DELAY    ;podržení znaku na displeji
    CLR STISK


HLAVNI4:CALL TEST    ;test klávesnice
    JNB STISK,HLAVNI4;nebyl-li stisk, opakuj test
    CALL DEKOD    ;dekódování SCAN kódu
    JNB IDENT,HLAVNI4;kontrola
    ORL A,#10H    ;aktivizace znaku (v 5. bitu H)
    MOV DES,A    ;znak na pozici deset tisíc
    CALL DISPLEJ    ;zobrazení znaku
    CALL DELAY    ;podržení znaku na displeji
    CLR STISK

    
HLAVNI5:CALL TEST    ;test klávesnice
    JNB STISK,HLAVNI5;nebyl-li stisk, opakuj test
    CALL DEKOD    ;dekódování SCAN kódu
    JNB IDENT,HLAVNI5;kontrola
    ORL A,#10H    ;aktivizace znaku (v 5. bitu H)
    MOV JED,A    ;znak na pozici deset tisíc
    CALL DISPLEJ    ;zobrazení znaku
    CALL DELAY    ;podržení znaku na displeji
    CLR STISK
    JMP hlavni0
;----------------------cisla---------------
TEST:    MOV R7,#4    ;počet rotací
    MOV A,#0F7H    ;příprava testovacího slova (11110111)
KL2:    MOV KLAV,A    ;pro 1. sloupec
KL5:    CJNE A,KLAV,KL3    ;byl zachycen stisk, sejmi SCAN a konec
    DJNZ R7,KL1    ;byly otestovány všechny sloupce?
    CLR STISK    ;vynulování příznakového bitu - nebyl stisk
    JMP KL4        ;byly otestovány všechny sloupce - konec testu
KL1:    RR A        ;pochodující 0 na další sloupec
    JMP KL2        ;test dalšího sloupce
KL3:    MOV A,KLAV    ;sejmutí SCAN kódu
    SETB STISK    ;nastavení příznakového bitu - byl stisk
KL4:    RET
;-----------------------------------------kontrola----------------------------

DEKod_pismena: CJNE A,#0E7H,DEK13
    MOV A,#12    ;stisknuta A (displej U)
    JMP DEK_EN
DEK13:    CJNE A,#0D7H,DEK14
    MOV A,#13    ;stisknuta B (displej d)
    JMP DEK_END
DEK14:    CJNE A,#0B7H,DEK15
    MOV A,#14    ;stisknuta C (displej c)
    JMP DEK_EN
DEK15:    CJNE A,#77H,DEK_16
    MOV A,#15    ;stisknuta D (displej A)
    JMP DEK_EN
DEK_16:    CLR IDENT    ;chyby nalezeny, klávesnice neidentifikována
        JMP DEK_17
DEK_EN:SETB IDENT    ;klávesnice byly úspěšně identifikovány
DEK_17: RET
;--------------doked pismena-------------------------
DEKOD:    CJNE A,#7DH,DEK1
    MOV A,#0    ;stisknuta 0
    JMP DEK_END    ;konec analýzy
DEK1:    CJNE A,#0EEH,DEK2
    MOV A,#1    ;stisknuta 1
    JMP DEK_END
DEK2:    CJNE A,#0EDH,DEK3
    MOV A,#2    ;stisknuta 2
    JMP DEK_END
DEK3:    CJNE A,#0EBH,DEK4
    MOV A,#3    ;stisknuta 3
    JMP DEK_END
DEK4:    CJNE A,#0DEH,DEK5
    MOV A,#4    ;stisknuta 4
    JMP DEK_END
DEK5:    CJNE A,#0DDH,DEK6
    MOV A,#5    ;stisknuta 5
    JMP DEK_END
DEK6:    CJNE A,#0DBH,DEK7
    MOV A,#6    ;stisknuta 6
    JMP DEK_END
DEK7:    CJNE A,#0BEH,DEK8
    MOV A,#7    ;stisknuta 7
    JMP DEK_END
DEK8:    CJNE A,#0BDH,DEK9
    MOV A,#8    ;stisknuta 8
    JMP DEK_END
DEK9:    CJNE A,#0BBH,DEK_20
    MOV A,#9    ;stisknuta 9
    JMP DEK_END
DEK_20:    CLR IDENT    ;chyby nalezeny, klávesnice neidentifikována
        JMP DEK_21
DEK_END:SETB IDENT    ;klávesnice byly úspěšně identifikovány
DEK_21: RET
;------------dekod cisla---------------------------
DISPLEJ:CLR CLK        ;CLK
    SETB BLANK    ;zablokování anod
    MOV R6,#5    ;počet míst displeje

    MOV R0,#JED    ;ukazatel videopaměti
DIS4:    MOV A,@R0    ;číslo do ACC
    MOV R7,#5    ;počet rotací (posuvný registr displeje je 5bitový)
DIS1:    RRC A        ;rotace přes CARRY
    MOV DAT,C    ;bit na port
    SETB CLK    ;čele posunovacího pulzu
    CLR CLK        ;týl posunovacího pulzu
    DJNZ R7,DIS1    ;kontrola počtu rotací
    DJNZ R6,DIS2    ;kontrola počtu odeslaných znaků
    CLR BLANK    ;odblokování anod
    JMP DIS3
DIS2:    DEC R0        ;posuv ukazatele na další znak
    JMP DIS4
DIS3:    RET

;------------- Zpoždění -----------------------------

;Podprogram DELAY má zpoždění asi 65 ms (pro f = 12 MHz)

DELAY:    MOV R0,#255
DEL1:    MOV R1,#255
    DJNZ R1,$
    DJNZ R0,DEL1
    RET
        BACK:     MOV A,POCET


    END

lucie
Assembler › Assembler 8051
8. 6. 2017   #216652

#67 MilanL

To je jeste tezsi nez mi rikali nez pres nejake registrove banky :) ale zkusim to tam dat... musi  se tam jeste neco upracvit ?

lucie
Assembler › Assembler 8051
8. 6. 2017   #216638

#65 MilanL
:O vyzkousim:) alejak jste na to tak prisel ?

lucie
Assembler › Assembler 8051
7. 6. 2017   #216615

tak jinak :D

proste kdyz zmacknu a tak se ma zadat heslo 5 mistne (maji se uakzovat jen pomlcky ale to se doladi)

tak ze kdyz zapojim program zmacknu (treba) A a pak to to po mne bude chtit heslo (treba 58963) a pak to zablika za houka ( to houkani neresim) a pokud to heslo bude spatny nezablika to a jen dlouze za houka

tak že ja jednoduse potrebuji abych mohla dat heslo na A

lucie
Assembler › Assembler 8051
7. 6. 2017   #216612


#56 hlucheucho
my jsme se asi nepochopili.. protoze ja potrebuji dat prvni pismeno a pak abyto skocilo na cisla a tech musi byt 5 tak ze ne zeby ro zaCINALO A5897 treba ale aby se stiknulo A apak aby si napsalo toheslo

lucie
Assembler › Assembler 8051
7. 6. 2017   #216611

LAV    EQU    P2    ;port s klávesnicí
DISP    EQU    P0    ;port s displejem
MARK    EQU    6CH    ;ukazatel videoRAM
JED    EQU    35H    ;registr jednotek
DES    EQU    34H    ;registr desítek
STO    EQU    33H    ;registr stovek
TIS    EQU    32H    ;registr tisíců
DIS    EQU    31H    ;registr desítek tisíc
STD    EQU    30H
DAT    EQU    DISP.0    ;data pro displej
CLK    EQU    DISP.1    ;hodiny pro displej
BLANK    EQU    DISP.2    ;strobovací pulzy pro displej
STISK    BIT    6CH    ;byl zachycen stisk
IDENT    BIT    6EH    ;klávesa byla rozpoznána
POCET    EQU    36H
VSTUP    DATA    30H


;Nulování VIDEORAM

ZAC:    MOV JED,#0
    MOV DES,#0
    MOV STO,#0
    MOV TIS,#0
    MOV DIS,#0

    JMP HLAVNI
start_pismeno: call hlavni
        jmp start_cislo
start_cislo: call start
JMP_HLAVNI
HLAVNI:    CALL TEST    ;test klávesnice
    JNB STISK,HLAVNI;nebyl-li stisk, opakuj test
    CALL DEKOD_pismena    ;dekódování SCAN kódu
    JNB IDENT,HLAVNI;kontrola
    ORL A,#10H    ;aktivizace znaku (v 5. bitu H)
    MOV STD,A    ;znak na pozici jednotek
    CALL DISPLEJ    ;zobrazení znaku
    CALL DELAY    ;podržení znaku na displeji
    CLR STISK
    JMP HLAVNI1
    
HLAVNI1:CALL TEST    ;test klávesnice
    JNB STISK,HLAVNI1;nebyl-li stisk, opakuj test
    CALL DEKOD_pismena    ;dekódování SCAN kódu
    JNB IDENT,HLAVNI1;kontrola
    ORL A,#10H    ;aktivizace znaku (v 5. bitu H)
    MOV DIS,A    ;znak na pozici desítek
    CALL DISPLEJ    ;zobrazení znaku
    CALL DELAY    ;podržení znaku na displeji
    CLR STISK

    JMP start_cislo
;------------------------------------------------------------pismeno-----------------
start:    CALL TEST    ;test klávesnice
    JNB STISK,start;nebyl-li stisk, opakuj test
    CALL DEKOD    ;dekódování SCAN kódu
    JNB IDENT,start;kontrola
    ORL A,#10H    ;aktivizace znaku (v 5. bitu H)
    MOV STD,A    ;znak na pozici jednotek
    CALL DISPLEJ    ;zobrazení znaku
    CALL DELAY    ;podržení znaku na displeji
    CLR STISK
    JMP HLAVNI0

HLAVNI0:CALL TEST    ;test klávesnice
    JNB STISK,HLAVNI0;nebyl-li stisk, opakuj test
    CALL DEKOD    ;dekódování SCAN kódu
    JNB IDENT,HLAVNI0;kontrola
    ORL A,#10H    ;aktivizace znaku (v 5. bitu H)
    MOV DIS,A    ;znak na pozici desítek
    CALL DISPLEJ    ;zobrazení znaku
    CALL DELAY    ;podržení znaku na displeji
    CLR STISK
    JMP HLAVNI2

HLAVNI2:CALL TEST    ;test klávesnice
    JNB STISK,HLAVNI2;nebyl-li stisk, opakuj test
    CALL DEKOD    ;dekódování SCAN kódu
    JNB IDENT,HLAVNI2;kontrola
    ORL A,#10H    ;aktivizace znaku (v 5. bitu H)
    MOV TIS,A    ;znak na pozici stovek
    CALL DISPLEJ    ;zobrazení znaku
    CALL DELAY    ;podržení znaku na displeji
    CLR STISK
    JMP HLAVNI3

HLAVNI3:CALL TEST    ;test klávesnice
    JNB STISK,HLAVNI3;nebyl-li stisk, opakuj test
    CALL DEKOD    ;dekódování SCAN kódu
    JNB IDENT,HLAVNI3;kontrola
    ORL A,#10H    ;aktivizace znaku (v 5. bitu H)
    MOV STO,A    ;znak na pozici tisíc
    CALL DISPLEJ    ;zobrazení znaku
    CALL DELAY    ;podržení znaku na displeji
    CLR STISK
    JMP HLAVNI4

HLAVNI4:CALL TEST    ;test klávesnice
    JNB STISK,HLAVNI4;nebyl-li stisk, opakuj test
    CALL DEKOD    ;dekódování SCAN kódu
    JNB IDENT,HLAVNI4;kontrola
    ORL A,#10H    ;aktivizace znaku (v 5. bitu H)
    MOV DES,A    ;znak na pozici deset tisíc
    CALL DISPLEJ    ;zobrazení znaku
    CALL DELAY    ;podržení znaku na displeji
    CLR STISK
    JMP HLAVNI5
    
HLAVNI5:CALL TEST    ;test klávesnice
    JNB STISK,HLAVNI5;nebyl-li stisk, opakuj test
    CALL DEKOD    ;dekódování SCAN kódu
    JNB IDENT,HLAVNI5;kontrola
    ORL A,#10H    ;aktivizace znaku (v 5. bitu H)
    MOV JED,A    ;znak na pozici deset tisíc
    CALL DISPLEJ    ;zobrazení znaku
    CALL DELAY    ;podržení znaku na displeji
    CLR STISK
    JMP start
;----------------------cisla---------------
TEST:    MOV R7,#4    ;počet rotací
    MOV A,#0F7H    ;příprava testovacího slova (11110111)
KL2:    MOV KLAV,A    ;pro 1. sloupec
KL5:    CJNE A,KLAV,KL3    ;byl zachycen stisk, sejmi SCAN a konec
    DJNZ R7,KL1    ;byly otestovány všechny sloupce?
    CLR STISK    ;vynulování příznakového bitu - nebyl stisk
    JMP KL4        ;byly otestovány všechny sloupce - konec testu
KL1:    RR A        ;pochodující 0 na další sloupec
    JMP KL2        ;test dalšího sloupce
KL3:    MOV A,KLAV    ;sejmutí SCAN kódu
    SETB STISK    ;nastavení příznakového bitu - byl stisk
KL4:    RET
;-----------------------------------------kontrola----------------------------

DEKod_pismena: CJNE A,#0E7H,DEK13
    MOV A,#12    ;stisknuta A (displej U)
    JMP DEK_EN
DEK13:    CJNE A,#0D7H,DEK14
    MOV A,#13    ;stisknuta B (displej d)
    JMP DEK_END
DEK14:    CJNE A,#0B7H,DEK15
    MOV A,#14    ;stisknuta C (displej c)
    JMP DEK_EN
DEK15:    CJNE A,#77H,DEK_16
    MOV A,#15    ;stisknuta D (displej A)
    JMP DEK_EN
DEK_16:    CLR IDENT    ;chyby nalezeny, klávesnice neidentifikována
        JMP DEK_17
DEK_EN:SETB IDENT    ;klávesnice byly úspěšně identifikovány
DEK_17: RET
;--------------doked pismena-------------------------
DEKOD:    CJNE A,#7DH,DEK1
    MOV A,#0    ;stisknuta 0
    JMP DEK_END    ;konec analýzy
DEK1:    CJNE A,#0EEH,DEK2
    MOV A,#1    ;stisknuta 1
    JMP DEK_END
DEK2:    CJNE A,#0EDH,DEK3
    MOV A,#2    ;stisknuta 2
    JMP DEK_END
DEK3:    CJNE A,#0EBH,DEK4
    MOV A,#3    ;stisknuta 3
    JMP DEK_END
DEK4:    CJNE A,#0DEH,DEK5
    MOV A,#4    ;stisknuta 4
    JMP DEK_END
DEK5:    CJNE A,#0DDH,DEK6
    MOV A,#5    ;stisknuta 5
    JMP DEK_END
DEK6:    CJNE A,#0DBH,DEK7
    MOV A,#6    ;stisknuta 6
    JMP DEK_END
DEK7:    CJNE A,#0BEH,DEK8
    MOV A,#7    ;stisknuta 7
    JMP DEK_END
DEK8:    CJNE A,#0BDH,DEK9
    MOV A,#8    ;stisknuta 8
    JMP DEK_END
DEK9:    CJNE A,#0BBH,DEK_20
    MOV A,#9    ;stisknuta 9
    JMP DEK_END
DEK_20:    CLR IDENT    ;chyby nalezeny, klávesnice neidentifikována
        JMP DEK_21
DEK_END:SETB IDENT    ;klávesnice byly úspěšně identifikovány
DEK_21: RET
;------------dekod cisla---------------------------
DISPLEJ:CLR CLK        ;CLK
    SETB BLANK    ;zablokování anod
    MOV R6,#5    ;počet míst displeje

    MOV R0,#JED    ;ukazatel videopaměti
DIS4:    MOV A,@R0    ;číslo do ACC
    MOV R7,#5    ;počet rotací (posuvný registr displeje je 5bitový)
DIS1:    RRC A        ;rotace přes CARRY
    MOV DAT,C    ;bit na port
    SETB CLK    ;čele posunovacího pulzu
    CLR CLK        ;týl posunovacího pulzu
    DJNZ R7,DIS1    ;kontrola počtu rotací
    DJNZ R6,DIS2    ;kontrola počtu odeslaných znaků
    CLR BLANK    ;odblokování anod
    JMP DIS3
DIS2:    DEC R0        ;posuv ukazatele na další znak
    JMP DIS4
DIS3:    RET

;------------- Zpoždění -----------------------------

;Podprogram DELAY má zpoždění asi 65 ms (pro f = 12 MHz)

DELAY:    MOV R0,#255
DEL1:    MOV R1,#255
    DJNZ R1,$
    DJNZ R0,DEL1
    RET
        BACK:     MOV A,POCET


    END

ALE NWM KAm to zaradit

lucie
Assembler › Assembler 8051
7. 6. 2017   #216610

Mno pro mně je boj cele tohle :D

lucie
Assembler › Assembler 8051
7. 6. 2017   #216608

#54 hlucheucho
ok tak a ted to zkusit jen hodit nejak do programu-,- zase boj

lucie
Assembler › Assembler 8051
7. 6. 2017   #216605

tak ze i kdyz zmacknu jine tlacitko pujde to jo ?

lucie
Assembler › Assembler 8051
7. 6. 2017   #216603

#50 hlucheucho
dobre ale jak mam pak udelat kdyz nezmnacku treba prvni A ale treba prvni B??

lucie
Assembler › Assembler 8051
30. 5. 2017   #216474

#35 MilanL
to me taky napadlo :D ale asi jo protoze kdyz jsem to zkusila ve škole slo to ale doma ne...

01tom
Assembler › 8051 program
18. 4. 2017   #215667

My jsme žádné schéma nedostali.

01tom
Assembler › 8051 program
18. 4. 2017   #215665

Mám zadaný příklad, aby po pripojeni napajecich napeti blikala na displeji desetina tecka. Nevite nekdo jak to naprogramovat ? Máme to ted ve skole, a ja jsem na to nejak chybel, tak nevím co s tim.

Assembler › Programování intel 8051
15. 4. 2017   #215609

#4 Jerry
Mno ja jsem myslela s programem :D 

Zapomněla jsem, že jsem asi někde jinde na forum xD

Assembler › Programování intel 8051
15. 4. 2017   #215606

Já bych se to chtěla naučit ale bohužel nemám nikoho kdo by mi poradil s tím.

Assembler › Programování intel 8051
15. 4. 2017   #215604

Dobrý den ,

neuměl by tu někdo dobře programovat Intel 8051.Potřebovala bych poradit pár věcí.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý