8051 generování melodie – Assembler – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

8051 generování melodie – Assembler – Fórum – Programujte.com8051 generování melodie – Assembler – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Johnny
~ Anonymní uživatel
23 příspěvků
24. 3. 2013   #1
-
0
-

Dobrý den

Chtěl bych pomoct s generováním melodie. Program mám už napsaný ale chtěl bych si zjednodušit a vylepšit hraní daného tonů. V každé tabulce mám danou melodii, ale je to podle mě zbytečně dlouhý zápis. Chtěl bych to realizovat tak že bych měl např. Tabulku melody1: 8,2 atd.. kde 8 byl by např tón A a 2 by znamenala hraj 0,5s.Nevím jak to realizovat, tak kdyby byl někdo hodný a ukázal by mi to děkuju.

ukázka programu:

KL EQU P0
REP EQU P1
ORG 0
JMP HL_PR
ORG 0BH
MOV TH0, R6
MOV TL0, R7
CPL P1.0
RETI
HL_PR:  MOV TMOD, #1
MOV TH0, #HIGH(-1047)
MOV TL0, #LOW(-1047)
SETB EA
SETB TR0
SETB ET0
ZNOVU1: CALL KLAV
CJNE A,#12,DAL
MOV R6,#0ffh
MOV R7,#0efh
JMP ZNOVU1
DAL: CJNE A,#1, ZNOVU2
MOV DPTR, #SONG1
MOV R1, #(SONG2-SONG1)
CALL RESTART
JMP ZNOVU1
ZNOVU2:  CALL KLAV
CJNE A,#2, ZNOVU3
MOV DPTR, #SONG2
MOV R1, #(SONG3-SONG2)
CALL RESTART
JMP ZNOVU1
ZNOVU3:  CALL KLAV
CJNE A,#3, ZNOVU1
MOV DPTR, #SONG3
MOV R1, #(pocet-SONG3)
CALL RESTART
JMP ZNOVU1
RESTART:MOV R2,#0
DALSI:  MOV A,R2
MOVC A,@A+DPTR
MOV R6,A
INC R2
MOV A,R2
MOVC A,@A+DPTR
MOV R7,A
INC R2
MOV R3,#250
ZPET2:  MOV R4,#100
ZPET1:  MOV R5,#1
DJNZ R5,$
DJNZ R4,ZPET1
DJNZ R3,ZPET2
MOV A, R1
CJNE A, 2, DALSI
RET
SONG1:  dw 0fe4dh ;TON_c
  dw 0fe4dh ;TON_c
  dw 0fe7ch ;TON_d
  dw 0fe7ch ;TON_d
  dw 0fea7h ;TON_e
  dw 0fedfh ;TON_g
  dw 0fedfh ;TON_g
  dw 0fe7ch ;TON_d
  dw 0fe7ch ;TON_d
   dw 0fea7h ;TON_e
  dw 0feffh ;TON_a
  dw 0feffh ;TON_a
  dw 0fe7ch ;TON_d
  dw 0fe7ch ;TON_d
  dw 0fea7h ;TON_e
  dw 0febch ;TON_f
  dw 0febch ;TON_f
  dw 0fea7h ;TON_e
  dw 0fea7h ;TON_e
  dw 0fe7ch ;TON_d
  dw 0ffefh ;mezera
  dw 0ffefh ;mezera
  dw 0fe4dh ;TON_c
  dw 0fe4dh ;TON_c
  dw 0fe7ch ;TON_d
  dw 0fe7ch ;TON_d
  dw 0fea7h ;TON_e
  dw 0fedfh ;TON_g
  dw 0fedfh ;TON_g
  dw 0fe7ch ;TON_d
  dw 0fe7ch ;TON_d
   dw 0fea7h ;TON_e
  dw 0feffh ;TON_a
  dw 0feffh ;TON_a
  dw 0fe7ch ;TON_d
  dw 0fe7ch ;TON_d
  dw 0fea7h ;TON_e
  dw 0febch ;TON_f
  dw 0febch ;TON_f
  dw 0fea7h ;TON_e
  dw 0fe7ch ;TON_d
dw 0ffefh ;mezera
  dw 0ffefh ;mezera
  dw 0fe4dh ;TON_c
  dw 0fe4dh ;TON_c
  dw 0fe7ch ;TON_d
  dw 0fe7ch ;TON_d
  dw 0fea7h ;TON_e
  dw 0fedfh ;TON_g
  dw 0fedfh ;TON_g
  dw 0fe7ch ;TON_d
  dw 0fe7ch ;TON_d
   dw 0fea7h ;TON_e
  dw 0feffh ;TON_a
  dw 0feffh ;TON_a
  dw 0fe7ch ;TON_d
  dw 0fe7ch ;TON_d
  dw 0fea7h ;TON_e
  dw 0febch ;TON_f
  dw 0febch ;TON_f
  dw 0fea7h ;TON_e
  dw 0fe7ch ;TON_d
SONG2: dw 0ff0eh ;TON_ais ;
dw 0fedfh ;TON_g
dw 0ff0eh ;TON_ais
dw 0fedfh ;TON_g
dw 0feffh ;TON_a
dw 0febch ;TON_f
dw 0feffh ;TON_a
dw 0febch ;TON_f
dw 0fedfh ;TON_g
dw 0fe7ch ;TON_d
dw 0fedfh ;TON_g
dw 0fe7ch ;TON_d
dw 0fedfh ;TON_g
dw 0fe7ch ;TON_d
dw 0ffefh ;mezera
dw 0ffefh ;mezera
dw 0ffefh ;mezera
dw 0ff0eh ;TON_ais
dw 0fedfh ;TON_g
dw 0ff0eh ;TON_ais
dw 0fedfh ;TON_g
dw 0feffh ;TON_a
dw 0febch ;TON_f
dw 0feffh ;TON_a
dw 0febch ;TON_f
dw 0fedfh ;TON_g
dw 0fe7ch ;TON_d
dw 0fedfh ;TON_g
dw 0fe7ch ;TON_d
dw 0fedfh ;TON_g
dw 0fe7ch ;TON_d
dw 0ffefh ;mezera
dw 0ffefh ;mezera
dw 0ffefh ;mezera
dw 0ff0eh ;TON_ais
dw 0ff0eh ;TON_ais
dw 0febch ;TON_f
dw 0febch ;TON_f
dw 0fe7ch ;TON_d
dw 0ffefh ;mezera
dw 0fe7ch ;TON_d
dw 0fe7ch ;TON_d
dw 0ffefh ;mezera
dw 0ffefh ;mezera
dw 0ff0eh ;TON_ais
dw 0ff0eh ;TON_ais
dw 0febch ;TON_f
dw 0febch ;TON_f
dw 0fe7ch ;TON_d
dw 0ffefh ;mezera
dw 0fe7ch ;TON_d
dw 0fe7ch ;TON_d
SONG3:  dw 0feceh ;TON_fis ;
dw 0fea7h ;TON_e
dw 0fea7h ;TON_e
dw 0ffefh ;mezera
dw 0fea7h ;TON_e
dw 0fea7h ;TON_e
dw 0fea7h ;TON_e
dw 0fea7h ;TON_e
dw 0fe93h ;TON_dis
dw 0fe93h ;TON_dis
dw 0ffefh ;mezera
dw 0fe67h ;TON_cis
dw 0ff0eh ;TON_ais
dw 0fef0h ;TON_gis
dw 0febch ;TON_f
dw 0ffefh ;mezera
dw 0fe67h ;TON_cis
dw 0fe67h ;TON_cis
dw 0ff0eh ;TON_ais
dw 0ff0eh ;TON_ais
dw 0ffefh ;mezera
dw 0feceh ;TON_fis
dw 0fea7h ;TON_e
dw 0fea7h ;TON_e
dw 0ffefh ;mezera
dw 0fea7h ;TON_e
dw 0fea7h ;TON_e
dw 0fea7h ;TON_e
dw 0fea7h ;TON_e
dw 0fe93h ;TON_dis
dw 0fe93h ;TON_dis
dw 0ffefh ;mezera
dw 0fe67h ;TON_cis
dw 0ff0eh ;TON_ais
dw 0fef0h ;TON_gis
dw 0febch ;TON_f
dw 0ffefh ;mezera
dw 0fe67h ;TON_cis
dw 0fe67h ;TON_cis
dw 0ff0eh ;TON_ais
dw 0ff0eh ;TON_ais
pocet:
KLAV:  MOV DPTR, #TABKL
MOV A, #01111111B
MOV R2, #0
ZPET:  MOV KL, A
JNB KL.0,STISK
INC R2
JNB KL.1,STISK
INC R2
JNB KL.2,STISK
INC R2
JNB KL.3,STISK
INC R2
RR A
CJNE R2,#12,ZPET
MOV A,#12
JMP KONEC
STISK:  MOV A, R2
MOVC A, @A+DPTR
KONEC:  RETI
TABKL:  DB 11,9,6,3,0,8,5,2,10,7,4,1
END

Nahlásit jako SPAM
IP: 178.77.208.–
Reklama
Reklama
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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 305 hostů

Podobná vlákna

8051 s IrDA — založil off01

Program pro 8051 — založil Wexter

 

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