单片机中断函数C语言的问题?

单片机中断函数C语言的问题?,第1张

void Timer1() interrupt 3

{    TH1=xx;    TL1=xx;  //建议还是取定时值为1ms,或者是 05ms ;

  cnt++;

 if (s<50)

 {

     if(cnt>500)   { cnt=0; beep=~beep;}

 }

 else if (s>=50 && s<100)

 {

     if(cnt>1000)   { cnt=0; beep=~beep;}

 }

 

}

如果定时中断为20ms,对应的频率计数50Hz,这个频率已经很低了,那么再通过cnt计数500次,输出信号频率就远远超出音频范围,你根本就听不到声音;

另外,蜂鸣器的proteus仿真可能不太准确,可以通过仿真示波器看波形及频率就好了;

在proteus仿真软件的Pick Devices窗口中可以搜元器件,在搜索窗口中输入“res”即可找到各种类型的电阻。具体 *** 作请参照以下步骤。

1、在电脑桌面上找到proteus软件的快捷方式,双击鼠标打开仿真软件。

2、在软件界面的Devices区域找到下图箭头所指的“P”按钮,然后进行点击。

3、点击之后就会进入Pick Devices窗口中,这里可以进行元器件的查找。

4、然后需要查找电阻,就在窗口中的keywords栏中输入“res”。

5、然后可以发现窗口中会出现电阻的查找结果,最后按个人需求选择一种电阻即可。完成以上设置后,即可在proteus isis仿真软件里搜元器件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13322668.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-14
下一篇 2023-07-14

发表评论

登录后才能评论

评论列表(0条)

保存