单片机-复习总结教学课件.pptVIP

  • 55
  • 0
  • 约6.9千字
  • 约 42页
  • 2018-06-28 发布于福建
  • 举报
1、定时器控制寄存器TCON : =0,停止定时器工作; =1,启动定时器工作。 定时器方式寄存器TMOD(89H): 七、 求n个单字节数据的累加,设数据串已在43H起始单元,数据串长度在42H单元,累加和不超过2个字节。 MOV A,#30H MOV 4FH,A MOV R0,#20H MOV @R0,4FH MOV 21H,20H 6)数据交换指令: PUSH A × PUSH ACC √ 指令中累加器有两种写法:A和ACC。 A代表累加器,ACC代表累加器地址。 在堆栈操作指令中只能使用ACC而不能使用A。 移位指令RLC、CLR、CPL?、XCH、 外部数据传送MOVX、 程序存储器读指令MOVC只能用A) 例:写出完成下列功能的程序段。 (1)将R0的内容送R6中 程序为:MOV A,R0 MOV R6,A (2)将片内RAM 30H单元的内容送片外60H单元中 程序为:MOV A,30H MOV R0,#60H MOVX @R0,A (3)将片外RAM 1000H单元的内容送片内20H单元中 程序为:MOV DPTR,#1000H MOVX A,@DPTR MOV 20H,A (4)将ROM 1000H单元的内容送片内RAM的30H单元中 程序为:MOV A,#00H MOV DPTR,#1000H MOVC A,@A+DPTR MOV 30H,A 例:找出指令错误并改正 1.MOV A,#1000H 2.MOVX A,1000H 注意:(1000H)片外RAM (DPTR、Ri) 3.MOVC A,1000H 注意:A←(1000H) ROM (DPTR、PC) 4.MOVX 60H,A 注意:A与片外的数据传送只能通过@Ri或者@DPTR 5. XCH R1,R2 注意:R1?R2(必须有A参加) 6. MOVX DPTR,#2000H 注意:DPTR←2000H(应为MOV) 7.MOVX 60H,@DPTR 注意:片内RAM←片外RAM (必须有A参加) 1、MOV A,@R2 2、INC DPTR 3、MOV F0,C 4、PUSH A (直接寻址方式) 5、MOVX 60H,@DPTR (通过A) 6、CPL R0 (只能针对A) 7、XCH R1,61H (交换指令目的操作数为A) 8、RLC R5 (移位操作针对A) 9、MOV R0,R1 10、MOV R1, #0FFH * 循环程序的构成(包括五部分): 初始化部分:循环准备工作。如:循环次数计数器、地址指针、存储单元和工作寄存器设初值等 循环体部分:循环程序的主体部分,也是需多次重复执行的程序段 一、将片外数据存储器地址为1000H~1030H的数据块,全部搬迁到片内RAM30H~60H中,并将原始数据块区域全部清零。 循环控制部分:判断循环结束条件,控制循环的继续或终止。 修改部分:修改地址指针、循环计数器等参数值,为执行下一次循环做准备。 结束部分:循环结束后对结果的处理。 MOV R0,#30H MOV R2,#31H MOV DPTR,#1000H LP: MOVX A,@DPTR MOV @R0,A, ANL A,#00H MOVX @DPTR,A INC R0 INC DPTR DJNZ R2,LP RET 二、统计片内RAM中30H单元开始的20个数据中0个数,放于R7中。 用R2作循环变量,最开始置初值为20;作R7作计数器,最开始置初值为0;用R0作指针访问片内RAM单元,最开始置初值为30H; 用DJNZ指令对R2减1转移进行循环控制,在循环体中用指针R0依次取出片内RAM中的数据,判断,如为0,则R7中的内容加1。 MOV R0,#30H

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档