STC8A 应用知识归纳

  • Post author:
  • Post category:其他




串口通信

每个串行口有两个数据缓冲器(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 : 		保存结果低字节



版权声明:本文为StudyPower_Max原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。