Advertisement
IkaYee

Untitled

Jun 20th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.24 KB | None | 0 0
  1. ;PROGRAM : 4-8.ASM (4-8.PJT) 2009.1029
  2. ;FUNCTION: GENERATE TONE DO~DO. BY USING DELAY SKILL By Steven
  3. #INCLUDE HT66F50.INC
  4. ;========================================================================================
  5. MY_DATA .SECTION 'DATA' ;== DATA SECTION ==
  6. DEL1 DB ? ;DELAY LOOP COUNT 1
  7. PITCH DB ? ;PITCH REGISTER
  8. COUNT1 DB ? ;DURATION COUNT 1
  9. COUNT2 DB ? ;DURATION COUNT 2
  10. DEL0 DB ?
  11. ;========================================================================================
  12. SPK_PORT EQU PC.4 ;DEFINE SPEAKER PORT
  13. SPK_PORTC EQU PCC.4 ;DEFINE SPEAKER PORT CON. REG.
  14. MY_CODE .SECTION AT 0 'CODE' ;== PROGRAM SECTION ==
  15. ORG 00H ;HT-46RXX RESET VECTOR
  16. CLR SPK_PORTC ;CONFIG PA.0 AS OUTPUT MODE
  17. CLR DEL0
  18. MAIN:
  19. MOV A,TAB_PITCH_DURATION
  20. MOV TBLP,A ;INITIAL TABLE POINTER
  21. NEXT_PITCH:
  22. TABRDL PITCH ;LOAD PITCH TO PITCH REGISTER AND DURATION TO TBLH
  23. CLR ACC
  24. XOR A,TBLH ;NOTE: TBLH IS READ ONLY!!!
  25. SZ Z ;IS THE LAST TONE?
  26. JMP MAIN ;YES. RESTART!!
  27. MOV COUNT1,A ;NO, LOAD DURATION TO COUNT1
  28. INC TBLP ;UPDATE TABLE POINTER
  29. LOOP:
  30. MOV A,10
  31. MOV COUNT2,A ;INITIAL INNER LOOP COUNT
  32. HI: SET SPK_PORT ;SET SPK_PORT HIGH
  33. MOV A,PITCH
  34. CALL DELAY ;PITCH DELAY
  35. CLR SPK_PORT ;RESET SPK_PORT
  36. MOV A,PITCH
  37. CALL DELAY ;PITCH DELAY
  38. SDZ COUNT2 ;INNER LOOP OK?
  39. JMP HI ;NO.
  40. SDZ COUNT1 ;OUTER LOOP OK?
  41. JMP LOOP
  42. CALL DELAY0 ;;;; ;NO.
  43. JMP NEXT_PITCH ;YES, NEXT PITCH
  44. ;========================================================================================
  45. ; Delay about Acc*10uS@ fSYS=4MHz, (Acc*9+1) CYCLES
  46. ;========================================================================================
  47. DELAY PROC
  48. MOV DEL1,A
  49. DEL_1: TABRDL ACC
  50. TABRDL ACC
  51. TABRDL ACC
  52. SDZ DEL1 ;DEL1 DOWN COUNT
  53. JMP DEL_1
  54. RET
  55. DELAY ENDP
  56. DELAY0:
  57. CLR PC4
  58. SDZ DEL0
  59. JMP $-1
  60. RET
  61.  
  62. ORG LASTPAGE
  63. TAB_PITCH_DURATION:
  64.  
  65. DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
  66. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  67. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  68.  
  69. DC 1000000/(698*2*10)+(698/(2*10)) SHL 8 ;FA TONE & DURATION 4
  70. DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
  71. DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
  72.  
  73. DC 1000000/(523*2*10)+(523/(2*10)) SHL 8 ;DO TONE & DURATION 1
  74. DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
  75. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  76. DC 1000000/(698*2*10)+(698/(2*10)) SHL 8 ;FA TONE & DURATION 4
  77.  
  78. DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
  79. DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
  80. DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
  81.  
  82. DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
  83. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  84. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  85.  
  86. DC 1000000/(698*2*10)+(698/(2*10)) SHL 8 ;FA TONE & DURATION 4
  87. DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
  88. DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
  89.  
  90. DC 1000000/(523*2*10)+(523/(2*10)) SHL 8 ;DO TONE & DURATION 1
  91. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  92. DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
  93. DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
  94.  
  95. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  96. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  97.  
  98. DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
  99. DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
  100. DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
  101. DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
  102.  
  103. DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
  104. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  105. DC 1000000/(698*2*10)+(698/(2*10)) SHL 8 ;FA TONE & DURATION 4
  106.  
  107. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  108. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  109. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  110. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  111.  
  112. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  113. DC 1000000/(698*2*10)+(698/(2*10)) SHL 8 ;FA TONE & DURATION 4
  114. DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
  115.  
  116. DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
  117. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  118. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  119.  
  120. DC 1000000/(698*2*10)+(698/(2*10)) SHL 8 ;FA TONE & DURATION 4
  121. DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
  122. DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
  123.  
  124. DC 1000000/(523*2*10)+(523/(2*10)) SHL 8 ;DO TONE & DURATION 1
  125. DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  126. DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
  127. DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
  128.  
  129. DC 1000000/(523*2*10)+(523/(2*10)) SHL 8 ;DO TONE & DURATION 1
  130. DC 1000000/(523*2*10)+(523/(2*10)) SHL 8 ;DO TONE & DURATION 1
  131. DC 1000000/(523*2*10)+(523/(2*10)) SHL 8 ;DO TONE & DURATION 1
  132.  
  133. DC 0
  134.  
  135. END
  136.  
  137. ; DC 1000000/(523*2*10)+(523/(2*10)) SHL 8 ;DO TONE & DURATION 1
  138. ; DC 1000000/(587*2*10)+(587/(2*10)) SHL 8 ;RE TONE & DURATION 2
  139. ; DC 1000000/(659*2*10)+(659/(2*10)) SHL 8 ;MI TONE & DURATION 3
  140. ; DC 1000000/(698*2*10)+(698/(2*10)) SHL 8 ;FA TONE & DURATION 4
  141. ; DC 1000000/(785*2*10)+(785/(2*10)) SHL 8 ;SOL TONE & DURATION 5
  142. ; DC 1000000/(880*2*10)+(880/(2*10)) SHL 8 ;LA TONE & DURATION 6
  143. ; DC 1000000/(988*2*10)+(988/(2*10)) SHL 8 ;TI TONE & DURATION 7
  144. ; DC 1000000/(1047*2*10)+(1047/(2*10)) SHL 8 ;DO. TONE & DURATION 8
  145. ;TABLE END CODE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement