⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ht9200a.c

📁 HT9200双音频发生器的驱动程序
💻 C
字号:
/***********************************************************/
#include<reg51.h>
#include<intrins.h>

sbit HT9200_CE=P1^0;
sbit HT9200_DATA=P1^1;
sbit HT9200_CLK=P1^2;
#define delay_5us() _nop_();_nop_();_nop_();_nop_()
/***********************************************************
功能:延时
入口:延迟的毫秒数
出口:无
2006.10.02
************************************************************/
void delayMs(unsigned char secnd)
{
      unsigned int i;
      while(secnd--)
      {
            for(i=200;i>0;i--);
      }
}
/********************************************
功能:发送一位DTMF号码
入口:DTMF码数据
出口:无
全局变量:无
2006.10.02
*******************************************/
void sendHt9200Bit(unsigned char dtmfData)
{
            unsigned char count=5;
            if(dtmfData==0)dtmfData=10;
            HT9200_CE=0;      //选中HT9200
            delayMs(10);      //延时10ms,以使其起振
            while(count--)
            {              
                  if(dtmfData&0x01)
                  {
                        HT9200_DATA=1;
                  }
                  else
                  {
                        HT9200_DATA=0;
                  }
                  //delay_5us();      
                  HT9200_CLK=0;      
                  delay_5us();      
                  HT9200_CLK=1;      
                  dtmfData>>=1;      
            }
            delayMs(60);      //延时60ms,发送DTMF
            HT9200_CE=1;      //禁止HT9200      
}
/*-------------------------------------------------------------------
功能:发送一串DTMF号码
入口:1。发送数据的指针。2。号码长度
全局变量:无
2006.10.02
------------------------------------------------------------------------
*/
void sendDTMF(unsigned char *s,unsigned char l)
{
      while(l--)
      {
            sendHt9200Bit(*s);
            delayMs(50);      //延时50msDTMF间隔
            s++;
      }
}

void main(void)
{while(1)
      {unsigned char data haoma[]={1,3,4,7,4,4,6,9,8,0,6};//test
      sendDTMF(haoma,11);
      //HT9200_CE=1;      //禁止HT9200
      //delayMs(50);      //延时50msDTMF间隔
      while(1);
	 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -