网站大量收购独家精品文档,联系QQ:2885784924

摇摇棒文档通过一排灯来模拟一个点阵 通过一排灯来模拟一个点阵.doc

摇摇棒文档通过一排灯来模拟一个点阵 通过一排灯来模拟一个点阵.doc

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

摇摇棒制作 接触单片机大概有一年时间了,开始从听同学讲,再到网上找资料(主要关于单片机的用途),心中就有一种要学学这东西的冲动,最后在同学的怂恿下买了一块开发板。拿到板子心里还有蛮激动的,毕竟是自己第一次接触这么神秘的东西,玩了几天,把里面的例程跑了一遍后兴趣就慢慢的减下来,虽然自己有过一些小小的程序设计,但是都是非常基础的,最多是将里面的一个模块多循环几次,稍微复杂一点就是将几个模块结合起来。经过一个暑假,单片机也是学学停停。 最近老师布置的课程设计作业,要做实物出来,每人都有题目,老师最后补充一句,要是觉得这些题目你觉得原材料不好买就可以根据自己的情况另选题目,听老师这么一说,自己就有一点点冲动用个单片机做个简单的小东西,呵呵,当然我的摇摇棒的想法就产生了,有想法就行动,呵呵。因此我就在找那方面的资料,还算好找,那个有现成的,心动不如行动,没花多少时间,基本上确定了自己的思路,理清了原理。 这是关于摇摇棒原理的解释:我们知道屏幕上显示连续的画面是通过扫描实现的,电影就是如此,一秒钟播放二十四张画面,这样在眼睛的暂留时间内就会显示下一张画面,看起来就是动起来的连续的动画,摇摇棒的原理也是如此,在纵向有16个发光二极管,我们可以通过横向移动来进行扫描,把程序中流水灯变化的时间间隔设置在眼睛暂留时间内一般小于0.04S就可以,因此我们在横向扫描时触动水银开关,程序开始执行,因此就可以显示一幅完整的画面。简单吧。 下面是显示画面中的一幅 关于硬件的制作: 首先当然是电路方面的设计,由于本人是第一次做单片机方面的东西,很多需要注意的事还得通过实践才能掌握,因此这次使用的原理图与网上找到的没有什么分别,自己现将我的PCB展现如下,很丑陋的,经验不足 元件参考: 晶振:12MHZ C1:20uF的电解电容,C2,C3:30pF的独石电容 LED为IN4007稳压二极管 K1为普通开关 K2为水银开关 LED(1~16)为3MM发光二极管 用到的电阻都是10K,排阻由于买元件时没有考虑到,故自己焊接了电阻在对应的引脚 元件买回来后开始是想按照网上的做成一个长条形状,因此很轻易的将一块万用板损坏,建议没有必要的工具千万不要乱裁剪万用板,得不偿失。 焊元件是很简单的事,只要按照原理图细心就是,下面是我焊的板子,比较丑陋的,不过毕竟是第一次啊,嘿嘿 正面,将P1口的排阻焊在IC插槽内,比较美观 背面就很差劲,特别是有线交叉的时候一定要测试好,避免短路 我的一点点焊接方面的经验,在清除原理图的情况下,模块与模块之间要分开焊接,比如焊接起振模块时就不要去焊接其他模块,那样就不会漏掉要焊接的细节,比如接地和接电源。最好是焊好一个模块后用万用表检查一遍,尽量减少错误的产生,当然最后一次检查是有必要的。焊接时细心细心还是细心。 硬件具备好后就可以设计软件来调试了,通过原理图很清楚的知道,利用到单片机的资源很少,可以说只用到一些基本的IO借口,和一个外部中断,因此这也是我选择摇摇棒做我的第一个设计的原因,从简单的学起嘛。杂开始就没有那搞复杂的能耐,嘿嘿 既然只用到一些基本的IO口和中断,况且连接IO口的为二极管,故调试时现象明显,最容易想到的就是设计一个流水灯,下面是我设计的一个简单的流水灯程序,调试通过,说明硬件连接是好的,因此可以下载显示图案和汉字的程序进去。 调试流水灯程序: #includereg52.h #define uchar unsigned char #define uint unsigned int char num,a=0,b=3,c; uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delay(uint z) { uint x,y; for(x=210;x0;x--) for(y=z;y0;y--); } void main() { while(1) { kaishi: c=3; P2=0xff; for(num=0;num=7;num++) { P0=table[num]; delay(200); if(num==7) { a=0; P0=0xff; for(a;a=7;a++) { P2=table[a]; delay(50); if(a==7) { b--; if(b==1){goto kaishi1;} P2=0xff; goto kaishi; } } } } kaishi1: b=5; for(

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档