标题: 请教一下大家单片机蜂鸣器程序的问题 [打印本页]

作者: hu1007110281    时间: 2021-5-2 09:01
标题: 请教一下大家单片机蜂鸣器程序的问题
为啥我按图连接的电路,程序烧进去了,但是按下K1蜂鸣器却不响,是单片机程序的问题吗?
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit Key=P2^5;
  5. sbit DoorBell=P2^7;
  6. uint p=0;
  7. //主程序
  8. void main()
  9. {
  10. DoorBell=0;
  11. TMOD=0x00; //T0 方式 0
  12. TH0=(8192-700)/32; //700us 定时
  13. TL0=(8192-700)%32;
  14. IE=0x82;
  15. while(1)
  16. {
  17. if(Key==0) //按下按键启动定时器
  18. {
  19. TR0=1;
  20. while(Key==0);
  21. }
  22. }
  23. }
  24. //T0 中断控制点阵屏显示
  25. void Timer0() interrupt 1
  26. {
  27. DoorBell=~DoorBell;
  28. p++;
  29. if(p<400) //若需要拖长声音,可以调整 400 和 800
  30. {
  31. TH0=(8192-700)/32; //700us 定时
  32. TL0=(8192-700)%32;
  33. }
  34. else if(p<800)
  35. {
  36. TH0=(8192-1000)/32; //1ms 定时
  37. TL0=(8192-1000)%32;
  38. }
  39. else
  40. {
  41. TR0=0;
  42. p=0;
  43. }
  44. }
复制代码


51hei截图20210501211116.png (82.39 KB, 下载次数: 66)

51hei截图20210501211116.png

作者: 欣欣    时间: 2021-5-2 12:03
程序没问题,我已经实验过了,可以发声的。
作者: 96317    时间: 2021-5-2 12:07
按键不用延时消抖的嘛
作者: dj3365191    时间: 2021-5-2 18:58
蜂鸣器要接到Q1集电极与地之间才能正常发声
作者: birdzhyli    时间: 2021-5-2 23:14
仿真和实际电路还是有区别的,没有限流电阻,三极管可能已经OVER了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1