单片机应用技术(汇编语言) 教学课件 作者 郑晖晖 课题二.pptVIP

单片机应用技术(汇编语言) 教学课件 作者 郑晖晖 课题二.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.位变量条件转移指令 JC rel ;若(CY)=1,则转移 PC←(PC)+2+rel JNC rel ;若(CY)=0,则转移 PC←(PC)+2+rel JB bit,rel ;若(bit)=1,则转移 PC←(PC)+3+rel JNB bit,rel ;若(bit)=0,则转移 PC←(PC)+3+rel JBC bit,rel ;若(bit)=1,则转移 PC←(PC)+3+rel, bit←0 前4条指令在执行中不改变条件位的布尔值,最后一条指令,在转移时将bit清“0”。 实现数据从小到大的排序在单片机编程中典型的算法是冒泡法。 其基本思路是从数组的第1个数开始,相邻两单元的数相比较,即第1个数和第2个数相比较。如果第2个单元的数大,则两者交换,否则不动;再进行第2单元数和第3单元数比较。这样依次比较下去,重复上述过程N-1次后,才能将N个数中最大的值沉降到数据区的最后一个单元中;然后又从头开始第二轮的比较,经过N-2次的比较后,才能把第2个最大值沉降到数据区的倒数第2个单元。循环N-1轮后,N个数据便会由小到大排列在原数据区中。 设R7存放外循环计数值,R6存放内循环计数值,A存放被比较数,R0存放被比较数地址,R1存放比较数地址。则程序流程图如右图所示。 1.程序设计 2.将编写完的程序输入WAVE软件并编译。 冒泡法.ASM 3.将内存单元50H~59H内不按顺序任意赋值。 4.单步运行并观察内存单元50H~59H中数值的变化。交换几组不同的赋值再运行。 单击此处返回目录 5.设置断点在“CJNE A,30H,NEXT”处后全速运行。每次在断点停下时,仔细分析数据变化的规律,然后单步运行,分析CJNE指令的跳转规律(注意观察A,30H和CY位的值及跳转方向)。然后继续运行,直至程序结束。 任务4 逻辑运算类指令的应用 1.理解MCS-51单片机逻辑运算类指令的功能。 2.掌握逻辑运算类指令的用法。 除算术运算外,单片机还具有强大的逻辑运算能力。在数字电路中学过的“与门”“或门”“非门”等逻辑同样可以用单片机来实现。本任务就来利用单片机的逻辑运算指令实现下图所示的逻辑功能。 逻辑运算指令是指用于逻辑运算的指令。主要包括:CLR、CPL、ANL、ORL、XRL等常用逻辑指令以及RL、RLC、RR、RRC等循环移位指令。 一、对累加器A 的逻辑运算指令 1.清零指令 CLR A ;A←0 清零指令的效果同MOV A,#00H 是一样的,只不过它是单周期指令,而MOV A,#00H 是双周期指令。 2.取反指令 CPL A ;A← 取反指令是将累加器A 逐位取反。相当于数字电路的“非”逻辑。 [例] A=12H,执行指令CPL A ; 解:把12H 化为二进制是0001 0010,逻辑取反后为1110 1101,即执行指令后结果为A=EDH。 3.循环移位指令 RL A ;A←(A)循环左移 RR A ;A←(A)循环右移 RLC A ;A←(A)+C循环左移 RRC A ;A←(A)+C循环右移 RL、RR指令执行后不影响PSW中各位。RLC、RRC指令执行后影响PSW中的进位位CY和奇偶标志位P。 循环移位指令的执行示意图: [例] 将30H单元中存放的数据除2。 解:CPL C MOV A , 30H RRC A MOV 30H , A 1.移位指令都是对累加器A进行操作。 2.移位指令常用做乘2和除2运算。 二、两个寄存器之间的逻辑运算指令 1.逻辑“与” ANL A,Rn ;A←A∧Rn ANL A,direct ;A←A∧(direct) ANL A,@Ri ;A←A∧((Ri)) ANL A,#data ;A←A∧#data ANL direct,A ;direct←(direct)∧A ANL direct,#data ;A←(direct)∧#data 逻辑“与”就是将源操作数与目的操作数逐位相“与”, “全1 出1,有0 出0”。 [例] 71H 和56H 相“与”。 解: (71H) 0111 0001 ∧(56H) 0110 0110 (50H) 0110 0000 结果是50H 。 2.逻辑“或” ORL A,Rn ;A←A∨Rn ORL A,direct ;A←A∨(direct) ORL A,@Ri ;A←A∨((Ri)) ORL A,#data ;A←A∨#data ORL direct,A ;direct←(direct) ∨A ORL direct

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档