❶ 单片机串口通信过程
void output(void)
{if (flag==1)
flag=0;
ES=0;
SBUF=put;
while(!TI);
TI=0;
ES=1;
}
错误在于此:“SBUF=put;”,你是一直在让单片机串口发送put值(2),所以串口调试助手一直在接收数据。
改正的办法是:把这个output函数删去,我刚才用单片机开发板验证了,这样就能显示串口发送的数字了。
还有什么问题,可以Hi我。
❷ 怎么实现51单片机与电脑串口之间的通信
首先,单片机和微机通信的电气标准要一致,微机串口一般是RS232电气标准,所以要加电平转换芯片,大多用MAX232,一般单片机实验板上都提供这样的标准串口。
其次,要分别编写上位机和下位机软件程序,单片机程序参照例程、教科书进行编写;上位机微机可采用VB,组态软件,Labview等软件编写,一般若是简单的通信,上位机程序编写很简单,例如VB中学会使用mscomm控件,有VB最基础知识的一天就能学会。
最后,大可以没有单片机,没有MAX232,没有串行接口这些硬件就可以实现学习并掌握单片机与微机之间的串口通信。proteus可以仿真单片机,也是主流软件。另外,如今的笔记本电脑几乎都没有保留串口,而用USB接口取而代之,不过没关系,有了虚拟串口和串口调试助手,这些都解决了。你可以搜索一下虚拟串口,真的很不错的。
❸ 单片机串行通信
串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。
而在单片机中,有一个专门的串行口,用于异步通信方式(UART),与接收串行传输信息的外部设备相连,控制这个串行口的是两个寄存器,分别是状态寄存器和特殊功能寄存器。
状态寄存器(scon)
有八位(每位有相应的地址),用于定义串行口的工作方式和接收,发送的控制
工作方式
方式0:八位同步移位寄存器:有允许信号时,寄存器中的存交换数据的八位同时以固定的波特率移动;(较常用)
方式1:10位UART(波特率可变)
方式2:11位UART (波特率固定)
方式3:11位UART(珀特率由定时器T1控制可变)
波特率:串行通信中收发双方的数据传输率(即每秒传输多少数据)
特殊功能寄存器(pcon)
为了在51单片机上实现电源控制而附加的,功能有可以定义单片机得复位方式等。
❹ 单片机串口通信问题
P3=0xff的作用其实很简单,就是为了更好的完成“读--修改--写”这个过程,其实对于P3口是没有必要的,对于P0口这样做是应该的。
❺ 单片机怎么连接到串口,然后跟串口通信呢
单片机?是你 自己 设计的 还是 购买 的 产品?
成熟 的 产品 应该 配备 可以与 电脑直接连接的 串口
电脑 串口 == 单片机 串口
这样就可以 组成 一个 串口通信线路
电脑 上 用 串口 调试软件,单片机 上 用你自己设计的程序(也可以用 人家调试好 的程序)
这样 就可以 串口通信 了
建议 搜搜 网络文库,里面 文档 非常多
❻ 单片机串口通信程序
串口部分没有对,你好好看看串行口控制器SCON里面RI和TI的用法。TI=1不是启动发送,而是表示发送完毕。一般来说,发送一个数据,可以这样写:
voidSend_Char(charp)
{
SBUF=p;
while(!TI);
TI=0;
}
发送一串数据,假设是p[],那么程序代码可以这样写:
voidSend_Str(char*p)
{
chari=0;
while(p[i]!='