单片机的编程题目

试用三种方法(乘法左移法.....)将A累加器中的无符号数乘以4,乘积存放于B和A中要用指令来完成... 试用三种方法 (乘法 左移法.....)将A累加器中的无符号数乘以4,乘积存放于B和A中
要用指令来完成
展开
 我来答
莱桂花普绸
2019-10-23 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:31%
帮助的人:862万
展开全部
#include
#include
//右移函数需要此头文件intrins.h
大小写不限
sbit
t=p3^3
//p3^3是指你单片机实际连接的方式,你根据实际情况改一下
main()
{
int
i=0;
int
a;
while(1)
{
while(t==0);
//若脉冲一直为低电平,程序停在此处,
//每当高电平来临,跳出此句话,执行下面的语句
i++;
if(i==1000)
{
a<<1;
i=0;
}
}
}
/*推荐郭天祥的《十天学会单片机》视频教程,
共13集,5.13g大,很清晰。我大二的时候连数电和模电都没学,也能看懂这个。学了之后就对单片机很了解了。但要买块单片机来学那个教程。
该教程可在迅雷下载到,我原来是在淘宝网买的dvd光盘,有些书店里也有这个教程。
学完之后就会用单片机做东西了!
只要你学过c语言,就很容易学会单片机!
*/
lxbqus
推荐于2016-11-28 · 超过19用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:0
展开全部
共同研究一下:下面的几种方法(下面采用汇编的形式写,可能这样比C更容易理解一点)
1:(移位法)
clrr TmpL ;清临时寄存器
clrr TmpH

movar TmpL

rl TmpL,1 ;不带进位左移(左移两位相当于*4)
btrss status,C_FLAG ;C_FLAG 进位标志
inc TmpH,1

rl TmpL,1
btrss status,C_FLAG
inc TmpH,1

movr TmpH,0 ;放入值 高位放入B 低位放入A
movar B
movr TmpL,0

2:(相加法)
clrr TmpL ;清临时寄存器
clrr TmpH

movar TmpL ;放入初值
movia 3 ;放入计数次数(4-1)
movar downcount

ADD_star: ;改为调用形式应该更好
ADD_loop:
movr downcount,1
btrsc status,Z_FLAG ;Z_FLAG 零标志
goto ADD_end

movr TmpL,0
addar TmpL,1
btrsc status,C_FLAG
inc TmpH,1 ;这里没有考虑溢出问题

decr downcount,1
btrss status,Z_FLAG
goto ADD_loop

movr TmpH,0
movar B
movr TmpL,0
ADD_end:

3:
clrr TmpL ;清临时寄存器
clrr TmpH

mulia a,2 ;乘数过大采用调用的形式更好
btrsc status,C_FLAG ;注单片机”相乘“会影响”进位标志“
inc TmpH,1

mulia a,2
btrsc status,C_FLAG
inc TmpH,1
movar TmpL

movr TmpH,0 ;放入值
movar B
movr TmpL,0
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
外沉当工门规1P
2008-06-02 · TA获得超过2089个赞
知道小有建树答主
回答量:327
采纳率:0%
帮助的人:455万
展开全部
<<单片机原理,接口及应用--嵌入在式系统技术基础>>清华大学出版社,作者,肖看,李群芳.这本书有一道一模一样的题目,下面是这道题的标准准答案.
(1)利用乘法指令:
MOV B,#04H
MUL AB
SJMP $
(2)利用移位指令:
RL A
RL A
MOV 20H,A
ANL A,#03H
MOV B,A
MOV A,20H
ANL,#0FCH
SJMP $
(3)用加法指令:
ADD A,A
MOV R0,A
MOV A,#0
ADDC A,A
MOV B,A
MOV A,R0
ADD A,A
MOV R1,A
MOV A,B
ADDC A,B
MOV B,A
MOV A,R1
SJMP $
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

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

说明

0/200

提交
取消

辅 助

模 式