STC8A 应用知识归纳

2023-05-16

STC8A 应用知识归纳

  • 串口通信
      • 串口寄存器介绍
      • 功能
  • 定时器、计数器
      • 定时器寄存器介绍
  • 看门狗:复位
      • 看门狗寄存器操作
  • 外部中断
  • ADC
      • ADC寄存器介绍

串口通信

每个串行口有两个数据缓冲器(SBUF)、一个移位寄存器、一个串行控制寄存器和一个波特率发生器组成

串口寄存器介绍

串口所需中断
在这里插入图片描述

EA = 1 : 总中断 必需开

ES: 串口1 中断运行位

串口1寄存器
在这里插入图片描述

SM0 、 SM1: 模式选择

REN:  串口允许接收控制位, 接收 1 禁止 0 

TB8:
	当串口1设置 为模式2、模式3时,TB8为发送为第9位,需要软件操作,在模式0、1不可用
	
RB8:
	当串口1设置 为模式2、模式3时,RB8为接收为第9位,需要软件操作,在模式0、1不可用
	
TI :串口发送中断请求位,发送完毕就会置 1 
模式0中,第8位数据发送结束时,硬件置 1 ,响应中断后 必须软件清 0 
除模式0外,则在停止位发送时,硬件置 1 ,响应中断后 必须软件清 0 

RI :串口接收中断请求位,发送完毕就会置 1 
模式0中,第8位数据发送结束时,硬件置 1 ,响应中断后 必须软件清 0 
除模式0外,则在停止位发送时,硬件置 1 ,响应中断后 必须软件清 0 

在这里插入图片描述

SBUF 是两个寄存器

给SBUF赋值时:SBUF = X ,此时为写寄存器

把SBUF值赋给别人时:X = SBUF,  此时为读寄存器

在这里插入图片描述

UART_M0x6
	串口1模式0的通讯速度控制,0:波特率不加倍,固定 fosc/12

SIST2
	串口1波特率发射器
	0 :选择定时器1 为波特率发射器
	1 :选择定时器2 为波特率发射器

串口2寄存器

在这里插入图片描述

S2SM0 : 模式选择

S2REN:  串口允许接收控制位, 接收 1 禁止 0 

S2TI :串口发送中断请求位,发送完毕就会置 1 ,响应中断后 必须软件清 0 

S2RI :串口接收中断请求位,发送完毕就会置 1 ,响应中断后 必须软件清 0 

功能

奇偶位

PSW是一个8位寄存器。PSW的全称是Program Status Word,即程序状态字
请添加图片描述


P : 奇偶标志位
每执行一条汇编指令,单片机都能根据ACC中 1的个数进行奇偶数量判断
使 P 置 1或置 0 ,奇数 P为 1,偶数 P为0

引脚复用

P_SW1 寄存器![在这里插入图片描述](https://img-blog.csdnimg.cn/2d39626ec8864230a0d02efcdc824225.png)

S1_S[1:0]:  串口1功能脚选择位	

定时器、计数器

  • 机器周期、时钟周期是什么?( 传送门 )

定时器寄存器介绍

定时器所需中断

在这里插入图片描述

EA = 1 : 总中断 必需开

ET0: 定时器0 、 计数器0 中断运行位
ET1: 定时器1 、 计数器1 中断运行位

在这里插入图片描述

ET2: 定时器2 、 计数器2 中断运行位
ET3: 定时器3 、 计数器3 中断运行位
ET4: 定时器4 、 计数器4 中断运行位

在这里插入图片描述

T2IF : 定时器2 中断溢出请求位,需要软件清 0 (手动清 0 )
T3IF : 定时器3 中断溢出请求位,需要软件清 0 (手动清 0 )
T4IF : 定时器4 中断溢出请求位,需要软件清 0 (手动清 0

定时器0、定时器1

在这里插入图片描述

TF1、TF0
	为中断请求标志位,溢出时置 1 并请求中断,由硬件置 0 ,不管手动清 0 
TR1、TR0:
	为运行控制位,开始计数,需要置 1

在这里插入图片描述

T1_C/T、T0_C/T:1 为定时器(内部定时),置 0 为计数器(对引脚/外部脉冲计数)
	
T1_M1、T1_M0、T0_M1、T1_M0:
	模式选择

在这里插入图片描述

T0x12 : 定时器0 ,默认为012分频、1 不分频 

T1x12 : 定时器1 ,默认为012分频、1 不分频 

定时器2

在这里插入图片描述

T2R :
	为运行控制位,开始计数,需要置 1 。

T2_C/T:1 为定时器(内部定时),置 0 为计数器(对引脚/外部脉冲计数)

定时器3、定时器4
在这里插入图片描述

T3R、T4R:
	为定时器34 运行控制位,开始计数,需要置 1 。

T3_C/T、T4_C/T:1 为定时器(内部定时),置 0 为计数器(对引脚/外部脉冲计数)

T3x12、T4x12: 默认12分屏

看门狗:复位

STC8A8K64S4A12系列单片机的复位分为硬件复位和软件复位两种。

硬件复位时,所有寄存器的值会复位到初始值,系统会重新读取所有的硬件选项。同时根据硬件选项所设置的上电等待时间进行上电等待。

软件复位时,除与时钟相关的寄存器保持不变外,其余的所有寄存器的值会复位到初始值,软件复位不会重新读取所有的硬件选项。

在这里插入图片描述

  • 硬件复位:看门狗

为了防止“系统在异常情况下,受到干扰,MCU/CPU程序跑飞,导致系统长时间异常工作”的情况发生,而设计了一种用于检测程序运行状态的芯片或电路,俗称看门狗(即Watchdog)。

看门狗通常有一个输入信号和一个输出信号。输入信号也称“喂狗”,输出信号关联MCU的复位端。系统运行后启动看门狗计数器,看门狗开始计数,当计数满后未收到清零信号(喂狗),看门狗计数器溢出,触发看门狗中断,输出控制MCU复位。

看门狗寄存器操作

在这里插入图片描述

WDT_FLAG
    看门狗发生溢出时,硬件自动置 1 ,软件清零
    
EN_WDT
	看门狗使能,0 无影响;1 启动开门狗定时器
	
CLR_WDT
	看门狗定时器清零(喂狗)
	1 清零看门狗定时器,才不会发生重启,重启时硬件自动将此位复位
	
WDTPS[2:0] 
	看门狗定时器时钟分频系数

外部中断

外部中断所需中断
在这里插入图片描述

EA = 1 : 总中断 必需开

EX0 、EX1: 外部中断 0 、外部中断 1 中断允许位

在这里插入图片描述

IT1、IT0:
	为外部中断 触发控制位, 下降沿触发方式 置1 ; 上升沿和下降沿都可以触发 置0

IE0、IE1:
   	外部中断 允许位,硬件置 0 ;(代码不显示)

ADC

STC8A8K64S4A12系列单片机ADC是逐次比较型ADC

STC8系列单片机内部集成了一个12位15通道的高速A/D转换器。

ADC寄存器介绍

ADC所需中断
在这里插入图片描述

EADC :  ADC允许中断位

ADC寄存器
在这里插入图片描述

ADC_POWER : ADC电源

ADC_START : ADC转换控制位,写1开始转换,转换完成后硬件清 0 

ADC_CH[3:0] : ADC通道选择位

在这里插入图片描述

RESFMT : ADC转换结果 控制位,1 右对齐(高4低8),0 左对齐(高8低4)

SPEED[3:0] : ADC时钟控制 

在这里插入图片描述

ADC_RES : 		 保存结果高字节
ADC_RESL : 		保存结果低字节
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STC8A 应用知识归纳 的相关文章

  • 去掉字符串最后一个字符的方法

    C 开发过程中一般都需要进行字符串的格式化处理 xff0c xff0c 以下提供去掉字符串最后一个字符的方法 如果是其他语言开发的话仅供参考有可能写法不一样 xff0c 但是意思是一样的 字符串 xff1a string s 61 34 1
  • C++11之lambda函数

    最近一直在看mesos的源代码 xff0c mesos中用到了很多C 43 43 11的新特性 xff0c lambda函数就是其中的一个 对于lambda函数简单的来说就是java中的匿名函数 语法定义 capture paramente
  • C++中两个类互相包含

    今天突然想起一个C 43 43 的问题 xff0c 如果一个类A包含类B的实例 xff0c 而实例B也包含另一个类A xff0c 这种方式的代码应该怎么写 xff0c 按照一般的开发者的想法的代码如下 xff1a 文件A h span cl
  • 命名空间

    命名空间的作用 命名空间是为了防止名字冲突提供更加可控的机制 命名空间分割了全局命名空间 xff0c 其中每一个命名空间是一个作用域 命名空间的定义 命名空间由三部分组成 xff0c 分别是namespace 空间名字和一系列由花括号括起来
  • STL中的swap函数

    swap函数执行会调用容器内数据类型的 xff0c 拷贝构造和赋值函数调用 对自定义类型使用STL algorithm中的swap函数 xff0c 会调用自定义的类型的拷贝构造函数一次 赋值函数两次 xff1b 自定义类型中没有定义那么就会
  • C++11之POD类型

    什么是POD类型 POD的全称叫做Plain Old Data xff0c 简单讲就是一个类或者一个结构体通过二进制拷贝之后还能保持其不变 xff0c 那么这个类型就是POD类型 什么类型属于POD类型 当一个类型具有平凡的定义和标准布局这
  • C++11之初始化成员变量

    C 43 43 98中的成员变量初始化 在声明类的时候 xff0c 对于静态类型并且是常量类型 xff0c 同时是枚举或者是整型的变量可以使用 61 在声明时初始化 对于不符合上述要求的静态变量可以在类外使用 61 进行初始化对于非静态类型
  • C++11之左值、纯右值和将亡值

    在C 43 43 11中所有的值一定属于左值 纯右值和将亡值三种值之一 xff0c 分别介绍一下这三种类型 左值与右值 在C 43 43 中定义左值与右值的比较标准的方法是根据其可以取地址来判断 左值就是可以对变量进行取地址或者有名字的变量
  • Skip List

    Skip List 是什么 我们常用数组和链表来组织数据 xff0c 对于已排序的数据 xff0c 数组的查询时间复杂度可以是 lgn 二分查找 xff0c 插入和删除都是 n 链表提供了一种更加灵活的组织方式 xff0c 插入和删除的时间
  • 程序员的自我修养--可执行文件的装载与进程

    进程的虚拟地址空间 C语言指针大小的位数与虚拟地址空间的地址位数相同 xff0c 即32位平台下进程的虚拟地址空间为4G由于程序在运行是处于操作系统的监管下 xff0c 进程的虚拟地址空间都在操作系统的掌握中 xff0c 只能使用操作系统分
  • C++11之继承构造函数

    问题场景 类的继承中 xff0c 如果子类想使用父类的构造函数 xff0c 则需要在子类的构造函数中声明使用父类的构造函数 xff0c 例子如下 xff1a span class hljs keyword struct span A A s
  • E95-DTU(4G01-485)数传电台的特点及其应用详解

    1 E95 DTU 4G01 485简介 E95 DTU 4G01 485 是采用 4G CAT1 方案的云数传电台 xff0c 电台支持微信小程序简单配对使用 可以显现一对一 一对多 多对多等复杂应用场景 由于采用了云技术 xff0c 数
  • STM32学习笔记(串口、IAP)

    串口 xff1a 一 USART ITConfig USART1 USART IT TXE ENABLE xff1a 只要发送寄存器为空 xff0c 就会一直有中断 xff0c 因此 xff0c 要是不发送数据时 xff0c 把发送中断关闭
  • C++中容器的优点和缺点

    顺序容器 连续存储 array 优点 随机访问 一步直接得到数据的首地址的访问方式 方便 开销低 速度快 缺点 容量在定义时就确定了 不能够改变 中间删除和插入比较麻烦 需要后面的元素都移动 vector 优点 随机访问方便 可以自动扩容
  • 硬件切换485电路

    485接口具有很好的抗噪音抗干扰 长距离传输和多站能力特性 xff0c 使其为工控行业首选串行接口 485规定的电气特性为2线 xff0c 半双工多点通信 它的电气特性是有线缆两端的电压差来决定的 由于半双工模式 xff0c 通讯时需要切换
  • 802.11 Authentication and Association

    The 802 11 standard provides a method for supplying different levels of access to different nodes in a wireless local ar
  • 串口通信与波特率

    原文出自微信公众号 小小的电子之路 串口是串行接口的简称 xff0c 串行接口是采用串行通信方式的接口 串行通信是一种将需要传输的数据由低位到高位一位一位地在一条传输线上逐个传输的通信方式 一 串行通信的数据格式 首先来了解一下串行通信的数
  • 无人机方向控制pitch yaw roll是什么 .。欧拉角定义

    http blog csdn net yuzhongchun article details 22749521 三维空间的右手笛卡尔坐标如图1所示 图1 在航空中 xff0c pitch yaw roll如图2所示 pitch是围绕X轴旋转
  • Java学习记录

    Java学习记录 第一个Java程序tips Java对象与类变量类型构造方法创建对象源文件声明规则八大基本数据类型引用类型常量类型转换 第一个Java程序 span class token keyword public span span
  • 在Windows上搭建http服务器(lighttpd)------中秋节大礼

    今天中秋节 xff0c 也算忙了一大天了 窗外月圆 xff0c 我是不是也该吟诵 露从今夜白 xff0c 月是故乡明 这样的佳句呢 xff1f 还好 xff0c 过几天国庆就要回家了 今天继续来聊聊http服务器吧 xff01 在前面的文章

随机推荐

  • EPG简介

    一 EPG简介 电子节目指南 Electronic Program Guide xff0c EPG xff0c 是指在符合MPEG 2 13818 1 的TS传输流中插入DVB标准定义的业务信息 Service Information xf
  • ROS学习笔记(五)

    本文是关于第14讲的学习内容总结 所以要完成的目标是 xff0c 用C 43 43 代码编程实现服务端 Server的作用就是给海龟发布指令的 xff0c Client的作用是来控制Server是否要给海龟发布指令 老师的解释是Client
  • 433M数传电台窄带无线通讯技术手册

    一 模块介绍 1 1特点介绍 E3A DTU 500 是 一款 频率 433M 无 线数传电 台 xff08 同时 具有RS232 RS485 接口 xff09 xff0c 透明传输方式 xff0c 工作在 425 450 5MHz 频段
  • [C++]按字节读取文件

    一 背景 本文介绍了如何使用C 43 43 按字节读取 txt文件 本文第二部分为代码实例和对代码的解释 xff0c 第三部分为本文的参考文章 二 代码实例 span class token macro property span clas
  • [STL]priority_queue多种方式自定义排序

    一 背景 在做leetcode题目时很多题都需要使用优先队列 xff08 堆 xff09 xff0c 并需要使用自定义数据类型 自定义有限队列的排序方式 本文对priority queue的自定义排序方式做了总结 本文可能并不能覆盖所有自定
  • [Pyplot] 绘制三维散点图使用颜色表示数值大小

    一 摘要 在进行数据可视化时 xff0c 对于一元函数f x 61 y数据我们可以使用二维平面图显示 xff0c x轴表示自变量 xff0c y轴表示函数值 xff1b 对于二元函数f x y 61 z数据我们也可以使用三维图可视化 xff
  • [C++]<numeric>头文件介绍

    一 摘要 C 43 43 的 lt numeric gt 头文件中包含了一系列可用于操作数值序列 xff08 sequences of numeric value xff09 的函数 xff0c 通过修改函数的参数类型也可以将这些函数应用到
  • [算法] 使用位运算遍历集合的子集

    一 简介 对于使用状态压缩方法表示的集合A xff0c 如何遍历使用位运算遍历集合A的所有子集 二 代码与注释 0 符号假设 假设全集为S S的元素个数为n A为集合S的子集 可以使用状态压缩方法加位运算表示集合A 例如 xff1a S 6
  • [LaTeX|翻译]What are .cls and .sty files? How are they different?

    什么是 cls和 sty文件 xff1f 它们的区别是什么 xff1f What are cls and sty files How are they different 通常来讲 xff0c cls和 sty文件是用于增强LaTeX功能的
  • [Pyplot] 绘制3D曲面+自定义面片颜色

    一 背景 使用python 43 matplotlib实现绘制3D曲面 xff08 由多个小面片组成 xff09 xff0c 支持自定义面片颜色 xff1b 实现效果如图 a b 所示 xff1a a 使用面片法向作为面片颜色 b 使用默认
  • [STL]使用vector::erase对vector遍历删除

    在对vector中的元素进行遍历删除时遇到了一点问题 xff0c 查博客发现博客上并不靠谱 在此记录 xff0c 共同进步 vector循环遍历正确代码 span class token keyword for span span clas
  • 判断一个数是不是质数(素数),3种方式介绍

    本文参考博文判断一个数是不是质数 素数 xff0c 3种方式介绍 xff0c 原文章解释的已经很详细 xff0c 本问增加部分博主自己的理解 一 概念介绍 质数 xff1a 质数是指在大于1的自然数中 xff0c 除了1和它本身以外不再有其
  • Ubuntu/Arm安装Mysql报错:mysql-server 依赖于 mysql-server-5.7;然而:软件包 mysql-server-5.7 尚未配置。

    报错内容如下 xff1a dpkg 依赖关系问题使得 mysql server 的配置工作不能继续 xff1a mysql server 依赖于 mysql server 5 7 xff1b 然而 xff1a 软件包 mysql serve
  • E90-DTU系列无线数传电台网关与节点4gDTU通信教程

    以E90 DTU 400SL22 ETH 与E90 DTU 400SL22 为例实现网关与节点进行数据交换 xff0c 其它频段或功率的网关 节点 xff0c 其操作方式与该视频教程一致 第一步 安装网关 为网关安装天线电源模块 第二步 调
  • STM32实现将printf重定向到串口的3种方法

    STM32实现将printf重定向到串口的3种方法 目录 STM32实现将printf重定向到串口的3种方法一 使用MicroLib重定向printf二 不使用MicroLib重定向printf三 使用标准库自定义printf 函数到串口1
  • 时钟传感器—DS3231

    时钟传感器 DS3231 DS3231概述DS3231引脚DS3231寄存器DS3231 操作 DS3231概述 DS3231是一款高精度I2C实时时钟器件内部带温度补偿 闰年补偿提供两个可编程日历闹钟提供秒 分 时 星期 日期 月 年等信
  • C语言进阶

    C语言进阶 数据操作1 数据修饰 auto static register const volatile2 大端模式 小端模式 内存操作1 动态内存管理 xff08 堆区 heap xff09 malloc calloc realloc f
  • 虚拟机VMware:由于找不到vcruntime140_1.dll,无法继续执行代码

    最近换了台新电脑 xff0c 就开始安装虚拟机VMware xff0c 就发现虚拟机开机的时候 xff0c 弹出了一个错误 xff0c 下图 于是 xff0c 百度了一下缺少vcruntime140 1 dll xff0c 如何解决 解决方
  • Linux 基础

    Linux 基础 进程1 进程查看命令 ps pstree job2 进程的状态3 进程间的关系3 1 父进程与子进程 xff0c frok vfrok 3 2 进程组3 3 会话 4 进程间通信 IPC4 1 管道 pipe4 2 信号
  • STC8A 应用知识归纳

    STC8A 应用知识归纳 串口通信串口寄存器介绍功能 定时器 计数器定时器寄存器介绍 看门狗 xff1a 复位看门狗寄存器操作 外部中断ADCADC寄存器介绍 串口通信 每个串行口有两个数据缓冲器 xff08 SBUF xff09 一个移位