Zdravim, mam tady prográmek a potřeboval bych ho zkontrolovat... jestli dělá, co by dělat měl:)
MIN EQU 65535-1000+1 ;1kHz
MAX EQU 65535-500+1 ;2kHz
POCETC EQU 10 ;urcuje kolikrat se opakuje jeden kmitocet
DSEG AT 30H
CYKLY: DS 1 ;urcuje kolikrat zbyva do zmeny kmitoctu
CL0: DS 1 ;hodnoty pro nastaveni
CH0: DS 1 ;TL0 a TH0
BSEG
;Rezim = 0 - snizovani kmitoctu, Rezim = 1 - zvysovani kmitoctu
REZIM: DBIT 1
CSEG
ORG 0 ;Reset
AJMP RESET
ORG 000BH ;obsluha casovace 0
AJMP CASOVAC0
;inicializace systému
RESET: SETB REZIM
MOV CYKLY,#PocetC ;pocet cyklu
MOV CH0,#high MIN ;hodnoty pro casovac
MOV CL0,#low MIN
MOV TH0,#high MIN ;prvni nastaveni casovace 0
MOV TL0,#low MIN
MOV TMOD,#00000001B ;volba rezimu casovace
SETB TR0 ;spusti casovac
SETB EA
SETB ET0 ;povoli preruseni od casovace 0
SJMP $
;obsluha preteceni casovace 0
CASOVAC0: PUSH ACC
MOV A,CYKLY ;kdyz cykl neni nulovy tak jen nahraj
JNZ NAHRAJ
MOV CYKLY,#POCETC ;cykl = 0 -> zmena kmitoctu
TEST: JNB REZIM,SNIZUJ
;rezim = 1 -> zvysovani kmitoctu
ZVYSUJ: MOV A,#HIGH MAX ;test, zda CH0, CL0 dosahli maxima
XRL A,CH0
JNZ ZVYS
MOV A,#LOW MAX
XRL A,CL0
JZ PREPNI
ZVYS: MOV A,CL0 ;zvyseni CH0, CL0 o 1
ADD A,#1
MOV CL0,A
MOV A,CH0
ADDC A,#0
MOV CH0,A
SJMP NEGUJ ;prepise do casovace a konec
;rezim = 1 ->snizovani kmitoctu
SNIZUJ: MOV A,#HIGH MIN ;test, zda zda CH0, CL0 dosahli minima
XRL A,CH0
JNZ SNIZ
MOV A,#LOW MIN
XRL A,CL0
JZ PREPNI
SNIZ: CLR C ;snizeni CH0, CL0 o 1
SUBB A,#1
ADD A,#1
MOV CL0,A
MOV A,CH0
SUBB A,#0
MOV CH0,A
SJMP NEGUJ ;prepise do casovace a konec
;meni rezim pri dosazeni minima nebo maxima
PREPNI: CPL REZIM
SJMP TEST ;nastavi novy kmitocet
NAHRAJ: DEC CYKLY ;snizi pocitadlo cyklu
NEGUJ: CPL P3.0 ;neguje
MOV TH0,CH0
MOV TL0,CL0 ;nastavi casovac 0
POP ACC
RETI ;navrat z preruseni
END
A tady je zadání úlohy:
a) Navrhněte obvodové řešení umožňující připojit na vývod P1.0 reproduktorek.
b) Nakreslete vývojový diagram a napište program (včetně komentáře), který bude vytvářet proměnný tón o kmitočtu měnícím se přibližně od 1 kHz do 2 kHz a zpět.
Omlouvám se za formátování, snad se v tom vyznáte
Fórum › Assembler
8051 připojení reproduktoru
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 105 hostů
Podobná vlákna
8051 program — založil 01tom
Infraport s 8051 — založil off01
8051 s IrDA — založil off01
Assembler 8051 — založil lucie
Assembler > Intel 8051 — založil R_T