十一、串口通信的基本原理与应用

 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_20,color_FFFFFF,t_70,g_se,x_16

 通常用:SMOD = 0,0xfd

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_20,color_FFFFFF,t_70,g_se,x_16

 利用51单片机的串行接口上位机建立传输信道进行数据的收发。采用8位UART模式,即模式1,波特率为9600BPS。数据发送采用查询方式,数据接收采用中断方式。

系统上电初始化之后,单片机向上位机发送两个字节:0x5a和0xa5,然后等待接收上位机的数据,每接收到一个字节后,在该字节的基础上加1然后返回给上位机 。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_12,color_FFFFFF,t_70,g_se,x_16

 

中断号:

0     外部中断0:INT0

1     定时/计数器0:TF0

2     外部中断1:INT1

3     定时/计数器1:TF1

4     串口中断:R1/T1

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_20,color_FFFFFF,t_70,g_se,x_16watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6KGM5LiN5Zyw5LiK,size_20,color_FFFFFF,t_70,g_se,x_16

 代码:(发送不了数据?额。。。注意串口助手波特率9600)

#include "reg52.h"

sfr AUXR = 0x8e;//辅助寄存器

unsigned char urdat;

void InitUart()//串口初始化函数(串口中断)51芯片
{
//设置波特率	
	TMOD = 0x20;
	TH1 = 0xfd;
	TL1 = 0xfd;//查阅芯片手册:STC12C5A60S2
	TR1 = 1;//启动定时器
	
//定义串口工作方式	
	SCON = 0x50;
	AUXR = 0x00;
	
	ES = 1;//打开串口中断
	EA = 1;//打开总中断
}

void SendByte(unsigned char dat)//查询发送函数
{
	SBUF = dat;//将数据放进SBUF缓冲器
	while(TI == 0);//等待发送数据完成(未完成TI=0,0==0为真1,卡在此处死循环等待)
	TI = 0;//发送完成后,人工清零
}

void ServiceUart() interrupt 4 //接收的时候需要 串口中断服务函数
{
	if (RI == 1)//是否接收到一个完整的数据(串行接口接收完成中断标志位)
	{
		RI = 0;//接收完成后,需人工清零
		urdat = SBUF;//把接收到的数据读出来
		SendByte(urdat + 1);
	}
	
//	if (TI == 1)//是否发送完成(串行接口发送完成中断标志位)
//	{
//		
//	}
}

void main()
{
	InitUart();
	SendByte(0x5a);//发送数据
	SendByte(0xa5);
	while(1)
	{
		
	}
}

 

 

 

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1、软件说明 ecom串口助手是一款串口(RS232)调试软件。由我爱IC导航网(http://www.52ic.net/)工作室开发。 ecom串口助手支持常用的1200 ~ 921600bps波特率,能设置校验、数据位和停止位,能以ASCII码或十六进 制接收或发送任何数据或字符(包括中文),能发送任意大小的文本文件,可以任意设定自动发送周期, 并能将接收数据保存成文本文件。 是工程师调试单片机串口的好助手工具。 2、软件特点 1、 支持Windows 9x / 2000 / XP / 2003 / Vista / Win7系统; 2、 绿色软件,不需安装。运行解压软件,将压缩包解压到指定目录即可。卸载时只需将程序目录删除; 3、 支持常用的1200 ~ 921600bps波特率; 4、 端口范围是COM1-COM255,支持扩展端口(USB转RS232); 5、 能设置校验、数据位和停止位; 6、 能以字符或十六进制收发数据,支持中文字符的收发; 7、 支持文件数据的发送; 8、 数据发送区允许设置发送周期,自动发送数据; 9、 支持键盘输入,将键盘数据发送到串口; 10、 支持定时保存接收窗口数据,便于查看长时间调试记录信息; 11、 有效的检测通讯错误,避免软件死机(如USB转串口设备拔出检测); 12、 数据接收窗口及文件发送均采用多线程设计,避免软件时机现象。 3、使用许可 本软件为免费软件,许可"个人用户"自由使用,复制和分发此软件包,但要保证此软件包的完整性。您 不能将本软件用于商业目的,如需要商业使用,需得到软件作者的授权许可。 4、关于我爱IC导航网 最专业的电子导航网,IT导航网。我爱IC导航网(http://www.52ic.net)定位为嵌入式行业、IT行业最权 威的分类网站导航网站,力求将最新最好最全的网站推荐给广大从事的IT行业的朋友。网站的宗旨是方便从事 嵌入式行业、IT行业的工程师、采购及管理者快速找到自已需要的网站,而不用去记太多复杂的网址;同时提 供了IC数据手册搜索及知名搜索引擎入口等服务项目,让您轻松愉快的享受网络给您工作带来便利和乐趣。 我爱IC导航网(http://www.52ic.net)主要以电子行业资料为中心,提供丰富的,最常用和快捷的网站链接 和各类工具。其中包括了数据手册搜索,各类电子原厂链接,各家授权代理链接,知名的行业网站链接,技术论 坛链接等,也提供了包括日常使用的工具,如快滤波器计算,三极管开关饱和度计算,在线翻译,天气查询等实 用工具。同时,我爱IC导航网还提供了用户常用的生活链接,如邮箱,音乐,视频,体育,军事等众多知名网站 链接。 我爱IC导航网,技术精灵频道(http://ee.52ic.net)主要是为电子工程师学习嵌入式技术提供良好的平台。 站长及朋友会在本站上写下工作中的经验以供大家学习,同时从网上精选有价值的文章供电子工程师在项目中 参考。网站尽可能的减少广告的投放,保证文章的可阅读性。 5、版权申明 Copyright(C) 2011-2020, 52ic.net All rights reserved. E-Mail: [email protected] WWW : http://www.52ic.net http://ee.52ic.net

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行不地上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值