
Chapter 6
MTC_ISR:
MOV 0x13, A
; store the accumulator in R13
MOV A, 0x03
MOV 0x14, A
; store status register in R14
BC 0x05, 1
; clear MTC timer interrupt flag
PAGE
0
JMP MELODY_INT
; go to melody interrupt subroutine
;----------------------------------------------------------
ORG
0x0010
POWERON:
BC 0x5, 7
; disable global interrupt
CLR 0x04
; clear RAM select register
SETUP_DAC1:
MOV A, @0x08
; select DAC 1 control
MOV 0x09, A
MOV A, @0x71
; set mode: VOL=7, RANGE=0 & turn on DAC
MOV 0x0A, A
MOV A, @0x4
; assign melody channel 1 to
IOW 0x06
; the mixer of DAC 1
;--set up tempo--------------------------------------------
MOV A, @0xA0
; MSR2-0=101 -> MTC scale=1:64
IOW 0x05
; MTC CLK=32us (4MHz/2/64=32us)
MOV A, @216
; MTC=216 -> (216+1)*32us=6.944 ms
MOV 0x06, A
; MTC timer INT interval = 6.944 ms
;--set up melody-------------------------------------------
SETUP_MELODY:
MOV A, @0x02
; select voice ROM access control
MOV 0x09, A
MOV A, @0
; set melody start data address
IOW 0x6
; address = 0x002000
MOV A, @0x20
IOW
0x7
MOV A, @0
IOW
0x8
CLR 0x16
; R16 store the active flag
BS 0x16, 0
; set bit 0 as active flag
BS 0x05, 3
; enable MTC INT
BS 0x05, 7
; enable global INT
WAIT:
JBC 0x16, 0
; check R16 for active flag
JMP WAIT
; if active flag = 1, wait
BC 0x05, 3
; else, disable MTC timer interrupt
OVER:
JMP
OVER
EM60000 Series User’s Manual
Software Application
•
97
Содержание EM60000 series
Страница 8: ...Contents viii Contents EM60000 Series User s Manual ...
Страница 24: ...Chapter 2 16 Architecture EM60000 Series User s Manual ...
Страница 54: ...Chapter 4 46 Special Function Control EM60000Series User s Manual ...
Страница 80: ...Chapter 5 72 Instruction Set EM60000Series User s Manual ...