单片机-广工实验程序答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机实验292、将两个定时/计数器设定为方式1,分别从P1.1和P1.2发出一个方波,用示波器测量其周期。ORG0000HLJMPMAINORG000BHCPLP1.1MOVTH0,#0F8HMOVTL0,#06HRETIORG001BHCPLP1.2MOVTH1,#0F8HMOVTL1,#06HRETIORG1000HMAIN:MOVTH0,#0F8HMOVTL0,#06HMOVTH1,#0F8HMOVTL1,#06HMOVTMOD,#11HMOVTCON,#50HMOVIE,#8AHL1:SJMPL1END2311/2010单片机实验281、将两个定时/计数器设定为方式0,分别从P1.1和P1.2发出一个方波,用示波器测量其周期。ORG0000HLJMPMAINORG000BHCPLP1.1MOVTH0,#0F8HMOVTL0,#06HRETIORG001BHCPLP1.2MOVTH1,#0F8HMOVTL1,#06HRETIORG1000HMAIN:MOVTH0,#0F8HMOVTL0,#06HMOVTH1,#0F8HMOVTL1,#06HMOVTMOD,#00HMOVTCON,#50HMOVIE,#8AHL1:SJMPL1&n2311/2010单片机实验27该程序将内部RAM70H到71H中的16个数据按小到大顺序重新排序。实验程序如下:ORG0000HLJMPMAINORG1000HMAIN:MOVR2,#70HMOVR3,#71HL2:ACALLL1INCR2INCR3CJNER3,#80H,L2L3:SJMPL3NOPL1:MOVA,R2MOVR0,AMOVA,R3MOVR1,AMOVA,@R0L5:CLRCSUBBA,@R1MOVA,@R0JCL4XCHA,@R1MOV@R0,AL4:INCR1CJNER1,#80H,L5&n2311/2010单片机实验262、将累加器A中存放的两个BGD码拆开,求他们的乘积,并把乘积以压缩的BCD码形式送回A中。参考程序:ORG0000HLJMPMAINORG1000HMAIN:MOVA,#23HMOVB,#10HDIVABMULABMOVB,#0AHDIVABSWAPAORLA,BL1:SJMPL1END实验步骤:(1)输入程序检查无错误,经汇编、连接后装入系统。(2)在100E处设段点。(3)GB=0000↙,运行程序。(4)用R↙命令查看A中的数应为06(2×3)。(5)改变A中的数,检查程序的正确性。2311/2010单片机实验251、将累加器A中的8位二进制转换成3位BCD码格式的十进制。其中,百位数的BCD码放在21H单元中,十位和个位数放在22H单元中。参考程序:ORG0000HLJMPMAINORG1000HMAIN:MOVA,#0FFHMOVB,#64HDIVABMOV21H,AMOVA,#0AHXCHA,BDIVABSWAPAADDA,BMOV22H,AL1:SJMPL1END实验步骤:(1)输入程序检查无错误,经汇编、连接后装入系统。(2)在1012处设段点。(3)GB=0000↙,运行程序。(4)用R0721↙查看21H单元,应为02,用R0722查看22H单元,应为55。(5)改变A中的数,考察程序的正确。2311/2010单片机实验24布尔运算:编程实现X与Y异或运算,设A、B分别存放在00H、01H,结果Z存放在02H。(注意00H、01H、02H是位地址,属于内部RAM20H的D0、D1、D2)操作前可用R命令给20H单元置入初始值,例如置入01H。实验程序如下:ORG0000HLJMPMAINORG1000HMAIN:MOVC,00HANLC,/01HMOV02H,CMOVC,00HCPLCANLC,01HORLC,02HMOV02H,CL1:SJMPL1END实验步骤:(1)输入程序检查无错误,经汇编、连接后装入系统。(2)在100FH处设断点,运行程序(GB=0000↙),在断点处检查结果。(3)用R0720↙察看02H位中的内容,为01。(4)按RESET键终止程序的运行,返回监控单片机实验233、双字节除法实验程序如下:ORG0000HLJMPMAINORG1000HMAIN:MOVR4,#78HMOVR5,#46HMOVR6,#39HMOVR7,#64HACALLL1L2:SJMPL2NOPL1:CLRAMOVR2,AMOVR3,AMOVR1,#10HL5:CLRCMOVA,R5RLCAMOVR5,AMOVA,R4RLCAMOVR4,AMOVA,R3RLCAMOVR3,A2311/2010单片机实验222、双字节乘法。(1)了解MULAB指令的使用方法。(2)了解双字节乘法的程序设计方法。对于双字节乘法首先将双字节分解为(aX256+b)(cX256+d)的形式进行计算,其积依次存放在片RAM20H开始的连续四个单元,(R2R3)=乘数,(R4R5)=被乘数。运算算法为:acHacLadHadLbcHbcLbdHbdL其中,H和L分别表示积的高8位和低8位,实验程序如下:ORG0000HLJMPMAINORG1000HMAIN:MOVR2,#0FHMOVR3,#0FFHMOVR4,#0FHMOVR5,#0FFHMOVR0,#23HMOVA,R3MOVB,R5MULABMOV@R0,A&nb2311/2010单片机实验21ORG0000HLJMPMAINORG1000HMAIN:CLRAMOVR1,#20HMOVR2,#10HL1:MOV@R1,AINCR1DJNZR2,L1MOVDPTR,#2000HMOVR2,#08HL2:CLRAMOVCA,@A+DPTRMOV@R1,AINCDPTRINCR1DJNZR2,L2L3:SJMPL3END4、输入程序后,按F2保存程序(规定扩展名为*.ASM),使用ALT+X返回集成软件环境。5、按F2,输入源程序名↙(省2311/2010单片机实验201、多字节十进制加法。(1)了解DAA指令的使用方法。(2)掌握子程序的使用方法。ORG0000HLJMPMAINORG1000HMAIN:MOV81H,#50HMOVR0,#20HMOV@R0,#45HINCR0MOV@R0,#74HMOVR1,#30HMOV@R1,#67HINCR1MOV@R1,#28HCLRCMOVR2,#02HL2:ACALLL1DECR0DECR1DJNZR2,L2CLRAMOVACC.0,CNOPMOV@R0,AL3:2111/2010单片机答案单片机基础编程题答案:第4章1、把长度为10H的字符串从内部RAM的输入缓冲区inbuf向设在外部RAM输出缓冲区outbuf进行传送,一直进行到遇见回车符CR或整个字符传送完毕。ORG0030HMOVR0,#inbufMOVR1,#outbufMOVR4,#10HLOOP:MOVA,@R0;从内部RAM取数CJNEA,#0DH,LL;是否为回车符CRSJMPSTOP;是转停止传送LL:MOVX@R1,A;不是则传送到外部RAMINCR0INCR1DJNZR4,LL;沒传送完则循环STOP:SJMP$2、内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以“-1”作结束标志。编程实现在表中找出最小数。ORG0030HMOVR0,#listMOVA,@R0;取第一个正数LOOP:INCR0;指向下一个正数MOV3AH,@R0CJNEA,3AH,CHK;前一个数与后一个数比较CHK:JCLOOP1;前一个数小,则转MOVA,@R0;前一个数大,取后一个数LOOP1:XCHA,3AHCJNEA,#0FFH,LOOPXCHA,3AH;取最小数MOV3BH,ASJMP$3、求8个数的平均值,这8个数以表格形式存放在从table开始的单元中。ORG0030HMOVR0,#tableMOVR6,#07HMOVR3,#00HMOVA,@R0CLRCLOOP:INCR0ADDA,@R0;累加JNCLOOP1INCR3LOOP1:DJNZR6,LOOPCLRCMOVR5,#03HMOVR2,ALOOP2:MOVA,R3;除8RRCAMOVR3,AMOVA,R2RRCAMOVR2,ADJNZR5,LOOP24、把一个8位二进制数的各位用ASCII码表示之(亦即为“0”的位用30H表示,为“1”的位用31H表示)。该数存放在内部RAM中byte

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功