《单片机原理及应用技术》课件 项目三 MCS–51程序设计——交通信号灯模拟系统设计.pptxVIP

《单片机原理及应用技术》课件 项目三 MCS–51程序设计——交通信号灯模拟系统设计.pptx

  1. 1、本文档共183页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
;MCS–51程序设计;任务1;;指令格式;指令格式;;;指令分类;寻址方式;寻址方式;1)立即寻址;项目三寻址方式的例子中均假设PC初值为40H,立即寻址方式具体操作如图所示:;2 直接寻址;在项目二中,我们知道定时器控制字TCON的地址是88H单元。所以编号b和编号c两条指令的表述是等价的,翻译为机器指令后是相同的。自然,其执行结果也相同,即将88H单元的内容送累加器A。;3 寄存器寻址;指令a(MOV A,R0)中,目的操作数与源操作数均采用寄存器寻址方式,该指令二进制形式的低三位000是Rn寄存器编码;指令b(INC R3)只有一个操作数,指令执行加1操作。;;【例3-4】;5 变址寻址;当前PC的内容为40H,CPU到40H单元取出指令83H后,将PC中的内容0040H与A中内容20H送ALU相加(同时PC指向下一条将要执行的指令),相加得到的结果60H即为我们所要寻找的操作数的地址。随后,60H地址单元的内容被送往累加器A,整条指令完成。;6 相对寻址;在指令a中,我们可以看到,PC的当前值加上地址偏移量04H构成了程序跳转的目的地址。需要注意的是,这里所说的PC的当前值是指执行完本条转移指令后的PC值,即PC值加上该指令字节数2。 指令b是一条条件转移指令,以累加器A的内容是否为0作为判断条件。 为了方便区分,这里将PC的源地址记作PC源,取出本条指令后PC的值记为PC当前,最后形成的目的地址记为PC目的。指令a的具体操作如图所示:;7 位寻址;(1)直接用物理地址00H~FFH来表示;(2)采用地址单元加位数的表示方法。上面的指令可以改写为:MOV C,;任务2;;1 内部数据传送指令;指令a和指令c源操作数分别采用寄存器寻址和寄存器间接寻址方式。由指令的机器语言形式可以看出,这两条指令占用字节数较少,都为1字节;指令b和指令d分别采用直接寻址和立即寻址方式,两条指令都占2个字节数。上述4条指令的指令周期数都为1个机器周期。;【例3-9】;(2)以寄存器Rn和DPTR为目的操作数的传送指令;指令a、指令b和指令c中源操作数分别采用立即寻址、直接寻址和寄存器寻址方式。这3条指令的功能是将最终获得的8位数据送当前工作寄存器Rn。;;(3)以直接地址direct为目的操作数的传送指令;上述5条指令均是8位???送direct。指令e的源操作数和目的操作数均为直接寻址方式。由此我们可以知道,片内RAM之间的数据可以直接传送,而不必以累加器A为中介。;【例3-12】;(4)以寄存器间址@Ri为目的操作数的传送指令;【例3-13】;编号;;【例3-14】;方法二:;编号;;【例3-15】;;堆栈指令的操作对象是采用直接寻址方式表示的片内RAM低128字节或SFR单元的内容。堆栈操作遵循“后进先出”原则,对堆栈指针SP所指向的地址单元进行压入和弹出操作,PUSH指令和POP指令要成对使用;【例3-16】;编号;5条指令的目的操作数均为累加器A,寻址空间为内部RAM。前3条指令均为整字节交换指令,指令功能是将通过不同寻址方式获得的片内RAM地址单元的内容和累加器A的内容交换。后面两条指令是半字节交换指令,指令d是将寻址获得的地址单元内容的低四位与A中的低四位进行交换,高四位保持不变;指令e是将累加器A本身的低四位与高四位交换。;算术运算类指令;1 加法和减法指令;;;上述两条指令运行结束后,A中的内容为B2H,二进制表示运算过程中由于低四位向高四位有进位,故(AC)=1。最高位没有进位,故(Cy)=0。由于C7⊕C6均为0,OV=C7⊕C6,故(OV)=0。运算结果中有4个1,故奇偶标志位(P)=0。由此可见,两个16进制数无论作为有符号数还是无符号数,相加结果都没有产生溢出。;(2)带进位的加法运算指令;;【例3-18】;(3)带借位减法运算指令;减法运算的结果也会影响到PSW的标志位,各标志位的产生法则和加法运算相同。 在执行减法指令运算时,若最高位有借位,则(Cy)=1,否则(Cy)=0。若低四位向高四位借位,则(AC)=1,否则(AC)=0。;(4)加1指令;(5)减1指令;(6)十进制调整指令;提示;从上面的三个例子中我们可以看到,后两个加法运算出现了错误。运算出错是因为BCD码只用了16个编码中的10个,还有6个没用到的编码(1010、1011、1100、1101、1110、1111)。若相加结果进入或跳过无效码编码区时,就会发生错误。;进行BCD调整的原则如下:;2 乘法和除法指令;;;(1)逻辑与指令;提示;(2)逻辑或指令;提示;【例3-21】;(3)逻辑异或指令;提示;【例3-22】;(4)累加器A清零和取反指令;注意;2 移位指令;是循环左移指令。所使用的助记符R

文档评论(0)

一帆风顺 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档