为什么keil中断向量设置错误,proteus仿真结果依然正确?

2025-03-29 23:32:27
推荐回答(1个)
回答1:

你这有点自欺欺人,故意这么改有什么意思吗?

如果你对单片机代码在ROM内部的存放顺序有所了解就可以理解了,所以,这样改了以后,一点也不好玩,没有意思。
因为,虽然你定义了中断是从0023H开始的,但T1定时器的中断向量仍为001BH,是永远不会改变的。但是,因为没有在001BH开始存放中断程序,所以,从001BH开始至0023H这部分存储区是FFH,这是有效的代码,是MOV R7,A 指令,这当然会执行的,但对于你的程序没有任何影响,所以,没有体现出来。
好了,再说你的程序,T1中断后,仍然是从001BH开始执行程序的,这决不会变,这就要执行8条
MOV R7,A指令,就执行0023H处程序了,从而进入你写的真正的T1的中断子程序了,所以,看起来都很正常了。