找回密码
 立即注册

QQ登录

只需一步,快速开始

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

(文件分享)基于单片机的门铃设计

[复制链接]
跳转到指定楼层
楼主
通过按下开关k1,会触发蜂鸣器发出叮咚~,叮咚~的声音
开关接P3.1接口
蜂鸣器接P1.5接口

  1. #include<reg52.h>
  2. typedef unsigned char u8;
  3. typedef unsigned int u16;
  4. sbit beep=P1^5;
  5. sbit k1=P3^1;
  6. u8 ding,dong,flag,stop;
  7. u16 n;
  8. void delay(u16 i)
  9. {
  10.         while(i--);
  11. }
  12. void time0init()          //定时器0初始化
  13. {
  14.         TMOD=0X01;         //定时器0 方式1
  15.         TH0=0Xff;
  16.         TL0=0X06; //定时250us
  17. //        TR0=1;
  18.         EA=1;
  19.         ET0=1;
  20. }
  21. void biaohaoinit()           //各个标号初始化
  22. {
  23.         ding=0;                //叮声音  计数标志
  24.         dong=0;                //咚声音  计数标志
  25.         n=0;                //定时0.5s标志
  26.         flag=0;
  27.         stop=0;           //结束标志
  28. }
  29. void main()
  30. {
  31.         time0init();
  32.         biaohaoinit();
  33.         while(1)
  34.         {
  35.                 if(k1==0)           //判断按键是否按下
  36.                 {
  37.                         delay(1000);  //消抖
  38.                         if(k1==0)
  39.                         {
  40.                                 TR0=1;        //打开定时器0
  41.                                 while(!stop);
  42.                         }
  43.                 }       
  44.         }       
  45. }
  46. void time0() interrupt 1
  47. {
  48.         n++;
  49.         TH0=0Xff;
  50.         TL0=0X06; //250us
  51.         if(n==2000)                //定时0.5s  叮响0.5秒,咚响0.5秒
  52.         {
  53.                 n=0;
  54.                 if(flag==0)
  55.                 {
  56.                         flag=~flag;
  57.                 }
  58.                 else
  59.                 {
  60.                         flag=0;
  61.                         stop=1;
  62.                         TR0=0;          //关闭定时器0
  63.                 }
  64.         }
  65.         if(flag==0)
  66.         {                                           //通过改变定时计数时间可以改变门铃的声音
  67.                 ding++;                          //叮
  68.                 if(ding==1)
  69.                 {
  70.                         ding=0;
  71.                         beep=~beep;
  72.                 }
  73.         }
  74.         else
  75.         {
  76.                 dong++;
  77.                 if(dong==2)                  //咚
  78.                 {
  79.                         dong=0;
  80.                         beep=~beep;
  81.                 }       
  82.         }
  83. }
复制代码


QQ截图20181209125712.png (35.82 KB, 下载次数: 14)

QQ截图20181209125712.png

门铃设计.rar

25.6 KB, 下载次数: 18, 下载积分: 黑币 -5

程序文件

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:213119 发表于 2019-5-24 13:35 | 只看该作者
谢谢,下载来学习下。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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