mshd.net
当前位置:首页 >> 51单片机串口发送问题 >>

51单片机串口发送问题

void Uart_Init() { TMOD|=0x20; SCON=0x40; PCON|=0x80; TH1=0xf3; TL1=0xf3; TR1=1; ES=1; EA=1; } void Send_Byte(unsigned char dat) { SBUF=dat; while(!TI); TI=0; } void main() { Uart_Init();//只需要初始一次 while(1) { if(P37==0&&S...

不知道你的发送值范围如果是小于16的数,那么修改如下: void send_com(unsigned char x) { SBUF=x+128; while(TI==0); TI=0; }

可以不中断发数据,当然如果你需要的话,打开中断开关,然后中断函数里面处理

程序采用了查询式发送,for(i=0;i

要关闭串口,只需要将SCON的REN置0就行了。这样就不会接收串口信息了。

51单片机是通过全双工串行通信口与外设通信的,要发送数据需要应用于与外设规约的通信协议实施。 1)规约发送4个字节来将一个单精度浮点数传递。接收方按此协议处理接收数据。 2)可规约两个字节的有符号整数来传递一个小数的100倍,接收方接收...

#include void InitUART(void) { TMOD = 0x20; SCON = 0x50; TH1 = 0xFD; TL1 = TH1; PCON = 0x00; EA = 1; ES = 1; TR1 = 1; } void main(void) { InitUART(); } void UARTInterrupt(void) interrupt 4 { if(RI) { RI = 0; //add your code her...

SBUF收到数据RI会置位的 电脑发送数据是一个字节接着一个字节,两个字节之间会有延时,所以收到数据你需要尽快处理,不然可能会被新的数据覆盖 串口中断处理可以将SBUF存入数组,清零Ri,4个数据都收到之后再统一处理

/********************串口2收到一个字符中断子函数 ************************/ void uart2_get_char(void) interrupt 8 { …… …… }//这里,好像,多了一个(右)大括号。 }

在程序中检测RI和TI,RI表示接收中断,TI表示发送中断,如果只要在接收中断时运行,可以如下设置: ...... JNB RI,EXIT ...... CLR RI ...... EXIT: RETI

网站首页 | 网站地图
All rights reserved Powered by www.mshd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com