单片机工作过程_单片机工作过程顺序
单片机采用“存储程序”的工作方式,即事先把程序加载到单片机的存储器中,当启动运行后,计算机便自动进行工作。
1、单片机的模型机指令表
下表是单片机的模型机指令表,我们以LDA 23这条指令为例,来说明单片机的指令执行过程。
2、执行一条指令的顺序
单片机执行程序是一条指令一条指令执行的,执行一条指令的过程可分为两个阶段。
在单片机中,“存储程序”第一条指令的第一个字节一定是操作码。这样,CPU首先进入取指阶段,从存储器中取出指令,并通过CPU译码后,转入执行指令阶段,在这期间,CPU执行指令指定的操作。
取指阶段是由一系列相同的操作组成的,因此,取指阶段的时间总是相同的。而执行指令的阶段是由不同的事件顺序组成的,它取决于被执行指令的类型。执行完一条指令后接着执行下一条指令,如此循环往复。
3、执行一条指令的过程
指令“LDA 23”的执行过程是怎样的呢?这是一条直接寻址指令,执行的过程如下图所示。
LDA指令的指令周期由3个CPU周期(即机器周期)组成。其中,第一个CPU周期为取指令周期;执行指令阶段由2个CPU周期组成,第二个CPU周期中将操作数的地址送往地址寄存器并完成地址译码,在第三个CPU周期中,从内存取出操作数并执行装入的操作。
4、执行一个程序的过程
采用直接寻址方式,执行“7+10”的程序如下表所示。
加入程序存放在起始地址为00010000B(16)的存储单元中。地址16和17存放第一条指令“LDA 23”,执行第一条指令的过程如下图所示。
单片机启动后,PC中的地址即为16,将16送地址寄存器,接着16被放入地址总线上,找到操作码地址00010000B(16),PC自动加1为17,做好取下一字节的准备;取出“LDA 23”的操作码10010110B放入数据总线;操作码经数据总线装入数据寄存器,因为是操作码,所以还需要装入指令译码器进行指令译码,得到“装入”的操作。
此时PC中的内容已经是17,地址17送入地址寄存器并放到地址总线上,找到操作码地址23,PC又自动加1,做好取第二条指令“ADD 24”的准备,如下图。
找到操作数地址23后,因为是直接寻址,取出23单元中的操作数7放到数据总线,再装入数据寄存器中,经数据寄存器将操作数7装入累加器,如下图所示。至此,第一条指令“LDA 23”执行完毕。
第2,3条指令也是直接寻址方式,执行的过程类似。