单片机编程问题

有20个存放在片ram,片外的地址从1000开始存放,如果大于128,则存放在片内10h,等于128则存放在30h,小于128则存放在50h,在线等,急着用!要求要用到c... 有20个存放在片ram,片外的地址从1000开始存放,如果大于128,则存放在片内10h,等于128则存放在30h,小于128则存放在50h,在线等,急着用!
要求要用到cjne这个指令,能帮我再修改下吗,谢谢!
展开
 我来答
胖大海君
2012-11-13 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1436
采纳率:11%
帮助的人:631万
展开全部
嘿嘿 俺帮你解答吧
给你一个算法:
1 采用一个循环结构: 循环次数为20次,开始时,设计一个片外的数据指针DPTR指向1000H,
在设计片内的数据指针;R1指向30H;R0的指向是可以切换到,可以指向10H,也可以指向50H;
R2保存大于128存放的地址10H;R3保存小于128存放的地址50H;
2 循环体: 就是下哦那个片外取数据,然后与128比较大小,如果等于128则存放在指针R1所指的单元;如果大于128则(切换指针R0指向R2保存的地址)存放在指针R0所指的单元;
如果小于128则(切换指针R0指向R3保存的地址)存放在指针R0所指的单元;
修改指针。
3 循环次数减1,不等于0,继续循环,否则结束。

呵呵 满意就选满意回答吧
zhxiufan
2012-11-13 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38382
国家科技进步奖

向TA提问 私信TA
展开全部
DATMEM:
MOV DPTR,#1000H
MOV R7,#20
MOV R1,#10H
MOV R2,#30H
MOV R3,#50H
DAT1:
MOVX A,@DPTR
CJNE A,#80H,DAT2
MOV R0,R2
MOV @R0,A
INC R1
SJMP DAT4
DAT2:
JC DAT3
MOV R0,R1
MOV @R0,A
INC R1
SJMP DAT4
DAT3:
MOV R0,R3
MOV @R0,A
INC R3
DAT4:
INC DPTR
DJNZ R7,DAT1
RET
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ATF144X
2012-11-13 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5344
采纳率:77%
帮助的人:4630万
展开全部
MOV DPTR,#1000H
MOV R0,#14H
LOOP:
MOVX A,@DPTR
MOV C,0
SUBB A,#80H
JZ EQU128
JC LES128
MOV 10H,B
LJMP NEXT
EQU128:
MOV 30H,B
LJMP NEXT
LES128:
MOV 50H,B
NEXT:
INC DPTR
LJMP LOOP
追问
要求要用到cjne这个指令,能帮我再修改下吗,谢谢!
追答
MOV DPTR,#1000H
MOV R0,#14H
LOOP:
MOVX A,@DPTR
MOV B,A

CJNE A,#80H,NTS

MOV 30H,B

LJMP NEXT
NTS:
JC GT
MOV 50H,B

LJMP NEXT
GT:
MOV 10H,B
NEXT:
INC DPTR
DJNZ R0,LOOP
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式