单片机专用系统的系统程序构成

时间:2023-03-13作者:佚名
专用系统是指利用微处理器构成的具有特定功能的系统,它是针对某个特定的功能专门设计的。近年来随着计算机技术的发展,使家用电器到形形色色的工控系统、通信系统的智能化成为可能。这些系统采用微处理器或微控制器构成智能系统,即在一个电子系统中内含微处理器或微控制器进行系统的信息处理和控制。由于在系统中,微处理器仅作为一个部件,因而将其称为嵌入式处理器。
  专用系统的设计包括了系统的硬件设计和软件设计。
  专用系统的硬件设计是根据专用系统的功能要求选择硬件设备,设计硬件设备的接口电路,并分配其地址。除此之外,还需根据系统对存储器的需要选择程序存储器和数据存储器的容量并分配地址。
  专用系统的软件即系统程序包含了程序区、数据区和堆栈区等部分,程序区主要根据系统对硬件的要求设计一系列的程序,以调用这些硬件设备;数据区为程序中所用的数据工作单元;堆栈区则为使用子程序、中断程序时,存放程序指针或被保护的参数。因此在设计系统程序时,应根据系统硬件所扩展的程序存储器和数据存储器来分配程序区、数据区和堆栈区。
  专用系统的系统程序和单一的程序不同,根据程序功能的要求,系统程序可采用分支程序、循环程序、子程序、查表程序等不同的程序结构,但这些程序仅仅是为完成某一个功能需要而采用的设计方法。作为专用系统的系统程序必须具备一个完整的结构,它必须保证在系统上电的时候能自动启动,并根据系统硬件的要求执行一定的功能。为此必须解决程序启动、系统初始化、堆栈使用和如何调用中断程序等问题。一个完整的系统程序采用如下结构:
程序启动地址定义
堆栈区设定
系统硬件初始化
数据区初始化
中断程序入口地址设定
主程序、子程序
中断服务程序
数据


  1. 程序启动地址
  在设计单一的程序时,通常根据使用的工作平台(如八位微处理器采用学习机、十六位微处理器采用PC机、微控制器采用仿真器)程序存储器的地址安排来选用程序的起始地址。在设计系统程序时,为保证在系统上电时自动进入系统程序,必须按照所用微处理器或微控制器复位后的程序指针来决定程序的起始地址。为此在设计系统的硬件时必须将程序存储器的地址与系统复位后的程序指针保持一致,同时在设计软件时,也必须将程序的起始地址与系统复位后的程序指针保持一致。
  不同的微处理器或微控制器复位后程序指针的值各不相同,如八位微处理器Z80复位后的程序指针为0000H,十六位微处理器INTEL 8086/8088复位后的程序指针为FFFF0H,微控制器MCS-51单片机复位后的程序指针为0000H。因此在设计这些微处理器或微控制器的系统程序时,必须将程序的起始地址按上述要求设置。
  2. 系统初始化
  系统初始化对系统所用的硬件和数据区进行初始化设定。根据系统对硬件的要求,尤其是可编程接口电路的使用都要求系统在使用这些硬件之前对硬件的工作方式进行设定。数据区初始化是将数据区的内容按程序的要求进行设定。
  3. 堆栈设置
  在设计子程序、中断程序时,通常要用堆栈来存放程序指针或被保护的参数。在设计单一的程序时,通常不考虑堆栈的设置,这是因为所用的工作平台已对堆栈进行了设置,而在设计系统程序时应根据微处理器或微控制器对堆栈的要求设置堆栈。堆栈是采用先进后出方式存放的随机存储器,在八位微处理器Z80和十六位微处理器INTEL 8086/8088中,它可位于随机存储器的任何地址,在数据压入堆栈的时候,堆栈指针减小,而数据弹出堆栈的时候,堆栈指针加大。在微控制器MCS-51单片机中,规定堆栈必须在内部RAM的00H~7FH的范围中,在数据压入堆栈的时候,堆栈指针加大,而数据弹出堆栈的时候,堆栈指针减小。
  堆栈设置是在存储器中划出一定的存储区域作为堆栈使用,具体做法是设定堆栈指针,在使用堆栈时堆栈指针将改变,应保证在程序运行的过程中,堆栈指针始终在设定的范围内。因此,在设计程序时应事先预计堆栈的大小,避免堆栈指针指向数据区或程序区,或超出存储器的范围。
  在数据压入堆栈其指针减小的操作方式中,在使用堆栈时,堆栈指针先减1,然后将需压入堆栈的内容传送到指针指向的存储器。在数据压入堆栈其指针加大的操作方式中,在使用堆栈时,堆栈指针先加1,然后将需压入堆栈的内容传送到指针指向的存储器。因此在设定初始堆栈指针时,总将其指向堆栈区之外的第一个单元,即比实际所用的堆栈地址大(或小)1,以便在使用堆栈时从堆栈的第一个单元开始使用。
  4. 中断程序
  在系统程序中,为了调用各种硬件设备,或调用特定的软件,可采用程序中断的方法。不同的微处理器或微控制器具有不同的进入中断程序的方法。微处理器或微控制器的中断处理功能越强,则该微处理器或微控制器构成系统的对外部设备调用的功能也越强。
  中断程序的设计包含了中断入口地址的设置和中断服务程序设计两部分,前者规定了中断服务程序的入口地址,当系统要求进入中断程序时,从该入口地址进入中断服务程序。根据微处理器或微控制器的结构,中断服务程序的入口地址的设置各不相同。中断服务程序则是以入口地址为起始地址的一段服务程序。与子程序不同的是,中断服务程序以中断返回指令结束,而子程序以一般的返回指令结束。类似于子程序,在中断服务程序中为了保护参数,通常采用将数据或标志压入堆栈的方法,此时应注意压入和弹出指令的配对。

相关阅读

关于变压器,你了解多少,是时候重温一下了

现代化生产和生活离不开电,而电力传输及获得各种等级的电压更离不开变压器。变压器是一种静止的电器,它通过线圈间的电磁感应作用,可以把一种电压等级的交流电能转换成同频...
2023-06-13
关于变压器,你了解多少,是时候重温一下了

冰箱怎么用才省电?学会5个小窍门,帮你省下大半电费

冰箱是现代人不可或缺的家电,特别是夏天,它简直是我们的 避暑神器, 冰棍、冰激凌等,离了它咋办?正常情况下冰箱需要24小时通电,作为使用频率较高、耗电较高的电器, 如何...
2023-06-11

为什么将钽电解电容器换成MLCC电容

将钽电解电容器替换为片状多层陶瓷电容器,这样做的原因主要有两个。 首先是可靠性问题。钽电解电容器存在短路故障时冒烟和起火的风险。对于搭载钽电解电容器的电子产品而言,...
2023-06-26
为什么将钽电解电容器换成MLCC电容

开关电源反馈电路原理图 基于TL431和光耦的反馈电路设计

开关电源最基本的要求是输入电压变化时,输出电压保持恒定,而与此相关的测试如电压调整率、负载调整率等也是衡量开关电源性能的重要指标,实现输出电压恒定的方式是反馈,即...
2023-08-07
开关电源反馈电路原理图 基于TL431和光耦的反馈电路设计

贴片电容容量不足、偏低是什么原因?

有时候我们在使用的贴片电容时发现贴片电容容量偏低,容量不符合标准,这是什么原因造成的呢?小编整理了以下几种原因仅供参考: 第一是,材质因素。X5R 、X7R、 Y5V 、NPO这几种材...
2023-03-31
贴片电容容量不足、偏低是什么原因?

热销商品

德国进口雅马哈风力灭火机大功率手提森林灭火器落叶工地吹雪机汽

德国进口雅马哈风力灭火机是一款高效、可靠的森林灭火和清理设备。它拥有大功率风机,能够迅速吹散落叶、杂草和积雪,有效清理工地和森林地面。这款灭火机采用先进技...
¥ 692.5

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
¥ 5.55

电位器旋钮电流调节螺帽直流逆变电焊机二保焊送丝机通用旋钮B102

电位器旋钮电流调节螺帽适用于直流逆变电焊机和二保焊送丝机,是一款通用的旋钮B102。该旋钮采用优质材料制造,具有耐磨损、耐高温、耐腐蚀等特点,能够长时间稳定运行...
¥ 0.7

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店,作为西门子品牌的专卖店,提供了一系列高品质、设计新颖的家居电气产品。这里销售的开关插座采用无框...
¥ 8.77

3M自粘橡胶条高硬度耐压实心幕墙玻璃舞台搭建货架专用减震密封条

3M自粘橡胶条是一款专为高要求工业及建筑场景设计的高性能密封减震材料,采用高硬度实心橡胶材质,具备优异的耐压性、抗老化性和持久弹性。其独特的自粘背胶设计,安装...
¥ 1.6

网站栏目