已知片内RAM的30H–34H单元中存放了5个二进制无符号数,编写程序求他们累加和,并将结果存放在R4.R5中

1个回答
展开全部
摘要 亲 假设30H–34H单元中存放的5个数分别是A,B,C,D,E,则可以用如下程序来求其累加和并存放在R4.R5中:MOV R4,#0AH ; 把A取到R4中MOV R5,#0 ; 把R5置零ADD R4,#0BH ; 加上B,结果保存在R4.R5中ADD R4,#0CH ; 加上C,结果保存在R4.R5中ADD R4,#0DH ; 加上D,结果保存在R4.R5中ADD R4,#0EH ; 加上E,结果保存在R4.R5中
咨询记录 · 回答于2023-02-13
已知片内RAM的30H–34H单元中存放了5个二进制无符号数,编写程序求他们累加和,并将结果存放在R4.R5中
亲 假设30H–34H单元中存放的5个数分别是A,B,C,D,E,则可以用如下程序来求其累加和并存放在R4.R5中:MOV R4,#0AH ; 把A取到R4中MOV R5,#0 ; 把R5置零ADD R4,#0BH ; 加上B,结果保存在R4.R5中ADD R4,#0CH ; 加上C,结果保存在R4.R5中ADD R4,#0DH ; 加上D,结果保存在R4.R5中ADD R4,#0EH ; 加上E,结果保存在R4.R5中
若8051单片机的串口工作在Mode2,选定时器下作为比特率发生器,时钟脉冲频率为11.0592MHZ,计算出比特率为2400b/s时的初定值
亲 在Mode2下,比特率发生器的初值=65536-11.0592MHZ/2400 = 255。
编写一程序实现将1000H单元开始的100个单元的数据转移到2000开始的单元中
程序如下:MOV R1,#1000H ; R1指向数据源MOV R2,#2000H ; R2指向数据目的MOV R0,#100 ; 要拷贝100个单元MOV DPTR,#1000H ; DPTR指向数据源COPY:MOV A,@R1 ; 取出数据MOV @R2,A ; 保存到目的地INC R1 ; 指针后移一INC R2 ; 指针后移一DJNZ R0,COPY ; 重复100次
亲 语法错误应改为:#include void main( ){ unsigned char a = 0xC; delay(10);}void delay( ){ unsigned char i; for(i=0;i<=255;i++);}
若8051单片机的串口工作在Mode2,选定时器下作为比特率发生器,时钟脉冲频率为11.0592MHZ,计算出比特率为2400b/s时的初定值这题可以在写详细一些吗?
亲,所求初值计算公式:初值=(11.0592MHz/2)/(2400b/s*16)-1=(229.45-1)≈228即TH1=A8H(168d)或者TL1=A8H(168d)。
所以最终结果是255还是228??
最终结果的TH1和TL1的值是A8H(168d),也就是228。
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消