51单片机中断不能反回怎么办

来源:百度知道 编辑:UC知道 时间:2024/05/12 02:07:25
就是进了中断子程序
但是不能返回主程序
怎么会这样的呢?
我是用两个中断做了8个按键

请问你中断使用的是沿触发,还是电平触发。
如果是电平触发你应该在进入中断后软件清外中断标志,否者会重复进入中断。

你还是把程序表上来看一下吧

不能返回是不可能的,碰到reti就会返回

可能是返回又进入,退出前一定要清除标志位

作键键一定要有软件,硬件消抖,硬件最简单的是上拉一个电阻,下接一下电容

软件主要就是在进入中断以后,要有延时等待,或是进入计数,一般按键要有30ms左右,也就是从按到松的这段时间

一般是你堆栈溢出。初始化时sp=07h,就是从08h开始存数据。中断响应后,pc指针的数据(16位)低8位先入栈,高8位后入栈。所以即使中断子程序里没使用入栈指令时,08h09h也会被使用。你用的什么型号单片机?如果是比较新的,可以在初始化段加这样一条指令:
MOV SP,#7FH

把程序发上来看看,应该是程序的问题