51单片机通过按键控制蜂鸣器发生详解.docx

上传人:b****1 文档编号:765481 上传时间:2023-04-30 格式:DOCX 页数:12 大小:260.73KB
下载 相关 举报
51单片机通过按键控制蜂鸣器发生详解.docx_第1页
第1页 / 共12页
51单片机通过按键控制蜂鸣器发生详解.docx_第2页
第2页 / 共12页
51单片机通过按键控制蜂鸣器发生详解.docx_第3页
第3页 / 共12页
51单片机通过按键控制蜂鸣器发生详解.docx_第4页
第4页 / 共12页
51单片机通过按键控制蜂鸣器发生详解.docx_第5页
第5页 / 共12页
51单片机通过按键控制蜂鸣器发生详解.docx_第6页
第6页 / 共12页
51单片机通过按键控制蜂鸣器发生详解.docx_第7页
第7页 / 共12页
51单片机通过按键控制蜂鸣器发生详解.docx_第8页
第8页 / 共12页
51单片机通过按键控制蜂鸣器发生详解.docx_第9页
第9页 / 共12页
51单片机通过按键控制蜂鸣器发生详解.docx_第10页
第10页 / 共12页
51单片机通过按键控制蜂鸣器发生详解.docx_第11页
第11页 / 共12页
51单片机通过按键控制蜂鸣器发生详解.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

51单片机通过按键控制蜂鸣器发生详解.docx

《51单片机通过按键控制蜂鸣器发生详解.docx》由会员分享,可在线阅读,更多相关《51单片机通过按键控制蜂鸣器发生详解.docx(12页珍藏版)》请在冰点文库上搜索。

51单片机通过按键控制蜂鸣器发生详解.docx

51单片机通过按键控制蜂鸣器发生详解

单片机开发报告

 

院系:

电子工程学院

专业:

自动化

班级:

自动化1401

学号:

201405060118

姓名:

赵越

指导老师:

刘星光

 

2018年01月04日

 

一.系统任务

按键控制蜂鸣器发声

二.电路原理图

三.程序设计内容

“叮咚”电子门铃实验程序:

常见的家用电子门铃在有客人来访时候,如果按压门铃按钮时,室内会发出“叮咚”声音,本实验程序模拟电子门铃的发音,当我们按压实验板上的K1按钮时候,蜂鸣器发出“叮咚”音乐声,是一个比较实用的程序。

使用无源蜂鸣器输出7个基本音阶

声音是由物体振动所产生的。

只是由于物体的材料以及振幅、频率不同,而产生不同的声音。

声音的响度是由振幅决定的,而音调则是由频率决定的,那么我们只需要控制物体振动的频率,就可以发出固定的声调。

 

五.汇编程序

ORG0000H

AJMPSTART

ORG000BH

INC20H;中断服务,中断计数器加1

MOVTH0,#0D8H

MOVTL0,#0F0H12M晶振,形成10毫秒中断

RETI

ORG001BH

LJMPINTT1;跳转到T1中断服务程序

START:

MOVDPTR,#00H;初始化程序

MOVA,#00H

OBUF1EQU30H

OBUF2EQU31H

OBUF3EQU32H

OBUF4EQU33H

FLAGBBIT00H

STOPBBIT01H

MOVSP,#50H

MOVTH0,#0D8H

MOVTL0,#0F0H

MOVTMOD,#21H

MOVTH1,#09H

MOVTL1,#09H

MOVIE,#8AH

AJMPLOOP

LOOP:

JNBP3.2,MUSIC0

JNBP3.1,MAIN

AJMPLOOP

MAIN:

JBP3.1,MAIN;检测p3.1按钮

LCALLYS10M;延时去抖动

JBP3.1,MAIN

SETBTR1;按钮有效

MOVOBUF1,#00H

MOVOBUF2,#00H

MOVOBUF3,#00H

MOVOBUF4,#00H

CLRFLAGB

CLRSTOPB

JNBSTOPB,$

AJMPSTART;发出“叮咚”完毕,返回重新检测按钮

YS10M:

;10ms延时子程序

MOVR6,#20

D1:

MOVR7,#100

DJNZR7,$

DJNZR6,D1

RET

TING:

AJMPSTART

INTT1:

;定时器T1中断服务程序

INCOBUF3;中断服务程序中发出一声“叮咚”响声

MOVA,OBUF3

CJNEA,#100,NEXT

MOVOBUF3,#00H

INCOBUF4

MOVA,OBUF4

CJNEA,#20,NEXT

MOVOBUF4,#00H

JBFLAGB,PGSTP

CPLFLAGB

AJMPNEXT

PGSTP:

SETBSTOPB

CLRTR1

LJMPINT0RET

NEXT:

JBFLAGB,SOU2

INCOBUF2

MOVA,OBUF2

CJNEA,#04H,INT0RET

MOVOBUF2,#00H

CPLP1.5

LJMPINT0RET

SOU2:

INCOBUF1

MOVA,OBUF1

CJNEA,#05H,INT0RET

MOVOBUF1,#00H

CPLP1.5

INT0RET:

RETI

MUSIC0:

JBp3.2,MUSIC0

LCALLYS10M

JBp3.2,MUSIC0

NOP

MOVDPTR,#DAT表头地址送DPTR

MOV20H,#00H;中断计数器清0

MOVB,#00H;表序号清0

MAIN2:

JNBP3.3,TING

CLRA

MOVCA,@A+DPTR;查表取代码

JZEND0;是00H,则结束

CJNEA,#0FFH,MUSIC5

LJMPMUSIC3

MUSIC5:

NOP

MOVR6,A

INCDPTR

MOVA,B

MOVCA,@A+DPTR;取节拍代码送R7

MOVR7,A

SETBTR0;启动计数

MUSIC2:

NOP

CPLP1.5

MOVA,R6

MOVR3,A

LCALLDEL

MOVA,R7

CJNEA,20H,MUSIC2;中断计数器(20H)=R7否?

;不等,则继续循环

MOV20H,#00H;等于,则取下一代码

INCDPTR

INCB

LJMPMAIN2

MUSIC3:

;休止100毫秒

NOP

CLRTR0

MOVR2,#0DH

MUSIC4:

NOP

MOVR3,#0FFH

LCALLDEL

DJNZR2,MUSIC4

INCDPTR

LJMPMAIN2

END0:

NOP

MOVR2,#0FFH;歌曲结束,延时

MUSIC6:

MOVR3,#00H

LCALLDEL

DJNZR2,MUSIC6

CLRTR0

LJMPLOOP

DEL:

NOP

DEL3:

MOVR4,#03H

DEL4:

NOP

DJNZR4,DEL4

NOP

DJNZR3,DEL3

RET

DENG1:

MOVR3,#64H

DJNZR3,$

AJMPMAIN

DAT:

DB30h,30h,26h,26h,20h,20h,1ch,1ch,1ah,1ah,18h,18h,00h

END

六、程序下载及调试

步骤:

1.点击translate按钮预编译

2.点击build按钮编译

3.

点击rebuild按钮编译所有目标

4.打开普中烧录软件

5.点击程序下载

四.程序流程图

No

Yes

中断

中断

Yes

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2