您的位置:首页单片机PIC单片机
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

第七节 PIC16C5X程序设计基础

[日期:2008-01-27 ] [来源:东哥开发网(www.picavr.com) 作者:] [字体: (投递新闻)

§2.7 PIC16C5X程序设计基础

    第四章 算术子程序

§2.1 无符号的BCD加法

    使用二进制数做BCD的加法时,相加结果必须调整,以转换成BCD的位数。下列程序使用二个步骤来完成这个调整。
    1、如果和的最低有效1位是一个>9的数,或DC位=1时将和加6(产生DC标志)。
    2、完成步骤1后,如果最高有效1位表示>9的数,或者相加后C标志为1,将和加60H(即加6到MSD)。
    注:扩展程序到2位数以上时,所有的加法都必须连C标志(或DC)一起相加,而且上面的原则都用到每个位数,从原数相加,步骤1、步骤2的加法所产生的进位都必须进位到下一位数。

    1、流程图:

 

2、程序清单:

§2.3 二进制转换成BCD数

     本程序将一个16位的二进数转换成一个5位数的BCD数。16位的二进制数放在寄存器S0、S1。S0放高位。5位数的BCD数输出到寄存器R0、R1、R2。MSD放在R0,LSD放在R2。
    一个很简单的演算用来完成转换,二进制数向右移一位,一直到16位全部移完即完成转换。
    否则每个BCD数被检查是否大于4,如果是则加3到该位数。上述的过程一直重复执行。

 

2、程序清单:

§2.4 BCD转换成二进制数

    本程序将5位数的BCD转换成16位的二进制数。5位的BCD数R0、R1、R2。MSD 放在R0的最右位。16位的二进制数输出到寄存器S0、S1。S0存放高位

    程序使用简单的演算完成转换。BCD数向右移一位到二进制数内,直到16位全部移位完才跳出程序。否则每一个BCD数被检查是否大于7,如果是则将该位数减3,重复上述过程到结束。

2、程序清单:
阅读:
录入:JETTA

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
赞助商广告