找回密码
 立即注册
楼主: YKB345

今天开始学习stc32

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2024-07-01 10:22:38

1

主题

15

回帖

69

积分

注册会员

积分
69
发表于 2024-7-1 12:02:53 | 显示全部楼层

第十三、十四集 中断原理及工作机制相关内容

这两节课主要讲解了中断的相关概念和知识

一、中断的基本概念
中断是指计算机运行过程中,当某个紧急事件或异常情况需要主机干预时,机器能自动停止正在运行的程序,并转入处理新情况的程序,处理完毕后再返回原被暂停的程序继续运行的过程。
二、中断的分类
中断可分为硬件中断和软件中断两大类:
  • 硬件中断
    • 由硬件设备(如网卡、时钟电路等)产生的中断。
    • 又可细分为可屏蔽中断不可屏蔽中断。可屏蔽中断可通过设置中断屏蔽寄存器来关闭;而不可屏蔽中断则不受此影响,一旦产生,CPU必须立即响应。
    • 硬中断具有实时性强、可靠性高、处理速度快等特点。
  • 软件中断
    • 由软件程序主动发起的,如系统调用、异常等。
    • 响应速度和实时性相对较差,但具有灵活性和可控性高的特点。

三、中断的工作机制
中断的工作机制一般包括以下步骤:
  • 中断请求
    • 中断源(如硬件设备或软件程序)向CPU发出中断请求信号。
  • 中断响应
    • CPU在每条指令执行的最后一个时钟周期检测中断请求输入端,判断有无中断请求。
    • 若CPU接收到了中断请求信号,且此时CPU内部的中断允许触发器的状态为1,则CPU在现行指令执行完后,发出INTA信号响应中断。
  • 保护断点
    • CPU响应中断后,需要保护当前正在执行程序的断点信息(即返回主程序时执行的第一条指令的地址),以便在中断结束后仍能回到该断点处继续执行。
  • 处理中断
    • CPU跳转到中断处理程序去处理这个中断。用户编写的用于CPU为中断源进行中断处理的程序称为中断服务程序。
  • 中断返回
    • 中断服务程序执行完毕后,CPU恢复被保护的断点信息,并返回到原先被中断的程序继续执行。

四、中断的优先级
当多个中断源同时发出中断请求时,CPU会根据中断的优先级来决定先响应哪个中断。例如,在8086/8088系统中,中断优先级从高到低依次为:软件中断(除单步中断)>非屏蔽中断NMI>可屏蔽中断INTR>单步中断。
计算机的中断系统一般允许多个中断源,当几个中断源同时向CPU请求中断,要求为其服务的时候,就存在CPU优先响应哪一个中断源请求的问题。通常根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求源,即规定每一个中断源有个优先级别。CPU总是先响应优先级别最高的中断请求。
当CPU正在处理一个中断源请求的时候(执行相应的中断服务程序),发生了另外一个优先级比它更高的中断源请求,CPU暂停原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低优先级中断的服务程序这样的过程称为中断嵌套
老师重点讲了STC8H8K64U的中断源还有中断标志位
5.单片机中断处理过程
(1)中断响应的条件及过程
当中断源向CPU发出中断请求时,如果中断的条件满足,CPU将进入中断响应周期。单片机响应中断的条件是:
1)中断源有请求。
2)中断允许寄存器位相应位置1。
3)CPU中断开放(EA=1)

CPU响应中断时,将相应的优先级状态触发器置1,然后由硬件自动产生一个长调用指令LCALL,此指令首先把断点地址压入堆栈保护,再将中断服务程序的入口地址送入到程序计数器PC,使程序转向相应的中断服务程序。
(2)中断服务
中断服务程序从入口地址开始执行,直到执行返回指令RETI为止。RETI指令表示中断服务程序的结束,CPU执行该指令,一方面清除中断响应时所置位的优先级有效触发器,一方面由栈顶弹出断点地址送程序计数器PC,从而返回主程序。中断服务程序由四个部分组成,即保护现场、中断服务、恢复现场以及中断返回。
由于在主程序中一般都会用到累加器A和程序状态字寄存器PSW,所以在现场保护时一般都需要保护A和PSW,其他寄存器根据使用情况决定是否需要保护。
在编写中断服务程序时应注意以下两点:
1)单片机响应中断后,不会自动关闭中断系统。如果用户程序不希望出现中断嵌套,则必须在中断服务程序的开始处关闭中断,从而禁止更高优先级的中断请求中断当前的服务程序。2)为了保证保护现场和恢复现场能够连续进行,在保护现场和恢复现场之前应先关中断,当现场保护或现场恢复结束后,再根据实际需要决定是否需要开中断,

屏幕截图 2024-07-01 115934.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2024-07-01 10:22:38

1

主题

15

回帖

69

积分

注册会员

积分
69
发表于 2024-7-1 12:11:23 | 显示全部楼层

第十五集 定时器原理及STC拓展相关笔记

定时器原理
定时器原理可以分为硬件定时器和软件定时器两种类型。以下是它们的简要原理:
硬件定时器:
时钟信号源:提供稳定的时钟信号作为计时器的基准。
计数器:计数器从预设值开始计数,每当时钟信号到达时,计数器递增。计数器的位数决定了定时器可以测量的最大时间间隔。
预设值寄存器:用于设置定时器的初始值,即计数器开始计数的起点。
中断控制器:当计数器达到预设值时,中断控制器会触发一个中断请求,通知处理器处理相应的中断服务程序。
软件定时器:
通过编程语言或操作系统提供的软件接口实现。
使用操作系统的时钟信号或其他软件信号作为计时器的基准。
使用一个变量或数据结构来存储计时器的当前值,该变量在时钟信号到达时递增。
当该变量达到预设值时,会触发一个中断信号,操作系统会捕获该信号并执行相应的中断处理程序。
STC拓展
关于STC的拓展,通常是指STC系列单片机(如STC89C52)的特定功能或资源扩展。然而,参考文章中没有直接关于“STC拓展”的具体描述,但可以参考STC89C52单片机的一些特性:
定时器资源:STC89C52具有3个定时器(T0、T1、T2),其中T0和T1与传统的51单片机兼容,T2是该型号单片机增加的资源。
定时器工作模式:T0和T1均有四种工作模式,包括13位定时器/计数器、16位定时器/计数器(常用)、8位自动重装模式和两个8位计数器。
中断系统:STC89C52具有8个中断源(如外部中断0、定时器0中断等)和4个中断优先级。
老师还讲了定时器的工作模式
1. 模式0:13位定时器/计数器 (TMOD = 0x00)
  • 工作方式:仅作为定时器,自动重载。
  • 工作情景:用于周期性的定时任务,产生固定时间间隔的中断。
  • 特点:定时器/计数器由高8位和低5位组成13位计数器,TL(低8位)低5位溢出时向TH(高8位)进位,TH溢出时向中断标志位TF进位,并申请中断。
2. 模式1:16位定时器/计数器 (TMOD = 0x01)
  • 工作方式:仅作为定时器,手动重载。
  • 工作情景:用于需要更长时间跨度的定时任务,由软件手动控制定时器的重装值。
  • 特点:定时器/计数器由TH和TL两个8位寄存器组成16位计数器,整个16位参与操作。
3. 模式2:8位自动重装定时器/计数器 (TMOD = 0x02)
  • 工作方式:作为定时器,并在中断处理程序中自动重装初值。
  • 工作情景:适用于需要周期性定时任务,且中断处理程序需要花费较长时间。
  • 特点:TL作为8位自动重装计数器,TH用于保存初值。每当TL计数溢出时,TH中的值会自动重装到TL中,继续下一个8位的计数。
4. 模式3:双重8位定时器/计数器 (TMOD = 0x03)
  • 工作方式:两个8位定时器/计数器一起工作。
  • 工作情景:适用于需要同时进行两个定时任务或频率测量的情况。
  • 特点:T0被拆分为两个独立的8位计数器TL0和TH0,可以独立或同时工作。

屏幕截图 2024-07-01 120825.png
屏幕截图 2024-07-01 120845.png
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-9 02:05 , Processed in 0.120426 second(s), 52 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表