
TMOD=0x01;//设置定时器0为工作方式1
TH0=0xFF;
TL0=0x00;
你的定时器工作方式1,但是中断里没有重载定时器,所以,除了第一次以外,其他每次中断,都是65536个周期。
另外说一下,你为什么要把中断服务函数写那么大呢?好的工程师一个原则,中断服务函数,尽最大努力的短
再补充一下:既然你定时器跑的周期是256个,为什么不用方式2?自动重载,节省开销用定时器模拟PWM即可。具体就不算了,看你代码大体原理差不多,你可以试着接一个蜂鸣器,将输出角接到蜂鸣器上,查下声音的频率表,打出一个频率出来看发出的音对不对,我以前用类似的道理做过一个类似于贺卡那个铃声的东西。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)