)
SING
CLRF TMR1L
CLRF TMR1H ;清零TMR1定器
MOVF COUNT1,0
CALL TABLE
MOVWF COUNT2 ;暂存查表结果于COUNT2中
BCF STATUS,Z
SUBLW 0x00 ;判断是否查表到最后一个数值
BTFSC STATUS,Z
GOTO REPLAY ;是,说明音乐播放完成,重头开始播放
MOVF COUNT2,0
ANDLW 0x0F ;去掉高4位只保留低4位
MOVWF JP ;保存到JP中
SWAPF COUNT2,0 ;高低半字节交换
ANDLW 0x0F ;去掉高4位只保留低4位
MOVWF YP ;保存到YP中,这样查表的结果的被分成高低半字节两部分分别存放在YP跟JP中
DECF YP,1
MOVF YP,0
CALL TABLE_YP
MOVWF TMR1H ;作为TMR1初值的高8位
MOVWF TA ;暂存TA中
INCF YP,0