找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于51单片机电子门铃Proteus仿真程序设计

[复制链接]
跳转到指定楼层
楼主
原程序+仿真


单片机源程序如下:
  1. /********************************************************
  2. *实例名称:电子门铃
  3. *实例功能:当按下门铃按钮时,产生500hz和750hz的方波来驱动
  4. 喇叭,产生两种不同频率的交替来产生两种声音
  5. *作者:kxm
  6. ********************************************************/
  7. #include "doorBell.h"
  8. uchar t5hz;    //500hz频率计数
  9. uchar t7hz;    //750hz频率计数
  10. uint tcnt;     //定时器0中断计数
  11. bit flag;            //500hz和750hz状态标示
  12. void timer0_init(void)
  13. {
  14.    TMOD=0x02;  //定时器0工作在方式2,八位定时器自动载入
  15.    TH0=0x06;   //12MHZ晶振,中断周期250*10^(-6)秒
  16.    TL0=0x06;
  17.    ET0=1;           //定时器0中断使能
  18.    TR0=0;           //定时器0默认状态停止运行
  19. }
  20. void int0_init(void)
  21. {
  22.   EX0 = 1;         //外部中断0使能
  23.   IT0 = 1;         //外部中断0跳变中断
  24. }
  25. void main()
  26. {
  27.   timer0_init(); //定时器0初始化
  28.   int0_init();         //外部中断0初始化
  29.   flag=0;
  30.   t5hz=0x00;
  31.   t7hz=0x00;
  32.   tcnt=0x0000;
  33.   sei();            //开总中断
  34.   while(1)
  35.   {
  36.     if(TR0==0)
  37.       flag=0;  //门铃响过后转换成500hz状态
  38.   }
  39. }
  40. void timer0_overflow(void) interrupt 1  //timer0溢出中断入口
  41. {
  42.   tcnt++;
  43.   if(tcnt==2000)                        //500hz和750hz方波各维持0.5s
  44.   {
  45.     tcnt=0;
  46.     if(flag==0)  
  47.       flag=~flag;  
  48.     else   
  49.       TR0=0;  
  50.   }
  51.   if(flag==0)  //输出750hz方波
  52.   {
  53.     t7hz++;
  54.     if(t7hz==3)
  55.     {
  56.       t7hz=0;
  57.       BELL_OUT=~BELL_OUT;         //喇叭信号端口取反
  58.     }
  59.   }
  60.   else        //输出500hz方波
  61.   {
  62.     t5hz++;
  63.     if(t5hz==4)
  64.     {
  65.       t5hz=0;
  66.       BELL_OUT=~BELL_OUT;
  67.     }
  68.   }
  69. }
  70. void int0(void)        interrupt 0          //外部中断0中断入口,按键触发
  71. {
  72.   TR0=1;                             //开启定时器0,实现方波的输出
  73. }
复制代码

所有资料51hei提供下载:
电子门铃.zip (14.79 KB, 下载次数: 34)


评分

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

查看全部评分

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

使用道具 举报

沙发
ID:866557 发表于 2020-12-23 20:59 | 只看该作者
大佬,我下载后,用Proteus画了个图,不会响咋回事啊
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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