资源描述:
《单片机补充例题(2003).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、例4.5求8位有符号数的补码。设8位二进制数存放在片内RAM30H单元内。参考程序:ORG0000HMOVA,30HJNBACC.7,NEXTCPLAORLA,#80HINCAMOV30H,ANEXT:SJMPNEXTEND例4.6试编写计算下式的程序:设X存在40H单元中,结果Y存放于41H中。参考程序:XEQU40HYEQU41HORG0000HMOVA,XJBACC.7,BRANCH1MOVA,#64HSJMPCOMMONBRANCH1:MOVA,#9CHCOMMON:MOVY,ASJMP$END例4.7设各分支号的分支号码从0开始按递增自然数
2、排列,执行分支号存放在R3中,编写多分支处理程序。参考程序:ORG0000HMOVA,R3RLAMOVDPTR,#TABLEJMP@A+DPTRTABLE:AJMPROUT0AJMPROUT1AJMPROUT2…ROUT0:…LJMPCOMMONROUT1:…LJMPCOMMONROUT2:…LJMPCOMMON…COMMON:SJMPCOMMON例4.8将内部RAM中起始地址为DATA的字符串数据传送到扩展RAM中起始地址为BUFFER的存储区域内,并统计传送字符的个数,直到发现空格字符停止传送。参考程序:ORG0000HDATAEQU20HBUF
3、FEREQU0200HMOVR2,#00HMOVR0,#DATAMOVDPTR,#BUFFERLOOP0:MOVA,@R0CJNEA,#20H,LOOP1SJMPLOOP2LOOP1:MOVX@DPTR,AINCR0INCDPTRINCR2SJMPLOOP0LOOP2:SJMP$END例4.9将内部RAM中起始地址为DATA的字符串数据传送扩展RAM中起始地址为BUFFER的存储区域内,字符串的结束字符是“$”。参考程序:ORG0000HDATAEQU20HBUFFEREQU0200HMOVR0,#DATAMOVDPTR,#BUFFERLOOP0:M
4、OVA,@R0MOVX@DPTR,AINCR0INCDPTRCJNEA,#24H,LOOP0LOOP1:SJMPLOOP1END例4.10编程将扩展RAM1000H为起始地址的16个数据传送到片内RAM20H为起始地址的单元中。参考程序:ORG0000HMOVDPTR,#1000HMOVR0,#20HMOVR2,#10HLOOP:MOVXA,@DPTRMOV@R0,AINCDPTRINCR0DJNZR2,LOOPSJMP$例4.11已知单片机系统的系统时钟频率为12MHz,试设计一软件延时程序,延时时间为10ms。参考程序:XEQUXXHYEQUXX
5、HDELAY:MOVR1,#XDELAY1:MOVR2,#YDELAY2:NOPNOPDJNZR2,DELAY2DJNZR1,DELAY1RET例4.12编写实现。设a、b均小于10且分别存于扩展RAM的0300H、0301H单元,要求运算结果c存于扩展RAM0302H单元。参考程序:;主程序ORG0000HSTART:MOVA,@DPTRLCALLSQUAREMOVR1,AINCDPTRMOVXA,@DPTRACALLSQUAREADDA,R1INCDPTRMOVX@DPTR,ASJMP$;子程序ORG2500HSQUARE:INCAMOVCA,@
6、A+PCRETTAB:DB0,1,4,9,16,25,36,49,64,81END例4.13有两个32位无符号数分别存放在片内RAM20H和30H为起始地址的存储区域内,低字节在低地址,高字节在高地址。编程将两个32位无符号数相加,结果存在扩展RAM0020H为起始地址的存储区域中。参考程序:;主程序ORG0000HMOVR0,#20HMOVR1,#30HMOVDPTR,#0020HMOVR7,#04HLCALLADDTIONSJMP$;子程序ADDTION:CLRCADDTION1:MOVA,@R0ADDCA,@R1MOVX@DPTR,AINCR0
7、INCR1INCDPTRDJNZR7,ADDTION1CLRAADDCA,#00HMOVX@DPTR,ARETEND例4.14把内部RAM中20H单元中的十六进制数转换为2位ASCII码,存放在R0指示的两个单元中。;主程序ORG0000HMOVA,20HSWAPAPUSHACCLCALLHEX_ASCPOPACCMOV@R0,AINCR0PUSH20HLCALLHEX_ASCPOPACCMOV@R0,ASJMP$;子程序HEX_ASC:MOVR1,SPDECR1DECR1XCHA,@R1ANLA,#0FHADDA,#2MOVCA,@A+PCXCHA
8、,@R1RETASC_TAB:DB30H,31H,32H,33H,34H,35H,36H,37HDB38H,