打印

数码管显示小数点位如何确定???

[复制链接]
2533|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dongjia|  楼主 | 2007-4-3 10:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
来自 2楼
tyw| | 2007-4-8 17:59 | 只看该作者

参考一下

从高至低逐位检查待送显数据,把第一个不为"0"左边的位(无效0)改为"黑"
 
;**********************
;* 无效0改为F不显示 *
;**********************
;
OFL0:   MOV     R0,#08H         ;R0←08H投币数十万位(00XX0000D)
        MOV     R2,#03H         ;设置循环次数(R08~R06)
OL4:    MOV     A,@R0           ;读待判断数
        JNZ     OL1             ;不是"00"转OL1
        ORL     A,#0FFH         ;是"00"则置为"FF"
        MOV     @R0,A           ;送回内存
        LJMP    OL2             ;转OL2继续判断下一位
OL1:    ANL     A,#0F0H         ;屏蔽出左面半位(R08~R06为压缩BCD码)
        JNZ     OL3             ;不是"0"转OL3出口
        MOV     A,@R0           ;是"00"则重读待判断数
        ORL     A,#0F0H         ;将左面半位置为"F"
        MOV     @R0,A           ;送回内存
        LJMP    OL3             ;转OL3出口
OL2:    DEC     R0              ;R0←07H OR R0←06H
        DJNZ    R2,OL4          ;循环次数到?
        INC     R0              ;R0←06H
        MOV     @R0,#0F0H       ;(06H)←F0H保留最末位显示"0"
OL3:    RET
;

使用特权

评论回复
板凳
孤独泪| | 2007-4-3 11:00 | 只看该作者

看来还是毕业生啊

你写到什么程度,你这样别人很难回答你的,或者把你的程序发上来,帮你修改修改,因为你这个问题太简单了,如果你要高位不显示,你只要送NUL就可以了。

使用特权

评论回复
地板
maychang| | 2007-4-3 11:10 | 只看该作者

程序与硬件电路有关

动态显示还是静态显示?串行扩展还是并行扩展?这些都不知道,虽然问题简单,也没法回答。

使用特权

评论回复
5
allen2006| | 2007-4-8 17:16 | 只看该作者

很多书上有这种DEMO程序呀

很多书上有这种数码管显示程序呀,你把它COPY过来就可以了

使用特权

评论回复
6
杨真人| | 2007-4-8 19:37 | 只看该作者

问题笼统

小数点是数学内容,让它按实际数值显示就是了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

38

帖子

0

粉丝