1、蜂鸣函数。freq 表示蜂鸣的频率,ms 表示蜂鸣的时长void Beep(U32 freq, U32 ms)Buzzer_Freq_Set( freq ) ;Delay( ms ) ;Buzzer_Stop() ;蜂鸣的频率设置。void Buzzer_Freq_Set( U32 freq )此语句使 GPB0=00,将原先 GPB0中的值清零,保持 GPB10:1不变rGPBCON 此语句使 GPB0=10,即 GPB0 管脚设置为 TOUT0rGPBCON |= 2;设置 TIMER0 配置寄存器清零 TCFG07:0中的值rTCFG0 使 Prescaler0=15rTCFG0 |=
2、15;设置 TIMER1 配置寄存器清零 TCFG13:0中的值rTCFG1 使 MUX_0=1/8rTCFG1 |= 2;设置 TIMER0 的计数缓冲寄存器rTCNTB0 = (PCLK7)/freq;设置 TIMER0 的比较缓冲寄存器将占空比设为 1:2rTCMPB0 = rTCNTB01;设置 TIMER 控制寄存器清零 TCON4:0中的值rTCON star TIMER0manual update=1inverter offauto reloadDead zone disablerTCON |= 0xb;manual update=0,下次写入数据之前,必须先关闭rTCON 延迟函数使用的是 TIMER3void Delay(int time)U32 val = (PCLK3)/1000-1;Prescaler1=3rTCFG0 rTCON while(rTCNTO31);停止蜂鸣,将 GPB0 管脚设置为 output,输出值为 0void Buzzer_Stop( void )rGPBCON rGPBCON |= 1;rGPBDAT