摇摇棒文档通过一排灯来模拟一个点阵 通过一排灯来模拟一个点阵.doc_第1页
摇摇棒文档通过一排灯来模拟一个点阵 通过一排灯来模拟一个点阵.doc_第2页
摇摇棒文档通过一排灯来模拟一个点阵 通过一排灯来模拟一个点阵.doc_第3页
摇摇棒文档通过一排灯来模拟一个点阵 通过一排灯来模拟一个点阵.doc_第4页
摇摇棒文档通过一排灯来模拟一个点阵 通过一排灯来模拟一个点阵.doc_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摇摇棒制作接触单片机大概有一年时间了,开始从听同学讲,再到网上找资料(主要关于单片机的用途),心中就有一种要学学这东西的冲动,最后在同学的怂恿下买了一块开发板。拿到板子心里还有蛮激动的,毕竟是自己第一次接触这么神秘的东西,玩了几天,把里面的例程跑了一遍后兴趣就慢慢的减下来,虽然自己有过一些小小的程序设计,但是都是非常基础的,最多是将里面的一个模块多循环几次,稍微复杂一点就是将几个模块结合起来。经过一个暑假,单片机也是学学停停。最近老师布置的课程设计作业,要做实物出来,每人都有题目,老师最后补充一句,要是觉得这些题目你觉得原材料不好买就可以根据自己的情况另选题目,听老师这么一说,自己就有一点点冲动用个单片机做个简单的小东西,呵呵,当然我的摇摇棒的想法就产生了,有想法就行动,呵呵。因此我就在找那方面的资料,还算好找,那个有现成的,心动不如行动,没花多少时间,基本上确定了自己的思路,理清了原理。这是关于摇摇棒原理的解释:我们知道屏幕上显示连续的画面是通过扫描实现的,电影就是如此,一秒钟播放二十四张画面,这样在眼睛的暂留时间内就会显示下一张画面,看起来就是动起来的连续的动画,摇摇棒的原理也是如此,在纵向有16个发光二极管,我们可以通过横向移动来进行扫描,把程序中流水灯变化的时间间隔设置在眼睛暂留时间内一般小于0.04S就可以,因此我们在横向扫描时触动水银开关,程序开始执行,因此就可以显示一幅完整的画面。简单吧。下面是显示画面中的一幅 关于硬件的制作:首先当然是电路方面的设计,由于本人是第一次做单片机方面的东西,很多需要注意的事还得通过实践才能掌握,因此这次使用的原理图与网上找到的没有什么分别,自己现将我的PCB展现如下,很丑陋的,经验不足元件参考:晶振:12MHZC1:20uF的电解电容,C2,C3:30pF的独石电容LED为IN4007稳压二极管K1为普通开关K2为水银开关LED(116)为3MM发光二极管用到的电阻都是10K,排阻由于买元件时没有考虑到,故自己焊接了电阻在对应的引脚元件买回来后开始是想按照网上的做成一个长条形状,因此很轻易的将一块万用板损坏,建议没有必要的工具千万不要乱裁剪万用板,得不偿失。焊元件是很简单的事,只要按照原理图细心就是,下面是我焊的板子,比较丑陋的,不过毕竟是第一次啊,嘿嘿正面,将P1口的排阻焊在IC插槽内,比较美观背面就很差劲,特别是有线交叉的时候一定要测试好,避免短路我的一点点焊接方面的经验,在清除原理图的情况下,模块与模块之间要分开焊接,比如焊接起振模块时就不要去焊接其他模块,那样就不会漏掉要焊接的细节,比如接地和接电源。最好是焊好一个模块后用万用表检查一遍,尽量减少错误的产生,当然最后一次检查是有必要的。焊接时细心细心还是细心。硬件具备好后就可以设计软件来调试了,通过原理图很清楚的知道,利用到单片机的资源很少,可以说只用到一些基本的IO借口,和一个外部中断,因此这也是我选择摇摇棒做我的第一个设计的原因,从简单的学起嘛。杂开始就没有那搞复杂的能耐,嘿嘿既然只用到一些基本的IO口和中断,况且连接IO口的为二极管,故调试时现象明显,最容易想到的就是设计一个流水灯,下面是我设计的一个简单的流水灯程序,调试通过,说明硬件连接是好的,因此可以下载显示图案和汉字的程序进去。调试流水灯程序:#include#define uchar unsigned char#define uint unsigned intchar 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=tablenum;delay(200);if(num=7) a=0;P0=0xff;for(a;a=0;c-)P0=0xff;P2=0xff;delay(200);P0=0;P2=0;delay(200);if(c=0)goto kaishi;当然,我们还可以设计通过加外部中断来触发流水灯,在此不再编写。关于显示图案的程序,我们可以自己设计比较简单的,可以从显示数字1开始,再慢慢的到显示汉字和图案,这过程并不难,最多就是编码看起来可能复杂一点,相信通过我们的努力,自己想要得到什么都是很简单的。完整程序:#include#define uchar unsigned char#define uint unsigned intuchar KEY;sbit K1=P30;*/#include #define uchar unsigned char#define uint unsigned int /宏定义sbit K1=P30; /定义画面切换按键uchar KEY; /KEY为水银开关 uchar disp; /显示汉字指针uchar pic=0,num=0; /pic为按键次数;num为中断次数uchar code love = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x04,0x10,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x04,0x10,0xF8,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x08,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*LOVE*/;uchar code loveyou = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0xFC,0x00,0xFE,0x01,0xFE,0x03,0xFE,0x07,0xFE,0x0F,0xFE,0x1F,0xFC,0x3F,0xF8,0x7F,0xFC,0x3F,0xFE,0x1F,0xFE,0x0F,0xFE,0x07,0xFE,0x03,0xFE,0x01,0xFC,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*心形图案*/;uchar code hehe = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,0xF0,0x0F,0x08,0x10,0x04,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x04,0x20,0x08,0x10,0xF0,0x0F,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*呵呵o(_)o图案*/;unsigned char code hanzi = /- 欢 - 0x04,0x10,0x34,0x08,0xC4,0x06,0x04,0x01, 0xC4,0x82,0x3C,0x8C,0x20,0x40,0x10,0x30, 0x0F,0x0C,0xE8,0x03,0x08,0x0C,0x08,0x10, 0x28,0x60,0x18,0xC0,0x00,0x40,0x00,0x00,/- 迎 - 0x40,0x00,0x42,0x40,0x44,0x20,0xC8,0x1F, 0x00,0x20,0xFC,0x47,0x04,0x42,0x02,0x41, 0x82,0x40,0xFC,0x7F,0x04,0x40,0x04,0x42, 0x04,0x44,0xFE,0x63,0x04,0x20,0x00,0x00,/- 使 - 0x40,0x00,0x20,0x00,0xF8,0xFF,0x07,0x00, 0x04,0x80,0xF4,0x43,0x14,0x45,0x14,0x29, 0x14,0x19,0xFF,0x17,0x14,0x21,0x14,0x21, 0x14,0x41,0xF6,0xC3,0x04,0x40,0x00,0x00,/- 用 - 0x00,0x80,0x00,0x60,0xFE,0x1F,0x22,0x02, 0x22,0x02,0x22,0x02,0x22,0x02,0xFE,0x7F, 0x22,0x02,0x22,0x02,0x22,0x42,0x22,0x82, 0xFF,0x7F,0x02,0x00,0x00,0x00,0x00,0x00,/- 神 - 0x08,0x01,0x88,0x00,0x49,0x00,0xEE,0xFF, 0x58,0x00,0x88,0x00,0x00,0x00,0xF8,0x1F, 0x88,0x08,0x88,0x08,0xFF,0xFF,0x88,0x08, 0x88,0x08,0xFC,0x1F,0x08,0x00,0x00,0x00,/- 奇 - 0x40,0x00,0x40,0x00,0x44,0x00,0x44,0x3E, 0x64,0x12,0x54,0x12,0x4C,0x12,0x47,0x12, 0x4C,0x3F,0x54,0x42,0x74,0x80,0xC6,0x7F, 0x44,0x00,0x60,0x00,0x40,0x00,0x00,0x00,/- 魔 - 0x00,0x40,0x00,0x30,0xFE,0x8F,0x4A,0x80, 0xAA,0x5F,0x9A,0x4A,0xFE,0x2A,0xAA,0x1A, 0xCB,0x0F,0xAA,0x7A,0xFE,0x8A,0x9A,0xAA, 0xAA,0x8F,0x6B,0x80,0x22,0xE0,0x00,0x00,/- 幻 - 0x80,0x20,0xC0,0x30,0xA0,0x28,0x98,0x24, 0x87,0x22,0x80,0x21,0xC4,0x30,0x04,0x60, 0x04,0x00,0x04,0x20,0x04,0x40,0x04,0x80, 0x04,0x40,0xFE,0x3F,0x04,0x00,0x00,0x00,/- 摇 - 0x10,0x02,0x10,0x42,0x10,0x81,0xFF,0x7F, 0x90,0x04,0x54,0x05,0xCC,0xF4,0xB4,0x44, 0x84,0x44,0xBC,0x7F,0x82,0x44,0xA2,0x44, 0x9B,0xF4,0x82,0x06,0x00,0x04,0x00,0x00,/- 摇 - 0x10,0x02,0x10,0x42,0x10,0x81,0xFF,0x7F, 0x90,0x04,0x54,0x05,0xCC,0xF4,0xB4,0x44, 0x84,0x44,0xBC,0x7F,0x82,0x44,0xA2,0x44, 0x9B,0xF4,0x82,0x06,0x00,0x04,0x00,0x00,/- 棒 - 0x10,0x04,0x10,0x03,0xD0,0x00,0xFF,0xFF, 0x90,0x00,0x54,0x05,0x44,0x12,0xD4,0x15, 0x74,0x14,0x5F,0xFF,0xD4,0x14,0x54,0x15, 0x56,0x12,0x44,0x06,0x40,0x02,0x00,0x00,/- ! - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x7C,0x10,0xFE,0x3B, 0xFE,0x3B,0x7C,0x10,0x00,0x00,0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论