第6章 运用控制转移类指令《单片机基础教程》教学课件 考研 专接本.ppt

想预览更多内容,点击预览全文

申明敬告:

本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己完全接受本站规则且自行承担所有风险,本站不退款、不进行额外附加服务;如果您已付费下载过本站文档,您可以点击这里二次下载

文档介绍

项目分析 要求:设内部RAM的30H单元和31H单元各自存放着一个无符号数,比较它们是否相等,如果相等,则P1.0连接的灯点亮,否则P1.1连接的灯点亮。 分析:核心是比较两个数是否相等,进而执行不同的功能 结论:前面的程序是逐条顺序执行的,但在实际使用中,很多程序需要判断分支,即强行改变PC的内容,使程序转移到指定的入口地址处继续执行,这些分支都是靠各种控制转移指令来实现的。 ——无条件转移指令(3条) 1) 长转移指令:LJMP AAAAH ; AAAAH?PC 2)绝对转移指令 3)相对转移指令 ——条件转移指令 1)累加器A判0指令(2条) 3) 判位转移指令(3条) 条件转移指令应用 例:判断A中的数据,若A=0,则CY=0,否则CY=1。 小练习1 例:判断A中的数据,若A=0,则P1口连接的8个二极管全部点亮,否则全灭。(以实训电路为例) 小练习2 例:判断A中的数据,若A>100,则P1口连接的8个二极管全部点亮,否则全灭。(以实训电路为例) 项目实施 要求:若30H单元和31H单元中的数相等,则P1.0连接的灯点亮,否则P1.1连接的灯点亮。 电路:与第3章的项目相同,P1口通过发相器连接8个发光二极管,参见图3.10 程序思路:如果两个数相等,那么相减之后差必为0,否则差不为0,因此采用累加器是否为0的条件来判断 程序: ORG 0000H START: MOV A,30H CLR C SUBB A,31H JZ NEXT MOV P1,#0FDH SJMP EXIT NEXT: MOV P1,#0FEH EXIT: SJMP $ END 1)比较转移指令(4条) DELAY: MOV R3,#0FFH ;外循环的循环次数 DEL2: MOV R4,#0FFH ;内循环的循环次数 DEL1: NOP DJNZ R4,DEL1 DJNZ R3,DEL

最近下载