浙大远程微机原理与接口技术离线作业答案内容摘要:

AM 的 31H单元开始存放一组 8 位带符号数,字节个数在 30H 中。 请编写程序统计出其中正数、零和负数的数目,并把统计结果分别存入 20H、 21H 和 22H三个单元中。 加上必要的伪指令,并对源程序加以注释。 【答】 分析:带符号数以字节最高位 D7 的值来区分是正数 (包括零 )和负数。 D7=1,则该带符号数为负数。 程序如下: POS_NUM EQU 20H ;正数个数 ZERO_NUM EQU 21H ;零个数 NEG_NUM EQU 22H ;负数个数 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV POS_NUM, 0 ;计数单位初始化为 0 MOV ZERO_NUM, 0 MOV NEG_NUM, 0 MOV R1, 30H ;数据长度 MOV R0, 31H ;数据首地址 LOOP: MOV A, @R0 JB , INC_NEG ;符号位为1,该数为负数,跳转加 1 CJNE A, 0, INC_POS INC ZERO_NUM ;该数为 0, 0 个数加 1 AJMP LOOP1 INC_NEG: INC NEG_NUM ;负数个数加 1 AJMP LOOP1 INC_POS: INC POS_NUM ;该数为正数,正数个数加 1 LOOP1: INC R0 ;判断统计是否结束 DJNZ R1, LOOP END 例如:已知 (30H)=08H, 31H 单元起存放数据为: 00H, 80H, 7EH, 6DH, 2FH, 34H,EDH, FFH。 执行结果: (20H)=04H, (21H)=01H, (22H)=03H。 15. 两个 10 位的无符号二一十进制数,分别从内部 RAM 的 40H 单元和 50H单元开始存放。 请编程计算该两个数的和,并从内部 RAM 的 60H 单元开始存放。 加上必要的伪指令,并对源程序加以注释。 【答】 分析: 10 位的无符号二一十进制数,占 5 个字节,每个字节存 放一个压缩 BCD 码 (2 位 )。 ORG 0000H AJMP MAIN ORG 0030H MAIN:MOV R7, 05H ;十位 (5 个字节 )计数 MOV R0, 40H ;被加数首址 MOV R1, 50H ;加数首址 MOV R2, 60H ;和数首址 CLR C ;清 C 标志位 ADDB: MOV A, @R0 ADDC A, @R1 DA A ;二-十进制调整 MOV B, R0 ;保护被加数地址 MOV 20H, R2 MOV R0, 20H MOV @R0, A ;存和 MOV R2, 20H ;恢复和数地址 MOV R0, B ;恢复被加数地址 INC R0 ;三个地址指针均加1 INC R1 INC R2 DJNZ R7, ADDB ;多字节加未结束,则循环 HERE: SJMP HERE END 注意:寄存器间接寻址只针对 R0 和 R1,所以存和时不能使用指令 MOV @R2, A。 例如: 40H~ 44H 内容为 78H, 10H, 10H, 10H, 10H 50H~ 54H 内容为 42H, 10H, 10H, 10H, 10H 即 BCD 数 1 0 1 0 1 0 1 0 7 8 + 1 0 1 0 1 0 1 0 4 2 2 0 2 0 2 0 2 1 2 0 运行结果: 60H~ 64H 单元中的数为 20H, 21H, 20H, 20H, 20H 第 6章 P177 4. 请编程实现 80C51 单片机产生频率为 100kHz 等宽矩形波 (定时器 /计数器T0,方式 0,定时器中断 ),假定 80C51 的晶振频率为 12MHz。 加上必要的伪指令,并对源程序加以注释。 【答】 分析: 100kHz 等宽矩形波, 周期为 10μ s,定时周期为 5μ s,机器周期为 1μ s。 计算: TC=213- (12 106 5 10﹣ 6)247。 12=8187=1FFBH 方式 0:定时常数 TCH=FFH, TCL=1BH。 ORG 0000H 0000 0130 AJMP MAIN ORG 000BH ;定时器 T0 中断矢量 000B 0141 AJMP INTER ORG 0030H 0030 758900 MAIN: MOV TMOD, 00H ;写控制字,设 T0 为定时器,方式 0 0033 758CFF MOV TH0, 0FFH ;写定时常数,定时为 5μ s 0036 758A1B。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。