Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;PROGRAM : 4-8.ASM (4-8.PJT) 2009.1029
- ;FUNCTION: GENERATE TONE DO~DO. BY USING DELAY SKILL By Steven
- #INCLUDE HT66F50.INC
- ;========================================================================================
- MY_DATA .SECTION 'DATA' ;== DATA SECTION ==
- DEL1 DB ? ;DELAY LOOP COUNT 1
- PITCH DB ? ;PITCH REGISTER
- COUNT1 DB ? ;DURATION COUNT 1
- COUNT2 DB ? ;DURATION COUNT 2
- DEL0 DB ?
- ;========================================================================================
- SPK_PORT EQU PC.4 ;DEFINE SPEAKER PORT
- SPK_PORTC EQU PCC.4 ;DEFINE SPEAKER PORT CON. REG.
- MY_CODE .SECTION AT 0 'CODE' ;== PROGRAM SECTION ==
- ORG 00H ;HT-46RXX RESET VECTOR
- CLR SPK_PORTC ;CONFIG PA.0 AS OUTPUT MODE
- CLR DEL0
- MAIN:
- MOV A,TAB_PITCH_DURATION
- MOV TBLP,A ;INITIAL TABLE POINTER
- NEXT_PITCH:
- TABRDL PITCH ;LOAD PITCH TO PITCH REGISTER AND DURATION TO TBLH
- CLR ACC
- XOR A,TBLH ;NOTE: TBLH IS READ ONLY!!!
- SZ Z ;IS THE LAST TONE?
- JMP MAIN ;YES. RESTART!!
- MOV COUNT1,A ;NO, LOAD DURATION TO COUNT1
- INC TBLP ;UPDATE TABLE POINTER
- LOOP:
- MOV A,10
- MOV COUNT2,A ;INITIAL INNER LOOP COUNT
- HI: SET SPK_PORT ;SET SPK_PORT HIGH
- MOV A,PITCH
- CALL DELAY ;PITCH DELAY
- CLR SPK_PORT ;RESET SPK_PORT
- MOV A,PITCH
- CALL DELAY ;PITCH DELAY
- SDZ COUNT2 ;INNER LOOP OK?
- JMP HI ;NO.
- SDZ COUNT1 ;OUTER LOOP OK?
- JMP LOOP
- CALL DELAY0 ;;;; ;NO.
- JMP NEXT_PITCH ;YES, NEXT PITCH
- ;========================================================================================
- ; Delay about Acc*10uS@ fSYS=4MHz, (Acc*9+1) CYCLES
- ;========================================================================================
- DELAY PROC
- MOV DEL1,A
- DEL_1: TABRDL ACC
- TABRDL ACC
- TABRDL ACC
- SDZ DEL1 ;DEL1 DOWN COUNT
- JMP DEL_1
- RET
- DELAY ENDP
- DELAY0:
- CLR PC4
- SDZ DEL0
- JMP $-1
- RET
- ORG LASTPAGE
- TAB_PITCH_DURATION:
- DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(698*2*10)+(698/(2*10)) SHL 8 ;FA TONE & DURATION 4
- DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
- DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
- DC 1000000/(523*2*10)+(523/(2*10)) SHL 8 ;DO TONE & DURATION 1
- DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(698*2*10)+(698/(2*10)) SHL 8 ;FA TONE & DURATION 4
- DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
- DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
- DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
- DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(698*2*10)+(698/(2*10)) SHL 8 ;FA TONE & DURATION 4
- DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
- DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
- DC 1000000/(523*2*10)+(523/(2*10)) SHL 8 ;DO TONE & DURATION 1
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
- DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
- DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
- DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
- DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
- DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(698*2*10)+(698/(2*10)) SHL 8 ;FA TONE & DURATION 4
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(698*2*10)+(698/(2*10)) SHL 8 ;FA TONE & DURATION 4
- DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
- DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(698*2*10)+(698/(2*10)) SHL 8 ;FA TONE & DURATION 4
- DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
- DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
- DC 1000000/(523*2*10)+(523/(2*10)) SHL 8 ;DO TONE & DURATION 1
- DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
- DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
- DC 1000000/(523*2*10)+(523/(2*10)) SHL 8 ;DO TONE & DURATION 1
- DC 1000000/(523*2*10)+(523/(2*10)) SHL 8 ;DO TONE & DURATION 1
- DC 1000000/(523*2*10)+(523/(2*10)) SHL 8 ;DO TONE & DURATION 1
- DC 0
- END
- ; DC 1000000/(523*2*10)+(523/(2*10)) SHL 8 ;DO TONE & DURATION 1
- ; DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
- ; DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
- ; DC 1000000/(698*2*10)+(698/(2*10)) SHL 8 ;FA TONE & DURATION 4
- ; DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
- ; DC 1000000/(880*2*10)+(880/(2*10)) SHL 8 ;LA TONE & DURATION 6
- ; DC 1000000/(988*2*10)+(988/(2*10)) SHL 8 ;TI TONE & DURATION 7
- ; DC 1000000/(1047*2*10)+(1047/(2*10)) SHL 8 ;DO. TONE & DURATION 8
- ;TABLE END CODE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement