📄 ringtones.asm
字号:
$mod51
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;8051 Based
;NOKIA Monotonic Ringtone Player(RTTL)
;Sample rintone played "Happy Birthday to you "
;Device Gifted to my friend Miss Sunanda Chatterjee on her birthday
;Special thanks to Miss Munmun Ghoshal & Mr Shiv Kumar Mohan for continuous encouragement
;Microcontroller AT89C51
;Crystal Oscillator 11.0592MHz
;Application plays "Happy Birthday to you" monotonic ringtone
;Written in Assembly Language
;Compiled using Keil U Vision
;Written by:
; Mr Subhajit Roy
; JIS College of Engineering
; Electronics and Communication Dept
; B-tech 3rd year
; Contact-09239240966
; email id: subhajitroy86@gmail.com
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FLAG EQU 07FH
SPEAKER EQU P2.0
BEGIN:
ORG 0000H
AJMP MAIN
ISR:
ORG 000BH
LCALL ACTION
RETI
ORG 0050H
MAIN:
MOV TMOD,#00010001B ;
MOV IE,#82H ;
MOV TH0,#0DCH
MOV TL0,#00H
SETB TR0
MOV DPTR,#SONG
MOV R0,#02
LOOP1:
ACALL PLAY_NOTE
CJNE R0,#02,CARRY_ON
SJMP MAIN ;end of music has been detected so start again
CARRY_ON:
ACALL PLAY
SJMP LOOP1
PLAY:
CLR EA
SETB FLAG
SETB EA
RUN:
JNB FLAG,STOP
DO:
CJNE R0,#0,START
SJMP RUN
START:
MOV TH1,R2
MOV TL1,R3
SETB TR1
HERE:
JNB TF1,HERE
CLR TF1
CLR TR1
CPL SPEAKER
SJMP RUN
STOP:
CLR SPEAKER
RET
PLAY_NOTE:
CONTINUE:
CLR A
MOVC A,@A+DPTR
MOV R0,A
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV R1,A
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV R2,A
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV R3,A
INC DPTR
RET
ACTION:
CLR TR0
CJNE R1,#0,DO2
CLR FLAG
SJMP DO3
DO2: DEC R1
DO3:
MOV TH0,#0DCH
MOV TL0,#00H
SETB TR0
RET
SONG: ; HAPPY BIRTHDAY
; R0 R1 R2 R3
DB 1,12,0FCH,08FH ;R0=1 indicates there is a note to played
DB 0,6,0,0 ;R1=0 indicates there is no note to be played
DB 1,6,0FCH,08FH
DB 0,6,0,0
DB 1,24,0FCH,0EFH
DB 0,6,0,0
DB 1,24,0FCH,08FH
DB 0,6,0,0
DB 1,24,0FDH,06CH
DB 0,6,0,0
DB 1,48,0FDH,045H
DB 0,12,0,0
DB 1,12,0FCH,08FH
DB 0,6,0,0
DB 1,6,0FCH,08FH
DB 0,6,0,0
DB 1,24,0FCH,0EFH
DB 0,6,0,0
DB 1,24,0FCH,08FH
DB 0,6,0,0
DB 1,24,0FDH,0B4H
DB 0,6,0,0
DB 1,48,0FDH,06CH
DB 0,24,0,0
DB 1,12,0FCH,08FH
DB 0,6,0,0
DB 1,6,0FCH,08FH
DB 0,6,0,0
DB 1,24,0FEH,048H
DB 0,6,0,0
DB 1,24,0FBH,0E9H
DB 0,6,0,0
DB 1,24,0FDH,06CH
DB 0,6,0,0
DB 1,24,0FDH,045H
DB 0,6,0,0
DB 1,24,0FCH,0EFH
DB 0,6,0,0
DB 1,12,0FCH,023H
DB 0,6,0,0
DB 1,6,0FCH,023H
DB 0,6,0,0
DB 1,24,0FBH,0E9H
DB 0,6,0,0
DB 1,24,0FDH,06CH
DB 0,6,0,0
DB 1,24,0FDH,0B4H
DB 0,6,0,0
DB 1,48,0FDH,06CH
DB 2,0,0,0 ;R0=2 indicates end of music
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -