LIST P=16F628 #INCLUDE __CONFIG 0x3F50 #DEFINE BANK0 BCF STATUS,RP0 #DEFINE BANK1 BSF STATUS,RP0 #DEFINE TONE_OUT PORTB,7 #DEFINE T_74 FLAGS,0 #DEFINE T_123 FLAGS,1 CBLOCK 0X20 W_TEMP STATUS_TEMP TEMP_TMR0 TEMP TEMP0 TEMP1 TEMP2 TEMP3 TMP0 TMP1 TMP2 CONTADOR_1 CONTADOR_2 CONTADOR_3 FLAGS ENDC ORG 0x0000 GOTO INICIO ORG 04H TONE BCF INTCON,T0IF ; MOVF TEMP_TMR0,W MOVWF TMR0 BTFSC TONE_OUT ;Testa ultimo estado de TONE GOTO TONE_1 ;Esta a 1 BSF TONE_OUT ;Esta a 0, activa o TONE RETFIE TONE_1 BCF TONE_OUT RETFIE ;Retorno de interrupcao RESTAURA SWAPF STATUS_TEMP,W ; restaura o conteúdo do ... MOVWF STATUS ; ... registrador STATUS SWAPF W_TEMP,F ; restaura o conteúdo ... SWAPF W_TEMP,W RETFIE ;************************************* INICIO BANK0 MOVLW 7 MOVWF CMCON ;desliga os comparadores internos BANK1 MOVLW B'11111111' ;PortA como entrada MOVWF TRISA MOVLW B'00000000' MOVWF TRISB ;PortB como saida MOVLW B'00000100' ;Prescaler 1:32 MOVWF OPTION_REG MOVLW B'00000000' MOVWF INTCON BANK0 CLRF PORTB CLRF PORTA CLRF TEMP_TMR0 MAIN1 MOVF PORTA,W XORLW .0 BTFSC STATUS,Z GOTO TONEEERO MOVF PORTA,W XORLW .1 BTFSC STATUS,Z GOTO TON67 MOVF PORTA,W XORLW .2 BTFSC STATUS,Z GOTO TON719 MOVF PORTA,W XORLW .3 BTFSC STATUS,Z GOTO TON744 MOVF PORTA,W XORLW .4 BTFSC STATUS,Z GOTO TON77 MOVF PORTA,W XORLW .5 BTFSC STATUS,Z GOTO TON797 MOVF PORTA,W XORLW .6 BTFSC STATUS,Z GOTO TON825 MOVF PORTA,W XORLW .7 BTFSC STATUS,Z GOTO TON854 MOVF PORTA,W XORLW .8 BTFSC STATUS,Z GOTO TON885 MOVF PORTA,W XORLW .9 BTFSC STATUS,Z GOTO TON915 MOVF PORTA,W XORLW .10 BTFSC STATUS,Z GOTO TON948 MOVF PORTA,W XORLW .11 BTFSC STATUS,Z GOTO TON974 MOVF PORTA,W XORLW .12 BTFSC STATUS,Z GOTO TON100 MOVF PORTA,W XORLW .13 BTFSC STATUS,Z GOTO TON1035 MOVF PORTA,W XORLW .14 BTFSC STATUS,Z GOTO TON1072 MOVF PORTA,W XORLW .15 BTFSC STATUS,Z GOTO TON1109 MOVF PORTA,W XORLW .16 BTFSC STATUS,Z GOTO TON1148 MOVF PORTA,W XORLW .17 BTFSC STATUS,Z GOTO TON1188 MOVF PORTA,W XORLW .18 BTFSC STATUS,Z GOTO TON123 MOVF PORTA,W XORLW .19 BTFSC STATUS,Z GOTO TON1273 MOVF PORTA,W XORLW .20 BTFSC STATUS,Z GOTO TON1318 MOVF PORTA,W XORLW .21 BTFSC STATUS,Z GOTO TON1365 MOVF PORTA,W XORLW .22 BTFSC STATUS,Z GOTO TON1413 MOVF PORTA,W XORLW .23 BTFSC STATUS,Z GOTO TON1462 MOVF PORTA,W XORLW .24 BTFSC STATUS,Z GOTO TON1514 MOVF PORTA,W XORLW .25 BTFSC STATUS,Z GOTO TON1567 MOVF PORTA,W XORLW .26 BTFSC STATUS,Z GOTO TON1622 MOVF PORTA,W XORLW .27 BTFSC STATUS,Z GOTO TON1679 MOVF PORTA,W XORLW .28 BTFSC STATUS,Z GOTO TON1738 MOVF PORTA,W XORLW .29 BTFSC STATUS,Z GOTO TON1799 MOVF PORTA,W XORLW .30 BTFSC STATUS,Z GOTO TON1862 MOVF PORTA,W XORLW .31 BTFSC STATUS,Z GOTO TON1928 MOVF PORTA,W XORLW .32 BTFSC STATUS,Z GOTO TON2035 MOVF PORTA,W XORLW .33 BTFSC STATUS,Z GOTO TON2107 MOVF PORTA,W XORLW .34 BTFSC STATUS,Z GOTO TON2181 MOVF PORTA,W XORLW .35 BTFSC STATUS,Z GOTO TON2257 MOVF PORTA,W XORLW .36 BTFSC STATUS,Z GOTO TON2336 MOVF PORTA,W XORLW .37 BTFSC STATUS,Z GOTO TON2418 MOVF PORTA,W XORLW .38 BTFSC STATUS,Z GOTO TON2503 MOVF PORTA,W XORLW .39 BTFSC STATUS,Z GOTO TON1750 MOVF PORTA,W XORLW .40 BTFSC STATUS,Z GOTO TON1800 GOTO TONEEERO TON67 CLRF TMR0 MOVLW .23 MOVWF TEMP_TMR0 GOTO MAIN TON719 MOVLW .39 MOVWF TEMP_TMR0 GOTO MAIN TON744 MOVLW .46 MOVWF TEMP_TMR0 GOTO MAIN TON77 MOVLW .53 MOVWF TEMP_TMR0 GOTO MAIN TON797 MOVLW .60 MOVWF TEMP_TMR0 GOTO MAIN TON825 MOVLW .67 MOVWF TEMP_TMR0 GOTO MAIN TON854 MOVLW .73 MOVWF TEMP_TMR0 GOTO MAIN TON885 MOVLW .79 MOVWF TEMP_TMR0 GOTO MAIN TON915 MOVLW .85 MOVWF TEMP_TMR0 GOTO MAIN TON948 MOVLW .91 MOVWF TEMP_TMR0 GOTO MAIN TON974 MOVLW .96 MOVWF TEMP_TMR0 GOTO MAIN TON100 MOVLW .100 MOVWF TEMP_TMR0 GOTO MAIN TON1035 MOVLW .105 MOVWF TEMP_TMR0 GOTO MAIN TON1072 MOVLW .110 MOVWF TEMP_TMR0 GOTO MAIN TON1109 MOVLW .115 MOVWF TEMP_TMR0 GOTO MAIN TON1148 MOVLW .120 MOVWF TEMP_TMR0 GOTO MAIN TON1188 MOVLW .124 MOVWF TEMP_TMR0 GOTO MAIN TON123 MOVLW .129 MOVWF TEMP_TMR0 GOTO MAIN TON1273 MOVLW .133 MOVWF TEMP_TMR0 GOTO MAIN TON1318 MOVLW .137 MOVWF TEMP_TMR0 GOTO MAIN TON1365 MOVLW .142 MOVWF TEMP_TMR0 GOTO MAIN TON1413 MOVLW .145 MOVWF TEMP_TMR0 GOTO MAIN TON1462 MOVLW .149 MOVWF TEMP_TMR0 GOTO MAIN TON1514 MOVLW .153 MOVWF TEMP_TMR0 GOTO MAIN TON1567 MOVLW .156 MOVWF TEMP_TMR0 GOTO MAIN TON1622 MOVLW .160 MOVWF TEMP_TMR0 GOTO MAIN TON1679 MOVLW .163 MOVWF TEMP_TMR0 GOTO MAIN TON1738 MOVLW .166 MOVWF TEMP_TMR0 GOTO MAIN TON1799 MOVLW .169 MOVWF TEMP_TMR0 GOTO MAIN TON1862 MOVLW .172 MOVWF TEMP_TMR0 GOTO MAIN TON1928 MOVLW .175 MOVWF TEMP_TMR0 GOTO MAIN TON2035 MOVLW .179 MOVWF TEMP_TMR0 GOTO MAIN TON2107 MOVLW .182 MOVWF TEMP_TMR0 GOTO MAIN TON2181 MOVLW .184 MOVWF TEMP_TMR0 GOTO MAIN TON2257 MOVLW .187 MOVWF TEMP_TMR0 GOTO MAIN TON2336 MOVLW .189 MOVWF TEMP_TMR0 GOTO MAIN TON2418 MOVLW .191 MOVWF TEMP_TMR0 GOTO MAIN TON2503 MOVLW .194 MOVWF TEMP_TMR0 GOTO MAIN TON1750 BANK1 MOVLW B'00000000' ;Prescaler 1:2 MOVWF OPTION_REG BANK0 MOVLW .113 MOVWF TEMP_TMR0 GOTO MAIN TON1800 BANK1 MOVLW B'00000000' ;Prescaler 1:2 MOVWF OPTION_REG BANK0 MOVLW .117 MOVWF TEMP_TMR0 GOTO MAIN TONEEERO MOVLW .255 MOVWF TEMP_TMR0 GOTO MAIN MAIN MOVLW B'10100000' MOVWF INTCON ;Liga as interrupções GOTO $ END