您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 精简设计为你而来mini1608电子时钟
玩转单片机PC·MCU068无线电2009.07精简设计为你而来mini1608电子时钟◎杜洋mini1608将会是你见过的极精简的LED点阵屏电子时钟之一,同时它也将会是功能强大且扩展性很大的作品。本文首先会改变你一直以来对LED点阵屏电子时钟的观念,然后告诉你15分钟之内完成制作的方法,最后介绍一下我的设计历程及几项技术的实现原理。mini1608没有PCB电路板,没有电源稳压电路,没有单片机复位电路,没有外扩时钟芯片,没有LED点阵屏的驱动芯片或电路。mini1608只需要11种元器件,而且还可以更少。它能够横向流动显示日期、时间、温度信息,纵向显示汉字及全中文操作菜单。不需要光电二极管或任何感光电路就可以实现对环境亮度的感知并自动调整LED点阵屏的显示亮度。它具有20级流动显示速度设置,9级显示亮度设置,2009-2029年的公历日期计算,1~60℃的室内温度显示。将来它还会具有20年内的公历及农历节日的中文提醒功能,用户自定义记念日提醒,9路独立闹钟功能和自定义整点报时功能。随着程序的开发和改进,它还可以实现LED点阵屏触摸操作,100级时钟模糊校准功能,高考或重要日期倒计时功能,用户自定义显示内容,还有一些杂七杂八的小功能。欢迎电子DIY爱好者朋友和我一起制作mini1608,我将为你提供烧写文件和程序升级,让它不仅制作好玩,而且可以从中得到启发,还有实用功能。闲谈碎语不要讲,下一节中说端详,现在跟我动手做,图文并茂指方向。制作开始请按照附表所列元器件清单去准备,注意单片机不可mini1608电路原理图(制作篇)mini1608电子时钟——精简设计为你而来2009.07无线电069 附表 元器件清单品名型号数量备注单片机STC11F32XE1大约11元/片,不可以用其他型号的单片机替代芯片座管孔式40PIN-DIP1可以用普通40PIN的单片机芯片座替代LED点阵屏SZ410788K2可以选择其它型号的同类型产品,但注意引脚定义温度传感器DS18B20 1大约8元/个,选择TO-92封装微动开关12×12×6(mm)3大约0.5元/个蜂鸣器5V有源1大约1元/个晶体振荡器12MHz1大约1元/个,普通的直插式晶振即可电容0.1μF 1大约8元/包,瓷片电容电容30pF2大约8元/包,瓷片电容电池盒3节5/7号电池1大约2元/个,输出电压在4.3〜5.5之间注:价格仅供参考,实际以市场报价为准。mini1608全家福将30pF电容绑在一起焊接在单片机的18、19和20这3个引脚上。把3个微动开关剪去对侧的两个引脚,将余下的对侧引脚直接焊在单片机背面。将芯片座插针一面直接焊接在单片机的引脚上。用89C51系列单片机代替,只能使用清单中指定的单片机型号,否则不能完成制作,这一点我在下文中会介绍原因。本文中使用4.5V的电池盒为mini1608提供电源,你也可以采用USB或电源适配器为它供电,但要注意意外断电将会使时钟数据丢失。要避免这种情况,你可以采用电池和市电并用的双电源设计,《无线电》2009年第6期的《断电后还能运行的多时段开关定时器》就实现了这一功能。把0.1μF的电容焊接在3PIN排线的两端线上,这两端的线将会作为VCC和GND来连接。把排线放入单片机和芯片座之间的空隙中,排线两端焊接在VCC和GND上,中间线焊接在22脚上。0102030405玩转单片机PC·MCU070无线电2009.07我们的制作到这里就完成了。你可以用宏晶公司提供的专用ISP下载线电路和STC-ISP.exe软件为mini1608注入灵魂。mini1608的HEX烧写文件在《无线电》官方网站上可以下载。目前的V1版本中有时间设置、流动速度设置、显示亮度设置等功能。mini1608屏幕朝前时,按键功能从左到右依次为“设置/下一项/退出”、“加1”、“减1”。试着用强光照射它,再试着把它放在黑暗之中,看看它会有什么奇妙的反应。是的,在没有任何感觉元器件的情况之下mini1608是如何做到感知并处理环境光亮度的呢?本节中的文字如同制作本身一样把3PIN排线的两端线(VCC和GND)与电池盒的正、负极连接。弯曲一下晶体振荡器的引脚并把它插入单片机18脚、19脚对应的芯片座孔中。把蜂鸣器负极直接插入单片机20脚对应的芯片座孔中,正极连接到单片机23脚对应的芯片座孔中。把LED点阵屏模块按照电路原理图直接插入单片机对应的芯片座的孔中。将3PIN排线的中间适当部位斜向划开表皮,不要割到内部的导线。把DS18B20芯片的引脚对照电路原理图插入刚刚划开的斜口中,再用胶带或热缩管包好。精简,形成了统一的风格,但精简之处仅是硬件制作,我把mini1608的复杂和强大都压缩在软件程序上面了,所以诸君如果对mini1608的程序原理感兴趣,就让目光继续跟随我的笔迹,峰回路转之间带你探索mini1608的奇妙原理。精简设计2009年5月17日凌晨2点45分,我一个人躺在床上,辗转反侧不能合眼。心中浮现出一款漂亮的点阵屏电子时钟,仿佛我曾经见过它一样,结构清晰、原理分明。我开始紧060708091011mini1608电子时钟——精简设计为你而来2009.07无线电071和普通直插式三极管的外观无异。当然,我也考虑过使用热敏电阻或其他电路替代,但都因电路复杂和稳定性等问题被否决,最后还是继承了这种温度传感器方案。单总线的通信方式确实可以节省本来就紧张的单片机I/O接口资源,还是沿用先前的设计,将DS18B20芯片制作在外延的电线上,目的是为了防止电子时钟主体发热而导致对温度采集的干扰。按键是电子钟必不可少的组成部分,除非它可以实现无线遥控或者触摸屏幕。在没有其他成熟的方案之前,我还是使用普通的微动开关。我选择的是体积较大一些的微动开关,尺寸为12mm×12mm×6mm,因为我发现这种型号的微动开关可以直接放在单片机的背面,并焊接在单片机上。在传统的设计中,虽然按键功能并不是设计的主角,但它都会独自占用几个I/O接口。mini1608的方案决定了,不可能留出I/O接口专门给按键享用,它必须要“寄生”在现有功能的I/O接口上,通过程序分出按键扫描的时间。这样一来,按键电路没有独占I/O接口,省出了几个I/O接口。因为使用电池供电,自然省去了电源稳定电路。因为I/O接口有推挽工作方式,也省去了LED点阵屏和蜂鸣器的驱动电路。当我在考虑省去元器件的时候,结果发现我连电路板也一并省去了。没有电路板的电子时钟电路,至少在我的记忆中前无古人。我重重地靠在椅背上,长叹一口气,复杂的终于不见了,留下的只有精简与创意。诸君注意,复杂的终于不见并不是说真的消失,而是绕过精简的硬件制作跑到了无形的程序世界。形成了简单的外表和复杂内心的反差。要相信,在我辗转反侧的时候,在我选择单片机的时候,在我精简电路的时候,我都在不断地思考程序的设计与实现,那是mini1608存在的根本,也是精简设计的灵魂。灵感乍现并不是失眠所至,不要学习辗转反侧,失眠不会成产生灵感反会影响健康。创新是放弃所学的固有知识,在思想中不断探索最根本的学术原理,创新的前提不是学习,是放弃。原来是理探索最基本的学术原理,这是科技进步的大前提。手机的发明是因为发现了无线电,飞机的出现是因为有了空气动力学原理,mini1608的发明是因为有了杜洋不懈努力。学会了制作,就只学会了制作,学会了基本原理便学会了创作。本文的续篇是对mini1608程序实现原理的分析,它包括对增强型单片机内部集成功能的使用,还有对各器件的驱动和各种数据的处理。其中I/O的推挽工作方式、LED点阵屏实现测光的原理,在给你启发的同时,也给你尽情畅想和发挥的天地。一个月之后的今天,阳光明媚的中午,别忘了《无线电》的老地方,杜洋与你的神秘约会。张,发冷汗,好像它正用一种魔力召唤着我,诱导我把它制造出来。在整理我的元器件箱时,会有一种莫名的兴奋,眼前的一堆不起眼的东西,存在着无限巨大的可能,不同的人、不同的思想决定了哪些作品会通过我们双手的拼接而来到这个世界。它们来自电子世界,我们向往的世界。我打开台灯,坐起身来,穿好衣服,开始制作。我可以废寝,也可以忘食,因为一个电子爱好者怎么也抵挡不了电子世界的诱惑,于是忘乎一切而沉迷于电子制作。从元器件箱中找到一款DIP封装40脚的普通8051单片机,然后把新买来的0788型8×8LED点阵屏的引脚插在上面,单片机的引脚竟然可以和点阵屏的引脚对应在一起。我更兴奋了,又找来一块点阵屏,将2块屏并列在一起,正好对应在单片机的连续16个引脚上。如果这16个引脚都是I/O接口,就可以直接把点阵屏和单片机焊接在一起来显示了。可是大家知道,传统的8051单片机的接口定义中并没有连续16个引脚是I/O接口的,通常都会有复位引脚之类的夹杂在中间,所以使用传统8051单片机是不可行的。打开电脑,查找各大单片机厂商的选型指南,希望找到一款适合的单片机来完成我的设想。不知过了多久,突然我的心跳加速、瞳孔放大,目光停留在数据表中的一行。STC11F32XE,32K字节FLASH、1208字节RAM、36个I/O接口、40脚PDIP封装。随后打开STC11F32XE的数据手册,找到它的引脚说明,它的40个引脚中除了VCC、GND和两个晶体振荡器接口之外,其他引脚都可以作为I/O接口使用。而且每一个I/O接口都有4种工作方式,其中包括推挽输出。这正预示着mini1608问世在即。于是制作最简单硬件电路电子时钟的想法开始萌生,有了合适的单片机,余下的工作就是做减法,看看在传统的电子时钟的设计中有哪一些元器件和功能电路可以省略。我找出DY3208电子时钟的资料,那是很久以前的作品,虽然当时它受到了许多爱好者的欢迎,但我仍感觉这个电路对于初学者来说有些复杂,可惜一直没有好的方案蹦出来。这回的机会难得,就以DY3208电子时钟的功能为准,看看哪些可以继承,哪些可以精简。DS1302是制作电子时钟最常用的时钟芯片之一,我之前制作的每一款时钟都有它的身影。他可以计算公历日期、备用电池保证时钟走时、内部RAM可以存储用户闹钟等数据。经过一番研究之后,决定在mini1608中使用单片机程序计算公历日期,STC11F32XE内部有EEPROM空间,可以长久地保存用户数据。但如果没有备用电池,单片机一旦断电就会丢失时间数据。为了解决这个问题,我决定使用电池为电子时钟供电。这样一来,我们成功地省去了DS1302时钟芯片,同时没有失去应有的功能。DS18B20是一款温度传感器芯片,它有一种TO-92封装,
本文标题:精简设计为你而来mini1608电子时钟
链接地址:https://www.777doc.com/doc-78751 .html