单片机按键解决方法计划要点计划.docxVIP

  • 5
  • 0
  • 约7.18千字
  • 约 13页
  • 2021-06-29 发布于山东
  • 举报
精品文档 精品文档 PAGE PAGE13 精品文档 PAGE 单片机按键的解决解决方案 1、单片机上的按键控制一般采用两种控制方法:中止和查问。中止必须借助中止引脚,而查问按键可用任何IO端口。按键较少时,一个按键占用一个端口,而按键较多时,多 采用矩阵形式(如:经常用4个端口作为输出,4个端口作为输入的4X4矩阵来获得16个按键);还能够用单片机的AD变换功能一个引脚接多个按键,根据电阻分压原理判断是哪个按键按下。 2、中止形式 STM32可支持68其中止通道,已经固定分派给相应的外部设施,每其中止通道都具备 自己的中止优先级控制字节 PRI_n(8位,可是STM32中只使用 4位,高4位有效),每 个通道的 8位中止优先级控制字组成一个 32位的优先级存放器。 68个通道的优先级控 制字起码组成 17个32位的优先级存放器 .  4 4bit的中止优先级能够分红 2组,从高位看,前面定义的是抢占式优先级,后边是响应 优先级。按照这种分组, 4bit一共能够分红 5组 第0组:所有 4bit用于指定响应优先级; 第1组:最高 1位用于指定抢占式优先级,后边 3位用于指定响应优先级; 第2组:最高 2位用于指定抢占式优先级,后边 2位用于指定响应优先级; 第3组:最高 3位用于指定抢占式优先级,后边 1位用于指定响应优先级; 第4组:所有 4位用于指定抢占式优先级。 所谓抢占式优先级和响应优先级, 他们之间的关系是: 具有高抢占式优先级的中止能够 在具有低抢占式优先级的中止办理过程中被响应,即中止嵌套。 当两其中止源的抢占式优先级相同时, 这两其中止将没有嵌套关系, 当一其中止到来后, 如果正在办理另一其中止, 这个后到来的中止就要等到前一其中止办理完之后才能被处 理。如果这两其中止同时抵达, 则中止控制器根据他们的响应优先级高低来决定先办理 哪一个;如果他们的抢占式优先级和响应优先级都相等, 则根据他们在中止表中的排位 次序决定先办理哪一个。每一其中止源都必须定义 2个优先级。 有几点需要注意的是: 1)如果指定的抢占式优先级别或响应优先级别高出了选定的优先级分组所限定的范围,将可能得到意想不到的结果; 2)抢占式优先级别相同的中止源之间没有嵌套关系; 3)如果某其中止源被指定为某个抢占式优先级别,又没有其余中止源处于同一个抢占 式优先级别,则能够为这其中止源指定随意有效的响应优先级别。 GPIO外部中止: STM32中,每一个 GPIO都能够触发一个外部中止, 可是,GPIO的中止是以组为一个单 位的,同组间的外部中止同一时间智能使用一个,如: PA0,PB0,PC0,PD0,PE0,PF0这些为 1组,如果我们使用 PA0作为外部中止源,那么其他就不能使用了,在此情况下我们使 用近似于  PB1,PC2这种末端序号不同的外部中止源,每一组使用一其中止标志  EXTI x.EXTI0~EXTI4这5个外部中止有着自己独自的中止响应函数。 断响应函数, EXTI10~EXTI15共使用一其中止响应函数。  EXTI5~EXTI9共用一其中 关于中止的控制, STM32有一个专用的管理机构 动等等都是由 NVIC在管理的。 编写IO口外部中止步骤及其注意事项 :  NVIC.中止的使能,挂起,优先级,活 设置中止优先级组;(2)开启时钟(IO口时钟,复用时钟);(3)设置中止线并对中止进行初始化配置(设置中止线,确定中止模式,中止触发沿设置,使用指定设置初始化 外部中止);(4)设置中止管理器NVIC各参数(包括:使能产生外部中止外设的IO所在的外部中止通道;设置外部中止的优先级抢占优先级,响应优先级;使能外部中止通道;使用设置好的各其中止管理器上的参数来初始化中止管理器)。外部中止服务函数达成中止操作需要最终达到的目标。  口 3、矩阵形式 键盘矩阵原理: a*b矩阵键盘由 a条行线和  b条列线组成,行线接端口 P3(p3表任一 端口)P3.0、P3.1、P3.2p3.(a-1);列线接p3.a,p3.(a+1)P3.(b-1).按键位于每条行线和列线的交错点上。 按键的辨别可采用行扫描法和线反转法,这里采用简单的  线反转法,只需三步。 第一步,履行程序使 X0~X3均为低电平,此时读取各列线 Y0~Y3的状态即可知道是否 有键按下。当无键按下时,各行线与各列线相互断开,各列线仍保持为高电平;当有键按下时,则相应的行线与列线经过该按键相连,该列线就变为低电平,此时读取 Y0Y1Y2Y3的状态,得到列码。 第二步,履行程序使Y0~Y3均为低电平,当有键按下时,X0~X3中有一条行线为低电平,其余行线为高电平,读取X0X1X2X3的状态,得到行码。 第三步,将第一步得到的列码和第二步得到的行码归并得到按键的

文档评论(0)

1亿VIP精品文档

相关文档