找回密码
 立即注册

QQ登录

只需一步,快速开始

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

请教一下大家单片机蜂鸣器程序的问题

[复制链接]
跳转到指定楼层
楼主
为啥我按图连接的电路,程序烧进去了,但是按下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, 下载次数: 45)

51hei截图20210501211116.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:506248 发表于 2021-5-2 12:03 | 只看该作者
程序没问题,我已经实验过了,可以发声的。
回复

使用道具 举报

板凳
ID:570093 发表于 2021-5-2 12:07 | 只看该作者
按键不用延时消抖的嘛
回复

使用道具 举报

地板
ID:143767 发表于 2021-5-2 18:58 | 只看该作者
蜂鸣器要接到Q1集电极与地之间才能正常发声
回复

使用道具 举报

5#
ID:889094 发表于 2021-5-2 23:14 | 只看该作者
仿真和实际电路还是有区别的,没有限流电阻,三极管可能已经OVER了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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