2、用P3.7状态选择加、减计数方式。b.利用P3口低四位状态控制开始和停止计数,控制方式自定。二、设计思路任务一:先判断X是否为负数,为负数就跳转到L2,将数值取反。为正数则顺序执行,再将X与40比较,如果大于等于40跳到L1,取X平方。若X小于40,则顺序执行,再将X与20比较,小于及等于20时跳到L2,否则顺序执行,X的值除以二。任务二:检测P3.0为低电平时开始计时。使用循环延时1秒,秒计数加1并从P2口输出秒值。到60秒时,分计数加一,秒计数置零,并从P1口输出分值。到60分时,小时计数加一,分计数置零,并从P0口输出小时值。当P3.0为高电平时,计时停止。提高题:当P3
3、的低四位均为低时开始计数,P3.7为低电平时减计数,反之加计数。千位、百位由P1口输出;十位、个位由P2口输出。三、资源分配任务一:X存在2000H中,计算结果低八位存入3000H,高八位存入3001Ho使用R1暂存A的值,使用B计算A的平方。任务二:R3、R4、R5、R6、R7存储中间量,将秒、分、小时通过P2、PKP0输出。四、流程图任务一:任务二/开始VZNP3.0=0P3.0=l延时_秒P3.0=l厂、秒计数加一,P2口输出值厂、、P3.0=l满60秒分计数加一,P1口输出值1P3.0=l厂-——~{满60分小时计数加一,P0口输出值五、源代码(含文件头说明、资源使
4、用说明、语句行注释)任务一:Filename:1.asmDescription:计算Date:2013/10/27Designedby:李程ORG0000HLJMPMAINORG01OOHMAIN:CLRC;2000H单元内的数存入A;如果A的最高位为跳到L2,否则顺序执行;将人存入R1;A减去40MOVDPTR,#2000HMOVXA,@DPTRJBACC.7,L2MOVR1,ASUBBA,#40MOVA,R1JNCL1MOVR1,ACLRCSUBBA,#20MOVA,R1JCL2JZL2CLRCRRCAMOVDPTR,#3000HMOVX@DPTR,ADONE:SJMPDO
5、NEL1:MOVB,AMULABMOVDPTR,#3000HMOVX@DPTR,AMOVA,BINCDPTRMOVX@DPTR,ASJMPDONE;WR1的值回存入A;如果A大于等于40,跳到L1,否则顺序执行;将人存入R1;将CY清零;A减去20;将罔回存入A;A小于20时,跳到L2;A等于20时,跳到L2;A的值除以二山的值存入3000H单元;将人存入B;计算A的平方;将结果的低八位存入3000H单元;将结果的高八位存入3001H单元L2:CPLAMOVDPTR,#3000HMOVX@DPTR,ASJMPDONEEND任务二Filename:2.asmDescription
6、:计时Date:2013/10/27Designedby:李程ORG0000HMOVP0,#00HMOVP1,#00HMOVP2,#00HMOVR3,#60MOVR4,#60MOVR5,#24HMOVR6,#0HMOVR7,#0HCLRCJBP3.0,DONEDELAY:MOVR2,#20D1:MOVR1,#200;取反A;A存入3000H单元;寄存器赋初值;P3.0低电平顺序执行;延时一秒D2:MOVRO,#248NOPDJNZRO,$DJNZR1,D2DJNZR2,D1ADDA,#01HDAAMOVP2,AJBP3.0,DONEDJNZR3,DELAYMOVR3,#60MO
7、VA,R7ADDA,#01HCLRCDAAMOVR7,AMOVP1,AJBP3.0,DONEMOVP2,#00HCLRADJNZR4,DELAYMOVR4,#60MOVR7,#0HMOVA,R6ADDA,#01HCLRADAAMOVR6,AMOVPO,AJBP3.0,DONEMOVP2,#00HMOVP1,#00HCLRADJNZR5,DELAYDONE:SJMP$END提高题:Filename:3.asmDescription:提高Date:2013/10/27Designedby:李程O