《第二次作业讲评···.doc》由会员分享,可在线阅读,更多相关《第二次作业讲评···.doc(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流第二次作业讲评.精品文档.94页6、设被加数存放在内部RAM的20H、21H单元,加数存放在22H、23H单元,若要求和存放在24H、25H中,试编写出16位数相加的程序。解: MOV A, 20H ADD A, 22H MOV 24H, A MOV A, 21H ADDC A, 23H MOV 25H, A CLR A ADDC A, #0 MOV 26H, A SJMP $7、编写程序,把外部RAM中1000H1030H单元的内容传递到内部RAM的30H60H单元中。解:MOV DPTR, #1000HMOV R0, #30H MOV R
2、7, #49LOOP: MOVX A, DPTR MOV R0, A INC DPTR INC R0 DJNZ R7, LOOP SJMP $9、若80C51的晶振频率为6MHZ,试计算延时子程序的延时时间。 DELAY: MOV R7, #0F6H LP: MOV R6, #0FAH DJNZ R6, $ DJNZ R7, LP RET解:因为晶振频率为6MHZ,所以一个机器周期(TC)为2微秒;因为MOV指令时单周期指令,而DJNZ和RET指令都是双周期指令,数0FAH等于十进制的250,F6H等于十进制的246,由此可以用以下表达式计算延时子程序的总机器周期个数NN=1+(1+2250+
3、2) 246+2=123741所以总延时时间T=123741210-6=247.482ms10、在内部RAM的21H单元开始存放有一组单字节不带符号数,数据长度为30H,要求找出最大数存入BIG单元。解: BIG EQU 70H MOV R0, #21H MOV R7, #48 MOV BIG, #0LOOP: MOV A, R0CJNE A, BIG, 00H JC NEXT MOV BIG, ANEXT: INC R0 DJNZ R7, LOOP SJMP $11、编写程序,把累加器A中的二进制数变换成3位的BCD码,并将百、十、个位数分别存放在内部RAM的50H、51H、52H单元中。解
4、:MOV B, #100DIV ABMOV 50H, AMOV A, BMOV B, #10DIV ABMOV 51H, AMOV 52H, B13、编写程序,求内部RAM中50H59H十个单元内容的平均值,并存放在5AH单元。解:说明:十个数之和存入R3、R4寄存器,平均值四舍五入 MOV R7, #10 MOV R3, #0 MOV R4, #0 MOV R0, #50HLOOP: MOV A, R0 ADD A, R3 MOV R3, A MOV A, R4 ADDC A, #0 MOV R4, A INC R0 DJNZ R7, LOOP MOV 5AH, #0LP: MOV A, R3 CLR C SUBB A, #10 MOV 20H, A MOV A, R4 SUBB A, #0 JC EXIT INC 5AH MOV R3, 20H MOV R4, A SJMP LPEXIT: CJNE R3, #05, 00H JC DONE INC 5AHDONE: SJMP $