目前单片机种类繁多,而51 单片机做为最基础的一款8位单片机,其资源最少,同时也是最容易学习的一款单片机。学习51单片机的工做原理及其存储结构是十分有必要的。学习
单片机执行程序的过程,其实就是在执行咱们编写的程序的过程(逐条执行指令),该执行过程能够当作是:取指令--------分析指令-------执行指令。spa
取指令:根据 PC(程序计数器)的值从程序存储器中取出指令(编写的程序即为指令),送到指令寄存器。(送到哪里去???)blog
分析指令:将指令寄存器中的指令操做码取出后进行译码,分析其指令性质,分析完成便找出操做数的地址。资源
执行指令:即对分析完成后获得操做数的地址,对该地址的数据进行更新。基础
计算机执行程序的过程其实是逐条指令重复以上三个过程,直到遇到停机或循环等待指令。原理
举例:循环
开机后,PC 计数器 初始值为 0000H,接着单片机在时序电路下自动进入执行程序过程,循环对程序区进行取指令,执行指令操做。程序
对于汇编语句: MOV A , #0E0H im
该语句的功能表示将操做数 E0H 送到 累加器 A 上。(74H 表示 的指令是将一个数送到 A 累加器去)此时 程序计数器 0000H 位置上存放了 74H , 0001H 上存放了 E0H 。 数据
执行该语句的次序为:
一、取指阶段:PC 上 地址 0000H 上的内容送到地址寄存器去,即将74H 经过数据总线送到了指令寄存器去。 此时 PC == 0000H,
二、译码阶段:因为本次进入指令寄存器的是 74H 故 译码后单片机知道该指令是将一个操做数送到A累加器中, 此时 PC == 0001H,
三、执行阶段:分析完指令后,将操做数 E0H 从 PC 的0001H 处取出,送到CPU,因为前面有了指令 74H ,因此 数据总线不会讲 E0H送到指令寄存器,而是将操做数送入累加器中。 此时 PC == 0002H,
四、以此一直循环,直到系统停机。(附图说明)