找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3665|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机使用两个定时器实现间隔一段时间蜂鸣器响不同频率并循环,但是代码出现问题

[复制链接]
跳转到指定楼层
楼主
本人想用51单片机控制蜂鸣器实现:蜂鸣器每间隔一段时间响一下,每次响的频率主次升高,5次一循环。变量loop是大循环的时间变量。但是实际操作时候发现,不知道为什么loop最大到161就不再增加了,程序陷入死循环。想了很久也想不出来为什么,希望大佬不吝赐教,帮我找一下原因,谢谢!



单片机代码如下:
  1. /*同时用两个定时器控制蜂鸣器发声,定时器0控制频率,
  2. 定时器1控制同个频率持续的时*/
  3. #include<reg52.h>
  4. #define uint unsigned int
  5. #define uchar unsigned char
  6. sbit beep=P2^3;
  7. uchar t=0;
  8. uint f=0,fre=10000,loop=1;
  9. void main()
  10. {
  11. EA=1;
  12. ET0=1;
  13. TR0=1;
  14. ET1=1;
  15. TR1=1;
  16. TMOD=0x11;
  17. TH0=(65535-fre)/256;
  18. TL0=(65535-fre)%256;
  19. TH1=(65535-50000)/256;
  20. TL1=(65535-50000)%256;
  21. beep=1;
  22. while(1);//等待中断
  23. }

  24. void frequence() interrupt 1//T0,frequence=10000/f
  25. {
  26. ET0=0;
  27. TH0=(65535-fre)/256;
  28. TL0=(65535-fre)%256;
  29. if(t<=20)
  30.         {
  31.         if(loop>0&&loop<=40)
  32.                 {
  33.                 fre=10000;
  34.                 beep=~beep;
  35.                 }
  36.         if(loop>40&&loop<=80)
  37.                 {
  38.                 fre=6000;
  39.                 beep=~beep;
  40.                 }
  41.         if(loop>80&&loop<=120)
  42.                 {
  43.                 fre=3000;
  44.                 beep=~beep;
  45.                 }
  46.         if(loop>120&&loop<=160)
  47.                 {
  48.                 fre=1000;
  49.                 beep=~beep;
  50.                 }
  51.         if(loop>160&&loop<200)
  52.                 {
  53.                 fre=156;
  54.                 beep=~beep;
  55.                 P1=0xfe;
  56.                 }
  57.         }
  58. else
  59.         beep=1;
  60. ET0=1;
  61. }
  62. void timer() interrupt 3//T1
  63. {
  64. TH1=(65535-50000)/256;
  65. TL1=(65535-50000)%256;
  66. t++;
  67. if(t==40)
  68.         t=0;
  69. loop++;
  70. if(loop==200)
  71.         loop=0;
  72. }
复制代码



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表