Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- list p=16F84A
- #include <p16F84A.inc>
- __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
- w EQU 0
- f EQU 1
- CBLOCK H'0C'
- W_temp
- Status_temp
- Counter
- Frequency
- Duration
- ENDC
- #define Out PORTB,0
- #define Melody_1 PORTB,6
- #define Melody_2 PORTB,7
- ORG H'0000'
- goto start
- start bsf STATUS,RP0
- movlw B'01010111'
- movwf OPTION_REG
- bcf STATUS,RP0
- clrf PORTB
- bsf STATUS,RP0
- bcf TRISB,RP0
- bcf STATUS,RP0
- goto main
- Wait movf Frequency,w
- movwf Counter
- loop decfsz Counter,f
- goto loop
- return
- First_Melody
- movlw D'250'
- movwf Frequency
- movlw D'2'
- movwf Duration
- call Sound
- movlw D'150'
- movwf Frequency
- movlw D'5'
- movwf Duration
- call Sound
- movlw D'200'
- movwf Frequency
- movlw D'3'
- movwf Duration
- call Sound
- movlw D'250'
- movwf Frequency
- movlw D'3'
- movwf Duration
- call Sound
- return
- Second_Melody
- movlw D'190'
- movwf Frequency
- movlw D'1'
- movwf Duration
- call Sound
- movlw D'135'
- movwf Frequency
- movlw D'1'
- movwf Duration
- call Sound
- return
- Sound clrf TMR0
- sound_again
- bcf INTCON, T0IF
- sound_loop
- bsf Out
- call Wait
- bcf Out
- call Wait
- btfss INTCON,T0IF
- goto sound_loop
- decfsz Duration,f
- goto sound_again
- return
- main btfss Melody_1
- call First_Melody
- btfss Melody_2
- call Second_Melody
- goto main
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement