1. 首页
  2. 网络技术
  3. 其他
  4. 引脚低电平信号产生的中断服务子-starter使用手册

引脚低电平信号产生的中断服务子-starter使用手册

上传者: 2024-07-28 13:56:03上传 PDF文件 13.05MB 热度 16次

ORG 0003H ;P3.2引脚信号中断入口

AJMP INTERRUPT0 ;跳转到标号INTERRUPT0处(P3.2中断服务子程序)

ORG 0030H ;初始化程序从30H开始

;---初始化----

START:MOV SP, #60H ;给堆栈指针赋值60H

MOV P0, #0FFH ;让P0口输出高电平,小灯熄灭

SETB IT0 ;设置P3.2引脚下降沿信号可以引发中断

SETB EX0 ;开外中断0,即允许P3.2信号中断CPU

SETB EA ;开总中断允许

;---主程序----

MAIN:SJMP MAIN ;程序跳转到MAIN处

;-----P3.2脚引发的中断服务子程序----

INTERRUPT0:CPL P0.7 ;取反P0.7口状态

RETI ;中断子程序结束返回到主程序

END ;程序结束



从上面程序的实验现象可以知道只有P3.2引脚上的下降沿这一刻能触发中断,而P3.2引脚输入的信号低电平分别至少要持续12个振荡周期。我们来看一下如何通过低电平信号触发控制两个LED闪烁。



**硬件电路设计**如图8-4所示,给P3.2和P3.3引脚连接到GND上,用来给这两个引脚提供低电平信号;两个LED小灯分别接在P0.0和P0.7引脚。



**软件设计思想**如图8-5所示,程序包括四部分,分别是初始化程序,主程序和两个中断服务子程序。初始化程序负责对P3.2和P3.3引脚能否引发中断进行授权及以什么信号引发中断的进行设置,此外还要设置堆栈指针及LED小灯的初始亮灭状态等;主程序中没有任何事件可做,所以程序只需要停止在一个地方即可;P3.2引脚低电平信号产生的中断服务子程序负责取反P0.0引脚状态,P3.3引脚低电平信号产生的中断服务子程序负责取反P0.7引脚状态。引脚一直为高电平或一直为低电平时不会引发中断。需要注意的是,信号的频率不能太高,如果太高,CPU就“反应”不过来了,因此要求产生下降沿的高电平和低电平信号要有一定的时间间隔。



想要更深入了解如何通过外部中断控制LED的翻转,可以参考[中断控制LED](https://www.dude6.com/q/a/7800604.html)的详细教程。如果你对单片机软件中断和硬件中断的区别感兴趣,不妨看看[单片机软件中断和硬件中断的区别](https://www.dude6.com/q/a/5662219.html)。如果你使用ARM进行开发,可以参考[ARM的中断控制LED](https://www.dude6.com/q/a/306403.html)的资料获取更多相关信息。



在掌握了这些知识之后,你就可以开始设计自己的硬件和软件系统,通过外部中断控制LED,创造出令人惊叹的效果!什么样的项目会是你的下一个挑战呢?不妨开始你的创意之旅吧!

下载地址
用户评论