_counter = 0;Р time_1s_ok = 1;Р }Р?}Р}Р//T/C1 比较匹配A中断服务Р#pragma interrupt_handler pa_isr:PAРvoid pa_isr(void)Р{Р?if(!play_on)Р?{Р note_n = 0;Р int_n = 1;Р play_on = 1;Р?}Р?elseР?{Р if(--int_n == 0)Р {Р TCCR1B = 0x08;Р if (note_n < i])Р {Р OCR1A = t[i][note_n]];Р int_n = d[i][note_n]];Р note_n++;Р int_n = int_n * i][note_n];Р note_n++;Р TCCR1B = 0x09;Р }Р elseР play_on = 0;Р }Р?}Р}Рvoid time_to_disbuffer(unsigned char *time) //时钟时间送显示缓冲区函数Р{Р?unsigned char i,j=0;Р?for(i=0;i<=2;i++)Р?{Р dis_buff[j++] = time[i] % 10;Р dis_buff[j++] = time[i] / 10;Р?}Р}Рvoid ctime_to_disbuffer(unsigned int ci) //闹钟时间送显示缓冲区函数Р{Р?unsigned char i,j=0;Р?for(i=0;i<=2;i++)Р?{Р dis_buff[j++] = time_clock[ci][i] % 10;Р dis_buff[j++] = time_clock[ci][i] / 10;Р?}Р}Рvoid wtime_to_disbuffer(unsigned int week) //星期送显示缓冲区函数