单片机若干知识整理

(1)8051单片机指令系统中有长跳转LJMP,长调用LCALL指令、短跳转AJMP,短调用ACALL指令区别?

在实际应用中,可从寻址范围和指令长度两个方面来选择长跳转指令LJMP和短跳转指令AJMP、长调用指令LCALL和短调用指令ACALL。
长跳转LJMP在64KB范围内转移,而短跳转AJMP只能在2KB空间转移。

长调用LCALL调用位于64KB程序空间的子程序,而短调用ACALL调用位于2KB程序空间范围的子程序。

AJMP、ACALL指令代码长度为2个字节;LJMP、LCALL指令代码长度为3个字节。  

http://www.dpj100.com/zhiling/20090903427.html

(2)中断返回与子程序返回的相同点与区别点

调用中断服务子程序和调用子程序时都会把当前偏移地址的下一地址压栈,
相同点:
从堆栈中弹出由调用指令压入堆栈保护的断点地址,并送入指令计数器pc,函数返回到断点处继续执行;
区别点:
调用子程序的返回指令是RET,中断服务子程序返回指令时RETI,
RET不影响标志位,但RETI会清除内部相应的中断状态寄存器。
http://zhidao.baidu.com/question/81215113
(3)编写中断函数应该注意的几点
两个相邻中断服务程序的入口地址相距只有8个字节,一般的中断服务子程序是放不下的,应该放在其它位置,使用LJMP/AJMP跳转调用。
硬件LCALL调用,只是将PC内的断点地址压入堆栈保护,所以要保护现场(对其他寄存器(程序状态字寄存器PSW、累加器A等)的内容作保存)。

(4)单片机晶振的两个电容的作用

这两个电容叫晶振的负载电容,分别接在晶振的两个脚上和对地的电容,一般在几十皮发。它会影响到晶振的谐振频率和输出幅度,

晶振与两个电容一起构成一个电容三点式振荡器,晶体旁边的两个电容接地, 实际上就是电容三点式电路的分压电容,当两个电容量相等时, 反馈系数是 0.5, 满足振荡条件。

你可能感兴趣的:(单片机若干知识整理)