p; movlw .50 ;循环次数寄存器赋初值
movwf count ;50=500HZx0.05Sx2
t5lop
bcf intcon,t0if ;清除TRM0溢出中断标志位
movlw .131 ;给TMR0装入初值256-125=131
movwf tmr0 ;启动定时器
t5here
btfss intcon,t0if ;定时器溢出否
goto t5here ;否!循环栓测
movlw b'01000000' ;只将BIT6置位
xorwf portc,f ;只将RC6(BUZ)脚电平反转,其余不变
decfsz count,f ;循环次数递减,为0,跳一步
goto t5lop ;不为0,跳回
return ;返回
;**************************高音调发生子程序(630HZ/50MS)*****************
tone630
movlw .63 ;循环次数寄存器赋初值
movwf count1 ;63=630HZx0.05Sx2
t6lop
bcf intcon,t0if ;清除TRM0溢出中断标志位
movlw .157 ;给TMR0装入初值157=256-99
movwf tmr0 ;启动定时器
t6here
btfss intcon,t0if ;定时器溢出否
goto t6here ;否!循环栓测
movlw b'01000000' ;只将BIT6置位
xorwf portc,f ;只将RC6(BUZ)脚电平反转,其余不变
decfsz count1,f ;循环次数递减,为0,跳一步
goto t6lop ;不为0,跳回
return ;返回
;*********************发声1S子程序(1S=10x(50ms+50ms)***********
tonels
movlw .10 ;循环次数寄存器赋初值
&