《单片机第五章作业答案(共4页).doc》由会员分享,可在线阅读,更多相关《单片机第五章作业答案(共4页).doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上5. 试编制一个子程序将字符串MCS-51 Microcomputer装入外部RAM8000H开始的显示缓冲区。ORG0000HAJMP0030HMIAN:MOVDPTR,#8000HMOVR1,#0MOVR0,#20LOOP:MOVA,R1ADDA,#5MOVCA,A+PCMOVXDPTR,A;1BINCDPTR;1BINCR1;1BDJNZR0,LOOP;3BTAB:DBM,C,S,-,5,1, ,M,i,c,r,oDB c,o,m,p,u,t,e,rEND6. 试设计一个n字节的无符号十进制数加法子程序,其功能为将(R0)和(R1)指出的内部RAM中两个n字节压
2、缩BCD码无符号十进制数相加,结果存放于被加数单元中。子程序入口时,R0,R1分别指向被加数和加数的低位字节,字节数n存于R2,出口时R0指向和的最高位字节,CY为进位位。LENEQU30ORG0000HAJMPMAINORG0030HMAIN:MOVSP.#60HMOVR2,#LENACALLADD_NBYTESJMP$ADD_NBYTE:CLRCLOOP:MOVA,R0ADDCA,R1DAAMOVR0,AINCR0INCR1DJNZR2,LOOPRETEND8. 试设计一个程序,其功能为判断(R2R3R4R5)中压缩BCD码十进制最高位是否为零,若最高位为0,且该十进制数不为0,则通过左移
3、使最高位不为0。ORG0000HAJMPMAINORG0030HMAIN:MOVA,R2ANLA,#80HJNZNEXTCLRCLOOP:MOVA,R5RLCAMOVR5,AMOVA,R4RLCAMOVR4,AMOVA,R3RLCAMOVR3,AMOVA,R2RLCAMOVR2,AANLA,#80HJZLOOPNEXT:SJMP$END9. 试设计一个双字节无符号整数乘法子程序,其功能为将(R3R2)和(R5R4)相乘,积存放于30H33H。MULTB: MOV R7, #04;结果单元清0 MOVR0,#33HLOOP : MOV R0,#00H DJNZ R7,LOOP MOV A, R2
4、 ;取被乘数低位字节 MOV B, R4 ;取乘数低位字节R4 MUL AB;R4R2 ACALLRADD;调用乘积相加子程序 MOV A, R2 ;取被乘数低位字节 R2 MOV B, R5 ;取乘数高位字节R5 MULAB;R5R2 DECR0 ;积字节指针减1 ACALLRADD ;调用乘积相加子程序 MOVA,R4 MOVB,R3 MULAB;R4R3 DECR0 DECR0 ACALLRADD MOV A,R5 MOVB,R3 MULAB;R5R3 DECR0 ACALLRADD DECR0 RETRADD:ADDA,R0;累加子程序 MOV R0,A MOVA,B INCR0 AD
5、DCA,R0 MOVR0,A INCR0 MOVA,R0 ADDCA,#00H;加进位 MOVR0,A RET11. 试设计一个子程序,其功能为将(R0)指出的内部RAM中6个单字节正整数按从小到大的次序重新排列。S_2_L:MOVR4,#5CLRF0PUSH00H;R0入栈POP01H;出栈赋给R1INCR1LOOP0:MOVA,R4MOVR5,ALOOP1:MOVA,R0MOVB,AMOVA,R1CJNEA,B,NEXTSJMPNOCHNEXT:JNCNOCHSETBF0MOVR0,AXCHA,BMOVR1,ANOCH:INCR0INCR1DJNZR5,LOOP1JNBF0,HALTDJNZR4,LOOP0HALT:RET12. 试设计一个子程序,其功能为查表指令:MOVC A,A+PC,求累加器(A)的平方值,结果送A,入口时(A)15。SQRT:ADD A,#1MOVCA,A+PCRETTAB:DB 0,1,4,9,225专心-专注-专业