51单片机汇编语言动态显示程序,求解释,尽可能解释明白为什么最后可以做成显示的效果!本人初学者

ORG0000HSTART:MOVR0,#0FEHMOVR1,#0MAIN:MOVDPTR,#TABMOVP3,R0MOVA,R1MOVCA,@A+DPTRMOVP0,A... ORG 0000H
START: MOV R0,#0FEH
MOV R1,#0
MAIN:
MOV DPTR,#TAB
MOV P3,R0
MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
LCALL DL10MS
MOV A,R0
RL A
MOV R0,A
INC R1
CJNE R1,#8,MAIN
LJMP START
DL10MS:MOV R2,#1
D1:MOV R3,2
D2:MOV R4,250
DJNZ R4,$
DJNZ R3,D2
DJNZ R2,D1
RET
TAB:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
在线等,急求!
展开
 我来答
weicaihui2008
2012-11-26 · TA获得超过215个赞
知道小有建树答主
回答量:367
采纳率:100%
帮助的人:199万
展开全部
START: MOV R0,#0FEH;R0初始化
MOV R1,#0
MAIN:
MOV DPTR,#TAB;定义表头TAB
MOV P3,R0;开始给P3.0位清0
MOV A,R1;
MOVC A,@A+DPTR
MOV P0,A;查表,R1为0,显示0
LCALL DL10MS
MOV A,R0
RL A;左移位,R1为1,数码管第二位显示1,当R1为7,数码管第二位显示7
MOV R0,A
INC R1
CJNE R1,#8,MAIN;当R1为8时重新从第一位开始显示
LJMP START
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-11-24
展开全部
通过查TAB表把相应要显示的数字送到P0口,使第一个数码管显示一个数字,同理再显示第二个数字.....第三个数字......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
283656429
推荐于2018-03-22 · 超过10用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:26.5万
展开全部
ORG 0000H
START: MOV R0,#0FEH ; 给R0赋值11111110 用作位选
MOV R1,#0 ;给R1赋值 用来查表
MAIN: ;
MOV DPTR,#TAB ; 将DPTR指向数据表开始位置
MOV P3,R0 ; 将R0送给P3 位选(用来选择是那个数码管亮)
MOV A,R1 ; 给R1的值给A
MOVC A,@A+DPTR ; 取出数据表的第A个值,并赋值给A
MOV P0,A ; 将A的值给P0,段码(用来选择显示的图形)
LCALL DL10MS ; 延时10ms
MOV A,R0 ; 将R0给A
RL A ;将A中的数右移(选中下一个数码管)
MOV R0,A ;将A中右移后的的值重新赋给R0
INC R1 ;R1加1
CJNE R1,#8,MAIN ;不为8则跳转 循环8次,刚好8个数码管
LJMP START ;跳到开始位置,循环执行程序

DL10MS:MOV R2,#1 ;延时程序
D1:MOV R3,2
D2:MOV R4,250
DJNZ R4,$
DJNZ R3,D2
DJNZ R2,D1
RET
TAB:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共阳数码管数据表
; 0 1 2 3 4 5 6 7 8 9
END
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
怀揣梦想的学子
2017-10-27
知道答主
回答量:1
采纳率:0%
帮助的人:926
展开全部
所以 这个程序 最后显示的八个数字是多少
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式