当前位置:首页 > 经验 >

51单片机指令详解(51单片机基础代码详解)

来源:原点资讯(www.yd166.com)时间:2023-10-25 06:33:18作者:YD166手机阅读>>

为了加深初学者对51单片机指令的理解,现在把指令执行的过程在此详细说明,希望对你有启发!

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。

取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。

分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。

计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。

51单片机指令详解,51单片机基础代码详解(1)

一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因而一开机即可执行指令。

下面我们将举个实例来说明指令的执行过程:

开机时,程序计算器PC变为0000H。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。

例如执行指令:MOV A,#0E0H,其机器码为“74H E0H”,该指令的功能是把操作数E0H送入累加器,

51单片机指令详解,51单片机基础代码详解(2)

0000H单元中已存放74H,0001H单元中已存放E0H。当单片机开始运行时,首先是进入取指阶段,其次序是:

1 程序计数器的内容(这时是0000H)送到地址寄存器;

2 程序计数器的内容自动加1(变为0001H);

3 地址寄存器的内容(0000H)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000H的单元被选中;

4 CPU使读控制线有效;

5 在读命令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。至此,取指阶段完成,进入译码分析和执行指令阶段。

由于本次进入指令寄存器中的内容是74H(操作码),以译码器译码后单片机就会知道该指令是要将一个数送到A累加器,而该数是在

51单片机指令详解,51单片机基础代码详解(3)

这个代码的下一个存储单元。所以,执行该指令还必须把数据(E0H)从存储器中取出送到CPU,即还要在存储器中取第二个字节。其过程

与取指阶段很相似,只是此时PC已为0001H。指令译码器结合时序部件,产生74H操作码的微操作系列,使数字E0H从0001H单元取出。因为

指令是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令寄存器。至此,一条指令的执行完

毕。单片机中PC=“0002H”,PC在CPU每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到

暂停指令或循环等待指令暂停。CPU就是这样一条一条地执行指令,完成所有规定的功能。

栏目热文

最好的51单片机教程(51单片机学习推荐)

最好的51单片机教程(51单片机学习推荐)

单片机入门51单片机是最好的选择。很多人可能以为51单片机已经过时了,能这么想的绝对是没实际产品开发经验的。51最大的优...

2023-10-25 06:04:26查看全文 >>

51单片机文字教程(51单片机怎么弄中文版)

51单片机文字教程(51单片机怎么弄中文版)

点阵显示实验一、什么是点阵?我们用之前的方法一个IO口只能控制一个led,如果需要用更少的IO口控制更多的led怎么办呢...

2023-10-25 05:54:11查看全文 >>

51单片机教程零基础入门(零基础51单片机自学教程)

51单片机教程零基础入门(零基础51单片机自学教程)

大学四年白混了四年,如今要毕业了。学习单片机。也算是工作前的准备。单片机对于工科类的学生来说真的很重要,这点到现在才明...

2023-10-25 06:18:37查看全文 >>

51单片机入门自学(51编程入门教程)

51单片机入门自学(51编程入门教程)

曾经我是自学单片机然后跨行成功,今天来分享下自己的经验。在网上看了很多文章,很多人说现在51单片机已经过时了,建议从ST...

2023-10-25 06:15:13查看全文 >>

51单片机实战100例详解(单片机必背代码大全)

51单片机实战100例详解(单片机必背代码大全)

《单片机C语言程序设计实训 100 例—基于 C51 Proteus仿真》案例第 01 篇 基础程序设计1 闪烁的 LE...

2023-10-25 05:59:48查看全文 >>

单片机实战100例详解合集(单片机编程实例全集)

单片机实战100例详解合集(单片机编程实例全集)

《单片机C语言程序设计实训 100 例—基于 C51 Proteus仿真》案例第 01 篇 基础程序设计1 闪烁的 LE...

2023-10-25 06:37:40查看全文 >>

51单片机制作教程入门(51单片机入门最好教程)

51单片机制作教程入门(51单片机入门最好教程)

本套教程共3节课程,熟悉这3节课程的话,你已经入门51单片机了。下面是内容正文单片机学习的第一步,什么是单片机最小系统?...

2023-10-25 06:04:12查看全文 >>

自学单片机的亲身经历(零基础从哪里开始学单片机)

自学单片机的亲身经历(零基础从哪里开始学单片机)

大家好,我是无际单片机编程徐工。最近有部分学员陆陆续续开始找工作了,在此分享下我第一份工作的经历。更详细的面试经验和技巧...

2023-10-25 06:18:49查看全文 >>

51单片机从零开始学(51编程入门自学100例)

51单片机从零开始学(51编程入门自学100例)

本套教程共3节课程,熟悉这3节课程的话,你已经入门51单片机了。下面是内容正文单片机学习的第一步,什么是单片机最小系统?...

2023-10-25 06:30:01查看全文 >>

51单片机入门(51单片机入门书本推荐)

51单片机入门(51单片机入门书本推荐)

本套教程共3节课程,熟悉这3节课程的话,你已经入门51单片机了。下面是内容正文单片机学习的第一步,什么是单片机最小系统?...

2023-10-25 06:17:29查看全文 >>

文档排行