|
大家好,好久没有发帖了,实在是因为工作比教繁忙。北京这边的单片机教学实在是比较火热。
但是,再忙还是要坚持发帖,因为实在是想把这个好东西和各位老师分享。
少儿单片机的新学习对象从小学四年级就可以开始,一般是学习DP801单片机,再往上初中学生可以学习DP811,这个是16进制的,再往上可以学习DP831,这个设计到C语言,可以让高中生学习。在北京,这样的分层教学模式已经很稳定了。如果哪位老师感兴趣,可以和我联系,我是北京市单片机协会的会员,并在多所小学任教,我的手机号是13371632388。
以下是我在《中小学创新杂志》发表的第二期内容,图片看不见,我在后面会粘贴附件,供各位老师下载。不过,回复后才可以看见附件。
神奇的单片机DP801之认识篇——请你来当我的指挥官
同学们,我们又见面了。在上一期中我对自己作了一个简单的介绍,现在我们一起来回顾一下上期的知识点:
①DP801单片机的组成:
我由输入部分、主机部分和输出部分组成。输入部分主要包括按键和触点,主机部分主要由中央处理器和存储器组成,输出部分主要包括数码管、小灯和外接喇叭的插座。
②指令的含义:
指令就是告诉我每一步应该做什么的“命令”。它分为两部分,操作码和操作数。操作码表示进行什么操作,操作数说明对谁进行操作。
任务一:进一步学习指令,理解指令和程序的关系;
任务二:认识我的存储器,理解地址的含义;
任务三:学会向单片机输入指令;
通过上一期的学习,同学们已经对指令有了一个大体的认识。要想成为我的指挥官可全靠它了!在这一期里要深入地学习指令。
【任务一】进一步学习指令,理解指令和程序的关系
1.指令的结构
指令从结构上看,分为两大部分:操作码和操作数。
为了便于理解指令的操作码和操作数,我在这里先介绍2条基本指令:
①00 N(00~05):00是操作码,表示进行接通操作,N是操作数,范围是从00到05,指的是我的00号小灯到05号小灯。如果是00 01就是接通我的01号小灯。
②01 N(00~05):01是操作码,表示进行断开操作,N是操作数,范围是从00到05,指的是我的00号小灯到05号小灯。如果是01 01就是断开我的01号小灯。
这只是很简单的两条指令,可以控制我的指令多达将17条。在日后的学习中它们会一一亮相,到时候你们就可以通过它们来使我完成更多更复杂的任务了!
2.指令和程序的关系
现在,大家已经对指令有了一定的认识,我来介绍一个和指令密切相关的新名词——程序。
程序是解决某一问题的一串有序的指令。指令和程序的关系就像句子和文章的关系,一篇文章是由很多个句子组成的,一段程序是由很多条指令组成的。下面这张图说明了指令和程序的关系:
这段程序是由00 00,00 01和00 02这三条指令组成的。执行的时候也是按照这个顺序,我先执行00 00,之后执行00 01,最后执行00 02。
【任务二】认识我的存储器,理解地址的含义
通过上一期的学习,同学们已经知道了向单片机中输入的指令都存储在存储器中,但是大家可能还不太清楚存储器的内部是什么样子的,下图就为你们展示了存储器的内部结构。
0.0. 0.1. 0.2. 0.3. 0.4. 0.5. 0.6. 0.7. 0.8. 0.9.
1.0. 1.1. 1.2.
1.3.
…
…
9.0. 9.1. 9.2. 9.3. 9.4. 9.5. 9.6. 9.7. 9.8. 9.9.
从上图中可以看出我的存储器的内部被分成了许多小单元,一个小单元的大小为一个字节。字节是一个新名词,我们通过例子来理解它,比如00 01这条指令就要占两个字节,00占一个字节,01占一个字节。所以,这条指令要占去存储器中的两个小单元。
每个小单元的中间都有一个编号,用两个加了“.”的数字表示,这就叫做地址。比如,0.0.和0.1.分别代表两个不同的小单元的地址。地址从0.0.开始,按顺序向上递增。0.0.之后是0.1.,0.1.之后是0.2.,接着是0.3.、0.4.、0.5.、0.6.……,以此类推。地址只是一个编号,就像家里的门牌号码一样。它的作用是标识不同的存储单元,但是它本身并不存储在小单元中,真正存储在小单元中的是指令,那么指令是如何存储在这些小单元中的呢?下面,我将通过一个例子向你们展示。
例如:指令00 01占两个字节,这条指令在存储器中是这样存储的:
0.2. 0.3. 0.4. 0.5. 0.6. 0.7. 0.8. 0.9.
1.0. 1.1. 1.2. …
…
9.0. 9.1. 9.2. 9.3. 9.4. 9.5. 9.6. 9.7. 9.8. 9.9.
从这张图中,大家可以清楚地看到00 01这条指令在存储器中的存储情况。00占了地址为0.0.的一个小单元,01占了地址为0.1.的一个小单元。
现在同学们已经知道00 01这条指令在存储器中的存储情况了,如果是多条指令在存储器中的存储情况又是什么样子呢?比如下面一段程序:
00 00
00 01
00 02
0.6. 0.7. 0.8. 0.9.
1.0. 1.1. 1.2. …
…
…
9.0. 9.1. 9.2. 9.3. 9.4. 9.5. 9.6. 9.7. 9.8. 9.9.
上图展示了这段程序在存储器中的存储情况,它们是按顺序排列在小单元中的。00 00这条指令占了0.0.和0.1.号地址;00 01这条指令占了0.2.和0.3.号地址;00 02这条指令占了0.4.和0.5.号地址。
【任务三】学会向单片机输入指令
通过上面的学习,大家已经理解了指令和地址的含义,这就为学习如何把指令输入到单片机中打好了基础。要想向单片机中输入指令请记住下面这句话:
要输入,找地址,找到后,写指令。
这句简单又好记的话说明了向单片机中输入指令的方法,那么怎么来理解它呢?就是要先找到地址再向其中输入指令。通过任务二的学习,大家已经非常清楚指令在存储器中的存储情况了,下面就是怎么具体操作了,你们要通过按键来向我输入指令。请看下面这张DP801单片机的按键图:
按键是我的输入部分,一共有五个,我将一一介绍它们:
RES键:也可以称之为复位键,它的作用是使单片机恢复到初始状态。
D/A键:D在这里的意思是数据,A在这里的意思是地址。按住这个键,数码管上显示的是两个加了“.”的数字,也就是地址;松开这个键,数码管上显示的是两个不带“.”的数字,也就是数据。D/A键就是数据和地址的转换键。
+1键和-1键:+1键和-1键的作用是和D/A键直接关联的。刚才讲过按下D/A键后,数码管上显示的数字代表地址,这时候再按+1键或-1键,就是地址的+1或-1。比如,按下D/A键后,数码管上显示的数字是0.1.,那么再按下-1键显示的地址就变成了0.0.,如果按下+1键,则显示的是地址是0.2.;松开D/A键后,数码管上显示的数字代表指令,这时候再按+1键或-1键,就是数据的+1或-1。
WRI键:WRI键在这里可以理解为“确定输入”。因为在按下WRI键之前指令可以通过+1键或-1键进行调整,如果按下WRI键指令就被真正存储在存储器中了。比如,你想在0.0.地址输入00这个指令,那么你首先要D/A键找到0.0.地址,然后松开D/A键,输入00,这个时候00并没有被真正写入到存储器中,只有按下WRI键后00才真正被存储在存储器中。
说了这么多,我将用一段程序向你们演示一下具体的输入过程:
要输入的程序:
00 01
00 02
00 03
输入的具体方法:
第一步:按下D/A键,通过调整+1或-1键找到0.0.地址。(因为我每次都从0.0.地址开始执行程序,所以要先找到0.0.地址)
第二步:然后松开D/A键,输入第一条指令中的“00”。(在0.0.地址松开D/A键,输入的指令就存储在0.0.地址中;在0.1.地址松开D/A键,接着输入的指令就存储在0.0.地址中,以此类推)
第三步:按WRI键,把指令输入到对应的地址中去。
这样,第一条指令的“00”就被输入到0.0.地址中去了。接着,要输入第一条指令中的“01”了,方法是:先按住D/A键,找到0.1.地址,松开D/A键,把数码管上的数字调整到“01”。最后,再按下WRI键,这样就把“01”存储到0.1.地址中去了,以此类推,把剩下的指令分别存储到0.2.,0.3.,0.4.,0.5.号地址中去。这样,就完成了对这段程序的输入。
又要和你们说再见了,希望你们能认真阅读本期的内容,因为只有深入理解了指令的存储过程才能为日后的学习奠定一个良好的基础,下期见! |
评分
-
查看全部评分
|