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

相关文章

MySQL zip安装包配置教程

《MySQLzip安装包配置教程》这篇文章详细介绍了如何使用zip安装包在Windows11上安装MySQL8.0,包括下载、解压、配置环境变量、初始化数据库、安装服务以及更改密码等步骤,感兴趣的朋... 目录mysql zip安装包配置教程1、下载zip安装包:2、安装2.1 解压zip包到安装目录2.2

MySQL 中的服务器配置和状态详解(MySQL Server Configuration and Status)

《MySQL中的服务器配置和状态详解(MySQLServerConfigurationandStatus)》MySQL服务器配置和状态设置包括服务器选项、系统变量和状态变量三个方面,可以通过... 目录mysql 之服务器配置和状态1 MySQL 架构和性能优化1.1 服务器配置和状态1.1.1 服务器选项

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构