单片机的难点问题我们要如何处理

想学习单片机的同学可以关注、私信我或者在评论区回复我要入门。因为单片机有CPU、存储器、输入输出等等,它实际上就相对于一个小的计算机,我们在学习理解单片机的时候,如果能把计算机的理解融入进来的话,会对你学习单片机的概念有非常大的帮助。

打开网易新闻 查看精彩图片

单片机有很多的概念记忆起来我们头皮发麻,“堆栈”就是其中一种我认为比较难记的,单从汉语是完全理解不了这个词的意思的。

我们记忆的时候可以大开脑洞,把一些难记的概念用我们比较习惯的方式去记忆,这样有助于我们对概念有一个深刻的理解。

单片机里面是有存储区和CPU的,我把单片中的CPU想成一个人机器人,这个人的第一个特点是:他很蠢、记忆不好。

存储区就好像排好的小盒子,这些盒子的作用分为两类:

一类是用来储存我们的命令,比如你在某个盒子里面的纸条上写着:帮我洗衣服。另一类是保存实物的,我们理工男经常不愿洗的衣服。我们的机器人很蠢这些盒子都有各自的编号,方便我们告诉它去找哪个盒子。

那么,现在我们可以来说明一下单片机是如何工作的了。

首先,我们要把所有的命令还有需要处理的东西放进那些小盒子,就像刚才我们说的那桶衣服还有那张洗衣服的纸条,因为它笨——如果它单看到衣服它也不知道你要让它做什么,单看到命令也不知道洗什么。

当你把要做的事情和该怎么做写到盒子里之后,单片机是一个很负责任的人,他会按照你制定的顺序或者——如果你没有给定的话,根据盒子上面的编号按照从小到大的顺序——一个一个地打开盒子,读取里面的命令、处理相应的事件,直到所有的事情都执行完毕,他就会去睡觉了。

下面,就要开始说明堆栈这个概念了,按照本文的逻辑,实际上也就是一些盒子,所以现在我们把“堆栈”改名叫“记忆盒子”,你可以感觉到,“堆栈”的作用和记忆有极大的关系。

现在我就来解释下“记忆盒子”,也就是“堆栈”。实际上“记忆盒子”的作用是当单片机执行某任务到一半的时候突然有了更紧急的是事情要执行的时候用来保存当前任务的(包括盒子的编号和盒子里面的东西)。其实,通俗一点,就是当机器人洗衣服洗到一半的时候突然接到你的命令要去帮我打饭,因为C哥记忆力很差,以至于他做完那件紧急的事情后记不起要回到哪个盒子来继续执行“洗衣服”这个命令。

这时候,他要把现在手头的东西保存到“记忆盒子”里,要保存的东西有:一是放着纸条和衣服的盒子的编号(注意这里其实是两项内容);二是那衣服。这样,当他执行完紧急任务后会去记忆盒子里,从里面找到两张纸条,洗衣服的命令和衣服继续去完成他没有完成的工作。

从本质来说,“记忆盒子”与普通的盒子是没有区别的,他们都是单片机里面的存储单元,因为堆栈是需要我们开发者来指定的。也就是说,你要事先把一些盒子指定为“记忆盒子”。

具体说明一下是我们应该如何指定“记忆盒子”的。其实这个过程很简单,在单片机的专用寄存器里面有一个SP指针(81H),这个指针里面记录着堆栈的开始处的地址。需要注意的是,堆栈的大小是不能规定的。

本期先分享到这里,想要进群学习单片机编程的同学可以私信我,回复“我要入门”,与我们一起成长,喜欢的可以点个赞关注我们!