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

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

3天内不再提示

使用单片机实现门铃设计的资料和源代码说明

Wildesbeast 来源:单片机教程网 作者:h1654155169.2086 2020-05-05 11:44 次阅读

1.实验任务

当按下开关SP1,AT89S51单片机产生“叮咚”声从P1.0端口输出到LM386,经过放大之后送入喇叭。

2.电路原理

图4.19.1

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.汇编源程序

T5HZ EQU 30H

T7HZ EQU 31H

T05SA EQU 32H

T05SB EQU 33H

FLAG BIT 00H

STOP BIT 01H

SP1 BIT 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 《AT89X51.H》

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;

}

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6035

    文章

    44554

    浏览量

    634647
  • 计数器
    +关注

    关注

    32

    文章

    2256

    浏览量

    94477
  • 源代码
    +关注

    关注

    96

    文章

    2945

    浏览量

    66730
收藏 人收藏

    评论

    相关推荐

    51单片机应用实例及源代码

    51单片机应用实例及源代码
    发表于 12-16 12:15 107次下载
    51<b class='flag-5'>单片机</b>应用实例及<b class='flag-5'>源代码</b>

    使用单片机实现音乐播放器的源代码程序免费下载

    本文档的主要内容详细介绍的是使用单片机实现音乐播放器的源代码程序免费下载。基于52单片机源代码
    发表于 04-17 17:28 23次下载
    使用<b class='flag-5'>单片机</b><b class='flag-5'>实现</b>音乐播放器的<b class='flag-5'>源代码</b>程序免费下载

    STC12C5616AD单片机实现16位AD按键的电路图和源代码资料说明

    本文档的主要内容详细介绍的是STC12C5616AD单片机实现16位AD按键的电路图和源代码资料说明
    发表于 11-15 08:00 68次下载
    STC12C5616AD<b class='flag-5'>单片机</b><b class='flag-5'>实现</b>16位AD按键的电路图和<b class='flag-5'>源代码</b>等<b class='flag-5'>资料</b><b class='flag-5'>说明</b>

    使用单片机实现万年历的源代码资料合集免费下载

    本文档的主要内容详细介绍的是使用单片机实现万年历的源代码资料合集免费下载。
    发表于 03-12 08:00 11次下载
    使用<b class='flag-5'>单片机</b><b class='flag-5'>实现</b>万年历的<b class='flag-5'>源代码</b><b class='flag-5'>资料</b>合集免费下载

    使用51单片机和MFRC522实现RFID的源代码资料合集免费下载

    本文档的主要内容详细介绍的是使用51单片机和MFRC522实现RFID的源代码资料合集免费下载。
    发表于 03-30 08:00 48次下载
    使用51<b class='flag-5'>单片机</b>和MFRC522<b class='flag-5'>实现</b>RFID的<b class='flag-5'>源代码</b>和<b class='flag-5'>资料</b>合集免费下载

    使用51单片机实现温度上下限控制的源代码资料合集免费下载

    本文档的主要内容详细介绍的是使用51单片机实现温度上下限控制的源代码资料合集免费下载。
    发表于 05-29 15:14 57次下载
    使用51<b class='flag-5'>单片机</b><b class='flag-5'>实现</b>温度上下限控制的<b class='flag-5'>源代码</b><b class='flag-5'>资料</b>合集免费下载

    单片机闪烁灯设计的源代码

    本文档的主要内容详细介绍的是单片机闪烁灯设计的源代码
    的头像 发表于 06-07 11:33 7003次阅读

    使用单片机实现门铃设计的程序和资料说明

    本文档的主要内容详细介绍的是使用单片机实现门铃设计的程序和资料说明
    发表于 06-08 17:20 10次下载
    使用<b class='flag-5'>单片机</b><b class='flag-5'>实现</b><b class='flag-5'>门铃</b>设计的程序和<b class='flag-5'>资料</b><b class='flag-5'>说明</b>

    实现单片机实现篮球计分器的设计源代码免费下载

    本文档的主要内容详细介绍是的是实现单片机实现篮球计分器的设计源代码免费下载
    发表于 06-18 08:00 39次下载
    <b class='flag-5'>实现</b><b class='flag-5'>单片机</b><b class='flag-5'>实现</b>篮球计分器的设计<b class='flag-5'>源代码</b>免费下载

    使用STM32单片机实现无人机的源代码和原理图资料合集

    本文档的主要内容详细介绍的是使用STM32单片机实现无人机的源代码和原理图资料合集免费下载。
    发表于 07-30 08:00 99次下载
    使用STM32<b class='flag-5'>单片机</b><b class='flag-5'>实现</b>无人机的<b class='flag-5'>源代码</b>和原理图<b class='flag-5'>资料</b>合集

    使用单片机串口通信控制步进电机的源代码详细说明

    本文档的主要内容详细介绍的是使用单片机串口通信控制步进电机的源代码详细说明
    发表于 08-14 17:03 28次下载
    使用<b class='flag-5'>单片机</b>串口通信控制步进电机的<b class='flag-5'>源代码</b>详细<b class='flag-5'>说明</b>

    使用单片机实现跑马灯实验的资料和电路图与源代码免费下载

    本文档的主要内容详细介绍的是使用单片机实现跑马灯实验的资料和电路图与源代码免费下载。
    发表于 09-09 16:07 29次下载
    使用<b class='flag-5'>单片机</b><b class='flag-5'>实现</b>跑马灯实验的<b class='flag-5'>资料</b>和电路图与<b class='flag-5'>源代码</b>免费下载

    单片机遥控解码的源代码详细说明

    本文档的主要内容详细介绍的是单片机遥控解码的源代码详细说明
    的头像 发表于 09-26 11:07 3195次阅读

    51单片机实现流水灯的源代码

    本文档的主要内容详细介绍的是使用51单片机实现流水灯的源代码免费下载。
    发表于 11-13 17:28 55次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>实现</b>流水灯的<b class='flag-5'>源代码</b>

    轻松玩转AVR单片机C语言源代码

    轻松玩转AVR单片机C语言图书的配套源代码资料分享。
    发表于 04-20 16:17 17次下载