找回密码
 立即注册

QQ登录

只需一步,快速开始

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

AT89S52制作“叮咚”门铃(附程序、仿真原理图)

[复制链接]
跳转到指定楼层
楼主


  1. /********************************************************************
  2. *                                                              
  3. *  程序功能 : “叮咚”门铃
  4. *                                                                        
  5. *  应用软件 :  KEIL C                                               
  6. *                  
  7. *  硬    件 :  W2041  
  8. *                                                               
  9. *  创建时间 :  2015-12-16
  10. *              
  11.                         
  12. ********************************************************************/   
  13. /* 程序详细功能介绍:
  14. *当按下按键P3.3 ,AT89S51单片机产生“叮咚”声从P3.2端口输出
  15. *程序设计方法
  16. * 1. 我们用单片机实定时/计数器T0来产生700HZ和500HZ的频率,根据定时/计数器T0,我们取定时250us,
  17. *      因此,700HZ的频率要经过3次250us的定时,而500HZ的频率要经过4次250us的定时。
  18. * 2. 在设计过程,只有当按下SP1之后,才启动T0开始工作,当T0工作完毕,回到最初状态。
  19. * 3. “叮”和“咚”声音各占用0.5秒,因此定时/计数器T0要完成0.5秒的定时,对于以250us为基准定时2000次才可以。
  20. */

  21. #include <AT89X51.H>
  22. unsigned char t5hz;
  23. unsigned char t7hz;
  24. unsigned int tcnt;

  25. bit stop;
  26. bit flag;

  27. void main(void)
  28. {
  29.         unsigned char i,j;
  30.        
  31.         TMOD=0x02;
  32.         TH0=0x06;
  33.         TL0=0x06;
  34.         ET0=1;
  35.         EA=1;
  36.        
  37.         while(1)
  38.         {
  39.                 if(P3_3==0)
  40.                 {
  41.                         for(i=10;i>0;i--)
  42.                         for(j=248;j>0;j--);
  43.                         if(P3_3==0)
  44.                         {
  45.                                 t5hz=0;
  46.                                 t7hz=0;
  47.                                 tcnt=0;
  48.                                 flag=0;
  49.                                 stop=0;
  50.                                 TR0=1;
  51.                                 while(stop==0);
  52.                         }
  53.                 }
  54.         }//...while(1)
  55. }//...main

  56. void t0(void) interrupt 1 using 0
  57. {
  58.         tcnt++;
  59.         if(tcnt==2000)
  60.         {
  61.                 tcnt=0;
  62.                 if(flag==0)
  63.                 {
  64.                         flag=~flag;
  65.                 }
  66.                 else
  67.                 {
  68.                         stop=1;
  69.                         TR0=0;
  70.                 }
  71.         }
  72.        
  73.         if(flag==0)
  74.         {
  75.                 t7hz++;
  76.                 if(t7hz==3)
  77.                 {
  78.                 t7hz=0;
  79.                 P3_2=~P3_2;
  80.                 }
  81.         }
  82.         else
  83.         {
  84.                 t5hz++;
  85.                 if(t5hz==4)
  86.                 {
  87.                 t5hz=0;
  88.                 P3_2=~P3_2;
  89.                 }
  90.         }
  91. }
复制代码

7-“叮咚”门铃.zip

82.5 KB, 下载次数: 68, 下载积分: 黑币 -5

DIY制作

评分

参与人数 2黑币 +60 收起 理由
51黑ren + 10 很给力!
admin + 50 共享资料的积分奖励!

查看全部评分

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

使用道具 举报

沙发
ID:826420 发表于 2020-10-16 13:24 来自手机 | 只看该作者
按一下按钮中断两次
回复

使用道具 举报

板凳
ID:146782 发表于 2022-12-23 10:54 | 只看该作者
好资料
回复

使用道具 举报

地板
ID:830831 发表于 2022-12-24 11:05 | 只看该作者
没有余音 都不算
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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