自己做个小摇摇棒.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
自己做个小摇摇棒

自己做个小摇摇棒 Post By:2008/4/10 23:39:32 这几年,利用烂便宜的单片机,人们搞出了不少的发光玩意儿,有转的有摇的,总之都是利用人眼的视觉暂留特性,让一排LED在运动时发出点阵LED的效果,在空中刷出文字或图案来 在没有单片机,和计算机十分昂贵的时代,没有办法最做出这么个小东西,而现在单片机又便宜又小,电脑也是几乎家家都有的东西,再加上无所不在的网络,做出这个东西不是什么难事,硬件好说,买来东西照图施工就是了,关键是软件怎么考虑,就说空中刷字,是一个方向运动还是左右摇动?每次显示几个字?怎么在单片机里面存放这些字并取出?怎样变换显示内容?容在下以后一一道来, 下图是一个英文字母A,可见他是由一些发光点组成,从下到上是单片机的输出口先用p7..p0表示,横向则是在t0..t7应该发光的点子,顺序各个纵向列相应发光就显出A了。 此主题相关图片如下:tmp0001.jpg 上图也就是说,用8个LED,阳极均通过限流电阻接到5V电源,各自阴极接到单片机的某口线,当口线输出0时,LED亮,口线为1时LED灭。给这个输出口输出一个8位二进数来控制8个LED谁亮谁灭,则从t0到t7各个时间段对应口线输出情况如下: t0 : 0 1 1 1 1 1 1 1 16进数:0x7f t1: 0 0 0 0 0 0 1 1 0x03 t2: 0 1 1 0 1 1 0 1 0x6d t3: 1 1 1 0 1 1 1 0 0xee t4: 0 1 1 0 1 1 0 1 0x6d t5: 0 0 0 0 0 0 1 1 0x03 t6: 0 1 1 1 1 1 1 1 0x7f t7: 1 1 1 1 1 1 1 1 0xff 如果t0...t7为1毫秒时间间隔,则当这一排LED从左向右快速移动时按照以上输出点亮,经过8毫秒,空中就显示一个A字出来。 为了能够显示A,单片机内必须存储形成A点亮的全部信息,也就是把上面的8个16进数,顺序保存在ROM区,需要时就取出来输出到口线上去。当然啦,不能仅仅显示一个“A,其他需要显示的字符也得存储下来,要显示几个就要存几个,这样,这些反映全部可能显示字符的16进数就构成了一个小小的“字库”,用程序语言来说,也就是构成了一个二维数组,这个数组的行数就是字数,列数为8,每列就是1个字。 必须注意,当了LED列和上述方向相反运动时(从右往左),如果还是按照同样的顺序发光显示,那么最先显示的是右边,最后显示的在左边,对于左右完全对称的文字倒没问题,而大部分情况就会显示出镜像结果,为了避免显示反字,必须根据运动方向确定LED列的显示顺序,这样才能在左右摇晃时总是显示正确的字形。 因此,要有确定运动方向的硬件,显示方向则用软件配合。 感知运动方向的元件,可以用小型水银开关,滚珠开关,或者用活动磁铁激励干簧触点,水银开关等不大容易买到,好像淘宝里面可以找到,实在不行就用手工控制了:使用小型极限开关,例如鼠标里面用的。 当然啦,我们搞这个玩意儿,不是要他每次只显示1个字,要显示多个字怎么办?这个好办,比如说我们已经在rom中存放了有4个字的小“字库”0:你 ,1:好, 2:欢 ,3:迎。其实就是一个4行8列的二维数组,我们称他为索引数组。各行的每列有一个8位二进数(可以用16进数表示)0,1,2,3就是行号。我们可以取4个字的显示为:2301:欢迎你好,0101:欢迎欢迎,2323:你好你好,2201:欢欢你好3301:迎迎你好等等,那么现在一共有5种方式显示,我们就把这5种方式构成另外一个4列5行的索引数组:各行的元素就是2301,0101,2323,2201,通过外部选择开关等方法选择索引数组的哪一行,这样就可以显示所需的内容了。 有上面叙述可见,简单的摇摇棒,原来程序上还有不少道道呢。 说了半天原理,下面就看看怎么做了。首先是元件选择。 1,单片机,要使用容易得到,价格便宜,引脚足够,编程容易,而且能够在低电压工作的单片机。这里选用AVR单片机ATMega8L。它是一个28脚芯片,仅仅比常用的89C2051长些,工作电压范围宽:2.7~5.5V,不要编程器,仅仅自制的下载线就可以编程,市场上价格7元多。采用mega8L还有一个好处是内部自带时钟源,不需要外接石英和电容(除非有严格要求外),再就是口线够多,以后还可以用作16点阵的摇摇棒。 2,LED,使用直径3mm超高亮

文档评论(0)

173****7830 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档