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

📄 ht9200a.c

📁 用HT7921解码的DTMF信号程序 很实用的 单片机为AVR单片机
💻 C
字号:
#include"MEGA.h"

#define pDTMF_DATA_sbi sbi(PORTB,4);
#define pDTMF_DATA_cbi cbi(PORTB,4);
#define pDTMF_CLK_sbi sbi(PORTB,5);
#define pDTMF_CLK_cbi cbi(PORTB,5);
#define pDTMF_CE1_sbi sbi(PORTB,0);
#define pDTMF_CE1_cbi cbi(PORTB,0);
#define pDTMF_CE2_sbi sbi(PORTD,7);
#define pDTMF_CE2_cbi cbi(PORTD,7);


const unsigned char Table_DTMF[] PROGMEM={0x0a,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0d,0x0e,0x0f,0x00,0x0b,0x0c};
//                						  0    1    2    3     4    5   6    7    8    9    A    B     C    D    *    # 



//-----------------------------
//    发送子程序
//    in 为要发送的数 0-15
//-----------------------------
void senddata_ht9200(unsigned char in)//发送一个字节数据程序
{    unsigned char i;

    pDTMF_CLK_sbi//CLK  = 1 ;
	_delay_ms(100);         //delay about 6 ms
	
	//in=pgm_read_byte(&Table_DTMF[in]);
	for(i=0;i<5;i++)
    {
        if((in & 0x01) == 1)
            pDTMF_DATA_sbi
        else    pDTMF_DATA_cbi
        in=in>>1;				
		nop();
		pDTMF_CLK_cbi
		nop();nop();nop();
        pDTMF_CLK_sbi
    }
	for(i=0;i<3;i++)
		_delay_ms(100);        //delay about 100 ms
}

void fnDTMFsend1(unsigned char i)
{
	pDTMF_CE1_cbi
	senddata_ht9200(i);
	pDTMF_CE1_sbi
}

void fnDTMFsend2(unsigned char i)
{
	pDTMF_CE2_cbi
	senddata_ht9200(i);
	pDTMF_CE2_sbi
}

⌨️ 快捷键说明

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