单片机重点练习题.pptVIP

  • 25
  • 0
  • 约5.51千字
  • 约 21页
  • 2018-08-11 发布于江苏
  • 举报
习 题 主讲教师:高田 第二章  课后思考题 2.17 30H addr = len 31H =ARRAY DATA START: MOV R0, #31H MOV R7, 30H CLR A LOOP: ADD A, @R0 INC R0 DJNZ R7, LOOP MOV @R0, A HERE: SJMP HERE 第二章  课后思考题 2.18 External RAM BLOCK1 ? Internal RAM BLOCK2 LEN = #30H START: MOV DPTR, #BLOCK1 MOV R0, #BLOCK2 MOV R1, #30H LOOP: MOVX A, @DPTR MOV @R0, A INC DPTR INC R0 DJNZ R1, LOOP SJMP $ 第二章  课后思考题 2.19 BCD 30H … 50H … 30H … LEN = (2FH) START: MOV R0, #30H MOV R1, #50H MOV R2, 2FH CLR C LOOP: MOV A, @R0 ADDC A, @R1 DA A MOV @R0, A INC R0 INC R1 DJNZ R2, LOOP (DJNZ 2FH, LOOP) CLR A ADDC A, #0 (MOV ACC.0, C) MOV @R0, A HERE: SJMP HERE 第二章  课后思考题 2.20 编写程序查找在内部RAM的20H到50H地址内00H出现的次数,将结果存入51H中。 START: MOV R0, #20H ; 首地址 MOV R1, #31H ; 个数 CLR A LOOP: CJNE @R0, #0, NEXT INC A ; 计数 NEXT: INC R0 DJNZ R1, LOOP ; 循环 MOV 51H, A HERE: SJMP HERE 第二章  课后思考题 另一种方法: START: MOV R0, #20H ; 首地址 MOV R2, #31H ; 个数 MOV 51H, #0 ; 计个数 LOOP: MOV A, @R0 JNZ NEXT ; =0? INC 51H NEXT: INC R0 DJNZ R2, LOOP ; 循环 HERE: SJMP HERE 第二章  课后思考题 2.21 (1) RES ? BIT ADDR RES = (/10H V P1.0) ^ 11H v CY START: MOV F0, C MOV C, P1.0 ORL C, /10H ; ANL C, 11H ORL C, F0 MOV RES, C HERE: SJMP HERE 第二章  课后思考题 (2) P1.5 = ACC.2 ^ P2.7 v ACC.1 ^ P2.0 START: MOV C, ACC.2 ANL C, P2.7 MOV F0, C ; SAVE MOV C, ACC.1 ANL C, P2.0 ORL C, F0 MOV P1.5, C HERE: SJMP HERE 第二章  课后思考题 2.22 编程求内部RAM20H和21H地址中两个有符号数的差的绝对值|(20H)-(21H)|,将结果存在A中。若计算中出现溢出,则将PSW中的F0位置1,否则置0。 START: CLR C MOV A, 20H ; 被减数 SUBB A, 21H ; (20H)-(21H) JB PSW.2, OVER ; OV=1, 溢出 JNC HERE ; CY=0, 正数 CPL A ; 负数,取反 INC A ; 加1,得到绝对值 HERE: SJMP HERE OVER: SETB F0 SJMP HERE 第三章 课后思考题 3.2 设无符号数X存于内部RAM的VAR单元,Y存于FUNC单元,有如下函数: 设2X仍为一字节数,编程实现。 方法2: START: MOV A,VAR CJNE

文档评论(0)

1亿VIP精品文档

相关文档