基于STC12C5A60S2系列1T 8051单片机串口通信信应用

2023-11-12 02:20

本文主要是介绍基于STC12C5A60S2系列1T 8051单片机串口通信信应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于STC12C5A60S2系列1T 8051单片机串口通信应用

  • STC12C5A60S2系列1T 8051单片机管脚图
  • STC12C5A60S2系列1T 8051单片机串口通信介绍
  • STC12C5A60S2系列1T 8051单片机串口通信的结构
  • 基于STC12C5A60S2系列1T 8051单片机串口通信的特殊功能寄存器列表
    • 基于STC12C5A60S2系列1T 8051单片机串口通信用到的特殊功能寄存器
      • STC12C5A60S2系列1T 8051单片机辅助寄存器AUXR
      • STC12C5A60S2系列1T 8051单片机辅助寄存器AUXR1
      • 串口1控制寄存器SCON
      • 串口电源控制寄存器PCON
      • 串口数据缓冲寄存器SBUF
      • 串口辅助寄存器AUXR
      • 串口中断寄存器
  • 基于STC12C5A60S2系列1T 8051单片机串口1通信工作模式
    • 串口1通信模式0
    • 串口1通信模式1
    • 串口1通信模式2
    • 串口1通信模式3
  • 串口通信波特率设置
  • 基于STC12C5A60S2系列1T 8051单片机通过串口通信接收计算机用串口助手发送的数据并返回给计算机串口助手显示出来

STC12C5A60S2系列1T 8051单片机管脚图

在这里插入图片描述在这里插入图片描述# STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置在这里插入图片描述# STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍在这里插入图片描述在这里插入图片描述

STC12C5A60S2系列1T 8051单片机串口通信介绍

在这里插入图片描述在这里插入图片描述在这里插入图片描述

STC12C5A60S2系列1T 8051单片机串口通信的结构

基于STC12C5A60S2系列1T 8051单片机串口通信的特殊功能寄存器列表

在这里插入图片描述

基于STC12C5A60S2系列1T 8051单片机串口通信用到的特殊功能寄存器

STC12C5A60S2系列1T 8051单片机辅助寄存器AUXR

在这里插入图片描述
作用:用来设置STC12C5A60S2系列1T 8051单片机串口通信类型、波特率

STC12C5A60S2系列1T 8051单片机辅助寄存器AUXR1

在这里插入图片描述
作用:用来设置STC12C5A60S2系列1T 8051单片机串口通信引脚切换

串口1控制寄存器SCON

在这里插入图片描述
作用:用来设置STC12C5A60S2系列1T 8051单片机串口通信以下功能
(1)、设置串口通信工作模式
(2)、设置串口方式2或方式3多机通信
(3)、设置串口通信允许接收
(4)、设置串口通信在方式2或方式3下发送第9位数据
(5)、设置串口通信通信在方式2或方式3下接收第9位数据
(6)、设置串口通信发送中断请求
(7)、设置串口通信接收中断请求

串口电源控制寄存器PCON

在这里插入图片描述
作用:用来设置STC12C5A60S2系列1T 8051单片机串口通信以下功能
(1)、设置串口通信波特率选择
(2)、设置串口通信帧错误检测有效控制

串口数据缓冲寄存器SBUF

在这里插入图片描述在这里插入图片描述
作用:用来设置STC12C5A60S2系列1T 8051单片机串口通信发送或接收数据

串口辅助寄存器AUXR

在这里插入图片描述在这里插入图片描述
作用:用来设置STC12C5A60S2系列1T 8051单片机串口通信类型、波特率

串口中断寄存器

在这里插入图片描述
作用:用来设置STC12C5A60S2系列1T 8051单片机串口通信中断允许、中断优先级

基于STC12C5A60S2系列1T 8051单片机串口1通信工作模式

串口1通信模式0

在这里插入图片描述

串口1通信模式1

在这里插入图片描述在这里插入图片描述

串口1通信模式2

在这里插入图片描述在这里插入图片描述

串口1通信模式3

在这里插入图片描述在这里插入图片描述

串口通信波特率设置

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

基于STC12C5A60S2系列1T 8051单片机通过串口通信接收计算机用串口助手发送的数据并返回给计算机串口助手显示出来

#include <stc12c5a60s2.h>
#include <uart.h>
#define uchar unsigned char//自定义无符号字符型为uchar
#define uint unsigned int//自定义无符号整数型为uint 
bit ReceiveDataFlag;//声明收到数据标志位变量
uchar ReceiveData;//声明收到数据变量
/*****关于8051系列单片机定时器溢出率、波特率和定时器初值(定时计数初值)之间计算的知识点*****/
/****
一、定时器溢出率计算公式
1、定时器溢出率:定时器每秒溢出的次数
2、定时器溢出率计算公式表定时方式           分频方式                      公式
方式1:16位定时器  12分频(即12T 默认值)  Ft=晶振频率/12/(65536-定时器初值)
方式2:8位定时器   12分频(即12T 默认值)  Ft=晶振频率/12/(256-定时器初值)
方式1:16位定时器      1分频(即1T)      Ft=晶振频率/1/(65536-定时器初值)
方式2:8位定时器       1分频(即1T)      Ft=晶振频率/1/(256-定时器初值)
二、波特率计算公式
1、波特率:每秒传输二进制位数的多少
2、波特率计算公式表定时方式             分频方式                        公式
方式1:16位定时器T1  12分频(即12T 默认值)  波特率=晶振频率/12/(65536-定时器初值)/4
方式2:8位定时器T1   12分频(即12T 默认值)  波特率=晶振频率/12/(256-定时器初值)*2^SMOD/32
方式1:16位定时器T2  12分频(即12T 默认值)  波特率=晶振频率/12/(65536-定时器初值)/4
方式1:16位定时器T1      1分频(即1T)      波特率=晶振频率/1/(65536-定时器初值)/4
方式2:8位定时器T1       1分频(即1T)      波特率=晶振频率/1/(256-定时器初值)*2^SMOD/32
方式1:16位定时器T2      1分频(即1T)      波特率=晶振频率/1/(65536-定时器初值)/4
三、根据波特率计算定时器初值(定时器定时计数)定时方式             分频方式                        公式
方式1:16位定时器T1  12分频(即12T 默认值)  定时器初值(定时计数)=65536-晶振频率/(48*波特率)
方式2:8位定时器T1   12分频(即12T 默认值)  定时器初值(定时计数)=256-晶振频率*2^SMOD/(384*波特率)
方式1:16位定时器T2  12分频(即12T 默认值)  定时器初值(定时计数)=65536-晶振频率/(48*波特率)
方式1:16位定时器T1      1分频(即1T)      定时器初值(定时计数)=65536-晶振频率/(4*波特率)
方式2:8位定时器T1       1分频(即1T)      定时器初值(定时计数)=256-晶振频率*2^SMOD/(32*波特率)
方式1:16位定时器T2      1分频(即1T)      定时器初值(定时计数)=65536-晶振频率/(4*波特率)
*****/void Uart1Init()//串行口1工作模式1的8位串行口波特率可变初始化函数 波特率为9600bps 晶振为22.1184MHz
{AUXR = 0x00;//设定定时器1的12分频定时作为串行口1的波特率发生器PCON &= 0x7f;//波特率不加倍SCON = 0x50;//工作模式1的8位串行口波特率可变TMOD &= 0x0f;//定时器/计数器工作模式清0TMOD |= 0x20;//设定定时器/计数器为定时器 工作模式为8位自动重装定时器1模式2TH1 = 0xfa;//设定定时器1高八位初值TL1 = 0xfa;//设定定时器1低八位初值ET1 = 0;//禁止定时器1中断ES = 1;//允许串行口1中断EA = 1;//开总中断TR1 = 1;//打开定时器1}void PortChange()//端口切换函数
{AUXR1 &= 0xf3;//单片机P1端口切换到单片机P4端口AUXR1 |= 0x04;//设定ADRJ=1}void PortModeSet()//端口模式设置函数
{P0M1 = 0x00;P0M0 = 0x00;P1M1 = 0x00;P1M0 = 0x00;P2M1 = 0x00;P2M0 = 0x00;P3M1 = 0x00;P3M0 = 0x00;P4M1 = 0x00;P4M0 = 0x00;}void main()//主函数
{PortModeSet();//端口模式设置函数Uart1Init();//串行口1工作模式1的8位串行口波特率可变初始化函数 波特率为9600bps 晶振为22.1184MHzPortChange();//端口切换函数while(1)//主循环{}}void Uart1() interrup 4//串口1通信中断函数
{if(RI)//判断单片机串行口数据缓存器是否接收到数据{ReceiveData = SBUF;//读取单片机串行口数据缓存器中的数据赋给接收数据变量 即单片机串行口缓存寄存器通过串行口通信接收计算机用串口助手发送来的数据RI = 0;//单片机串行口接收数据标志位清0SBUF = ReceiveData;//把接收数据变量包含的数据赋给单片机串行口数据缓存器 即单片机通过串行口通信把来自从单片机SPI数据寄存器发送来的数据发送给计算机串口助手显示出来if(TI == 0)//等待单片机串行口发送完数据{TI = 0;//单片机串行口发完数据标志位清0}}}

这篇关于基于STC12C5A60S2系列1T 8051单片机串口通信信应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/394419

相关文章

Python使用Tkinter打造一个完整的桌面应用

《Python使用Tkinter打造一个完整的桌面应用》在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可... 目录一、界面搭建:像搭积木一样组合控件二、菜单系统:给应用装上“控制中枢”三、事件驱动:让界面“活”

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

在Spring Boot中实现HTTPS加密通信及常见问题排查

《在SpringBoot中实现HTTPS加密通信及常见问题排查》HTTPS是HTTP的安全版本,通过SSL/TLS协议为通讯提供加密、身份验证和数据完整性保护,下面通过本文给大家介绍在SpringB... 目录一、HTTPS核心原理1.加密流程概述2.加密技术组合二、证书体系详解1、证书类型对比2. 证书获

Python Flask 库及应用场景

《PythonFlask库及应用场景》Flask是Python生态中​轻量级且高度灵活的Web开发框架,基于WerkzeugWSGI工具库和Jinja2模板引擎构建,下面给大家介绍PythonFl... 目录一、Flask 库简介二、核心组件与架构三、常用函数与核心操作 ​1. 基础应用搭建​2. 路由与参

Spring Boot中的YML配置列表及应用小结

《SpringBoot中的YML配置列表及应用小结》在SpringBoot中使用YAML进行列表的配置不仅简洁明了,还能提高代码的可读性和可维护性,:本文主要介绍SpringBoot中的YML配... 目录YAML列表的基础语法在Spring Boot中的应用从YAML读取列表列表中的复杂对象其他注意事项总

Python模拟串口通信的示例详解

《Python模拟串口通信的示例详解》pySerial是Python中用于操作串口的第三方模块,它支持Windows、Linux、OSX、BSD等多个平台,下面我们就来看看Python如何使用pySe... 目录1.win 下载虚www.chinasem.cn拟串口2、确定串口号3、配置串口4、串口通信示例5

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应

CSS 样式表的四种应用方式及css注释的应用小结

《CSS样式表的四种应用方式及css注释的应用小结》:本文主要介绍了CSS样式表的四种应用方式及css注释的应用小结,本文通过实例代码给大家介绍的非常详细,详细内容请阅读本文,希望能对你有所帮助... 一、外部 css(推荐方式)定义:将 CSS 代码保存为独立的 .css 文件,通过 <link> 标签

Python使用Reflex构建现代Web应用的完全指南

《Python使用Reflex构建现代Web应用的完全指南》这篇文章为大家深入介绍了Reflex框架的设计理念,技术特性,项目结构,核心API,实际开发流程以及与其他框架的对比和部署建议,感兴趣的小伙... 目录什么是 ReFlex?为什么选择 Reflex?安装与环境配置构建你的第一个应用核心概念解析组件