单片机原理与接口技术[苏平主编]习题答案内容摘要:
2H4CH=3046H。 12.阅读下列程序,说明其功能。 MOV R1, 40H ;设( 40H) =x MOV A, @R1 ; A= x RL A ; A= 2x MOV R0, A ; R0=2x RL A ; A= 2x *2=4x RL A ; A= 4x *2=8x ADD A, R0 ; A= 8x +2x =10x MOV @R1, A ;( 40H) =10x 解:各指令 的注释如程序所标,程序的功能为 40H 单元的内容乘 10。 13.执行程序填结果 ( 1) MOV A, 19H ; A=19H ADD A, 72H ; A=8BH DA A ; A=91H 结果: A= 解: A=91H ( 2) CLR C ; Cy=0 MOV A, 9AH ; A=9AH SUBB A, 19H ; A=81H ADD A, 72H ; A=0F3H DA A ; A=53H, Cy=1 结果: A= 解: A=53H 14.设( SP)= 50H, MA= 0123H, SUB= 0345H。 执行指令“ MA: ACALL SUB”后 PC=。 ,SP=。 ,( 51H)=。 ,( 52H)=。 解: PC=0345H, SP=52H,( 51H) =25H,( 52H) =01H 15.( SP)= 4BH,( 49H)= 12H,( 4AH)= 5AH,( 4BH)= 68H。 执行指令“ RET”后 PC=。 ,SP=。 解: PC=685AH, SP=48H 习题 4 解答 1.按下面要求编程。 ( 51H)= 0 ;若( 50H)为奇数 1 ;若( 50H)为偶数 解: MOV A, 50H MOV B, 2 DIV AB ;偶数除以 2 的余数为 0 MOV A, B JNZ L1 ;判余数是否为 0 MOV 51H, 01H;为偶数, 1 送 51H 单元 SJMP NEXT L1: MOV 51H, 00H;为奇数, 0 送 51H 单元 NEXT: SJMP NEXT 2.按下面要求编程。 - 1;若 ( 50H)≤ 20 ( 51H)= 0; 若 20( 50H) 40 - 1; 若 ( 50H)≥ 40 解: MOV A, 50H ;设 50H 单元的内容为 X CJNE A, 20, L1 ; X≠ 20 时,转向 L1 SJMP L4 ; X=20 时,转向 L4 L1: JC L4 ; X< 20 时,转向 L4 L2: CJNE A, 40, L3 ; X> 20 且 X≠ 40 时,转向 L3 SJMP L4 ; X=40 时,转向 L4 L3: JNC L4 ; X> 4 0 时,转向 L4 MOV 51H, 00H ; 20< X< 40 时,送 0 到 51H 单元 SJMP NEXT L4: MOV 51H, 0FFH ; X≤ 20 或 X≥ 40 时,送- 1 到 51H 单元 NEXT: SJMP NEXT 3.试编写程序,将片外 8000H 开始的 16 个连续单元清 0。 解: 方法一: MOV DPTR, 8000H;数据块首址 CLR A LOOP: MOVX @DPTR, A ;单元清 0 INC DPTR MOV R7, DPL CJNE R7, 10H, LOOP SJMP $ 方法二 MOV DPTR, 8000H MOV R7, 10H ;数据块长度 16 CLR A LOOP: MOVX @DPTR , A INC DPTR DJNZ R7, LOOP SJMP $ 4.在片内 50H 开始的单元中存有 8 个无符号数,找出其中最大数存于 70H 单元中。 解: MOV R0, 50H ;数据块首址 MOV R2, 8 ;长度计数器赋初值 MOV A, @R0 ;取第一个数 LOOP: INC R0 ;取下一个数 MOV B, @R0 CJNE A, B, NEXT NEXT: JNC NEXT1 ;两数比较,若 A≥ B 时, A 中放当前数 MOV A, @R0 ;若 A< B 时,送大数到 A 中 NEXT1: DJNZ R2, LOOP ;数据块比较完否。 MOV 70H, A ;最大值送入 70H 单元中 HERE: SJMP HERE 5.试编写程序,求出片内 RAM 30H 单元中的数据含“ 1”的个数,将结果存入 31H 单元。 解:要统计一个 8 位二进制数中“ 1”的个数,可以把这个数一位一位地移到 Cy 中,然后加以判断和统计。 程序设计如下: MOV R2,8。 移位次数 MOV R1,10。 R1 作为统计“ 1”的个数的计数器 MOV A,30H。 取数 LOOP: RLC A。 数的最高位移入 Cy JNC NEXT INC R1。 若 Cy=1,则计数器加 1 NEXT: DJNZ R2,LOOP MOV 31H,R1。 存结果 HERE: SJMP HERE 6.编制用软件延时 1 秒的子程序,控制 P1 脚上所接的 8 个发光二极管交叉灯亮一秒。 解:设晶体振荡器的频率为 6MHz. MOV A,0AAH LOOP: MOV P1,A ;交叉亮 LCALL DEY1S ;调延时 1S 子程序 CPL A SJMP LOOP DEY1S: MOV R5, 2 ;延时 1S 子程序 LOOP3: MOV R6, 200 LOOP2: MOV R7, 250 LOOP1: NOP NOP NOP DJNZ R7, LOOP1 DJNZ R6, LOOP2 DJNZ R5, LOOP3 RET 7.设计灯移位程序,要求 P1 脚上所接的 8 只发光二极管每次点亮一个,点亮时间为 秒。 顺序从低位到高位循环点亮。 解: MOV A, 01H LOOP: MOV P1, A LCALL DEY05S RL A SJMP LOOP DEY1S: MOV R5, 1 ;延时 子程序 LOOP3: MOV R6, 200 LOOP2: MOV R7, 250 LOOP1: NOP NOP NOP DJNZ R7, LOOP1 DJNZ R6, LOOP2 DJNZ R5, LOOP3 RET 8.将累加器 A 中的 2 位十六进制数,转换为 ASCII 码,存放在片 内 RAM 30H 和 31H 单元中。 解: MOV R0, A ;暂存 A 中的数在 R0 中 ANL A, 0FH ;屏蔽高位 MOV DPTR, ASCTAB MOVC A, @A+DPTR ;低位转换成 ASCII 码 MOV 31H, A ;存低位 MOV A, R0 SWAP A ;将高位交换到低位 ANL A, 0FH MOVC A, @A+DPTR MOV 30H, A ;存高位 ASCII: DB 30H, 31H, 32H, 33H, 34H, 35H, 36H DB 37H, 38H, 39H, 41H, 42H, 43H, 44H DB 45H, 46H 9.将两字节 ASCII 码,转换为二进制数,编成子程序形式。 解:子程序为 AASCH 如下: ;功能:将两字节 ASCII 码,转换为一个字节二进制数(即十六进制) ;入口参数:( R0)为 ASCII 码的首地址 ;出口参数:( R1)为转换后的二进制数的地址 AASCH: MOV A, @R0 ;取 ASCII 码的高位 ACALL ASCH ;调用子程序 ACH SWAP A ;将十六进制 数放在 A 的高位 MOV @R1, A ;存十六进制数到高 4 位 INC R0 ;指向下一个 ASCII 码数 MOV A, @R0 ACALL ASCH XCHD A, @R1 ;存十六进制数到低 4 位 RET ACH: CLR C ;将 A 中的 ASCII 码数转换成十六进制数并存放在 A 中的子程序 SUBB A, 30H CJNE A, 0AH, NEXT;判 ASCII 码数是数字还是字母。 NEXT: JC AH ;若为数字( 0~9),转移 SUBB A, 07H ;十六进制数为字母是减 7 AH: RET 10.将两字节 ASCII 码,转换为 BCD 码,编成子程序形式。 解:两字节 ASCII 码转换为 BCD 码,用压缩 BCD 码的形式表示正好占用一个字节。 子程序 ASCBCD 如下: ;功能:将两字节 ASCII 码,转换为 BCD 码,若 ASCII 码数为非法 BCD 码(即 A~F),则在相应半字中置入“ $”符号,以示区别 ;入口参数:( R1)为 ASCII 码的首地址 ;出口参数:( R0)为转换后的 BCD 码的地址 ASCBCD: MOV A, @R1 ;取一个 ASCII 码 ACALL ACB ;调用 ACB 子程序 SWAP A ; BCD 码的放在 A 的高 4 位 MOVA @R0, A ;存 BCD 码到高 4 位 INC R1 MOV A, @R1 ACALL ACB XCHD A, @R0 RET ACB: CLR C ;将 A 中的 ASCII 码转换为 BCD 码的子程序 SUBB A, 30H CJNE A, 0AH, L1 L1: JC L2 ;是 BCD 码数则转 L2 MOV A, 24H ; 非法 BCD 码数,则送入“ $”符号 L2: RET 11.将两位十进制数的 BCD 码,转换为 ASCII,编成子程序形式。 解:子程序 BCAC 如下: ;功能:将两位十进制数的 BCD 码,转换为 ASCII ;入口参数: R1 存放 BCD 码数的地址 ;出口参数:( R0)和( R0) +1 存放结果的地址 BCAS: MOV A, @R1 ;取 BCD 码数 MOV R2, A ;暂存 BCD 码数在 R2 中 ANL A, 0FH ;屏蔽高 4 位 ADD A, 30H ;低 4 位 BCD 码转换成为 ASCII 码 MOV @R0, A ;存入第一个 ASCII 码 MOV A, R2 SWAP A ;取原 BCD 码,把高 4 位交换到低 4 位 ANL A, 0FH ;屏蔽高 4 位 INC R0 MOV @R0, A ;存入第二个 ASCII 码 RET 12.将 20H 单元中的 8 位无符号二进制数转换为 BCD 码,存入 21H、 22H。 解:程序设计如下: ;功能:将 20H 单元中的 8 位无符号二进制数转换为 BCD 码 ;入口参数: 20H 单元中存放要转换的二进制数 ;出口参数: 21H 单元存放的是 百位 BCD 码, 22H 单元存放的是十位和个位 BCD 码,高半字节放十位,低半字节放个位。 ;占用寄存器: A, B BINBCD: MOV A, 20H ;取数 MOV B, 64H DIV AB ;除以 100, A 为百位数 MOV 21H, A ;存入 21H 单元 MOV A, 0AH XCH A, B ;余数 B 送 A DIV AB ;除以 10,得十位和个位 SWAP A ;十位数放于高半字节 ADD A, B ;个位数放于低半字节 MOV 22H, A ;十位、个位存 22H 单元 RET 13.用查表程序求 0~ 8 之间整数的平方。 解:设 0~8 之间的整数存放在 R0 单元中,查表结果存在 R1 中 MOV R0, DATA MOV A, R0 MOV DPTR, TAB MOVC A, @A+DPTR MOV R1, A TAB: DB 0, 1, 4, 9, 16, 25, 36, 49, 64。单片机原理与接口技术[苏平主编]习题答案
相关推荐
正过程中产生轴线位移,应在位移校正后在柱子底脚四周用 4~6块 lOmm厚钢板作定位靠模,并用电焊与基础面预埋件焊接固定,防止移动。 4)钢柱的固定 ①临时固定 柱子插入杯口就位,并初步校正后,即用钢 (或硬木 )楔临时固定。 方法是当柱插入杯口使柱身心线对准杯口 (或杯底 )中心线后刹车,用撬杠拨正,在柱与杯口壁之间的四周空隙,海边塞人2 个钢 (或硬木 )楔,再将柱子落到杯底并复查对线
工 时 , 可在基底标高以 上 预留 15cm士层不挖 , 待做基础时再挖。 c、 施 工顺序 不合理 : 土方开挖宜 先 从低处开挖 , 分层 、 分段依次进行 , 形成一定 坡度 , 以利排水。 d、 开挖尺寸不足 : 基坑 (槽 )或管沟底部的开挖宽度 , 除应考虑结构宽度外 ,应 根据施工需要增加工作面宽度 , 如排水设施 、 支撑结构等所需要的宽度。 (2)钢筋 砼 基础施工 ①
整(金额大写: 元)。 乙方向甲方支付上述全部转让款至甲方指定账户后,上述建房指标 及相应房屋 立即归乙方享有。 二 、甲方将建房指标以货币的形式转让予乙方且乙方向甲方支付全部转让款后,甲方不得以任何理由收回 建房指标或其相应房 屋 ,一旦甲方 (包括财产继承人和有财产权利的人 )要来索取已转让出去的建房指标及财产,则甲
2)当设计要求钢筋末端需作 135176。 弯钩时,HRB335 级、 HRB400 级钢筋的弯弧内直径不应小于钢筋直径的 4 倍,弯钩的弯后平直部分长度应符合设计要求。 ( 3)钢筋作不大于 90176。 的弯折时,弯折处的弯弧内直径不应小于钢筋直径的 5 倍 4 箍筋末端弯钩 除焊接封闭环式箍筋外,箍筋的末端应做弯钩,弯钩形式应符合设计要求;当设计无具体要求时,应符合下列规定
过检查验收,认为该工程达到优 良工程标准。 检查意见: 我单位认为该工程达到优良标准。 项目负责人: 单位法人代表:(公章) 年 月 日 注:有关文字材料需打印。 单位工程质量检查报告(建设单位) 工程名称 茌平县振兴办事处后张 4楼 检查时间 年 月 日 建设单位 茌平县城市综合开发投资有限公司 结构类型 砖混 层 数 五 层 建筑面积或规模 4603 ㎡ 检查情况
29 水泵房及沉砂井 30 通道贴砖 31 防水层 32 排水沟 33 给排水及消防 5人行通道 1 A 段基础及下部构造 2 A 段上部构造构浇筑 3 B 段基础及下部构造 4 B 段上部构造构浇筑 5 C 段基础及下部构造 6 C 段上部构造构浇筑 7 D 段基础及下部构造 8 D 段上部构造构浇筑 9 E 段基础及下部构造 10 E 段上部构造构浇筑 11 通道顶回填 12 不锈钢扶手