"单片机常见问题解决方法" 单片机是一种微型计算机,广泛应用于嵌入式系统、自动控制、智能家电等领域。然而,在学习单片机过程中,许多人都会遇到一些棘手的问题。下面,我们将分享六种常见的问题及其解决方法,以帮助大家更好地理解单片机的工作原理。 问题一:单片机有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(ArithmeticLogic 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,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。 问题四:什么是伪指令? 答:伪指令不是真正的指令,无对应的机器码,在汇编时不产生目标程序(机器码),它只是用来对汇编过程进行某种控制。标准的MCS—5l汇编程序(如Intel的ASM51)定义的伪指令常用的有以下几条: (1)ORG 汇编起始命令 格式: ORG 16位地址 其功能是规定该伪指令后面程序的汇编地址,即汇编后生成目标程序存放的起始地址。 例如: ORG 2000H START:MOV A,#64H 既规定了标号START的地址是2000H,又规定了汇编后的第一条指令码从2000H开始存放。ORG可以多次出现在程序的任意位置。
- 粉丝: 6
- 资源: 905
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助