|
本帖最后由 步行者 于 2013-12-3 20:35 编辑
第一次发帖,还望大家多多指教 !!
首先声明这不是本人作品,但此贴文本内容是自己写的。还望周知…………^_^
原链接在压缩包里有,大家可以看看原作者的网站。
图片放不到前面,后面已经把电路图片发上来了,对照着电路,看下面的介绍应该就好多了。
引言:
小小一个温度计,为了“实用”需要做多少工作?!
小小一个温度计,你能做出什么花样!!
以下是根据自己对该作品的理解所编写,错误之处还望指导。
整理亮点如下:
1.电源PFM稳压(XC9111C301MR)
2.按键加软件实现电源的通断
3.低压自动断电
4.软件低功耗处理
5.温度值得读取(这是最不起眼的一个亮点了^_^)
6.软件采用汇编和c混合编程
下面是电路(引用原作者的):
关于亮点的解读:
1.电源PFM稳压
此电路采用干电池供电,具体电压不得而知(小日本的干电池),单片机需要3.3v
电源稳压采用PFM 模式的芯片 还有一种模式为PWM。PFM在低功耗时效率较高。
2.按键加软件实现电源的通断
按键按下时导通Q2 Q4,Q2导通单片机上电,单片机输出引脚POW导通Q3,单片机通过BTN引脚等待按键松开,系统开始读取温度
当在单片机启动状态下,再次按下按键,单片机监测到BTN有效,则显示OFF ,关断POW ,即电源关断
3.低压自动断电
单片机通过VIN 进行AD电压采集,若低于设定值,则置低POW,关断Q3,继而Q1切断电源
4.软件低功耗处理
在不显示时,均进入睡眠模式,当然电源关闭就另说了。
进入睡眠模式,当睡眠模式完毕,则监测时间标志位是否为一(设定回复时间,若时间到时间标志位置一),为一则启动温度转换,
否则再次进入睡眠模式
5.温度值得读取
采用串行读取MAX31855K 带有冷端补偿电路的芯片
6.软件采用c和汇编编程
用汇编实现了一下函数:
void xputc(char chr);
void xputs(const prog_char *string);
void xitoa(long value, char radix, char width);
void xprintf(const prog_char *format, ...); /* Send formatted string to the registered device */
void xsprintf(char*, const prog_char *format, ...); /* Put formatted string to the memory */
void xfprintf(void(*func)(uint8_t), const prog_char *format, ...); /* Send formatted string to the specified device */
char xatoi(char **str, long *ret);
一个作品就这样诞生了。已经达到了可以工业生产的级别了吧。
下面上图:(小疑问:图片怎样才能插入到文章中间????)
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|