void t0int() interrupt 1 //(location at 000BH) //只负责输出PWM波 { //10微秒@24.000MHzLen++;if(Len==SdLen){SPK=~SPK; Len=0; } }void Display(uchar Play) //play是要播放的音符(数字表示),且控制PWM波长{SdLen=Length[Play]; //取定应有的PWM波长度P1=WEI[Play]^P1; //让P0对应的灯点亮TR0 = 1; //定时器0开始计时ET0 = 1; //开T0中断Delay500ms(); //延时等待定时器中断 //Display作为定时器0产生PWM波的入口ET0 = 0; //关定时器0即停止PWM波输出,控制长度P1=WEI[Play]^P1; //熄灭 }定时器初值已在前面主函数配置好,本意是输出PWM波,但是仿真结果只有上升沿和下降沿,是Delay里不能进行中断程序么?
- 2 回答
- 0 关注
- 305 浏览
添加回答
举报
0/150
提交
取消