单片机怎么用数码管显示大于255的数字?

LOOP:INCR6CJNER6,#255,LOOP;255以内数字累计,低8位INCR7CJNER7,#8,LOOP;低8位到255以后高8位加1算法是这样的,但是还是... LOOP:
INC R6
CJNE R6,#255, LOOP ;255以内数字累计 ,低8位
INC R7
CJNE R7,#8,LOOP ; 低8位到255以后 高8位加1
算法是这样的,但是还是在数码管上显示不出来,每次到255以后就回0了。
展开
 我来答
lycdl
高粉答主

2014-01-28 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2万
采纳率:94%
帮助的人:4927万
展开全部
这个问题,如果用C语言写程序就很好解决了,不用考虑高8位和低8位的事了。
现在说用汇编语言写程序的事:
一、用数码管显示大于255的数,即用16位数表示,最大是65535,这需要有5位数码管才能显示出来,这是以十进制数形式显示的。
二、用数码管显示,是用十进制显示的,还是用十六制数显示的,这是有区别的。以十六进制数显示用4位数码管就够了,即显示:0000~FFFF。
三、以十六进制数显示就比较方便,高8位用2位数码管显示,即显示出R7的值,用2位数码管显示低8位即R6的值就可以了。
四、以十进制数显示就比较麻烦点,需要对由R7R6组成的16位数进行转换,即转换成十进制数再显示,转换成十进制数就是转换成BCD码,而BCD码是5位了,需要3个字节了。
五、你的程序仅仅是计数,并不是显示程序,所以,还不知道你是怎么显示的。你说的每次到255以后就回0了,这是R6,可实际上进位了,R7加1了,你没有显示出来R7的值,所以,才得到这个结果。
public_rtos
2014-01-28 · TA获得超过342个赞
知道小有建树答主
回答量:366
采纳率:100%
帮助的人:120万
展开全部
用双字节吧,如果你的单片机寄存器是8位的话,就判断低字节累加是否溢出,如果溢出就高字节加1,这样组合起来就能显示大于255了,理论上无论多大多少位都可以显示。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b6afb6c
2014-01-28
知道答主
回答量:15
采纳率:0%
帮助的人:6.9万
展开全部
用2个字节,当做缓冲器
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2014-01-28 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
显示程序呢?

显示程序中,把 R7,是怎么显示的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ybhanlei
2014-01-28
知道答主
回答量:36
采纳率:0%
帮助的人:18.6万
展开全部
很高深的专业问题啊!!!
追问
我刚开始学习单片机   基础很差 在这个问题上我也是百思不得其解  所以上网看各路大神们能不能给小弟指点指点    实在是感激不尽  谢谢啦····
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式