📄 ht9200a.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 + -