首页 > 其他分享 >学习日志-C51-串口通信

学习日志-C51-串口通信

时间:2024-06-13 21:58:06浏览次数:22  
标签:初始化 定时器 C51 SBUF 传输 串口 波特率 日志

学习日志-C51-串口通信
串口控制LED灯亮灭
1.常见通信串口比较
在这里插入图片描述
分类1:
单工:只能由甲向乙传输信号,一根传输线。
半双工:数据可以在双方传输,但同一时刻只能单方传输,发送数据的同时不能接收数据,一根传输线。
全双工:数据可以在双方传输,发送数据的同时也能接收数据,需两根传输线。
分类2:
同步:双方都有时钟引脚,双方的时钟引脚连接在一起,信息帧为一次通信传送的数据,传输效率高。
异步:无CLK引脚,以固定格式的数据帧进行传输,一帧一帧进行传输,要求双方为相同的传输速度。以0为起始位,1为停止位,需要多用两位进行传输,有效传输效率为80%,因而传输效率低。
传输速度:
波特率:单位时间传输多少码元.
比特率:单位时间传输了多少个二进制位数。
2.初始化配置
(1) SCON
在这里插入图片描述
在这里插入图片描述
SCON为串行控制寄存器,初始化时选择模式1,TI、RI置0,因而SCON设置为0100 0000。
使用串行通信模式1时,其波特率可变,可变的波特率由定时器1提供,因而也需要对定时器1进行初始化,其初始化可参考定时器一节。
(2)PCON
在这里插入图片描述
(3)配置
可直接使用STC-ISP的串口波特率计算器得到代码。
在这里插入图片描述
按照开发板晶振标注配置系统频率,可按照图示进行配置。由于需使用定时器1,因而初始化函数加上语句EA=1;ES=1;将中断允许总开关和串口中断允许开关打开即可。
3.代码实现
该代码可实现串口输入控制LED亮灭。
(1)串口初始化函数

#include <REGX52.H>
void Uart1_Init()	//[email protected]
{
	PCON &= 0x7F;		//首位置0,不加倍
	SCON = 0x50;		//工作方式1,并置REN为1,为串行允许接收状态
	TMOD &= 0x0F;		//设置定时器1模式
	TMOD |= 0x20;		//0010 0000,模式2
	TL1 = 0xFA;			//设置初值
	TH1 = 0xFA;			//设置初值
	ET1 = 0;		//定时器禁止中断	
	TR1 = 1;	//定时器开启
EA=1;    //中断允许总开关开启
ES=1;	//允许串口中断
}
void UART_SendByte(unsigned char Byte)//由串口发送一个字节数据
{
	SBUF=Byte;//令SBUF读入Byte的值,将数据写入SBUF即可发出
	while(TI==0);//由TI发送完成标志位进行检测,发送完成跳出循环
	TI=0;//让TI置0,复位
}

(2)主函数

#include <REGX52.H>
#include "UART.h"
void main()
{
	Uart1_Init();//初始化
	while(1)
	{
	}


}
void UART_Routine() interrupt 4//中断程序
{
	if(RI==1)					//接收标志位为1
	{
		P2=~SBUF;	//接收为1,则接收数据,由于P2口为0时灯亮,因而取反			
		UART_SendByte(SBUF);	//将收到的数据返回串口
		RI=0;					//接收标志位复位
	}
}

在这里插入图片描述
串口助手区如上图所示,选取对应串口与波特率,输入AA,则LED8~LED1为1010 1010。
在这里插入图片描述

标签:初始化,定时器,C51,SBUF,传输,串口,波特率,日志
From: https://blog.csdn.net/qq_53061236/article/details/139664260

相关文章

  • 串口收发UART(Verilog HDL)
    UART(UniversalAsynchronousReceiverTransmitter,通用异步收发器)是一种异步串行通信协议,主要用于计算机和嵌入式系统之间的数据交换。实现UART通信的接口规范和总线标准包括RS-232、RS449、RS423和RS485等,接口标准规定了通信标准的电气特性、传输速率、连接特性和机械特性。文......
  • Day26.查看购物车、记录日志
    1.查看购物车、记录日志_查看购物车功能用户视图层(src.py)和购物商城接口(shop_interface.py) 查看购物车功能用户视图层(src.py)#9.查看购物车@common.login_authdefcheck_shop_car():#直接调用查看购物车接口check_shop_car=shop_interface.check_shop_ca......
  • C#如何查看/写入日志到Windows事件查看器
    Windows事件日志Windows操作系统将与计算机的系统性能、应用程序和安全方面相关的每个事件记录在C:\WINDOWS\system32\winevt的日志中。事件查看器从这些原始事件日志中读取信息,然后以可读格式呈现信息。打开Windows事件查看器的方法是1、运行输入eventvwr2、Windows+X打......
  • python系列:python fastapi + uvicorn 记录日志的最佳实践,结合nb_log
    pythonfastapi+uvicorn记录日志的最佳实践,结合nb_logpythonfastapi+uvicorn记录日志的最佳实践,结合nb_logpythonfastapi+uvicorn记录日志的最佳实践,结合nb_logpythonfastapi+uvicorn记录日志的最佳实践,要记录对fastapi什么时候请求了什么url和入......
  • C51学习归纳11 --- PWM原理、应用案例
        本节进入到一个更加常用的环节PWM的产生与应用,日常生活中,电机的使用非常普及,如何控制转速?其实就可以应用我的PWM。一、PWM的产生原理    PWM(PulseWidthModulation)即脉冲宽度调制,在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需......
  • DophinScheduler 如何定期删除日志实例?
    转载自东华果汁哥ApacheDophinScheduler运行一段时间后,实例调度日志越来越多,需要定期清理。SQL错误[1701][42000]:Cannottruncateatablereferencedinaforeignkeyconstraint(`dolphinscheduler`.`t_ds_task_instance`,CONSTRAINT`foreign_key_instance_id`)......
  • STM89C51开发学习1
    环境安装:使用KeiluVision4环境进行对51单片机的学习。在进行使用之前先用keygen进行对软件的破解防止后续发生不必要的问题。开发环境下载完毕后,检查电脑是否有串口驱动(可以在网上下载)    CH340驱动。安装stcai-isp-v6.94E驱动对单片机进行程序的烧录。测试无误......
  • 服务日志审计项目
    服务日志审计项目目的要求:实施后可以让运维和开发的所有执行的命令都有记录可查,杜绝内部人员操作隐患)(缺陷:单机、本地服务器上应用配置sudo命令日志审计,并不记录普通用户的普通操作,而是记录,那些执行sudo命令的用户的操作。sudo配合syslog服务,进行日志审计。安装sudo命令和sy......
  • 单片机学习(9)--串口
    串口8.1串口通信1.串口介绍2.硬件电路3.电平标准4.接口及引脚定义5.常见通信接口比较6.相关术语6.51单片机的UART7.串口参数8.串口模式图8.串口和中断系统9.串口相关寄存器8.2串口向电脑发送数据,电脑通过串口控制LED1.串口向电脑发送数据程序(1)工程目录(2)main.c函数(3)UART......
  • 串口通信GPT
    目录硬件层面串口通信的基本原理是什么?常见的串口通信协议有哪些?硬件层面如何连接两个设备进行串口通信?需要哪些硬件支持?RS-232与RS-485的区别?软件层面如何在编程中实现串口通信?如何配置串口参数以确保通信正常?数据处理如何处理串口通信中的数据丢失或错误?如何处理......