微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机学习中常见问题

单片机学习中常见问题

时间:08-02 来源:互联网 点击:

一.单片机有4位、8位、16位、32位以及64位现在,请问的是在8位,16位,32位等等是什么意思?

答:

CPU内部总线的位数就是单片机的位数。这里的位也就是指单片机中CPU处理的数据的位数(一次处理信息的长度)。比如:51单机 属于8位机,就是CPU处理的数据是8位的。位数的高低体现了CPU处理能力的强弱。单片机总线位数越高,CPU一次能处理的数据量也就越大、处理速度也就越快。同样的主频下(即主频率),8位机只能处理8位信息长度,而16位机则可处理16为信息长度,处理能力当然更强速度更快了。

二.CPU经常挂在嘴边,但是cpu到底是什么?有什么部件组成?

答:

CPU是单片机的核心部件,由运算器、控制器和布尔处理器等组成。其功能是产生控制信号,把数据从存储器或输入口传送CPU或反向传送,还可以对输入数据进行算术、逻辑运算以及位操作处理。其中,运算器由算术逻辑单元ALU(Arithmetic Logic Unit)、累加器ACC(Accumalator)、暂存寄存器、程序状态字存储器PSW(Program Status Word)、布尔处理器和BCD码运算调整电路等电路构成。控制器包括定时控制逻辑(时钟电路、复位电路)、指令寄存器、指令译码器、程序计数器PC、堆栈指针SP、数据指针寄存器DPTR以及信息传送控制部件等。

三.单片机的指令把我搞的稀里糊涂,能不能用一个例子告诉我单片机执行指令的过程?

答:

指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。

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

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

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

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

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

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

例如执行指令:MOV A,#0E0H,其机器码为“74H E0H”,该指令的功能是把操作数E0H送入累加器,0000H单元中已存放74H,0001H单元中已存放E0H。当单片机开始运行时,首先是进入取指阶段,其次序是:

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

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

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

4 CPU使读控制线有效;

5 在读命令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。至此,取指阶段完成,进入译码分析和执行指令阶段。由于本次进入指令寄存器中的内容是74H(操作码),以译码器译码后单片机就会知道该指令是要将一个数送到A累加器,而该数是在这个代码的下一个存储单元。所以,执行该指令还必须把数据(E0H)从存储器中取出送到CPU,即还要在存储器中取第二个字节。其过程与取指阶段很相似,只是此时PC已为0001H。指令译码器结合时序部件,产生74H操作码的微操作系列,使数字E0H从0001H单元取出。为指令是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令寄存器。至此,一条指令的执行完毕。单片机中PC="0002H",PC在CPU每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。CPU就是这样一条一条地执行指令,完成所有规定的功能。

希望对你有启发。

四.什么是伪指令?

答:伪指令不是真正的指令,无对应的机器码,在汇编时不产生目标程序(机器码),它只是用来对汇编过程进行某种控制。标准的MCS—5l汇编程序(如Intel的ASM51)定义的伪指令常用的有以下几条:(1) ORG

c起始命令 格式: ORG 16位地址

其功能是规定该伪指令后面程序的汇编地址,即汇编后生成目标程序存放的起始地址,

例如: ORG 2000H

START: MOV A,#64H

既规定了标号START的地址是2000H,又规定了汇编后的第一条指令码从2000H开始存放。

ORG可以多次出现在程序的任何地方,当它出现时,下一条指令的地址就由此重新定位。

(2) END ——汇

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top