MCS-51单片机系统程序的设计

  微控制器MCS-51具有64K程序存储器和64K数据存储器的寻址能力。其数据存储器和I/O设备统一编址均在64K的范围内。其复位后的程序指针为0000H,因此在设计系统的硬件时必须将程序存储器的地址安排在0000H开始的存储器,使其与系统复位后的程序指针保持一致。同时在设计系统程序时,也必须将程序的起始地址安排在0000H开始的单元中。

  INTEL MCS-51单片机采用了5个中断,即外部中断0、定时器T0中断、外部中断1、定时器T1中断和串行口中断,这5个中断的中断服务程序入口地址分别为0003H、000BH、0013H、001BH和0023H。这样在地址0000H到0003H之间只有3个字节,因此在启动地址通常只能安排转移指令,使程序在启动后转移到主程序。如需在程序中使用中断,就要在中断服务程序入口地址内存放相应的转移指令,在执行中断程序时,通过这5个地址的转移指令跳转到相应的中断服务程序中。

  MCS-51单片机的堆栈安排在内部RAM的00H~7FH单元。由于00H~1FH为寄存器组,20H~2FH为位操作单元,此外还需在30H以后的地址安排部分工作单元,因此堆栈通常只能安排在大于30H的内部RAM中。MCS-51单片机的堆栈操作采用了在数据压入堆栈的时候,堆栈指针加大,而数据弹出堆栈的时候,堆栈指针减小的方法,因此可将堆栈指针设置为在内部RAM中堆栈的最小地址减1。应估计子程序和中断程序使用的数量和数据压入、弹出堆栈的数量,以确定堆栈的大小。如堆栈估计不足将会使堆栈指针超出内部RAM(7FH)的范围,这样将可能使压入的数据无法恢复,也可能使压入堆栈的程序指针丢失,而后者将导致程序无法执行,形成死机。,  微控制器MCS-51具有64K程序存储器和64K数据存储器的寻址能力。其数据存储器和I/O设备统一编址均在64K的范围内。其复位后的程序指针为0000H,因此在设计系统的硬件时必须将程序存储器的地址安排在0000H开始的存储器,使其与系统复位后的程序指针保持一致。同时在设计系统程序时,也必须将程序的起始地址安排在0000H开始的单元中。

  INTEL MCS-51单片机采用了5个中断,即外部中断0、定时器T0中断、外部中断1、定时器T1中断和串行口中断,这5个中断的中断服务程序入口地址分别为0003H、000BH、0013H、001BH和0023H。这样在地址0000H到0003H之间只有3个字节,因此在启动地址通常只能安排转移指令,使程序在启动后转移到主程序。如需在程序中使用中断,就要在中断服务程序入口地址内存放相应的转移指令,在执行中断程序时,通过这5个地址的转移指令跳转到相应的中断服务程序中。

  MCS-51单片机的堆栈安排在内部RAM的00H~7FH单元。由于00H~1FH为寄存器组,20H~2FH为位操作单元,此外还需在30H以后的地址安排部分工作单元,因此堆栈通常只能安排在大于30H的内部RAM中。MCS-51单片机的堆栈操作采用了在数据压入堆栈的时候,堆栈指针加大,而数据弹出堆栈的时候,堆栈指针减小的方法,因此可将堆栈指针设置为在内部RAM中堆栈的最小地址减1。应估计子程序和中断程序使用的数量和数据压入、弹出堆栈的数量,以确定堆栈的大小。如堆栈估计不足将会使堆栈指针超出内部RAM(7FH)的范围,这样将可能使压入的数据无法恢复,也可能使压入堆栈的程序指针丢失,而后者将导致程序无法执行,形成死机。

MCS-51单片机系统程序的设计

相关文章:

你感兴趣的文章:

标签云: