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

Anonymní profil Jerry – Programujte.comAnonymní profil Jerry – Programujte.com

 

Příspěvky odeslané z IP adresy 2a00:1028:83be:235a:d597:...–

Jerry
Assembler › Assembler 8051
19. 5. 2017   #216123

#1 lucie
1/

hele a nechybí ti náhodou něco v tom nastavení - v inicializaci ?

a nebikáš náhodou tak moc rychle že to nevidíš ? ono totiž 16bit časovač přeteče docela rychle pokud máš třeba 24MHz krystal a pak to samozřejmě NEJDE vidět. Ono totiž při krystalu 24Mhz ten Timer přeteče 366x za sekundu a to asi těžko budeš vidět že ? Člověk zvládne rozeznat mah 16Hz. Co zkusit Osciloskop co je na výstupu ??? Potřebuješ osciloskop do 100MHz nebo logický analyzátor.

Jinak správné nastavení Timeru0 je takto - viz níže, musí se nastavit samoplnění aby když přeteče aby se zase nastavil na začátek a začal čítat odzačátku.

;TMOD-citac 0 v rezimu 16 bit citace vzestupne THL
;IE-povoleno celkove EA a jednotlive pro preteceni od TIM-0
;IP-nejvyssi priorita pro TIMER-0
MOV TCON,#00000000B ;ridici registr citace/casovace
MOV TMOD,#00000001B ;registr rezimu cit./cas.
MOV IE, #10000010B ;reg povoleni preruseni
MOV IP, #00000010B ;priorita pro preruseni
SETB ET0 ;povol TIMER0
SETB EA ;povol globalne INT
CLR TR0 ;zastav casovac 0
CLR TF0 ;clear bitu preruseni ot TIM-0

2/ zkusila si udělat program co jenom diodu rozsvíti a pak už jen JMP $ ? a pak program co jenom diodu zhasne ? a pak už jen JMP $ ? Jde o to, jestli ta adresa diody bit    p0.3 je správně že.

3/ zkusila si to udělat bez TIMERu ?  Cyklickým voláním CALL BlinkT_000 blikáš diodou pomocí pauzy. Takže

Cyklus:

CALL BlinkT_000

JMP Cyklus

************************************************************
; BLINK TERMINAL LED-diode SUBROUTINNE
;************************************************************
;
BlinkT_000:
MOV R1,#255D ;priprav pauzu a problikni
MOV R2,#045D ;diodu asi 45ms při 24MHz krystalu pro 51'
CLR P0.3
CALL WaitCycle_000
SETB P0.3
BlinkT_999:
RET
;************************************************************
; END OF BLINK TERMINAL LED-diode SUBROUTINN

;;
************************************************************
; WAIT CYCLE SUBROUTINNE
;************************************************************
;;
cekaci pauza pro blikani diody
WaitCycle_000:
MOV R6,A
MOV R1, wd_DATA_1
MOV R2, wd_DATA_2
WaitCycle_006:
MOV A, #0000H
ORL A, R1
ORL A, R2
CJNE A, #0000H, WaitCycle_008
JMP WaitCycle_999
WaitCycle_008:
MOV A, #0FFH
ADD A, R1
MOV R1, A
MOV A, #0FFH
ADDC A, R2
MOV R2, A
JMP WaitCycle_006
WaitCycle_999:
MOV A,R6
RET
;************************************************************
; END OF WAIT CYCLE
;************************************************************

Hele on ti pan učitel neřek co máte dělat ? A ty máš doma veškerý HW ? a to ti škola pučila ? Ono to neni levná záležitost že. To je zajímavý. Asi nějaká bohatá škola .... Kelnerovy Děti ne ? Já myslim, že to spíš bude nějakej Ftipálek :) kterej je současně pěknej trouba co si neumí přečíst manuál.

 

 

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