0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

51单片机驱动指针电压表DIY的一个时钟设计

GReq_mcu168 来源:未知 作者:佚名 2018-01-12 09:17 次阅读

DIY过程1、原理还是很简单的,就是用单片机读取实时时钟芯片产生的时间数据,并根据时间数据调制成对应的电压,通过指针电压表显示出来就行了。但是要用时间来产生可控的电压,会用到D/A(数字-模拟转换),但家里没有D/A芯片,就一直没有动手。直到偶然发现STC手册上有用PMW(脉冲宽度调制)做D/A的说明,就简单地搭了实验电路试了一下,觉得可行就匆忙“开工”了。时钟芯片选用了单片机爱好者常用的DS1302,表头是2个5V量程的指针电压表,主控用的是STC12C2052AD,正好2路PWM对应小时和分钟。STC12C2052AD单片机是STC生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速A/D转换,20脚封装。



DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.0V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。使用3V的备用电池可以在主电源断电的时候继续走时。



时间的调整使用EC11旋转编码器,也就是常说的“飞梭”,可以左右旋转可按下,这么一个玩意配合程序就能实现小时、分钟的调节功能了。

2、制作PCB根据选用的元器件绘制出电路图,画出PCB来。软件是Altium Designer。


热转印制板、焊接完成后的模样。受条件所限没有制作阻焊层,焊锡不太受约束焊点不好看,不如打样的板子养眼。3、重新绘制表盘

原来是5V的电压表,为了改成小时和分钟,需要重新绘制表盘。上网搜了下发现干这个活CAD最拿手,可惜一点基础也木有,为了画这个玩意看了2天的视频教程+百度,才总算勉强画好。普通打印纸打印的,为防潮在上面贴了一层塑料膜。双面胶粘到原来的表盘上,自我感觉做得还算不错。

4、外壳和组装手里最合适的就是以前弄的这个塑料盒了,大小还合适,就是黑不溜秋的不好看。

正面小电钻+挫刀开好表头的孔,好在塑料材质较软,手工制作也不算吃力,不过精度就很难保证了。装好EC11编码器和电源插座,再找合适位置放了2个LED(调节小时和分钟的指示)就行了。

5、程序和调试DS1302以前玩过,复制粘贴后简单修改一下就行。EC11的解码来自互联网。PWM相关的寄存器参照STC手册就行了。



用实验板试一下调零:单片机PWM输出0,调整电压表的调零螺丝让指针指在0的位置。调高端:表头里的色环电阻换成了3296可调电阻,PWM输出高,调节3296电阻让指针指向满刻度调线性:想要指针指在9点整的位置,输入理论值后发现会指到9点10分左右,只好逐个刻度在程序里面调整,这应该叫做“线性补偿”吧!

就在项目准备完工的时候发现了重大的BUG,每更换一个不同电源,指针指示的位置都有很大的误差,毕竟每个5V的适配器输出的电压不会完全相同,0.1V的差距都会造成指针位置的不同。只好用洞洞板做了个5V的稳压模块来补救一下,这样显示就稳定了,但输入电压就不能使用常见的手机充电器了,找了个9V的路由适配器当电源。

6、如何操作?

正常的时间显示状态下,编码器不起作用,LED全灭。按下编码器,红色LED亮起,表示为小时调节模式,左右旋转调整到正确的位置。再次按下编码器,红色LED熄灭,绿色LED点亮,进入分钟设置状态,同样左右旋转调整到当前的分钟数,每加减一分钟,就把秒归零。这样在标准时间为X时X分0秒时调一下就达到了分秒同时对好的目的。再按一下,LED全灭,回到正常显示状态。美图镇楼

后记:就是这么一个简单的时钟,磕磕碰碰的做了好久。摆在桌上看着还像那么回事。但折腾的意义大过实用价值,看个时间还得反应一会儿才能明白,有时候还会看错。但是DIY就是这样,从想象到完成,这个曲折的过程还是挺美好的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 51单片机
    +关注

    关注

    269

    文章

    5648

    浏览量

    120690
  • DIY
    DIY
    +关注

    关注

    176

    文章

    883

    浏览量

    345904
  • 指针
    +关注

    关注

    1

    文章

    473

    浏览量

    70361

原文标题:用51单片机驱动指针电压表做的时钟

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于单片机AT89C51的数字电压表仿真实现,原理图,论文,源码

    设计要求 1.以MCS-51系列单片机为核心器件,设计简单的直流数字电压表; 2.电压量程:
    发表于 04-03 20:16

    基于51单片机的实时时钟设计

    电子发烧友网站提供《基于51单片机的实时时钟设计.rar》资料免费下载
    发表于 01-12 10:43 8次下载

    基于51单片机电压表设计

    电子发烧友网站提供《基于51单片机电压表设计.rar》资料免费下载
    发表于 01-07 09:25 1次下载

    基于51单片机的实时时钟+温度应用设计

    基于51单片机的实时时钟+温度应用设计(仿真)
    发表于 01-02 09:55 0次下载

    如何用51单片机编写时钟程序?

    51单片机时钟程序,怎么写代码让才能让蜂鸣器整点报时?
    发表于 10-28 08:29

    51单片机DIY音乐频谱显示

    该资源是手把手教你用51单片机DIY音乐频谱显示
    发表于 09-27 07:42

    电压表的符号是什么样的,电压表分几种类型

      测量电压或伏特电位差的仪器称为电压表。它的工作原理是,扭矩是由由于测量电压而感应的电流产生的,并且该扭矩使仪器的指针偏转。指针的偏转与点
    发表于 09-01 16:43

    基于51单片机的简易时钟设计

    基于51单片机的简易时钟设计
    的头像 发表于 08-01 01:09 1823次阅读
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的简易<b class='flag-5'>时钟</b>设计

    51单片机ADC0809数字电压表

    本资源内容概要: 这是基于51单片机的ADC0809数字电压表设计包含了C语言程序源代码(keil软件打开)。 本资源适合人群: 单片机爱好者、电子类专业学生、电子
    发表于 07-27 16:57 0次下载

    51单片机的ADC0832数字电压表设计

    本资源内容概要: 这是基于51单片机的ADC0832数字电压表设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单(excel表格打开
    发表于 07-24 14:37 1次下载

    基于单片机的数字电压表proteus仿真程序

    基于单片机的数字电压表proteus仿真资料
    发表于 05-22 15:32 1次下载

    基于单片机的两路电压表Proteus仿真程序

    基于单片机的两路电压表Proteus仿真设计资料
    发表于 05-22 15:20 0次下载

    基于51单片机数字电压表Proteus仿真程序

    基于51单片机数字电压表Proteus仿真设计资料
    发表于 05-22 15:20 2次下载

    基于51单片机的自制电压表源代码

    基于51单片机的自制电压表例程源代码
    发表于 05-12 16:29 3次下载

    基于AT89C51单片机用ADC0832设计的两路电压表Proteus仿真及程序

    基于AT89C51单片机用ADC0832设计的两路电压表Proteus仿真及程序
    发表于 05-05 09:54 3次下载