0
点赞
收藏
分享

微信扫一扫

c++:基于c语言基础上的语法不同(1)

在觉 2024-01-20 阅读 15

一.单片机各引脚回顾

开发板上面使用的是DIP封装(双列直插式),有40只引脚!
在这里插入图片描述

40只引脚按其功能来分,可分为3类:

  • 电源和时钟引脚
  • 控制引脚
  • I/O口引脚

1.电源和时钟引脚

该类包含:VccVssXTAL1XTAL2

  • 电源引脚接入单片机工作电源:
    Vcc(40脚)接+5V电源;Vss(20脚)接地。
  • 时钟引脚
    XTAL1XTAL2(18、19号引脚)分别接我们开发板的外部晶振,为单片机提供工作频率节拍。

2.控制引脚

  • RST(RESET)9号引脚是复位信号输入端,当单片机运行时,在此引脚加上持续两个机器周期的高电平时,就可以完成复位操作。Vpd为本引脚的第二功能,即备用电源输入端。当主电源Vcc发生故障,降低到某一规定值的低电平时,将+5v电源自动接入RST端,为内部RAM提供备用电源,从而保证单片机复位后能继续运行。
  • EA为内外部程序储存器选择端(31号引脚)。当EA为高电平时,单片机访问内部程序储存空间,为低电平时访问外部程序存储空间。Vpp编程电压的输入端。
  • ALE(30号引脚)为地址所存允许信号,PROG为对片内为EPROMS单片机编写程序时,此引脚做编程脉冲输入。
  • PSEN(29号引脚)当单片机访问外部程序储存器时。此引脚为读取读取外部储存选通信号。

3.I/O口引脚

这里需要注意的是P0口如果需要接高电平,那么我们需要接一个上拉电阻;而P2P1口则不需要,除此之外,P3口还有第二功能。

中断系统中,有很多种中断,比如串口中断、外部中断、定时器中断……,我们后面慢慢学,今天这里只是了解中断系统。

二.中断系统

为了让我们更加方便的理解中断这个概念,举例:假设你正在吃饭,这时接到快递员电话叫你下楼取快递只等5分钟,这就是中断请求。然后你回答:“好的,我现在就来”这就是中断响应。接着你停止吃饭下楼去取快递,这就是中断处理;取完快递,你再回来接着吃饭,这就叫做中断返回。从以上可以看出,中断分为4个步骤: 中断请求->中断响应->中断处理->中断返回。

其实如果学习了计算机组成原理或操作系统,这个比较号好理解的,这里的中断步骤太非专业化了,你甚至可以熟悉中断的整个流程并且由什么完成。

三.知识点补充

1.数据输入/输出传送方式

  • 无条件传送方式:一方对另一方来说总是准备好的。
  • 查询传送方式(LOOK UP):传送前一方先查询另一方的状态,若已经准备好就传送,否则就继续查询/等待。
  • 中断传送方式(IRQ) :一方通过申请中断的方式与另一方进行数据传送。
  • 直接存储器存取方式(DMA):双方直接通过总线传送数据,不经CPU中转。适用于数据量大、高速通讯的设备,不占用CPU时间。

2.中断传送方式特点

数据传送的双方平时各自做自己的工作,一旦甲方要求与乙方进行数据传送,就主动发出信号提出申请,乙方接到申请后若同意传送,安排好当前的工作,再响应与甲方发生数据传送。完事后,回去继续做打断前的工作。
中断功能强弱是计算机性能优劣的重要标志:

  • 提高CPU效率
  • 解决速度矛盾
  • 实现并行工作
  • 应付突发事件.·····

3.中断系统结构

在这里插入图片描述

4.中断源

51子系列允许5个中断源:

  • 外部中断源 (2个) :
    • INTO一一由P3.2端口线引入,低电平或下降沿引起。
    • INT1一一由P3.3端口线引入,低电平或下降沿引起。
      这两个外部中断源标志和它们的触发方式控制位由特殊功能寄存器TCON的低4位控制。
  • 内部中断源 (3个) :
    • T0一一定时器/计数器0中断,由TO回零溢出引起。
    • T1一一定时器/计数器1中断,由T1回零溢出引起
    • TX/RX——串行I/O中断,串行端口完成一帧字符发送/接收后引起。
      这3个内部中断源的控制位分别锁存在特殊功能寄存器TCONSCON中。
      在这里插入图片描述

四.如何使用中断系统

1.允许中断

STC89C51RC/RD+系列单片机CPU对中断源的开放或屏蔽,每一个中断源是否被允许中断,是由内部的中断允许寄存器IE (地址为A8H)和XICON (地址为COH) 控制的。
允许中断,结合上一部分的结构图,说的就是IE(允许中断寄存器)部分,里面有一个总开关EA,只有总开关EA=1被打开时,各中断才能够允许进入下一阶段;除了总开关EA要打开之外,各种中断对应的开关也需要打开,比如INT0要打开对应的EX0,T0要打开对应的ET0……此外,IE的一个显著特征是可位寻址,可位寻址的体现在我们写代码时就是可以直接赋值,比如EA=1,EX0=1等等。
在这里插入图片描述

  • EA:CPU的总中断允许控制位,EA=1,CPU开放中断,EA=0,CPU屏蔽所有的中断申请。EA的作用是使中断允许形成两级控制。即各中断源首先受EA控制;其次还受各中断源自己的中断允许控制位控制。
  • ET2: 定时/计数器T2的溢出中断允许位。ET2=1,允许T2中断;ET2=0,禁止T2中断。
  • ES : 串行口1中断允许位。ES=1,允许串行口1中断:ES=0,禁止串行口1中断。
  • ET1:定时/计数器T1的溢出中断允许位。ET1=1,允许T1中断:ET1=0,禁止T1中断
  • EX1: 外部中断1中断允许位。EX1=1,允许外部中断1中断:EX1=0,禁止外部中断1中断
  • ET0:TO的溢出中断允许位。ETO-1,允许T中断:ETO-0禁止TO中断。
  • EX0:外部中断0中断允许位。EX0=1,允许中断:EX0=0禁止中断。

2.配置中断方式

首先认识一个寄存器:TCONTCON为定时器/计数器T0、T1的控制寄存器,同时也锁存T0、T1溢出中断源和外部请求中断源等,其也是可位寻址的。
在这里插入图片描述

  • TF1:T1溢出中断标志。T1被允许计数以后,从初值开始加1计数。当产生溢出时由硬件置“1”,TF1向CPU请求中断,一直保持到CPU响应中断时,才由硬件清“0” (也可由查询软件清“0”)
  • TR1定时器1的运行控制位。
  • TF0:T0溢出中断标志。T0被允许计数以后,从初值开始加1计数,当产生溢出时,由硬件置“1”,TFO向CPU请求中断,一直保持CPU响应该中断时,才由硬件清0(也可由查询软件清0)。
  • TR0:定时器0的运行控制位。
  • IE1:外部中断1请求源(INT1/P3.3)标志。IE1=1,外部中断向CPU请求中断,当CPU响应该中断时由硬件清“0”。
  • IT1:外部中断1中断源类型选择位IT1=0INT1/P3.3引脚上的低电平信号可触发外部中断;IT1=1,外部中断1为下降沿触发方式。
  • IE0:外部中断0请求源 (INTO/P3.2)标志。IE0=1外部中断0向CPU请求中断,当CPU响应外部中断时,由硬件清“0”。
    IT0:外部中断0中断源类型选择位IT0=0INTO/P3.2引脚上的低电平可触发外部中断0;IT0=1,外部中断0为下降沿触发方式。

3.编写中断处理函数

中断优先级处理原则(对同时发生多个中断申请时):

  • 不同优先级的中断同时申请 (很难遇到),先高后低
  • 相同优先级的中断同时申请 (很难遇到),按序执行
  • 正处理低优先级中断又接到高级别中断,高打断低
  • 正处理高优先级中断又接到低级别中断,高不理低

内部查询顺序:在同时收到几个同一优先级的中断请求时,哪一个中断请求能优先得到响应,取决于内部的查询顺序。这相当于在同一优先级内,还同时存在另一辅助优先级结构,其查询顺序如下:
在这里插入图片描述
中断处理函数模型:

void 函数名() interrupt 2             //普通函数基础上,加关键字interrupt和入口号
{
	中断处理语句
}
举报

相关推荐

0 条评论