51单片机入门教程——DS1302时钟

前言

本教程基于B站江协科技课程进行个人学习整理,专为拥有C语言基础的零基础入门51单片机新手设计。既帮助解决因时间差导致的设备迭代调试难题,也助力新手快速掌握51单片机核心知识,实现从C语言理论到单片机实践应用的高效过渡 。

1.知识补充:

BCD码

1.BCD(Binary-Coded Decimal)码即二-十进制编码,是用4位二进制数来表示1位十进制数中的0到9这10个数码。

2.例:0001 0011表示13,1000 0101表示85,0001 1010不合法,理由如下:

对于BCD码转换为十进制数,采用按位权展开相加的方法,每4位一组代表一个十进制数位上的数字。
 
对于BCD码0001 0011:
从右到左,每4位一组,这里分成两组0001和0011。
0001这4位二进制数,根据二进制转十进制公式aₙ2ⁿ+aₙ₋₁2ⁿ⁻¹+…+a₁2¹+a₀2⁰(其中aᵢ为二进制位上的数字),可得0×2³+0×2²+0×2¹+1×2⁰ = 1,代表十进制数个位上的数字1。
0011同理,0×2³+0×2²+1×2¹+1×2⁰ = 3,代表十进制数十位上的数字3。
组合起来就是1×10 + 3×1 = 13。
 
对于BCD码1000 0101:
分成两组1000和0101。
1000转换为十进制,1×2³+0×2²+0×2¹+0×2⁰ = 8,代表十进制数十位上的数字8。
0101转换为十进制,0×2³+1×2²+0×2¹+1×2⁰ = 5,代表十进制数个位上的数字5。
组合起来就是8×10 + 5×1 = 85。
 
对于0001 1010不合法,是因为在BCD码中,每4位二进制数表示0到9这10个数字,而1010对应的十进制数是1×2³+0×2²+1×2¹+0×2⁰ = 10,超过了9,不符合BCD码的编码规则,所以是不合法的BCD码 。
 
综上,BCD码转换为十进制数,就是先将BCD码按4位一组拆分,将每组4位二进制转换为十进制数,再按所在数位组合成最终的十进制数,且每组4位二进制表示的数不能超过9。

3.在十六进制中的体现:0x13表示13,0x85表示85,Ox1A不合法

4.BCD码转十进制:DEC=BCD/16*10+BCD%16;(2位BCD)

解释:

BCD/16将BCD的高四位提取,再*10就是十进制十位的数

BCD%16将BCD的低四位提取,就是十进制个位的数

两者相加,就是一个完整的两位十进制数字

   十进制转BCD码:BCD=DEC/10*16+DEC%10;(2位BCD)

解释:将上述反过来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值