jkts.net
当前位置:首页 >> 51单片机用串口跟pC通信进行收发数据 >>

51单片机用串口跟pC通信进行收发数据

//代码来自 单片机小精灵v1.3//波特率9600 11.0592晶振 方式2#include void InitUART(void){ TMOD = 0x20; SCON = 0x50; TH1 = 0xFD; TL1 = TH1; PCON = 0x00; EA = 1; ES = 1; TR1 = 1;}void SendOneByte(unsigned char c){ SBUF = c; while(!T...

你这里的难点在于"只发送一次",可以定义一个标志变量初始为0,当P1.1=0时且标志为0,向串口发送一个数据,并置该标志为1,即使P1.1依然为0也不会一直发送;当检测到P1.1=1时,置标志为0,以便下次再触发。其他依此类推。

用UART异步串行通信方式 51串行口有4种工作方式,在串行口的4种工作方式中,方式0主要用于扩展并行I/O口,方式1、2、3则主要用于串行通信。 PC机的串行接口为RS232形式的接口,其高低电平的规定与单片机所规定的TTL电平不同,所以单片机上也必须...

在PC端和单片机端均需要编写相对应的串行通信口程序,PC和单片机之间需要一个电压转换的IC,然后将PC的TXD、RXD与单片机的TXD、RXD交叉连接就行了。

有两种线,一种是RS232串口线,一种是USB-232线。

PC要监听通信数据,三者必须采用RS485总线,而PC需要安一个RS232转RS485的转换器才行,并且电脑只能处于接收状态,两个单片机用485总线互相通信。电脑端可以用串口调试助手软件就行。

1、PC端重新打开串口后数据发生变化,应该是PC端程序或者硬件的问题; 2、如果要实现收到指令后,开始发送,那么单片机端应该有一个收串口数据的过程。指令可以自己定义,比如5个0。检测到接受的数据中有匹配的指令后开始发送数据。

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

串行通信的波特率一般都取2400的整数倍。 PC机上串口的波特率也是按这个取值的。 如下图,这是超级终端的波特率取值。 而对于单片机,需要串口通信时,晶振频率通常取11.0592MHz,或者2倍。取这个值的目的就是计算出的串口通信的波特率误差几乎...

PL2303芯片直接就是ttl电平,无需转换,直接连接

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