社区
单片机/工控
帖子详情
51单片机串口通信是怎样测试起始位的
a091003040421
2012-05-03 01:47:37
有懂的人麻烦给我讲一下 顺便给我发一个双机通信的简单代码 谢谢!!
...全文
472
16
打赏
收藏
51单片机串口通信是怎样测试起始位的
有懂的人麻烦给我讲一下 顺便给我发一个双机通信的简单代码 谢谢!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
worldy
2012-05-06
打赏
举报
回复
单片机的T/R的起始位由SBUF自己管理,不用你管,只要打开通信,写sbuf既发送,接收中断后读sbuf即可
田子方
2012-05-06
打赏
举报
回复
默认情况下T线是高电位,1号方式下UART,当出现0时就意味着是起始位了,然后两个单片机根据设定好的波特率进行移位处理,当数据发送完成以后,T线又保持高电位了。好比1602,又好比18b20,,,起始位意味着要与default不同。
lenglengqingwa
2012-05-06
打赏
举报
回复
SBUF=a;发送
a=SBUF;接收
先设置 RX,TX等
woshi_ziyu
2012-05-06
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
这么说我在发送时直接将0xfe这个数据付给SBUF就可以输出了吗?不需要管起始位吗?(我用的是串口通信方式是1位起始位8位数据位1位截止位)引用 3 楼 的回复:
你只要设好好寄存器使能后往里面扔数据就可以啦
[/Quote]
对于单片机不需要关心起始位 属于硬件完成的 对于功能强大一些的 则可以通过读写相应寄存器的值来改变串口
如此美丽的你
2012-05-05
打赏
举报
回复
通过TX和RX控制器实现
aydf1
2012-05-04
打赏
举报
回复
串口是单片机自带的资源,直接用就行。用户只需要设置寄存器
yibin.cai
2012-05-04
打赏
举报
回复
串口是单片机自带的资源,直接用就行。用户只需要设置寄存器
nandou
2012-05-04
打赏
举报
回复
是的
[Quote=引用 5 楼 的回复:]
这么说我在发送时直接将0xfe这个数据付给SBUF就可以输出了吗?不需要管起始位吗?(我用的是串口通信方式是1位起始位8位数据位1位截止位)
引用 3 楼 的回复:
你只要设好好寄存器使能后往里面扔数据就可以啦
[/Quote]
a091003040421
2012-05-03
打赏
举报
回复
我想用A机发送代码然后送到B机由B机的LED灯显示出来 能弄好的我加分
a091003040421
2012-05-03
打赏
举报
回复
这是我写的发送的代码
#include <reg51.h>
void InitUART(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xCC;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;//启动定时器
}
void main(void)
{
InitUART();
while(1)
{
SBUF=0X00;
while(!TI)
TI=1;
}
}
这是接收机的代码你们看看有问题吗?
#include <reg52.h>
unsigned char a,flag=0;
void SendOneByte(unsigned char c);
void InitUART(void)
{
TMOD=0x20;
SCON=0x50;
TH1=0xCC;
TL1=TH1;
PCON=0x00;
EA=1;
ES=1;
TR1=1;
}
void main(void)
{
InitUART();
if(flag==1)
P1=a;
}
//接收
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
a=SBUF;
flag=1;
}
}
yoveldf
2012-05-03
打赏
举报
回复
you can try it
a091003040421
2012-05-03
打赏
举报
回复
这么说我在发送时直接将0xfe这个数据付给SBUF就可以输出了吗?不需要管起始位吗?(我用的是串口通信方式是1位起始位8位数据位1位截止位)[Quote=引用 3 楼 的回复:]
你只要设好好寄存器使能后往里面扔数据就可以啦
[/Quote]
dsoyy
2012-05-03
打赏
举报
回复
发送缓存寄存器,移位寄存器。
yoveldf
2012-05-03
打赏
举报
回复
你只要设好好寄存器使能后往里面扔数据就可以啦
a091003040421
2012-05-03
打赏
举报
回复
我想问的是单片机是怎样发送这个起始位的呢?例如我用A单片机的TXD发送给B机的RXD[Quote=引用 1 楼 的回复:]
硬件检测的
[/Quote]
net_friends
2012-05-03
打赏
举报
回复
硬件检测的
51单片机
IO口模拟串口通讯C源程序
下面给大家介绍一下
51单片机
IO口模拟串口通讯C源程序。
51单片机
三种模拟串口的设计方案解析
本文所说的模拟串口, 就是利用51的两个输入输出引脚如P1.0和P1.1,置1或0分别代表高低电平,也就是
串口通信
中所说的
位
,如
起始
位
用低电平,则将其置0,停止
位
为高电平,则将其置1,各种数据
位
和校验
位
则根据情况置1...
软件模拟串口全双工 UART,可实现单线双向半双工通信,带按键处理
用
51单片机
写的一个单线半双工的模拟
串口通信
程序,同时支持两线全双工,目前只做了1
位
起始
位
,1、1.5、2
位
起始
位
,没做校验。上一个版本的代码已经用在产品上了,这个版本的还没怎么用过,就拿了块板子验证了一下,...
单片机系统设计课程实验二单片机与PC机通信实验实验目.docx
单片机系统设计课程实验二
51单片机
与PC机通信实验 实验目的 熟悉
51单片机
串口功能控制,同时掌握ASCII码的编码方法、16进制数与BCD码之间的转换。 实验内容 设定单片机串口为工作模式1,波特率为9600,数据
位
8
位
,...
51单片机
串行口的工作方式解析
方式0是外接串行移
位
寄存器方式。工作时,数据从RXD串行地输入/输出,TXD输出...一帧为10
位
,1
位
起始
位
、8
位
数据
位
(先低后高)、1
位
停止
位
。波特率由T1或T2的溢出率确定。 在发送或接收到一帧数据后,硬件置TI=1或
单片机/工控
27,373
社区成员
28,771
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章