比较两个数是否相等并显示

(19页)

'比较两个数是否相等并显示'
第 6 本章内容章运 项目引导用 ——控 比较两个数是否相等并显示 制转移类 相关知识指令 项目实施 项目分析v 要求:设内部RAM的30H单元和31H单元各自存放 着一个无符号数,比较它们是否相等,如果相等, 则P1.0连接的灯点亮,否则P1.1连接的灯点亮。 v 分析:核心是比较两个数是否相等,进而执行不同 的功能v 结论:前面的程序是逐条顺序执行的,但在实际使 用中,很多程序需要判断分支,即强行改变PC的内 容,使程序转移到指定的入口地址处继续执行,这 些分支都是靠各种控制转移指令来实现的。 ··· 假设执行该指 令前,PC的值 为0000H。··· 操作码(第一字节) 操作数(第二字节) A10 A9 A8 0 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0程序计数器PC PC高5位 PC低11位 (保持不变)例: · · · · · · 助记符格式 机器码(B) 相应操作 机器周期JC rel 01000000 若CY=0,则PC?PC+rel,否则顺序执行 2JNC rel 01010000 若CY≠0,则PC?PC+rel,否则顺序执行 2 助记符格式 机器码(B) 相应操作 机器周期 JB bit,rel 00100000bit rel 若bit=1,则PC?PC+rel,否则顺序 2 执行 JNB bit,rel 00110000 bit rel 若bit=0,则PC?PC+rel,否则顺序 2 执行 JBC bit,rel 00010000 bit rel 若 bit=1,则PC?PC+rel,bit?0, 2 否则顺序执行条件转移指令的转移范围限制在256字节以内,并且以转移指令的下一条指令为中心,向前可到PC+127,向后可到PC-128 条件转移指令应用v 例:判断A中的数据,若A=0,则CY=0,否则 CY=1。 ORG 0000H JZ L1 SETB CY 思考:怎样 SJMP L2 改成使用 JNZ指令? L1: CLR CY L2: END 小练习1v 例:判断A中的数据,若A=0,则P1口连接的8个二 极管全部点亮,否则全灭。(以实训电路为例) ORG 0000H JZ L1 MOV P1,#0FFH SJMP L2 L1: MOV P1,#00H L2: SJMP $ END 小练习2v 例:判断A中的数据,若A>100,则P1口连接的8个 二极管全部点亮,否则全灭。(以实训电路为例) 提示:可以先做减法,然后使用JC指令判断是否有 借位CY并实现跳转! ORG 0000H CLR CY SUBB A,#100 JC L1 MOV P1,#00H SJMP L2 L1: MOV P1,#0FFH L2: SJMP $ END 项目实施 v 程序:v 要求:若30H单元和31H单元中的数 相等,则P1.0连接的灯点亮,否则 ORG 0000H P1.1连接的灯点亮。 START: MOV A,30H v 电路:与第3章的项目相同,P1口通 CLR C 过发相器连接8个发光二极管,参见 图3.10 SUBB A,31Hv 程序思路:如果两个数相等,那么相 JZ NEXT 减之后差必为0,否则差不为0,因 MOV P1,#0FDH 此采用累加器是否为 的条件来判断 0 SJMP EXIT NEXT: MOV P1,#0FEH EXIT: SJMP $ END 机器 助记符格式 机器码(B) 相应操作 周期C J N E 10110100 若A≠#data, 则PC PC+rel,否则顺序 2A,#data,rel data rel ? 执行;若 A<#data,则CY=1,否则CY=0C J N E 10111rrr 若 Rn≠#data,则PC PC+rel,否则顺 ? 2Rn,#data,rel data rel 序执行;若Rn<#data,则CY=1,否则 CY=0C J N E 1011011i 若(Ri)≠#data,则PC PC+rel,否则 ? 2@Ri,#data,rel data rel 顺序执行;若(Ri)<#data,则CY=1,否 则CY=0C J N E 10110101 若A≠(direct),则PC PC+rel,否则 ? 2A,direct,rel direct rel 顺序执行;若A<(direct),则CY=1,否 则CY=0助记符格式 机器码(B) 相应操作 机器周期D J N Z 1 1 0 1 1 r r r ,若 ,则 Rn?Rn-1 Rn≠0 PC?PC+rel, 2Rn,rel rel 否则顺序执行D J N Z 11010101 (direct)?(direct)-1,若(direct) 2direct,rel direct rel ≠0,则PC?PC+rel,否则顺序执行v DELAY: MOV R3,#0FFH ;外循环的循环次数v DEL2: MOV R4,#0FFH ;内循环的循环次数v DEL1: NOP DJNZ R4,DEL1v DJNZ R3,DEL2v RET 看看大家熟悉 的延时子程序! 典型例题:将00H~0FH这16个数顺序置入片内RAM20H~2FH单元中。 MOV R0,#20H MOV R7,#0FH CLR A 想一想:LOOP:MOV @R0,A 使用MOV @R0,A有什么优点? INC A INC R0 DJNZ R7,LOOP SJMP $
关 键 词:
比较两个数是否相等并显示 ppt、pptx格式 免费阅读 下载 天天文库
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:比较两个数是否相等并显示
链接地址: https://www.wenku365.com/p-44789307.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开