当前位置: 首页 > news >正文

51单片机串口中断

上图为常见的一些通信协议,串口中断使用的是第一个点对点通信,通过TXD发送数据,RXD接受数据。下图为RXD和TXD的引脚。

波特率计算:

例如:4800波特率,就是每秒要传送4800个位,则每传送一个字节需要的时间为1/4800=208.3us, AT89C52单片机的晶振为11.0592MHz, 经过12分频,再除以32后,其频率为11.0592/12/32 = 0.0288,则周期为1/0.0288= 34.72,208/34.72 = 5.999,则初值为5.999,16进制为0xFA。

在串口通信时,发送和接受需要有相同的波特率,就是相当于使用同一个时间序列(CLK),来保证通信的准确性。而且波特率相当于通信的速率。STC89C52RC单片机必须用11.0259MHz才可准确通信。

上图为串口通信的过程,发送和接受的数据都存储在SBUF中,通过定时器1来设置波特率,并可以通过串口中断来判断接受(RI)和发送(TI)数据。下图为中断的内部配置。

下图为与串口有关的寄存器,在串口初始化中,只需要对串口的模式,定时器1,中断的配置即可。

如果要发送文本文件,则可以通过ASCll码编码发送或者接受。

不用中断,代码如下:

void UartInit(void)		//4800bps@11.0592MHz
{PCON &= 0x7F;		//波特率不倍速SCON = 0x50;		//8位数据,可变波特率TMOD &= 0x0F;		//设置定时器模式TMOD |= 0x20;		//设置定时器模式TL1 = 0xFA;			//设置定时初始值TH1 = 0xFA;			//设置定时重载值ET1 = 0;			//禁止定时器中断TR1 = 1;			//定时器1开始计时
}void UART_SendByte(unsigned char Byte)
{SBUF = Byte;while(TI == 0);TI = 0;
}unsigned char UART_ReceiveByte()
{unsigned char Byte;if(RI == 1){Byte = SBUF;RI = 0;return Byte;}return 0;
}

使用中断,在初始化中将ES = 1,EA = 1即可。(接受数据和发送数据都会引起串口中断,可以通过TI,RI来进行判断。)

http://www.dtcms.com/a/431593.html

相关文章:

  • 调用链监控系统 - CAT
  • 白酒公司网站的建设阜宁网站制作费用
  • 太白 网站建设高州网站建设公司
  • 怎么搭建一个博客网站wordpress信息量几百万
  • 用 【C# + Winform + MediaPipe】 实现人脸468点识别
  • C++查缺补漏《4》_时间复杂度、空间配置器和内存池、排序总结、右值引用和移动语义、函数出参和入参、类中的deafult和delete
  • wordpress 仿百度谷歌排名优化
  • 跟我学C++中级篇—non-transient异常
  • NSIS下载安装使用教程(附安装包,非常详细)
  • 怎样下载网站模板济南seo优化外包服务公司
  • 申请手机网站网站怎么做图片动态图片不显示
  • 【导航】沁恒微 RISC-V 蓝牙 入门教程目录 【快速跳转】
  • DoFoto AI 1.270.80 | 支持AI抠图、AI消除、AI照片转漫画等功能,比美图秀秀更好用
  • dt9205a数字万用表使用说明
  • 信息系统项目的质量管理(AI地铁车辆管理)
  • 爱站seo查询做外贸网站需要什么卡
  • C语言-深度剖析数据在内存中的存储
  • AI时代,我们仍然需要真实的人吗?
  • jsp网站开发实例标题栏ck播放器整合WordPress
  • 网站设计色彩搭配做网站要求高吗
  • 一级造价工程师报考条件及科目四川seo策略
  • 网站主题类型百度统计平台
  • 青岛知名网站建设哪家好成都网站建设成都网络公司
  • wordpress生成网站模版百度app官方下载
  • 基于Napcat+Koshi的QQ群AI大模型机器人部署-幽络源
  • c2c电子商务网站的功能wordpress滑动注册
  • 网站建设意向表物联网平台软件
  • 科凡网站建设怎么样南昌网络营销公司
  • 南宁市住房和城乡建设局网站软件商城下载
  • 正能量网站入口免费安全小程序商店代码