Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // :::::::::::: Piano ELECTRóNICO ::::::::::::::::::::::::::::::::::
- // ::::::::: diseño y programación por Albert López. ::::::::::::::
- // ::::::::: http://utronic.blogspot.com/ :::::::::::::::::::::::::
- #include "C:\...\Piano electrónico\codigo fuente\piano electrónico.h" //Indicar ruta correcta para compilar
- #include <TONES.c> //incluímos la libreria para generar los sonidos.
- int S_corchea=125,corchea=250,fusa=62;
- long negra=500,blanca=1000,redonda=2000;
- void h_alegria(){ //melodia himno alegría como ejemplo.
- generate_tone(B_NOTE[0], blanca);
- generate_tone(C_NOTE[1], negra);
- generate_tone(D_NOTE[1], negra);
- generate_tone(D_NOTE[1], negra);
- generate_tone(C_NOTE[1], negra);
- generate_tone(B_NOTE[0], negra);
- generate_tone(A_NOTE[0], negra);
- generate_tone(G_NOTE[0], negra);
- generate_tone(G_NOTE[0], negra);
- generate_tone(A_NOTE[0], negra);
- generate_tone(B_NOTE[0], negra);
- generate_tone(B_NOTE[0], blanca);
- generate_tone(A_NOTE[0],negra);
- generate_tone(A_NOTE[0],negra);
- delay_ms(1000);
- generate_tone(A_NOTE[0], blanca);
- generate_tone(B_NOTE[0], negra);
- generate_tone(G_NOTE[0], negra);
- generate_tone(A_NOTE[0], negra);
- generate_tone(B_NOTE[0], corchea);
- generate_tone(C_NOTE[1], corchea);
- generate_tone(B_NOTE[0], negra);
- generate_tone(G_NOTE[0],negra);
- generate_tone(A_NOTE[0], negra);
- generate_tone(B_NOTE[0], corchea);
- generate_tone(C_NOTE[1], corchea);
- generate_tone(B_NOTE[0], negra);
- generate_tone(G_NOTE[0], negra);
- generate_tone(G_NOTE[0], negra);
- generate_tone(A_NOTE[0], negra);
- generate_tone(D_NOTE[0], blanca);
- delay_ms(2000);
- }
- void main()
- {
- setup_adc_ports(NO_ANALOGS|VSS_VDD);
- setup_adc(ADC_CLOCK_DIV_2|ADC_TAD_MUL_0);
- setup_psp(PSP_DISABLED);
- setup_spi(SPI_SS_DISABLED);
- setup_wdt(WDT_OFF);
- setup_timer_0(RTCC_INTERNAL);
- setup_timer_1(T1_DISABLED);
- setup_timer_2(T2_DISABLED,0,1);
- setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
- setup_comparator(NC_NC_NC_NC);
- setup_vref(FALSE);
- //Setup_Oscillator parameter not selected from Intr Oscillator Config tab
- // TODO: USER CODE!!
- //::::::::::::::::::: Condiciones Iniciales :::::::::::::::::::::::::::::::
- set_tris_A(0xC0); //Puerto A como salida "0" Pin 13/14 entradas Xtal
- set_tris_C(0x00); //Puerto c como salida
- set_tris_B(0x00); //Puerto B como salida "0"
- set_tris_D(0xFF); //Puerto d como entrada "1"
- set_tris_E(0xC); //Puerto E como entrada
- output_C (0x00);
- output_D (0x00);
- output_A (0xC0);
- output_E (0xC);
- output_B (0x00);
- //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- while(1){
- while (INPUT_STATE(PIN_D0) ==1){generate_tone(C_NOTE[1], negra);}
- while (INPUT_STATE(PIN_D1) ==1){generate_tone(D_NOTE[1], negra);}
- while (INPUT_STATE(PIN_D2) ==1){generate_tone(E_NOTE[1], negra);}
- while (INPUT_STATE(PIN_D3) ==1){generate_tone(F_NOTE[1], negra);}
- while (INPUT_STATE(PIN_D4) ==1){generate_tone(G_NOTE[1], negra);}
- while (INPUT_STATE(PIN_D5) ==1){generate_tone(A_NOTE[1], negra);}
- while (INPUT_STATE(PIN_D6) ==1){generate_tone(B_NOTE[1], negra);}
- while (INPUT_STATE(PIN_D7) ==1){ h_alegria();}
- }
- }
Add Comment
Please, Sign In to add comment