51摇摇棒:“摇摇棒”是基于人的视觉暂留原理的,通过分时刷新16个发光二极管来显示输出文字或图案等信息的显示装置。输出信号频率的控制通过单片机来实现,用摇动传感器检测当前摇动状态。当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。
原理图:
PCB:
摇摇棒的组成:
STC89C52RC,12M晶振,弹簧开关,LED灯,1.5K电阻,10K电阻,六脚自锁开关,四脚按键开关,二极管,电源,10uF极性电容,30pF陶片电容。
STC89C52RC:
STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。
按键模块:
使用一个按键对显示的所有内容进行切换,通过按钮按下的次数确定显示的内容。
LED显示模块:
首先,我们根据LED点阵屏的显示原理:点阵屏的显示分为行扫描与列扫描两种,列扫描是将我们的字模数组通过点阵屏的行驱动进行输入,然后通过列对每一行进行扫描,当列为低(高)电平、行为高(低)电平时则表示该点为图案的一部分,将其读出、显示。它的顺序可以总结为:行不断的送数据,每送完设置的信息后列进行读取,然后行再次送数据,列再次读取……依次循环下去,一幅完整的图案就显示在了显示屏上。
而本次设计的LED显示棒数据传输原理与LED点阵屏相似。可以把LED显示棒看成是LED点阵屏中的一列。为了使显示的图案清晰,我们使用了16个LED管将它们排成一列,整个屏在静止时也就相当于16行×1列。数据传输时我们同样使用行送数据、列扫描。在摆动过程中,应用视觉暂留原理,我们点亮的列不会很快的消失,而是随着摆动的方向继续向前移动,只要移动的速度高于视觉暂留的最短时间显示内容就不会熄灭,至此,一幅图案也就可以这样被“摆动”出来了。
软件设计思路:
在摇动LED 棒的时候单片机必须单程送数据否则显示的图形会产生重影,影响视觉效果。因此当系统开始工作后通过惯性开关的位置来使单片机实现单程送数据给LED。如果惯性开关位于右边,则进入外部中断T1并将一变量置1。在变量为1期间让单片机以一定的频率将数据送给LED。如果惯性开关位于左边,则进入外部中断T0并将变量置0,在这期间单片机不会送数据给LED。在送数据时,数据送完后应延时一段时间来使摇动时显示的每个字不会太拥挤。之后再立刻熄灭LED并开始重新判断惯性开关的位置。
程序的烧写:
外购USB转TTL模块,如下图所示。该模块一端接入PC机的USB接口,另一端有TXD、RXD、GND、5V、3.3V五个引脚,分别与单片机的RXD、TXD、GND、5V引脚相连,对于采用3.3V供电的单片机则把5V改为3.3V即可。该模块核心就是一块PL2303、CP2102芯片进行USB与TTL电平的转换。
取字模软件:
摇摇棒的取字模软件我采用的是正点原子提供的PCtoLCD2002完美版,打开后界面如下图所示。
随后在“模式”里选择“字符模式”,然后单击“选项”,其中的各项设置如下图所示。
随后复制生成的字模到相应的取字代码段即可改字成功,如下图所示。
取字代码段:
unsigned char code hanzi[] = {
0x04,0x10,0x24,0x08,0x44,0x06,0x84,0x01,
0x64,0x82,0x9C,0x4C,0x40,0x20,0x30,0x18,
0x0F,0x06,0xC8,0x01,0x08,0x06,0x08,0x18,
0x28,0x20,0x18,0x40,0x00,0x80,0x00,0x00,/*"欢",0*/
0x40,0x00,0x40,0x40,0x42,0x20,0xCC,0x1F,
0x00,0x20,0x00,0x40,0xFC,0x4F,0x04,0x44,
0x02,0x42,0x00,0x40,0xFC,0x7F,0x04,0x42,
0x04,0x44,0xFC,0x43,0x00,0x40,0x00,0x00,/*"迎",1*/
0x80,0x00,0x60,0x00,0xF8,0xFF,0x07,0x00,
0x04,0x80,0xE4,0x81,0x24,0x45,0x24,0x29,
0x24,0x11,0xFF,0x2F,0x24,0x41,0x24,0x41,
0x24,0x81,0xE4,0x81,0x04,0x80,0x00,0x00,/*"使",2*/
0x00,0x80,0x00,0x60,0xFE,0x1F,0x22,0x02,
0x22,0x02,0x22,0x02,0x22,0x02,0xFE,0x7F,
0x22,0x02,0x22,0x02,0x22,0x42,0x22,0x82,
0xFE,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,/*"用",3*/
0x08,0x02,0x08,0x01,0x89,0x00,0xEE,0xFF,
0x98,0x00,0x00,0x03,0x00,0x00,0xF8,0x1F,
0x88,0x08,0x88,0x08,0xFF,0xFF,0x88,0x08,
0x88,0x08,0xF8,0x1F,0x00,0x00,0x00,0x00,/*"神",4*/
0x40,0x00,0x40,0x00,0x44,0x00,0x44,0x1E,
0x64,0x12,0x54,0x12,0x4C,0x12,0x47,0x12,
0x4C,0x1E,0x54,0x40,0x64,0x80,0xC4,0x7F,
0x44,0x00,0x40,0x00,0x40,0x00,0x00,0x00,/*"奇",5*/
0x00,0x80,0x00,0x60,0xFE,0x9F,0x4A,0x80,
0xAA,0x4F,0xFE,0x4A,0x9A,0x2A,0xEA,0x1A,
0x83,0x6F,0xAA,0xBA,0x9A,0xAA,0xFE,0xBA,
0x9A,0xEF,0x2A,0x80,0x42,0xC0,0x00,0x00,/*"魔",6*/
0x40,0x10,0x60,0x38,0x50,0x14,0x4C,0x12,
0x43,0x11,0xC0,0x14,0x30,0x38,0x04,0x00,
0x04,0x00,0x04,0x00,0x04,0x40,0x04,0x80,
0x04,0x40,0xFC,0x3F,0x00,0x00,0x00,0x00,/*"幻",7*/
0x10,0x02,0x10,0x42,0x10,0x81,0xFF,0x7F,
0x90,0x00,0x00,0x00,0x94,0x02,0x64,0x7A,
0x44,0x42,0x54,0x42,0xE2,0x7F,0x42,0x42,
0x63,0x42,0x5A,0xFA,0x00,0x02,0x00,0x00,/*"摇",8*/
0x10,0x02,0x10,0x42,0x10,0x81,0xFF,0x7F,
0x90,0x00,0x00,0x00,0x94,0x02,0x64,0x7A,
0x44,0x42,0x54,0x42,0xE2,0x7F,0x42,0x42,
0x63,0x42,0x5A,0xFA,0x00,0x02,0x00,0x00,/*"摇",9*/
0x10,0x04,0x10,0x03,0xD0,0x00,0xFF,0xFF,
0x90,0x00,0x10,0x01,0x44,0x12,0x54,0x11,
0xD4,0x14,0x74,0x14,0x5F,0xFF,0x54,0x14,
0xD4,0x14,0x54,0x11,0x44,0x12,0x00,0x00,/*"棒",10*/
0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x33,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"!",11*/
};
其他说明:
在本程序中,还设计了三个图案,分别是LOVE图案,心形图案,o(∩_∩)o图案。代码在这里就不再赘述,我会附在后面的代码下载链接里。
本摇摇棒采用的是STC89C52RC单片机,编译与下载分别采用的是keil4与stc-isp。在这里我附上这两个软件的设置图,方便大家根据喜好设置自己想要的字。
(1).用keil4打开我附上的程序链接后如下图所示。
(2).点击如下图示的图标。
(3).出现下图后点击勾选。
(4).随后点击此处生成hex文件。
(5).随后打开stc-isp,选择对应的单片机型号。
(6).打开你所在程序的位置,找到hex文件,点击下载,即可下载成功。
(7).至此程序下载成功。
END
附:
51摇摇棒原理图与PCB的下载地址:https://download.csdn.net/download/qq_38105227/10695656
程序下载地址:
https://download.csdn.net/download/qq_43367031/10725241
取模软件下载地址:
https://download.csdn.net/download/qq_43367031/10725261