当前位置:编程学习 > 汇编语言 >>

bcd码转换及1302问题。

自己写个ds1302的始终程序,不明白BCD码怎么转换。写完地址以后,写数据的时候是正常的二进制还是8421码。读的时候读出来的是8421码,那怎么转换成二进制。还有那些控制12/24小时怎么操作。 如果打字太麻烦可以加QQ449037246给我讲一下么?谢谢
答案:DS1302的时钟程序读写时都是BCD码,高4位是实际的十位数,低位是实际的个位数。
读出的数据放在两个寄存器例如DT1和DT2,将DT1与0FH进行AND,然后送回DT1,将DT2与F0H进行AND,然后送回DT2;然后将DT2进行高低位交换,或者直接右移四次;将DT2个10累加,再和DT1相加,就得到实际需要的结果,此结果不需要再进行转换,直接在程序中运行就可以了。
12小时和24小时可以直接使用减法来算。
其他:16进制转BCD码   就直接将你要转的数放到A中


然后ADD  A,#00H
        DA        A   就OK了

BCD转16,直接除以16就OK,
控制12/24的就是那个什么控制寄存器的一个位,为0就是12,为1就是24,记不清了 BCD的码其实就是十进制表示形式 混积分 我先 考虑一下哦 想想 额 请问你的1302 的这个问题解决了吗? 我也遇到同样的问题,很困扰我啊 

上一个:汉字"爱"的区位码为100EH,则该汉字的机内码( )H。
下一个:PN子程序入口地址 A.CALL PN B.MOV AX,PN CALL AX C.LEA AX, PN CALL AX D.DATA DD PN CALL WORD PTR DATA

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,