Vítejte v projektu do MIT Tón z klávesnice ©® © Buriánek František & Navrátil Petr 2007®
Nějaké tón zazní ☻ Aktivace sloupce čísel Blokové schéma
Modul klávesnice Schéma: P3.2 P3.4 P3.6 Ucc P3.7 P3.5 P3.3 P3.1 P3.0 C1 DE FG A HC2 !
Konektor Ucc P3.6 P3.4 P3.2 P3.0 P3.7 P3.5 P3.3 P3.1 Nezapojen PSL10 Sloupce: 1. sl. P3.1 2. sl. P3.0 3. sl. P3.2 Řádky: 1. ř. P3.4 2. ř. P3.5 3. ř. P3.6 (nezapojen) 4. ř. P3.7
Tabulka s výpočty pro jednotlivé tóny Tón Frekvence [Hz] Půlperioda Počet period C D E F G A H C
Výpis programu 1/7: ;*****************************15/6 tóny na klávesnici********************************************************************************************************* ZAC:MOV P3,# B;nastaveni 1. sloupce JB P3.4,ZF;test 1. řádku CALL TONC1;pokud 0 tak volá tón C1 ZF:JB P3.5,ZH;test 2. řádku CALL TONF;pokud 0 tak volá tón F ZH:JB P3.7,ZD;test 4. řádku CALL TONH;pokud 0 tak volá tón H ZD:MOV P3,# B;nastaveni 2. sloupce JB P3.4,ZG CALL TOND ZG:JB P3.5,ZC2 CALL TONG ZC2:JB P3.7,ZE CALL TONC2 ZE:MOV P3,# B;nastaveni 3. sloupce JB P3.4,ZA CALL TONE ZA:JB P3.5,ZAC CALL TONA JMP ZAC ; skáče na návěstí START => opakuje program TONC1:MOV R7,#26;ton C1, 50 půlperiod OP1:CALL PERC1;volá periodu tónu C1 DJNZ R7,OP1;50x zopakuje (50 půlperiod) RET;zacyklení
Výpis programu 2/7: TONF:MOV R6,#35;tón F OP2:CALL PERF DJNZ R6,OP2 RET TONH:MOV R5,#49;tón H OP3:CALL PERH DJNZ R5,OP3 RET TOND:MOV R4,#29;tón D OP4:CALL PERD DJNZ R4,OP4 RET TONG:MOV R3,#39;tón G OP5:CALL PERG DJNZ R3,OP5 RET TONC2:MOV R2,#52;tón C2 OP6:CALL PERC2 DJNZ R2,OP6 RET TONE:MOV R1,#33;tón E OP7:CALL PERE DJNZ R1,OP7 RET TONA:MOV R0,#44;tón A OP8:CALL PERA DJNZ R0,OP8 RET
Výpis programu 3/7: PERC1:SETB P1.7;perioda tónu C1 CALL CAC1;volá čas tónu C1 CLR P1.7;vyčistí 7. bit na portu P1 CALL CAC1;volá čas tónu C1 RET;zacyklení PERF:SETB P1.7;perioda tónu F CALL CAF CLR P1.7 CALL CAF RET PERH:SETB P1.7;perioda tónu H CALL CAH CLR P1.7 CALL CAH RET PERD:SETB P1.7;perioda tónu D CALL CAD CLR P1.7 CALL CAD RET PERG:SETB P1.7;perioda tónu G CALL CAG CLR P1.7 CALL CAG RET
Výpis programu 4/7: PERC2:SETB P1.7;perioda tónu C2 CALL CAC2 CLR P1.7 CALL CAC2 RET PERE:SETB P1.7;perioda tónu E CALL CAE CLR P1.7 CALL CAE RET PERA:SETB P1.7;perioda tónu A CALL CAA CLR P1.7 CALL CAA RET CAC1:MOV TMOD,# B;čas tónu C1, nastavení 1. modu č/č 0 MOV TL0,#99H;přednaplnění časovače MOV TH0,#0F8H;přednaplnění časovače CLR TF0;nulování bitu naplnění SETB TR0;spuštění č/č 0 PHP:JNB TF0,PHP;testování bitu naplnění CLR TR0;vypnutí časovače NOP;časové zpoždění 1μs RET;zacyklení
Výpis programu 5/7: CAF:MOV TMOD,# B;čas tónu F MOV TL0,#73H MOV TH0,#0FAH CLR TF0 SETB TR0 HPH:JNB TF0,HPH CLR TR0 RET CAH:MOV TMOD,# B;čas tónu H MOV TL0,#18H MOV TH0,#0FCH CLR TF0 SETB TR0 NTN:JNB TF0,NTN CLR TR0 NOP RET CAD:MOV TMOD,# B;čas tónu D MOV TL0,#67H MOV TH0,#0F9H CLR TF0 SETB TR0 TNT:JNB TF0,TNT CLR TR0 RET
Výpis programu 6/7: CAG:MOV TMOD,# B;čas tónu G MOV TL0,#11H MOV TH0,#0FBH CLR TF0 SETB TR0 KLM:JNB TF0,KLM CLR TR0 RET CAC2:MOV TMOD,# B;čas tónu C2 MOV TL0,#50H MOV TH0,#0FCH CLR TF0 SETB TR0 MLK:JNB TF0,MLK CLR TR0 NOP RET CAE:MOV TMOD,# B;čas tónu E MOV TL0,#21H MOV TH0,#0FAH CLR TF0 SETB TR0 NJN:JNB TF0,NJN CLR TR0 RET
Výpis programu 7/7: CAA:MOV TMOD,# B;čas tónu A MOV TL0,#9CH MOV TH0,#0FBH CLR TF0 SETB TR0 JNJ:JNB TF0,JNJ CLR TR0 NOP RET END;konec
Vývojový diagram Aktivace levého sloupce Aktivace prostředního sloupce Aktivace pravého sloupce END START TON C1 TON F TON H TON D TON G TON C2 TON A TON E P3.4=1 P3.5=1 P3.7=1 P3.4=1 P3.5=1 P3.4=1 P3.5=1 P3.7=
Zde už je hotový celý projekt:
Projekt MIT 2007 ® Děkujeme za pozornost!! ☻☺☻ © Buriánek František & Navrátil Petr