资源描述:
《51单片机通过按键控制蜂鸣器发生详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用文档单片机开发报告院系:电子工程学院专业:自动化班级:自动化1401学号:201405060118姓名:赵越指导老师:刘星光文案大全实用文档2018年01月04日一.系统任务按键控制蜂鸣器发声二.电路原理图三.程序设计内容“叮咚”电子门铃实验程序:常见的家用电子门铃在有客人来访时候,如果按压门铃按钮时,室内会发出“叮咚”声音,本实验程序模拟电子门铃的发音,当我们按压实验板上的K1按钮时候,蜂鸣器发出“叮咚”音乐声,是一个比较实用的程序。文案大全实用文档使用无源蜂鸣器输出7个基本音阶声音是由物体振动所产
2、生的。只是由于物体的材料以及振幅、频率不同,而产生不同的声音。声音的响度是由振幅决定的,而音调则是由频率决定的,那么我们只需要控制物体振动的频率,就可以发出固定的声调。五.汇编程序ORG0000HAJMPSTARTORG000BHINC20H;中断服务,中断计数器加1MOVTH0,#0D8HMOVTL0,#0F0H12M晶振,形成10毫秒中断RETIORG001BHLJMPINTT1;跳转到T1中断服务程序START:MOVDPTR,#00H;初始化程序文案大全实用文档MOVA,#00HOBUF1EQU3
3、0HOBUF2EQU31HOBUF3EQU32HOBUF4EQU33HFLAGBBIT00HSTOPBBIT01HMOVSP,#50HMOVTH0,#0D8HMOVTL0,#0F0HMOVTMOD,#21HMOVTH1,#09HMOVTL1,#09HMOVIE,#8AHAJMPLOOPLOOP:JNBP3.2,MUSIC0JNBP3.1,MAIN文案大全实用文档AJMPLOOPMAIN:JBP3.1,MAIN;检测p3.1按钮LCALLYS10M;延时去抖动JBP3.1,MAINSETBTR1;按钮有效M
4、OVOBUF1,#00HMOVOBUF2,#00HMOVOBUF3,#00HMOVOBUF4,#00HCLRFLAGBCLRSTOPBJNBSTOPB,$AJMPSTART;发出“叮咚”完毕,返回重新检测按钮YS10M:;10ms延时子程序MOVR6,#20D1:MOVR7,#100文案大全实用文档DJNZR7,$DJNZR6,D1RETTING:AJMPSTARTINTT1:;定时器T1中断服务程序INCOBUF3;中断服务程序中发出一声“叮咚”响声MOVA,OBUF3CJNEA,#100,NEXTMO
5、VOBUF3,#00HINCOBUF4MOVA,OBUF4CJNEA,#20,NEXTMOVOBUF4,#00HJBFLAGB,PGSTPCPLFLAGBAJMPNEXTPGSTP:SETBSTOPB文案大全实用文档CLRTR1LJMPINT0RETNEXT:JBFLAGB,SOU2INCOBUF2MOVA,OBUF2CJNEA,#04H,INT0RETMOVOBUF2,#00HCPLP1.5LJMPINT0RETSOU2:INCOBUF1MOVA,OBUF1CJNEA,#05H,INT0RETMOVOB
6、UF1,#00HCPLP1.5INT0RET:RETI文案大全实用文档MUSIC0:JBp3.2,MUSIC0LCALLYS10MJBp3.2,MUSIC0NOPMOVDPTR,#DAT表头地址送DPTRMOV20H,#00H;中断计数器清0MOVB,#00H;表序号清0MAIN2:JNBP3.3,TINGCLRAMOVCA,@A+DPTR;查表取代码JZEND0;是00H,则结束CJNEA,#0FFH,MUSIC5LJMPMUSIC3MUSIC5:NOPMOVR6,AINCDPTRMOVA,B文案大全实
7、用文档MOVCA,@A+DPTR;取节拍代码送R7MOVR7,ASETBTR0;启动计数MUSIC2:NOPCPLP1.5MOVA,R6MOVR3,ALCALLDELMOVA,R7CJNEA,20H,MUSIC2;中断计数器(20H)=R7否?;不等,则继续循环MOV20H,#00H;等于,则取下一代码INCDPTRINCBLJMPMAIN2MUSIC3:;休止100毫秒NOP文案大全实用文档CLRTR0MOVR2,#0DHMUSIC4:NOPMOVR3,#0FFHLCALLDELDJNZR2,MUSIC
8、4INCDPTRLJMPMAIN2END0:NOPMOVR2,#0FFH;歌曲结束,延时MUSIC6:MOVR3,#00HLCALLDELDJNZR2,MUSIC6CLRTR0LJMPLOOP文案大全实用文档DEL:NOPDEL3:MOVR4,#03HDEL4:NOPDJNZR4,DEL4NOPDJNZR3,DEL3RETDENG1:MOVR3,#64HDJNZR3,$AJMPMAINDAT:DB30h,30h,26h,26h