📄 ht9200拨号程序.c
字号:
#include <reg52.h>
#include<intrins.h>
#define uchar unsigned char // 0~255
#define uint unsigned int // 0~65535
sbit HT9200_DATA = P0^4;
sbit HT9200_CLK = P0^5;
sbit HT9200_CE = P2^5;
uchar code PhoneNum[]={1,3,5,1,0,2,4,0,9,0,7};
void delayms(uint t)
{
uchar i;
for(;t>0;t--)
for(i=0;i<200;i++);
}
void Ht9200SndByte(uchar num)
{//将num的低5位发送出去,先发低,后发高
uchar i;
for(i=0;i<5;i++)
{
HT9200_CLK=1; //下降沿发送数据
HT9200_DATA=0x01 & num; //取出第一位数据
HT9200_CLK=0; //发送数据
num >>=1; //右移一位
}
delayms(50); //延时让DTMF发出号码
}
void Ht9200(uchar *ip)
{//ip为电话号码的首个字节,以0xff为结束标志
uchar num
HT9200_CE=0;
delayms(10); //等待9200的晶振进入正常的工作状态,
while(*ip!=0xff)
{
if( *ip=='0' )
num = 0x0a;
else if( *ip=='*' )
num = 0x0b;
else if( *ip=='#' )
num = 0x0c;
else
num=*ip;
Ht9200SndByte(num); //发送出去
}
Ht9200SndByte(0xff); //发送结束标志
HT9200_CE=1;
}
main()
{
delayms(5000);
Ht9200(PhoneNum);
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -