共2条
1/1 1 跳转至页
我想找来电显示接收程序的例子.

问
我在用9030\9032\88E39等这些芯片来作为来电显示解码并用单片机接收来电号码时这些芯片的时序我看懂,不知怎样接收.
我想找一些用9030\9032\88E39等这些芯片来作为来电显示解码并用单片机接收的实例程序.
无限感激!!
无限感激!! 答 1: 是单数据格式的!是单数据格式的! 答 2: 不好意思,我自已来顶一顶. 答 3: 我自已找到了一个例子,但不明白.现用AT89s52做语音项目。因Mcu串口与上位机实时通讯。只好模拟串口来捕捉用户电话号码。其来电显示+模拟串口详细过程如下:
/********************************************************************/
电话号码格式:(单数据消息格式)
00 00 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 D5 04 14 30 38 30 35 31 30 33 33 30 37 35 35 32 38 31 35 38 37 33 34 DD 50 01
04H------- 表示单数据消息格式;
14H------- 表示后跟有效数据个数;(20个)
30 38 30 35 31 30 33 33 --表示主叫来电的时间--8月5日10点33分;
DDH --表示效验位,是从04(包含04)到DD(不包含)所有字符按256 的模求和取补
(04h+14h+....+37h+33h+34h=423h=1059(dec)-- 求和
1059-256x4=35(dec)
256-35=221(dec)=DDh---------------------- 取补)
/*******************************************************************/
电话号码通过HD9032芯片第一脚输出,接Mcu P3.2脚,用中断0检测起始位,然后通过定时器0来判断数据。每次都能正确接收电话号码。
通讯格式为:1200bps ,8 ,1 晶体:11.0592M
程序如下:
sbit HT_out=P3^2;
void service_int0()interrupt 0 using 3
{
EX0=0;
TH0=0xFE; /*检测数据位的中间值*/
TL0=0x80;
TF0=0;
TR0=1;
IT0=0;
ET0=1;
}
void timer0(void) interrupt 1 using 2
{
if(Time_flg) /*不用模拟串口时,做一秒定时用*/
{
TF0=0;
TH0=0x4C;
TL0=0x00;
Time_num++;
if(Time_num>19)
{
Time_num=0;
Time_sec++;
}
}
else /*用模拟串口接收数据处理*/
{
TF0=0;
TH0=0xFD;
TL0=0x00;
switch(RxdCnt++)
{
case 0:
if(HT_out==1)
RxdCnt=0;
break;
default:
if(RxdCnt>9){ RxdCnt=0;break;}
RSBUF>>=1;
RSBUF|=HT_out?0x80:0;
break;
case 9:
RxdCnt=0;
if(HT_out==0)
break;
if(RSBUF==0x55&&Tel_num==0)
aa++;
if(aa>20&&RSBUF==0x04&&Tel_num==0)
Tel_flg=1;
if(Tel_flg&&RSBUF!=0x04)
Tel[Tel_num++]=RSBUF; /*判断有用的数据后保存到数组*/
if(Tel_num<=(Tel[0]+1))
{
EX0=1;
TR0=0;
}
else /*接收完全部有用数据后关闭INT0和TIME0*/
{
EX0=0;
TR0=0;
}
}
}
}
这样的程序是用9032C 还是用9032D啦?
这处程序的变量:Time_flg HT_out RSBUF Tel_num Tel_flg 是什么东东啦?
我真的看不明白.
我想找一些用9030\9032\88E39等这些芯片来作为来电显示解码并用单片机接收的实例程序.
无限感激!!
无限感激!! 答 1: 是单数据格式的!是单数据格式的! 答 2: 不好意思,我自已来顶一顶. 答 3: 我自已找到了一个例子,但不明白.现用AT89s52做语音项目。因Mcu串口与上位机实时通讯。只好模拟串口来捕捉用户电话号码。其来电显示+模拟串口详细过程如下:
/********************************************************************/
电话号码格式:(单数据消息格式)
00 00 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 D5 04 14 30 38 30 35 31 30 33 33 30 37 35 35 32 38 31 35 38 37 33 34 DD 50 01
04H------- 表示单数据消息格式;
14H------- 表示后跟有效数据个数;(20个)
30 38 30 35 31 30 33 33 --表示主叫来电的时间--8月5日10点33分;
DDH --表示效验位,是从04(包含04)到DD(不包含)所有字符按256 的模求和取补
(04h+14h+....+37h+33h+34h=423h=1059(dec)-- 求和
1059-256x4=35(dec)
256-35=221(dec)=DDh---------------------- 取补)
/*******************************************************************/
电话号码通过HD9032芯片第一脚输出,接Mcu P3.2脚,用中断0检测起始位,然后通过定时器0来判断数据。每次都能正确接收电话号码。
通讯格式为:1200bps ,8 ,1 晶体:11.0592M
程序如下:
sbit HT_out=P3^2;
void service_int0()interrupt 0 using 3
{
EX0=0;
TH0=0xFE; /*检测数据位的中间值*/
TL0=0x80;
TF0=0;
TR0=1;
IT0=0;
ET0=1;
}
void timer0(void) interrupt 1 using 2
{
if(Time_flg) /*不用模拟串口时,做一秒定时用*/
{
TF0=0;
TH0=0x4C;
TL0=0x00;
Time_num++;
if(Time_num>19)
{
Time_num=0;
Time_sec++;
}
}
else /*用模拟串口接收数据处理*/
{
TF0=0;
TH0=0xFD;
TL0=0x00;
switch(RxdCnt++)
{
case 0:
if(HT_out==1)
RxdCnt=0;
break;
default:
if(RxdCnt>9){ RxdCnt=0;break;}
RSBUF>>=1;
RSBUF|=HT_out?0x80:0;
break;
case 9:
RxdCnt=0;
if(HT_out==0)
break;
if(RSBUF==0x55&&Tel_num==0)
aa++;
if(aa>20&&RSBUF==0x04&&Tel_num==0)
Tel_flg=1;
if(Tel_flg&&RSBUF!=0x04)
Tel[Tel_num++]=RSBUF; /*判断有用的数据后保存到数组*/
if(Tel_num<=(Tel[0]+1))
{
EX0=1;
TR0=0;
}
else /*接收完全部有用数据后关闭INT0和TIME0*/
{
EX0=0;
TR0=0;
}
}
}
}
这样的程序是用9032C 还是用9032D啦?
这处程序的变量:Time_flg HT_out RSBUF Tel_num Tel_flg 是什么东东啦?
我真的看不明白.
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
电流检测模块MAX4080S被打赏10分 | |
【我踩过的那些坑】calloc和malloc错误使用导致跑飞问题排查被打赏50分 | |
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 |