程序

有效使用单片机外设功能:(5)程序设计(下)

上期我们已经学习了将程序放在地址空间中,并在向量表中显示保存位置的内容。本期将介绍在执行程序及产生中断时CPU内会发生什么变化。

引导程序的运行―程序计数器

一般来说,程序就是计算机将所要进行的处理按顺序排列的指令集。在单片机中,将程序保存在地址空间(存储器 空间)中(上期曾介绍过),并由CPU来执行(处理)指令。假设地址空间中的一个地址保存一条指令,先执行某个地址中的指令(如“将值置位到CPU中”处理),接着执行下一个地址中的指令,接下来再执行下一个地址中的指令……,像这样通过连续执行指令,便可执行程序。

那么,CPU是如何判断执行指令的顺序呢?在单片机中,程序被执行的时候“程序计数器(PC)”的值也同时被更新。存放在CPU内的指令地址中,程序计数器存储有下一条CPU将要执行的指令所在的地址。执行了某个地址的指令后,下一个该执行哪个地址中的指令呢?这个答案由程序计数器来告诉你。

一般来说,程序被保存在连续的地址中, 再由CPU按顺序执行存放在各个地址中的指令。图1为程序计数器的示意图。图中,假定(1)执行地址1000h中的指令,(2)执行地址1000h中的指令后,程序计数器的値自动增加一个量并显示出下一个地址1001h,接下来,(3)CPU执行地址1001h中的指令。

有效使用单片机外设功能:(5)程序设计(上)

我们在之前的四期中对利用单片机的功能进行程序设计进行了说明。单片机内置了非常便于使用的外设功能,大家一定也能感受到单片机可应对各种要求的能力。但是,如果要有效地运行单片机,程序是不可或缺的,那么程序到底是如何运行的呢?从本期开始,我们将分两期连续向大家介绍单片机与程序的关系。

关注单片机的存储器

在此之前,GR-SAKURA电路板(搭载瑞萨电子单片机“RX63N”)的程序设计是使用Web编译器来进行的。将通过编译器搭建的程序(Object Code,结果代码)如同写入U盘一样将之传送到GR-SAKURA电路板后再执行。那么,问题来了。写入(传送到)单片机的程序应该保存在哪儿呢?另外,程序又是如何被执行的呢?在解答这些问题的同时,让我们一起来了解一下单片机与程序的关系吧。

首先来了解存储器﹑主存储器和外置存储器的两种作用

记忆(保存)程序和数据的地方即存储器。存储器有以下两种类型。

主存储器

CPU能够直接进行存取的存储器,用于保存正在执行中的程序和数据

外置存储器(辅助存储器、二级缓存器)

浅谈单片机应用程序架构

在单片机中,有多个任务需要进行,如何处理才能保证单片机的工作效率以及每个任务完成的及时性?本文跟大家分享几个方法:

1、顺序执行法: