资源描述:
《基于89c51单片机“叮咚”门铃》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、“叮咚”门铃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,因此,
2、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_T0STAR
3、T:MOVTMOD,#02HMOVTH0,#06HMOVTL0,#06HSETBET0SETBEANSP:JBSP1,NSPLCALLDELY10MSJBSP1,NSPSETBTR0MOVT5HZ,#00HMOVT7HZ,#00HMOVT05SA,#00HMOVT05SB,#00HCLRFLAGCLRSTOPJNBSTOP,$LJMPNSPDELY10MS:MOVR6,#20D1:MOVR7,#248DJNZR7,$DJNZR6,D1RETINT_T0:INCT05SAMOVA,T05SACJNEA,#100,NEXTMOVT05SA,#00HINCT05SBMOVA,T05SBCJ
4、NEA,#20,NEXTMOVT05SB,#00HJBFLAG,STPCPLFLAGLJMPNEXTSTP:SETBSTOPCLRTR0LJMPDONENEXT:JBFLAG,S5HZINCT7HZMOVA,T7HZCJNEA,#03H,DONEMOVT7HZ,#00HCPLP1.0LJMPDONES5HZ:INCT5HZMOVA,T5HZCJNEA,#04H,DONEMOVT5HZ,#00HCPLP1.0LJMPDONEDONE:RETIEND7.C语言源程序#includeunsignedchart5hz;unsignedchart7hz;unsignedi
5、nttcnt;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;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);}}}}voidt0(void)interrupt1using0{tcnt++;if(tcnt==2000){tcnt=0;if(flag==0){fla
6、g=~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;}}}