您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于89c51单片机“叮咚”门铃
“叮咚”门铃1.实验任务当按下开关SP1,AT89S51单片机产生“叮咚”声从P1.0端口输出到LM386,经过放大之后送入喇叭。2.电路原理图图4.19.13.系统板上硬件连线(1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPKIN端口上;(2.在“音频放大模块”区域中的SPKOUT端口上接上一个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次才可以。5.程序框图主程序框图T0中断服务程序框图图4.19.26.汇编源程序T5HZEQU30HT7HZEQU31HT05SAEQU32HT05SBEQU33HFLAGBIT00HSTOPBIT01HSP1BITP3.7ORG00HLJMPSTARTORG0BHLJMPINT_T0START:MOVTMOD,#02HMOVTH0,#06HMOVTL0,#06HSETBET0SETBEANSP:JBSP1,NSPLCALLDELY10MSJBSP1,NSPSETBTR0MOVT5HZ,#00HMOVT7HZ,#00HMOVT05SA,#00HMOVT05SB,#00HCLRFLAGCLRSTOPJNBSTOP,$LJMPNSPDELY10MS:MOVR6,#20D1:MOVR7,#248DJNZR7,$DJNZR6,D1RETINT_T0:INCT05SAMOVA,T05SACJNEA,#100,NEXTMOVT05SA,#00HINCT05SBMOVA,T05SBCJNEA,#20,NEXTMOVT05SB,#00HJBFLAG,STPCPLFLAGLJMPNEXTSTP:SETBSTOPCLRTR0LJMPDONENEXT:JBFLAG,S5HZINCT7HZMOVA,T7HZCJNEA,#03H,DONEMOVT7HZ,#00HCPLP1.0LJMPDONES5HZ:INCT5HZMOVA,T5HZCJNEA,#04H,DONEMOVT5HZ,#00HCPLP1.0LJMPDONEDONE:RETIEND7.C语言源程序#includeAT89X51.Hunsignedchart5hz;unsignedchart7hz;unsignedinttcnt;bitstop;bitflag;voidmain(void){unsignedchari,j;TMOD=0x02;TH0=0x06;TL0=0x06;ET0=1;EA=1;while(1){if(P3_7==0){for(i=10;i0;i--)for(j=248;j0;j--);if(P3_7==0){t5hz=0;t7hz=0;tcnt=0;flag=0;stop=0;TR0=1;while(stop==0);}}}}voidt0(void)interrupt1using0{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;}}}
本文标题:基于89c51单片机“叮咚”门铃
链接地址:https://www.777doc.com/doc-2567962 .html