

免费预览已结束,剩余19页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
个人收集整理-ZQ20101224单片机硬件结构与指令系统1章 单片机概述单片机温度范围民用摄氏度工业 军用单片机在工业上用于采集数据,过程控制,测控系统,工业人工智能技术在智能仪器仪表中精度高,体积小,电子产品中家电领域智能化军事,交通,中端及外部设备控制。多机分布式系统 系列单片机周期时钟周期晶体振荡周期状态周期*时钟周期机器周期*时钟周期()共条指令,种助记符,种功能单机器周期指令条双机器周期条 个机器周期指令条,也就是乘除法还有一个位指令因此机器周期*状态周期 每一个状态分为拍 因此个时钟周期对应的机器周期可以用个状态周期以及各个状态周期的表示出来即 对应于第一个时钟周期。以此类推。b5E2R。b5E2R。信号是用来为地址锁存而定义的,该信号每有效一次,则对应于的一次读指令的操作。信号以时钟脉冲频率出现因此一个机器周期内出现信号两次有效。p1Ean。p1Ean。程序存储器哈佛结构的存储器结构片内片外程序数据存储器 种程序存储器最大扩展空间为 程序存储器中地址是系统程序的启动地址,有个单元具有特殊用途。五种中断源的中断入口地址中断源入口地址外部中断 ()定时器 外部中断 ()定时器 串行口内部数据寄存器存放运算的中间结果数据暂存缓冲标志位等片内数据存储器最大可寻址单元可分两部分低字节 ,高字节(特殊功能寄存器区)DXDiT。DXDiT。低字节分为部分用户 可位寻址区第组工作寄存器区第二组第一组第组 区 工作寄存区选择由 程序状态字确定 区 区 区 区 进位标志位 辅助进位标志位(低位有进位借位置) 标志位用户使用 溢出标志位 奇偶标志位 中个数为奇数 中个数为偶数RTCrp。RTCrp。高位即为特殊功能寄存器区 共个对各种功能部件的控制采用特殊功能寄存器集中控制方式数据指针 是单片机中唯一一个位寄存器,可以用立即寻址也可以将其分为高位字节寄存器(字节地址还对应有位地址为字节地址向上推位),和低位字节寄存器()表示。5PCzV。5PCzV。寄存器 为乘除法操作设置。乘法:相乘两数分别放在和中,运算结果放在寄存器对中,放低位,放高位。除法中,被除数取自,除数取自,商放在,余数放在中jLBHr。jLBHr。在不执行乘除法操作的情况下,可把他当做一个普通寄存器来用串行数据缓冲器存放欲发送或已接收的数据,一个字节地址。物理上由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器。xHAQX。xHAQX。位地址空间低位中的即可以作一般的存储单元使用,也可以对每一位进行寻址,这个区域我们称之为位寻址区。该区域共有个(个个)寻址位,位地址范围位 LDAYt。LDAYt。位寻址区寻址个寻址位 中寻址位有个共个。 并行端口个双向位并行端口(),记作,每个端口位,属于特殊功能寄存器,还可位寻址。口可作为普通输入输出口,在实际应用中主要作为地址数据复用口。它分时传送低位地址和位数据,地址和数据的分时传送主要有信号和地址锁存器共同实现Zzz6Z。Zzz6Z。指令格式以及寻址方式:操作码操作数组成指令指令长度分为单字节指令指令只有一个字节,操作码和操作数在一个字节中 双字节指令一个字节位操作码一个字节为操作数 三字节指令操作码占一个字节操作数占两个字节。其中操作数既可能是数据,也可能是地址。三种指令的具体格式单字节操作码双字节操作码数据寻址方式三字节指令操作码数据寻址方式数据寻址方式种寻址方式寄存器寻址方式操作数在寄存器中 , 累加器寄存器的内容传送给累加器这种寻址方式寻址范围包括:四组通用工作寄存器区共个工作寄存器每个寄存器区有个寄存器由选定 对应组部分特殊功能寄存器,例如 以及数据指针寄存器 (唯一一个位)例子: (寄存器区第二个单元), 若则内部 单元的值变为。同时也暗示此时状态字中 , , 将累加器清零 将累加器内容取反 将累加器的内容循环左移一位 直接寻址方式(访问特殊功能寄存器唯一的形式)直接寻址方式包含的是个内部单元以及特殊功能寄存器不存在混淆问题!位寻址区位于第寄存器区之上 共*个位地址加上特殊功能寄存器区中的个一共个寻址位 对应于个位地址当中其字节地址为位于可位寻址区需要注意的是对于特殊功能寄存器的寻址除了可以用单元地址形式给出外,还可以用寄存器符号形式给出如 提倡用这种方法便于理解 串口数据缓冲器数据送 ,初始化中断允许寄存器 , 赋值操作前面加号当直接地址位于工作寄存器区时,也可以用两种方法寻址 对应于字节地址的处即第一个寄存器上因此 效果一样后者机器码是单字节指令系统中,字节地址和位地址是完全不同的概念。前者用表示,后者用表示但在指令中都是用进制表示的数、例如 将中字节地址位单元的内容送中 将位地址为的位单元的内容送到中的中 立即寻址方式操作数在指令中直接给出,需要在操作数前加 ,寄存器间接寻址方式也就是寄存器中的数认为是一个地址寄存器名称前加 (当前寄存器区中第 或者第个寄存器)寻址范围访问内部低个单元 对片外数据存储器字节的间接寻址 片外数据存储器低字节。 堆栈区堆栈操作指令 使用堆栈指针作为间接寻址寄存器若 处值是 则指令 , 执行结果是累加器的值变为使用寄存器间接寻址指令时应注意的几个问题1 间接地址寄存器只能使用 寄存器2 间接寻址方式不仅用于片内 同样也适用于片外 对于片内使用寄存器寻址范围;对于片外,可以使用,也可以使用做间址寄存器,两者区别在于,前者寻址范围,后者寻址范围dvzfv。dvzfv。3 间接寻址指令不能访问中单元4 变址寻址方式此种寻址方式是以或做基址寄存器,以累加器作为变址寄存器 其中若中内容 内容则指令执行的结果是把程序单元的内容传送给。注意问题 专门针对程序存储器的寻址方式,寻址范围可达 变址寻址方式指令只有三条 相对寻址方式此种寻址方式主要用于转移类指令。在相对寻址的转移指令中,给出了地址偏移量 ,即把的当前值加上偏移量就构成了程序转移的目的地址,如下所示rqyn1。rqyn1。目的地址转移指令所在地址转移指令的字节数是一个带符号的进制补吗数。范围。即相对寻址方式可以向地址增加方向最大可转移转移指令字节个单元地址。向地址减少方向最大可转移转移指令字节个单元地址Emxvx。Emxvx。例如 ,此指令将当前内容与相加结果送回中,成为下一条将要执行的指令的地址设指令 的机器码 ,并存放在地址为的单元处。当执行到该指令时,先从和 单元取出指令,自动变为,再把的内容与操作数相加,形成目标地址,再送回,使程序跳到单元继续执行SixE2。SixE2。注意问题 进行地址计算时,的取值是执行本指令后的地址值 偏移量的计算目标地址源地址 双字节指令目标地址源地址 三字节指令为了减少偏移量的计算,汇编程序允许使用“符号地址”的方式来代替偏移量。如: 汇编程序在翻译时,自动计算并将结果替换符号地址 如果转移地址的范围超过相对寻址范围时就要采用别的方法,否则在翻译时,会提示出错。位寻址方式此种寻址方式主要用于位操作类指令,用于位地址空间的位单元寻址 作用是将单元地址里面的位地址置一 寻址范围,内部中的位寻址区。位有两种表示方法一种是位地址,例如;另一种是单元地址加上位()指的是单元中的最低位。对单元地址的寻址参考6ewMy。6ewMy。 特殊功能寄存器中的可寻址位。在指令中有四种表示方法直接使用位地址位地址位名称的表示方法。例如是标志位,可使用表示该位单元地址加位数() 特殊功能寄存器符号加位指令系统类指令传送类指令完成数据在单片机内部之间的传送。传送数据分位和位两种。除了奇偶位外,指令的执行对无影响算术运算类多数情况下操作数之一在累加器中,结果也保留在累加器中,运算结果影响中的标志位(进位,奇偶溢出)逻辑运算类指令此类指令主要用于操作数之间的逻辑加,与,取反,异或和移位等操作。多数情况下操作数之一在累加器中,结果也保留在累加器中。移位分左移、右移、带进位、不带进位几种情况。一般不影响kavU4。kavU4。控制转移类指令用于条件转移、无条件转移,调用和返回。执行的根本机理是通过修改程序指针的内容,使转到另一处执行,从而改变程序的流向。y6v3A。y6v3A。位操作指令位传送、位置位、位运算和位控制转移等操作。按位操作而不是按字节操作。位控制转移的判断不是检测某一个字节而是对某一个位进行检测,并决定是否进行程序转移。基本不影响内M2ub6。M2ub6。数据传送类指令(使用最多)数据在累加器、片内、以及片外、之间进行传送在数据传送类指令中,必须指定被传送数据的源地址和目标地址在传送过程中,源地址内容不被改变,即数据传送类指令有“复制”特性,而不是“剪切”0YujC。0YujC。传送类指令除了以累加器位目标的传送对的位有影响外,其余的传送类指令对一概无影响。累加器直接地址 间接地址 寄存器两两可互相传递直接地址传给直接地址立即数传给累加器直接地址 间接地址 寄存器 以及数据传送类指令通用格式 ,以累加器位目的操作数的指令个少一个累加器传累加器的来源有 来自寄存器 来自间接地址 来自直接地址 , 来自立即数 以位目的操作数的指令个少向 向 (没有间接寻址! )以直接地址位目的操作数的指令个 , 以寄存器间接地址 , 唯一一条位传送指令 (立即数高位送入中,低位送入中)堆栈操作指令一种特殊的数据传送指令内部的中可以设定一个“后进先出”的区域,称作堆栈,主要用来保存程序的断点。堆栈指针指出堆栈的栈顶位置(系统上电时)eUts8。eUts8。进栈指令 将堆栈指针加,然后将中的内容送到栈指针所指示的内部单元中例如 ,() 则变为 同时所指示单元内容变为所指示地址内容即这样理解了出栈指令 出栈指令将所指示的栈顶单元内容送入字节单元中,然后堆栈指针是将所指地址内容送入后的地址是将所指地址送入所指地址然后使用堆栈操作类指令时需要注意以下几点:寻址方式为直接寻址。所有 是错误的应当是 (难道是的地址吗?)或 。进栈是堆栈向上生长的过程即。出栈则相反系统上电时,的值可以根据需要修改!,以适应不同具体编程的需要。在确定栈区位置时要考虑对数据区的影响,以避免数据区与栈区冲突sQsAE。sQsAE。执行过程 将所指内容传入堆栈后所指单元 将所指内容传入所在位置 堆栈操作类指令举例码转中有关堆栈操作例子。进栈操作是为了保护主程序中相关寄存器中数据, . 堆栈操作指令,除了可以在子程序的设计中对主程序数据进行保护,还可以根据堆栈操作的特点完成一些特殊的操作。GMsIa。GMsIa。设片内的单元中存有,单元存有。试将两个单元内容互换 如果不互换 保护现场 累加器与外部数据存储器的传送指令 此类指令的功能主要是读外部存储器或中的一个字节的数据到累加器中,或把累加器中的一个字节的数据写到外部存储器或中TIrRG。TIrRG。采用作为间接寻址寄存器,可以寻址片外数据存储器的个单元地址。其中高位地址由口输出,低位地址由口输出 寻址单元地址均由口输出,可选用其他任何输出口线来输出高于位的地址(一般选用口输出高位地址)后面的”表示单片机访问的是片外存储器或。查表指令此类指令共两条,主要用于读取程序存储器中的数据表格等常数。查表指令均采用基址寄存器加标志寄存器间接寻址方式7EqZc。7EqZc。 例子()时若指令地址位于: 由于该指令为单字节指令因此 运算结果将程序存储器中的内容送入中优点:不改变特殊功能寄存器以及的状态,根据的内容就可以取出表格中的常数。缺点是表格智能存放在该条查表指令后面的个单元内,表格大小受到限制,而且表格只能被一段程序所利用。lzq7I。lzq7I。 以作为基址寄存器,的内容作为无符号数和的内容相加得到一个位的地址,再把由该地址所指出的程序存储器单元的内容送到累加器中zvpge。zvpge。例如() ()执行的结果是将程序存储器中单元的内容送入到累加器中表格大小位置可在程序存储器中任意安排,一个表格可以为各个程序块公用。代表代码的意思。例子:在累加器中存放有间的某个数,现要求查出该数的七段共阴显示代码,并将代码传回累加器。 , ; 都是错误的。字节交换指令 ; 半字节交换指令 , 只交换累加器和内部单元的低位数据传送类指令举例交换片内 单元内容和单元内容直接地址 $间接地址法 $字节交换法 ; $堆栈传送法 $算术运算类指令算术运算类指令主要用于单字节数的加减乘除指令,都是针对位二进制无符号数。此类指令的执行结果将使中的进位()、辅助进位()、溢出()等三种标志位置置或清,但是增和减指令不影响这些标志NrpoJ。NrpoJ。加法指令条 结果放中使用加法指令时,注意累加器中的运算结果对各个标志位的影响。如果位有进位,则,否则位有进位,则,否则位有进位,位无进位;位有进位,位无进位 ,否则在带符号数加法运算时才有意义。表示超范围。 加法运算注意事项参加运算数据都应当是位的,结果也是位并影响根据编程者的需要,位数据可以是无符号数()也可以是有符号数()不论编程者使用的数据时有符号数还是无符号数,都将它们视为有符号数(补码)进行运算并影响带进位加法指令在这类指令中,进位标志位参加运算,因此是个数相加。共条。 , 例题编写计算的程序,将结果存入内部的和(存低) 增指令减一指令不影响 增指令五条 区别换了 的特殊性,指令首先对低位指针的内容执行加的操作,当产生溢出时,就对的内容进行加的操作,并不影响标志的状态。1nowf。1nowf。注意增指令的用法 会影响(中的个数为奇数时)其他无影响指令不能作为一般数据的算术运算功能来使用。主要在控制、循环语句中使用,用于修改数据指针等。十进制调整指令用于对码的十进制数加法运算结果进行修正指令格式 两个码按二进制相加之后的结果,必须经本指令的调整才能得到正确的压缩码的结果。二进制的加法运算原则并不能适用于十进制数的加法运算,所有有时会产生错误结果。错误原因码只使用了其中个二进制编码,还有个没有用的的 无效码。凡是码十进制加法运算结果进入或者超过无效码编码区时,其结果就错误因此需要 进行调整带借位的减法指令()四条 , 数减去数再减标志位:位需借位 位则 位,位有一个借位一个不借 否则注意的问题单片机内部减法采用补码的加法来实现。无论想减是否有符号数,总是按有符号数来处理并影响中相关的标志位的。fjnFL。fjnFL。同不一样没有,就要减去,因此在使用指令前使用一条清除位的指令: 减一指令() (没有)减一指令不影响标志位,增指令 影响乘法指令唯一的两个字节周期指令,相当于条加法指令的运行时间。 ;*如果积大于,除法指令 ;(商),余数若,则存放结果的中的内容不定,并且逻辑操作类指令单字节,单周期对累加器清零和取反的指令 此条指令的功能是累加器清零。不影响 等标志位 (方便的实现求补操作)逻辑取反累加器不影响用传送指令也可以清零和取反,单是是双字节指令单元中有一个数,写出对他求补得程序 ,左环移指令带进位左环移 右环移 带进位右环移 :累加器位内容向左环移一位,不影响标志位:带进位左环移位内容和进位标志位一起向左环移一位,移入 移入右环移指令 同同相反累加器半字节交换指令 此指令的功能是将累加器中的高半字节和低半字节内容交换程序; 单元有一个位数(存低位)试编程将其扩大倍(设结果小于)程序如下 ;清除位 , ;指针赋值 , 取低位数据 ;循环左移,进低位,高位进 , ;移位后数据回送 ;指针加一 , ;取高位数据 ;循环左移,进低位 ,;数据回送例子;单元有两个码,试编程将其紧缩为一个字节并存入单元程序如下 逻辑与指令共六条 , 结果放中 结果放中 , 可以很容易的将某单元中的几位变,另外几位取出 逻辑或指令共条 , 结果放中 结果放中 ,例子设累加器,口。试编程将累加器中的低位送口的低位 , ;累加器中数据暂存 ,;屏蔽高位要低位 ,;屏蔽低位 ;在口组装 ,;恢复累加器的数据小结:逻辑与运算可以屏蔽某些位;逻辑或运算可置位某些位逻辑异或指令共条 同 例题一直外部的单元中有一个数,现要将其高位不变,低位取反,试编程 利用 ,指令 (经典取反法) 利用 ,指令 控制转移类指令条件转移类()调用子程序指令无条件转移指令 可以在字节范围内进行无条件的跳转。程序存储器空间可分个区每个区 指令的目标地址必须与下一条指令的第个字节在同一个字节区范围内(即转移的目标地址必须与下一条指令的地址的高位地址码相同)tfnNh。tfnNh。!执行指令时先加二,然后把送入的低位,高位 保持不变,程序转移到目标地址。本指令时为能与的指令兼容而设的。使用时候,语句必须和当前语句在同页。程序存储器分为页,每页 用来做页内范围的转移,如果使用不当,会发生错误的“跨页”操作,产生跨页的原因是,指令处于每页的最后两个单元的原因。不要在每一页最后两个单元使用指令。如果目标地址和地址不在同一页,建议使用指令代替。使用指令时,位的绝对地址可以用符号地址来取代。HbmVN。HbmVN。相对转移指令 相对转移指令用来实现的程序的转移是双向的。在编写程序时,直接写上要转向的目标地址标号就可以! . . . .程序在汇编时,由汇编程序自动计算和填入相应的偏移量 。 : ,相对转移指令属于短跳转指令,其目标语句地址必须在当前语句向前()字节,向后()字节,否则在进行程序编译时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国希伯胺原料药行业市场分析及投资价值评估前景预测报告
- 核电电焊工考试题及答案
- 2025年中国无线垂直鼠标行业市场分析及投资价值评估前景预测报告
- 用户行为分析-第149篇-洞察与解读
- 肿瘤免疫治疗专利布局-洞察与解读
- 2025国考常州市生态保护岗位申论必刷题及答案
- 2025国考福建金融监管局行测数量关系预测卷及答案
- 2025国考廊坊市法律事务岗位申论题库含答案
- 2025国考人社部行测数量关系易错点
- 2025国考丹东市纪检监察岗位行测题库含答案
- 师德师风证明材料
- 综合实践活动课程的设计与实施
- 机械制图习题集(第五版)习题解答
- 《影视鉴赏》教学课件 《影视鉴赏》第三章
- 市政工程监理平行检验表(套)
- 第六章金属合金的塑性变形
- 四议两公开工作法课件
- 供应链金融业务培训课件
- 幼儿教育政策法规解读-高职-学前教育专业课件
- DF4内燃机车电路图
- 《八段锦教学》PPT课件
评论
0/150
提交评论