【任务一】进一步学习指令,理解指令和程序的关系
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。
【任务二】认识我的存储器,理解地址的含义
通过上一期的学习,同学们已经知道了向单片机中输入的指令都存储在存储器中,但是大家可能还不太清楚存储器的内部是什么样子的,下图就为你们展示了存储器的内部结构。
从上图中可以看出我的存储器的内部被分成了许多小单元,一个小单元的大小为一个字节。字节是一个新名词,我们通过例子来理解它,比如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占两个字节,这条指令在存储器中是这样存储的:
从这张图中,大家可以清楚地看到00 01这条指令在存储器中的存储情况。00占了地址为0.0.的一个小单元,01占了地址为0.1.的一个小单元。
现在同学们已经知道00 01这条指令在存储器中的存储情况了,如果是多条指令在存储器中的存储情况又是什么样子呢?比如下面一段程序:
00 00 00 01 00 02
上图展示了这段程序在存储器中的存储情况,它们是按顺序排列在小单元中的。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.号地址中去。这样,就完成了对这段程序的输入。
相关文章
- 海淀区第三届中小学智能控制(单片机)知识竞赛 [2008-04-10 14:27:21]
- 07年海淀区智能控制单片机智能识别规则 [2008-03-24 14:54:30]
- 07年海淀区智能控制单片机智能设计规则 [2008-03-24 14:53:42]
- 07年海淀区智能控制单片机智能车接力赛规则 [2008-03-24 14:52:24]
- 07年海淀区智能控制(单片机)编程竞赛规则 [2008-03-24 14:48:45]











