150 likes | 304 Views
任务四 循环彩灯控制调试. 自动化教研室 王曙霞. 任务四 循环彩灯控制调试. 任务四 循环彩灯控制调试. 任务四 循环彩灯控制调试. 考察: 1 个 LED 点亮指令 考察:仿真软件的使用. 8 个 LED 循环点亮程序设计. 任务四 循环彩灯控制调试. ORG 0000H ;表示程序从地址 0000H 开始 AJMP START ORG 0070 H ; 表示程序从地址 0070H 开始
E N D
任务四 循环彩灯控制调试 自动化教研室 王曙霞 《智能系统设计与项目实践》项目教学课件
任务四 循环彩灯控制调试 任务四 循环彩灯控制调试 《智能系统设计与项目实践》项目教学课件
任务四 循环彩灯控制调试 考察:1个LED点亮指令考察:仿真软件的使用 《智能系统设计与项目实践》项目教学课件
8个LED循环点亮程序设计 任务四 循环彩灯控制调试 ORG 0000H ;表示程序从地址0000H开始 AJMP START ORG 0070 H ; 表示程序从地址0070H开始 START: MOV P1,#11111110B • ACALL DELAY ;延时一段时间,便于观察 • ACALL DELAY ;延时 • MOV P1,#11111011B • ACALL DELAY • MOV P1,#11110111B • ACALL DELAY • MOV P1,#11101111B • ACALL DELAY • MOV P1,#11011111B • ACALL DELAY • MOV P1,#10111111B • ACALL DELAY • MOV P1,#01111111B • ACALL DELAY • SJMP START ;返回,从START开始重复 MOV P1,#11111101B 《智能系统设计与项目实践》项目教学课件
8个LED循环点亮程序设计 任务四 循环彩灯控制调试 • DELAY: MOV R3,#0FFH ; 一段延时子程序 • DEL2: MOV R4,#0FFH • DEL1: NOP • DJNZ R4, DEL1 • DJNZ R3,DEL2 • RET ;子程序返回 • END ;表示程序结束 《智能系统设计与项目实践》项目教学课件
任务四 循环彩灯控制调试 8个LED循环点亮程序设计 • 观察1 :P1口数据的变化情况? • 观察2 :如何用简单的程序实现? 分析:P1口的数据为依次右移,数据是连续 变化。 可以移位指令实现。 《智能系统设计与项目实践》项目教学课件
累加器 A 累加器 A Cy 累加器 A Cy 累加器 A 任务四 循环彩灯控制调试 8个LED循环点亮程序设计 • 逻辑运算及移位类指令 累加器移位操作:(RL,RLC,RR,RRC——4条) RL A 左环移 RR A 右环移 RLC A 带进位位左环移 RRC A 带进位位右环移 《智能系统设计与项目实践》项目教学课件
开始 设循环次数 设循环初值 显示模式字送P1口 显示模式字左移1位 次数-1=0 N Y 8个LED循环点亮程序设计 《智能系统设计与项目实践》项目教学课件
任务四 循环彩灯控制调试 8个LED循环点亮程序设计 修改后程序: ORG 0000H • AJMP START • ORG 0070H • START:MOV P1,#0FFH • MOV A, #0FEH • LOOP: MOV P1,A • ( );循环左移或循环右移 • LCALL DELAY-50MS • SJMP LOOP • ******************************************************* • /*50MS延时子程序*/ • ******************************************************* • DELAY-50MS: MOV R7,#200 • DEL1: MOV R6, #123 • NOP • DEL2: DJNZ R6,DEL2 • DJNZ R7,DEL1 • RET • END 《智能系统设计与项目实践》项目教学课件
任务四 循环彩灯控制调试 思考:8个LED灯左移8次,然后右移8次,最后灯全亮,依次循环。 • 控制转移类指令 LJMP addr16 长跳转指令 ——可在64K范围内跳转 AJMP addr11 绝对跳转指令 ——可在指令所在的2K范围内跳转 SJMP rel 相对跳转指令 ——可在当前PC-128与+127范围内跳转 JMP @A+DPTR 间接长跳转指令 ——可在以DPTR为基址+A为偏移量 之和所指向的64K程序范围内跳转 《智能系统设计与项目实践》项目教学课件
任务四 循环彩灯控制调试 思考:8个LED灯左移8次,然后右移8次,最后灯全亮,依次循环。 • 控制转移类指令 条件转移: JZ,JNZ,CJNE,DJNZ——8条 JZ rel JNZ rel ——根据Acc的内容是否为0决定是否跳转 DJNZ direct,rel DJNZ Rn, rel ——将direct(或Rn)里的内容减 1,结果不等于0就跳转;等于0则不跳转继续往下走。 《智能系统设计与项目实践》项目教学课件
任务四 循环彩灯控制调试 思考:8个LED灯左移8次,然后右移8次,最后灯全亮依次循环。 • 条件转移 CJNE A,#data, rel CJNE A,direct,rel CJNE @Ri,#data, rel CJNE Rn,#data, rel ——将A(或@Ri,或Rn)与#data(或direct)相比较,其值不相等就跳转;相等则不跳转,继续往下走。 《智能系统设计与项目实践》项目教学课件
ORG 0000H AJMP START ORG 0070H START:MOV P1,#0FFH MOV A, #0FEH MOV R5,#08H LOOP1:MOV P1,A ( RR A ); LCALL DELAY-50MS DJNZ R5, LOOP1 MOV R5,#08H LOOP2 :MOV P1,A ( RL A ); DJNZ R5,LOOP2 MOV P1,# 00H LCALL DELAY-50MS LCALL DELAY-50MS SJMP LOOP *********************** /*50MS延时子程序*/ **********************DELAY-50MS: MOV R7,#200 DEL1: MOV R6, #123 NOP DEL2: DJNZ R6,DEL2 DJNZ R7,DEL1 RET END 任务四 循环彩灯控制调试 思考:8个LED灯左移8次,然后右移8次,最后灯全亮,依次循环。 《智能系统设计与项目实践》项目教学课件
任务四 循环彩灯控制调试 课外任务:制作单片机最小系统,制作循环彩灯控制,调试循环控制程序 《智能系统设计与项目实践》项目教学课件
练习:还有什么方法点亮灯,编程并调试。 • 试试有什么简单的编程方法? 《智能系统设计与项目实践》项目教学课件