现在用PIC16F876A单片机控制485通信,,实现我发什么(十六进制数)单片机返回什么,,C程序,, 20

RB4控制485使能接收发送端#include<pic.h>#include<pic16f876a.h>#defineucharunsignedchar#defineui... RB4控制485使能接收发送端
#include<pic.h>
#include<pic16f876a.h>
#define uchar unsigned char
#define uint unsigned int

uchar recdata;
/********延时程序********/
void Delay_ms(uint xms)
{
int i,j;
for(i=0;i<xms;i++)
{ for(j=0;j<71;j++) ; }
}
/********串口初始化函数********/
void initUSART()
{
SPBRG=51; //设置波特率为9600BPS
TXSTA=0X24; //使能串口发送,选择高速波特率
RCSTA=0X90; //使能串口工作,连续接收
RCIE=1; //使能接收中断
TXIE=0;
GIE=1; //开放全局中断
PEIE=1; //使能外部中断
}
/********主函数********/
void main()
{
TRISB=0X00;
initUSART();
while(1) //等待中断
{

PORTB=recdata;
}
Delay_ms(10);
}

/********中断函数********/
void interrupt usart(void)
{

if(RCIF) //判断是否为串口接收中断
{
RCIF=0;
recdata=RCREG; // 接收数据并存
TXREG=recdata; //把接收到的数据发送回去

}
}

485控制位用的是RB4,,现在的问题是只能返回RB4为1时的值,,另一半返不回来。。。。请指导一下。
展开
 我来答
一剑出血
高粉答主

2014-11-29 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.8亿
展开全部
“现在的问题是只能返回RB4为1时的值,,另一半返不回来”
RB4你作为485的发允许,可是又有PORTB=recdata;这么个操作。站在树枝上锯树枝,你就不怕摔死?
更多追问追答
追问
发送和接收都是RB4控制的。。。。导致这种能接收一半,,,你说咋办,,,,把程序改好给我,,,才采纳
追答
“你说咋办”
还我说咋办……原因都已经告诉你了,还看不懂?
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机的原理是比较复杂的,但是可以通过浅显易懂的语言来解释。单片机是一种集成电路芯片,通常包含处理器、存储器和各种输入输出(I/O)端口。处理器负责执行程序代码,并处理数据和指令;存储器用于存储程序代码和数据;输入输出端口用于与外部设备交互... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式