打印

有个关于DS1302、AT24C02和串口的问题大家帮忙看看

[复制链接]
2255|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
role_2099|  楼主 | 2010-12-20 11:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用单片机ADC一个电压值,我要在固定时间从DS1302读出时间,存储到2402中,然后利用中断当我串口收到指令后,再从2402的指定地址空间读出存储的时间和电压值……
基本上就是这样,我现在困惑的就是码制需要来回的转换,DS1302是BCD码,我存储到2402之前需要转换成十六进制,当我从2402里面读出数据从串口发送出来还要转换成ascii码,几个码制弄的我头都大了
大侠们帮忙出出主意,还要就是小弟需要几个码制转换的子函数,如果有帮忙贴上就再好不过了
最后谢谢大侠们

相关帖子

沙发
smttiepian| | 2010-12-20 11:28 | 只看该作者
沙发。 支持一下

使用特权

评论回复
板凳
topfei123| | 2010-12-20 11:54 | 只看该作者
码制转换网上现成的代码太多了,自己搜一下吧

使用特权

评论回复
地板
role_2099|  楼主 | 2010-12-20 12:16 | 只看该作者
3# topfei123
已经找到两个不错的,分享出来
#define DEC2BCD(X) ((X/10)<<4 | (X%10)) //用于将十进制转成BCD码的宏
#define BCD2DEC(X) (((X&0x70)>>4)*10 + (X&0x0F)) //用于将BCD码转成十进制的宏
其他的,比如HEX2ASCII、BCD2HEX暂时还没找到,继续找

使用特权

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

本版积分规则

121

主题

407

帖子

3

粉丝