基于STC11F02E的立体旋转LED设计与实现

时间:2012-06-29来源:网络


3 软件设计
主程序软件主要为LED显示模块的程序。主程序首先是对系统环境初始化,设置端口P1.1、P1.2强上拉,然后启动延时,初始化74HC5 95移位寄存器,允许外部中断INT0中断,设置下降沿触发中断,开启总中断,点亮LED1、LED2,进入循环等待中断。74HC595移位寄存器接收当前定时器的数值,锁存住然后将字库中的字符传输到输出端,最终16个LED可以正常显示字符。
LED显示是根据16×16点阵显示屏的原理来显示字符的,当16个LED旋转16行时就会显示一个字。由于STC11F02E的总线为8位,所以显示一个字的时候需要拆分为两部分,一般拆分为上下两部分,上部由8×16点阵组成,下部也由8×16点阵组成。例如显示“沈”字如图2所示。

b.JPG


本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的P00-P07口。方向为P00-P07,显示汉字“沈”字时,P04点亮,由上往下排列,为P00灭,P01灭,P02灭,P03灭,P04亮,P05灭,P06灭,P07灭。即二进制为00001000,转换16进制为08h。
上半部第一列完成后,继续扫描下半部的第一列,仍为由上往下扫描,即从P37向P30方向扫描,P35点亮,二进制为00100000,16进制为10h。
然后单片机转向上半部第二列,P01、P05点亮,为01000100,即16进制44h,这一列完成后继续进行下半部的扫描,P35点亮为二进制为00100000,即16进制20h。按照这个方法,继续进行下面的扫描,一共扫描32个8位可以得出汉字“沈”的扫描代码。
根据单片机内部机器周期为1/12,晶振为12MHz,由式(1)可以算出执行一条指令的频率为1MHz,得出周期为1 μs。
1/12×12MHz=1MHz (1)
当LED旋转时,相当于每两个字符传送一次,设置其延时为600 μs,由于人们的视觉暂留时间为0.1~0.4S,所以当LED旋转一周时,人们看到上一次的LED还是亮着的,从而感觉到“沈”字始终显示着。
由于此次设计的电路板半径为11.5cm,LED半径为0.5cm,所以这个显示屏最多能显示9个字符。

4 结论
本设计的立体旋转LED因为用的是无线供电方式,旋转起来很安静,很平稳,电机的速度也很快,旋转时不怎么闪烁。由于本设计采用的是单排16个LED所以电路板的另一端必须得有个重物来保持平衡。无线供电电路中的两个线圈距离不能太远,必须保持在3cm之内,否则无法提供足够稳定的电压。

1 2

关键词: 设计 实现 LED 旋转 STC11F02E 立体 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版