C8051F120单片机双串口配置(uart0,uart1)

2023-12-13 14:48

本文主要是介绍C8051F120单片机双串口配置(uart0,uart1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.介绍IO配置及XBR配置

XBR0=0X40;//使能串口0 分配到IO口P0.0 P0.1

XBR1=0;

XBR2=0X44;//使能XBR交叉开关IO控制器 使能串口1并绑定到IO口上


这里串口0 TX,RX优先级最高:P0.0,P0.1

之后仅使能了串口1那么串口1 TX,RX分配在P0.2,P0.3


P1DOUT=0xff;//选择IO口推挽输出


2.内部晶振配置(本程序中使用的是内部晶振)

SFRPAGE=CONFIG_PAGE;

//使用内部晶振OSCICN=0x83;//while(!OSCICN&0x40);//等待晶振稳定CLKSEL=0x00;//输出时钟不分频 时钟源来自内部振荡器CKCON=0x18;//TIM0=SYSCLK TIM1=SYSCLK

3.串口0的配置

void usart0_init()//接收数据的串口 bps19200
{SFRPAGE   = UART0_PAGE; //0SCON0=0x50;//方式1 允许接收SSTA0=0x05;SFRPAGE= TMR2_PAGE;TMR2CF=0x8;TMR2CN=0x8;RCAP2L=0xB0;RCAP2H=0xff;TR2=1;TI0=0;RI0=0;ES0=1;//开串口0中断EA=1;
}
这里设置的波特率为19200 可以根据数据手册中的公式调整RCAP2L,RCAP2H来改变波特率,采用8位可变波特率方式

接收中断为:

void date_recv() interrupt 4//接收测试没得问题
{	uchar date;static uchar dic=0;static uchar header=0;static uchar num=0;SFRPAGE=UART0_PAGE;if(RI0==1){RI0=0;date=SBUF0;//获取数据}
}

代码中的数据处理被删去,可以自行在if语句中进行相应的帧头,帧尾等相关校验。

设置的打印函数:

void sendstring_stream1(uchar* date,uchar lenth)
{uchar i;SFRPAGE=UART0_PAGE;for(i=0;i<lenth;i++){SBUF0=date[i];while(!TI0);//等待发送完成TI0=0;//手动清零发送中断标志}
}
包含两个参数,第一个参数是要发送的数据数组,第二个参数为数组的长度


4.串口1的相关配置

串口1只能工作在方式1,3

并且波特率只能由TIM1溢出产生

相关配置如下

void usart1_init()
{SFRPAGE   = UART1_PAGE; //1SCON1=0x50;SFRPAGE= TIMER01_PAGE;TMOD=0x20;TH1=0x96;TL1=0x96;TR1=1;//EIE2=0x40;
}

这里设置波特率为9600,没有打开串口中断,若果需要打开则去掉注释处代码,串口1终端号为20

2.设置串口1打印函数

void sendstring_stream2(uchar* date,uchar lenth)
{uchar i;SFRPAGE=UART1_PAGE;for(i=0;i<lenth;i++){SBUF1=date[i];while(!TI1);TI1=0;}
}

与串口0打印函数相同


这篇关于C8051F120单片机双串口配置(uart0,uart1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/488857

相关文章

IDEA中配置Tomcat全过程

《IDEA中配置Tomcat全过程》文章介绍了在IDEA中配置Tomcat的六步流程,包括添加服务器、配置部署选项、设置应用服务器及启动,并提及Maven依赖可能因约定大于配置导致问题,需检查依赖版本... 目录第一步第二步第三步第四步第五步第六步总结第一步选择这个方框第二步选择+号,找到Tomca

Win10安装Maven与环境变量配置过程

《Win10安装Maven与环境变量配置过程》本文介绍Maven的安装与配置方法,涵盖下载、环境变量设置、本地仓库及镜像配置,指导如何在IDEA中正确配置Maven,适用于Java及其他语言项目的构建... 目录Maven 是什么?一、下载二、安装三、配置环境四、验证测试五、配置本地仓库六、配置国内镜像地址

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Debian系和Redhat系防火墙配置方式

《Debian系和Redhat系防火墙配置方式》文章对比了Debian系UFW和Redhat系Firewalld防火墙的安装、启用禁用、端口管理、规则查看及注意事项,强调SSH端口需开放、规则持久化,... 目录Debian系UFW防火墙1. 安装2. 启用与禁用3. 基本命令4. 注意事项5. 示例配置R

PyCharm中配置PyQt的实现步骤

《PyCharm中配置PyQt的实现步骤》PyCharm是JetBrains推出的一款强大的PythonIDE,结合PyQt可以进行pythion高效开发桌面GUI应用程序,本文就来介绍一下PyCha... 目录1. 安装China编程PyQt1.PyQt 核心组件2. 基础 PyQt 应用程序结构3. 使用 Q

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例