【问题标题】:Assembly Language on 8051 , using interrupts to move to label8051 上的汇编语言,使用中断移动到标签
【发布时间】:2014-04-06 02:33:14
【问题描述】:
我在连接开发板的 8051FX120 芯片组上使用汇编语言。此开发板有 8 个 LED 和 8 个按钮。
按钮连接到端口 P1。
LED 连接到端口 P2
-
我希望尝试利用中断,以便当按钮 P1.0 变高时运行中断。
- 在中断代码内部,代码需要等待 P1.0 再次被推送(并通过 RETI 返回到中断前的最后一个程序计数)
或
- 如果 P1.1 被推送,那么程序应该跳转到一个标签,然后从那里运行代码。
其他方式
- 中断代码将继续循环,直到其中一个 P1 引脚变为高电平。
【问题讨论】:
标签:
assembly
interrupt
8051
【解决方案1】:
ISR(中断服务程序)等待其他事情发生是糟糕的设计(也是一个坏主意)。通常,ISR 服务于中断并更改任何相关结构的状态,例如将接收到的字符移动到读取缓冲区,或解除阻塞等待事件的任务。
通常最好在应用程序级别等待执行您描述的那种逻辑。
但是,在您可以通过中断对按钮按下做出反应之前,该按钮必须以某种方式连接到 CPU 中的 IRQ(中断请求输入)。由于您没有链接到该板的规范,因此我不知道是否链接。当然,可以从主任务定期轮询按钮,并且所有逻辑都可以从它找到的内容中得出。