Open Endragon2003 opened 2 years ago
你好,我用的是STC89C52,好像没有辅助寄存器,不知道为什么我用常规方法也没法让我的音乐响起来,能不能帮帮忙
在up讨论区看到:暂时不支持STC89系列没有定时器时钟输出功能的单片机,auxr是一个辅助寄存器 驱动有源蜂鸣器的话给低电平就可以响,无源蜂鸣器的话要给PWM方波。可以检查一下引脚定义。
你好,我用的是STC89C52,好像没有辅助寄存器,不知道为什么我用常规方法也没法让我的音乐响起来,能不能帮帮忙
主要是因为STC89这种单片机用中断翻转IO电平太慢了,有些音调一高就跑调,再加上有中断,不同频率的音符持续时间就不准了,嫌麻烦,就用的STC15这种可以直接把定时器输出到IO口的单片机
一定要用STC89系列单片机,可以在定时器中断里面翻转IO:
void tm0_isr() interrupt 1
{
BEEP = !BEEP;
}
然后main里面加一句:
ET0 = 1;
删除 WAKE_CLKO = 0x01; //enable timer0 clock output
这一行
改延时函数,用STC-ISP重新生成一个适合STC89的
改freq2timer.py
:
clock改成晶振频率的二倍
下载时不能选2T模式(好像叫这个)
理论上这样就行了,肯定能出声
厉害了,我试一下,我也是STC89C52
STC89C52按你的方法试了下,不成功,不出声
你好,我用的是STC89C52,好像没有辅助寄存器,不知道为什么我用常规方法也没法让我的音乐响起来,能不能帮帮忙