- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第16 51系列单片机
16.5.6 组合逻辑电路的实现 组合逻辑电路是由一些基本逻辑单元组合而成的,用于完成复杂逻辑运算的电路。利用以上逻辑运算指令,可以在程序中模拟各种硬件逻辑电路。 例如,对如图所示的组合逻辑电路,编写程序模拟其功能。设输入信号X、Y、Z放在20H、21H、22H单元中,输出信号F放在30H单元。程序示例如下。 16.5.7 循环移位指令 循环移位指令是对累加器A中的内容进行循环移位的操作指令。这里要注意,51系列单片机的移位指令只能对累加器A进行移位,共有4条指令,分别介绍如下。 1.循环左移 2.循环右移 3.带进位循环左移 4.带进位循环右移 16.6 控制转移指令 控制转移指令是用来改变程序执行顺序的操作指令。通过它可以按照设计任务的需要来实现程序的控制转移。在51系列单片机的程序中,通常是按顺序进行的,程序的顺序执行是由程序计数器PC自动加1实现的。为了适应复杂的测控应用系统的需要,经常需要改变程序的执行顺序,实现分支转向,这种情况称为“程序转移”。控制转移类指令一般是通过改变PC值来实现的。 本节主要讲解51系列单片机指令系统中的控制转移指令,包括无条件转移、有条件转移、子程序调用及返回指令。控制转移指令一般不影响标志位。 16.6.1 无条件转移指令 无条件转移指令是指不进行条件判断而强制执行的程序转移指令。通过它可以在程序中无条件转移到任何其他位置来接着执行。在51系列单片机中有4条无条件转移指令,分别用于不同的控制方式以及程序转移长度。 1.长转移指令 2.绝对转移指令 3.短转移指令 4.变址寻址转移指令 16.6.2 条件转移指令 条件转移是程序按照一定的条件进行转移的操作指令。执行条件转移指令时,如指令中规定的条件满足,则进行程序转移;否则程序顺序执行,相当于高级语言中的“if”语句。条件转移有如下几种。 1.累加器判零转移指令 2.数值比较转移指令 3.减1条件转移指令 16.6.3 子程序调用及返回指令 子程序是在一个主程序中被调用的程序段。在一个程序中经常遇到反复多次执行某程序段的情况,如果重复编写这个程序段,会使程序变得冗长而杂乱。为此可采用“子程序结构”,即将重复的程序段编写为一个子程序,通过主程序调用而使用,这样不但减少了编程工作量,而且也缩短了程序的长度。子程序结构是一种重要的程序结构。 调用子程序的程序称为主程序,主程序和子程序之间的调用关系如图16.47所示。 如果在子程序中还有其他子程序,称为子程序嵌套,如图16.48所示。子程序调用指令将程序中断位置的地址在堆栈中保存起来,堆栈的先入后出的存取方式适合存放断点地址,尤其在有子程序嵌套的情况下。 16.7 位操作指令 位操作指令是对位变量寄存器等进行按位处理的指令。其中位处理,就是以位(bit)为单位进行的运算和操作。位变量也称为布尔变量或开关变量。51系列单片机具有丰富的布尔变量处理功能,即位处理功能。 51系列单片机可以把由模拟电路或数字电路实现的控制功能改由软件方法实现,使控制系统软化的微控制技术,以及位处理器的相关内容都与位操作指令有关。 16.7.1 位变量传送指令 位变量传送指令是在可寻址位与位累加器CY之间传送数据的操作指令。位变量传送指令一般不影响其他标志位。按照传送方向不同,共有2条指令,格式分别如下。 MOV C, bit ;CY←(bit) MOV bit, C ;bit←(CY) 在51系列单片机指令系统中,没有2个可寻址位之间的传送指令,无法实现直接传送。如需要进行这种传送,应使用这2条指令,以CY作中介来实现。 16.7.2 置位与清零指令 置位与清零指令是对CY及可寻址位进行置位或清零的操作指令,共有4条指令,格式如下。 SETB C ;CY←1 SETB bit ;bit←1 CLR C ;CY←0 CLR bit ;bit←0 这些操作指令不影响其他标志位。 16.7.3 位逻辑运算指令 位逻辑运算指令是进行逻辑运算的操作指令。位逻辑运算指令包括与、或、非三种,共6条指令。指令的格式示例如下。 ANL C, bit ;CY←(CY)∧(bit) ANL C, /bit ;CY←(CY)∧() ORL C, bit ;CY←(CY)∨(bit) ORL C, /bit ;CY←(CY)∨() CPL C ;CY←() CPL bit ;bit←() ANL和ORL分别是将位累加器CY的内容与位地址中的内容(或取反后的内容)进行与、或操作,结果送入CY中。“/”表示将该位值先求反,再运算,但是不改变位地址中原来的值。 16.7.4 位控制转移指
原创力文档


文档评论(0)