0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机制作“ 叮咚”门铃,AT89S51 DOORBELL

454398 2018-09-20 18:31 次阅读

单片机制作“ 叮咚”门铃,AT89S51 DOORBELL

关键字:AT89S51,门铃电路

1.实验任务
当按下开关SP1,AT89S51单片机产生“叮咚”声从P1.0端口输出到LM386,经过放大之后送入喇叭。
3.系统板上硬件连线
(1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;
(2.在“音频放大模块”区域中的SPK OUT端口上接上一个8欧或者是16欧的喇叭;
(3.把“单片机系统”区域中的P3.7/RD端口用导线连接到“独立式键盘”区域中的SP1端口上;
4.程序设计方法
(1.我们用单片机实定时/计数器T0来产生700HZ和500HZ的频率,根据定时/计数器T0,我们取定时250us,因此,700HZ的频率要经过3次250us的定时,而500HZ的频率要经过4次250us的定时。
(2.在设计过程,只有当按下SP1之后,才启动T0开始工作,当T0工作完毕,回到最初状态。
(3.“叮”和“咚”声音各占用0.5秒,因此定时/计数器T0要完成0.5秒的定时,对于以250us为基准定时2000次才可以。
6.汇编源程序
T5HZEQU 30H
T7HZEQU 31H
T05SAEQU 32H
T05SBEQU 33H
FLAGBIT 00H
STOPBIT 01H
SP1BIT P3.7
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START:MOV TMOD,#02H
MOV TH0,#06H
MOV TL0,#06H
SETB ET0
SETB EA
NSP:JB SP1,NSP
LCALL DELY10MS
JB SP1,NSP
SETB TR0
MOV T5HZ,#00H
MOV T7HZ,#00H
MOV T05SA,#00H
MOV T05SB,#00H
CLR FLAG
CLR STOP
JNB STOP,$
LJMP NSP
DELY10MS:MOV R6,#20
D1:MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
INT_T0:INC T05SA
MOV A,T05SA
CJNE A,#100,NEXT
MOV T05SA,#00H
INC T05SB
MOV A,T05SB
CJNE A,#20,NEXT
MOV T05SB,#00H
JB FLAG,STP
CPL FLAG
LJMP NEXT
STP:SETB STOP
CLR TR0
LJMP DONE
NEXT:JB FLAG,S5HZ
INC T7HZ
MOV A,T7HZ
CJNE A,#03H,DONE
MOV T7HZ,#00H
CPL P1.0
LJMP DONE
S5HZ:INC T5HZ
MOV A,T5HZ
CJNE A,#04H,DONE
MOV T5HZ,#00H
CPL P1.0
LJMP DONE
DONE:RETI
END
7.C语言源程序
#include
unsigned char t5hz;
unsigned char t7hz;
unsigned int tcnt;
bit stop;
bit flag;
void main(void)
{
unsigned char i,j;
TMOD=0x02;
TH0=0x06;
TL0=0x06;
ET0=1;
EA=1;
while(1)
{
if(P3_7==0)
{
for(i=10;i>0;i--)
for(j=248;j>0;j--);
if(P3_7==0)
{
t5hz=0;
t7hz=0;
tcnt=0;
flag=0;
stop=0;
TR0=1;
while(stop==0);
}
}
}
}
void t0(void) interrupt 1 using 0
{
tcnt++;
if(tcnt==2000)
{
tcnt=0;
if(flag==0)
{
flag=~flag;
}
else
{
stop=1;
TR0=0;
}
}
if(flag==0)
{
t7hz++;
if(t7hz==3)
{
t7hz=0;
P1_0=~P1_0;
}
}
else
{
t5hz++;
if(t5hz==4)
{
t5hz=0;
P1_0=~P1_0;
}
}
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏

    评论

    相关推荐

    基于51单片机的7人多数投票表决器设计

    设计编号:P13 1.主要功能:           基于51单片机AT89C51/52(与AT89S51/52、AT89C51/52、S
    的头像 发表于 11-09 09:48 351次阅读
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的7人多数投票表决器设计

    单片机的中断机制

    单片机的中断机制是一种重要的处理方式,它允许单片机在执行主程序的过程中,能够暂停当前任务,转而处理外部或内部紧急事件。这种机制极大地提高了系统的响应速度和处理能力,使得
    的头像 发表于 10-17 18:03 366次阅读

    51单片机驱动

    电子发烧友网站提供《51单片机驱动.exe》资料免费下载
    发表于 09-20 11:46 3次下载

    基于51单片机数字时钟闹钟设计

    本资源内容概要:       这是基于51单片机数字时钟闹钟设计包含了PDF版本电路图、C语言程序源代码(keil软件打开)、proteus仿真。本资源适合人群:      单片机爱好者、电子
    发表于 06-25 10:17 0次下载

    基于51单片机时钟温度显示设计

    本资源内容概要:       这是基于51单片机时钟温度显示设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、proteus仿真图。本资源适合人群
    发表于 06-25 10:17 0次下载

    基于单片机多功能洗衣机控制

    需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是
    发表于 03-18 10:13 592次阅读
    基于<b class='flag-5'>单片机</b>多功能洗衣机控制

    51单片机流水灯制作

    ​流水灯是学习51单片机的一个基本项目,是我们对单片机IO口输出认识的基本项目。当然学会了花样流水灯也很好玩。 下面就分享一种51单片机流水
    的头像 发表于 02-26 10:06 1494次阅读
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>流水灯<b class='flag-5'>制作</b>

    一个节电的叮咚门铃电路

    这个电路不仅仅是一个简单的双音门铃。相反,它利用包络调制来产生真实的“叮咚”铃声。
    的头像 发表于 02-25 14:28 855次阅读
    一个节电的<b class='flag-5'>叮咚</b><b class='flag-5'>门铃</b>电路

    AT89S51中文资料介绍

    电子发烧友网站提供《AT89S51中文资料介绍.pdf》资料免费下载
    发表于 02-20 09:24 7次下载

    基于51单片机的红外报警器的设计与制作

    电子发烧友网站提供《基于51单片机的红外报警器的设计与制作.rar》资料免费下载
    发表于 01-12 09:18 23次下载

    基于51单片机的红外报警器的设计与制作

    电子发烧友网站提供《基于51单片机的红外报警器的设计与制作.rar》资料免费下载
    发表于 01-03 11:32 11次下载

    基于51单片机的电机控制设计

    电子发烧友网站提供《基于51单片机的电机控制设计.rar》资料免费下载
    发表于 01-03 11:19 4次下载

    stc51单片机怎么烧录

    烧录STC51单片机是一项常见的操作,下面将详细介绍如何进行烧录以及所需的步骤和工具。本文将按照如下顺序进行详解: STC51单片机简介 硬件烧录工具介绍 硬件烧录步骤 软件烧录工具介
    的头像 发表于 01-02 17:41 3067次阅读

    基于51单片机的电子闹钟设计

    基于51单片机的电子闹钟设计(实物)
    发表于 01-02 09:58 7次下载

    AT89S52单片机片内串行口的工作原理

    电子发烧友网站提供《AT89S52单片机片内串行口的工作原理.ppt》资料免费下载
    发表于 12-15 09:07 0次下载