>
首页 » 技术文章 » 报警产生器-课程设计

报警产生器-课程设计

作者:  时间:2008-08-15 10:41  来源:嵌入式技术网应用论文

您可以添加到网摘 让更多人关注此文章:

    

1. 实验任务


用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。


2. 电路原理图


3. 系统板上硬件连线


1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;


2.在“音频放大模块”区域中的SPK OUT端口上接上一个8欧的或者是16欧的喇叭;


3.把“单片机系统”区域中的P1.7/RD端口用导线连接到“四路拨动开关”区域中的K1端口上;


4. 程序设计内容


                  信号产生的方法:500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号电平每500us变反1次;


5. 程序框图

 

 


6. 汇编源程序


FLAG          BIT 00H


         ORG 00H


START:             JB P1.7,START


         JNB FLAG,NEXT


         MOV R2,#200


DV:      CPL P1.0


         LCALL DELY500


         LCALL DELY500


         DJNZ R2,DV


         CPL FLAG


NEXT:              MOV R2,#200


DV1:          CPL P1.0


         LCALL DELY500


         DJNZ R2,DV1


         CPL FLAG


         SJMP START


DELY500: MOV R7,#250


LOOP:              NOP


         DJNZ R7,LOOP


         RET


         END


7. C语言源程序


#include <AT89X51.H>


#include <INTRINS.H>


 


bit flag;


unsigned char count;


 


void dely500(void)


{


  unsigned char i;


  for(i=250;i>0;i--)


    {


      _nop_();


    }


}


 


void main(void)


{


  while(1)


    {


      if(P1_7==0)


        {


          for(count=200;count>0;count--)


            {


              P1_0=~P1_0;


              dely500();


            }


          for(count=200;count>0;count--)


            {


              P1_0=~P1_0;


              dely500();


              dely500();


            }


        }


    }


}

 

 


 

 

相关推荐

音频信号采集与AGC算法的DSP实现

音频信号  AGC  DSP  2009-04-22

高性价比的安防系统语音方案

采用短信方式的汽车防盗报警系统设计

报警  短信  GSM  传感器  2009-03-30

基于TMS320VC5402的音频信号采集与处理系统

TMS320VC5402  音频信号  采集  2009-02-23

基于单片机的瓦斯报警器设计

瓦斯  报警  单片机  2009-02-10

基于ARM的汽车防盗报警系统设计

ARM  汽车防盗  报警  2009-02-10
在线研讨会
焦点