哥们帮我看看这个程序吧~模拟串口收发四个字节 接收正常 发送不正常~感激不尽~辛苦了~

哥们帮我看看这个程序吧~模拟串口收发四个字节 接收正常 发送不正常~感激不尽~辛苦了~,第1张

/

模拟串口试验

作者:lfc9861@163com QQ:77473067

CPU:89S52

晶振:110592MHz

功能:将模拟接收口数据通过模拟发送口发送,通信波特率9600Bps

建议:改成3线制方式,或者选择有中断引脚的CPU,这样可以大大减少CPU负担

测试用0x55,0x5A,0xA5,0xAA四个字节数据进行过实际验证

/

#include <reg52h>

sbit TxPin = P3^1; //设置发送引脚

sbit RxPin = P3^0; //设置接收引脚

unsigned char RxBuf[4]; //接收的数据缓冲区

unsigned char RxdP; //接收位置指针(字节)

unsigned char RxpTime; //接收间断时间监控

unsigned char RxEndBit; //接收完成标志

/

函数原型:void Delay(unsigned char Val)

函数作用:延时

输入参数:Val 延时参数

输出参数:无

注意:

/

void Delay(unsigned char Val)

{

while(Val--) ;

}

/

函数原型:void TxData(unsigned char Val)

函数作用:通过模拟串口引脚发送数据

输入参数:Val 待发送的数据(8Bit)

输出参数:无

注意: 发送中时序很关键,发送前必须关闭中断

/

void TxData(unsigned char Val)

{

unsigned char i;

TxPin = 0; //发送起动符

Delay(13);

for(i = 0x01; i != 0; i <<= 1)

{

if((Val & i) != 0)

{

TxPin = 1;

}

else

{

TxPin = 0;

}

Delay(12);

}

TxPin = 1; //发送停止符

Delay(14);

TxPin = 1;

}

/

函数原型:void Time0() interrupt 1

函数作用:定时监控接收引脚状态并接收数据

输入参数:无

输出参数:无

注意: 对CPU负担巨大

/

void Time0() interrupt 1

{ unsigned char i;

if(0 == RxPin) //找到启动符

{

TR0 = 0; //暂停定时器

RxBuf[RxdP] = 0;

Delay(15);

for(i = 0x01; i != 0 ; i <<= 1) //最低位开始接收

{

if(0 != RxPin)

{

RxBuf[RxdP] |= i;

}

Delay(12);

}

Delay(10);

RxpTime = 0;

TR0 = 1;

RxdP++;

if(RxdP >= 4)

{

RxdP = 0;

RxEndBit = 1; //接收完成,置标志

}

}

else

{

RxpTime++;

}

}

/

函数原型:unsigned int main(void)

函数作用:演示主程序

输入参数:无

输出参数:无

/

unsigned int main(void)

{

unsigned char i;

TxPin = 1; //发送端预置

RxEndBit = 0;

RxdP = 0;

TMOD = 0x02; //定时器初始化

TL0 = 0xd2; //48uS

TH0 = 0xd2;

ET0 = 1;

PT0 = 1;

TR0 = 1;

EA = 1;

while(1)

{

if(RxEndBit != 0) //有接收到完整数据

{

TR0 = 0;

for(i = 0; i < 4; i++) //将接收的4字节数据转发

{

TxData(RxBuf[i]);

}

RxEndBit = 0;

TR0 = 1;

}

else

{

if(RxpTime > 80)

{

RxpTime = 0;

RxdP = 0;

}

}

}

return 0;

}

先看看400里没插外线的端口有没有关掉(注意有没有单向线若有把单向线的端口也关了 试试看拨9能不能打出去 如果不行再601里看看分机等级都是不是1和405项是不是都打开 试试看拨9能不能打出去 还不行121里看看是几 是几就是拨几打外线 上面这些弄好肯定好

两种办法:

1、自己看安装手册及程式手册,自已动手。这个办法对于没接触过这个东西的人来说可能有一点难度。不过个人认为只要有心也不是什么难事。

2、找一家做这一行的公司,付一定的费用为你们安装。(网上找随便抓一大把)如果内部线路已经做好,相信安装调试收费也就300元左右。

以上就是关于哥们帮我看看这个程序吧~模拟串口收发四个字节 接收正常 发送不正常~感激不尽~辛苦了~全部的内容,包括:哥们帮我看看这个程序吧~模拟串口收发四个字节 接收正常 发送不正常~感激不尽~辛苦了~、松下电话交换机TDA600 分机号码设置了呼叫转移,内线拨入可以转到手机,但手机外线拨入时提示暂时无法接通、我这边有台松下KX-TDA600,公司闲置很久了,现在想用,但不知道怎么安装接线,能拍个图过来不等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9493035.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存