用硬盘音圈电机DIY摇摆显示钟 - 图文(10)

2020-05-23 15:06

0x1C,0x81,0x0E,0xC0,0x04,0x80,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,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,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,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,0x00,0x00 };

unit disp1,disp2,key1,key2; unit a,w,ii,jj,kk; void Delay(unit ms) {

while(--ms); }

void display_HZ(void) {

gate11=key1;gate12=key2;

for(ii=0;ii<5;ii++){

for(jj=0;jj<16;jj++){

P2=~GB_16[jj*2+ii*32+kk*2];P1=~GB_16[1+jj*2+ii*32+kk*2];

Delay(120);

P1=0xff;P2=0xff; }

P1=0xff;P2=0xff; } }

void intersvr0(void) interrupt 0 {

key1=!key1; key2=!key2; w=1;

if(kk<240) kk++; else kk=0; }

void main(void) {

EA=1;IT0=1;EX0=1; key1=0;key2=1; for(;;){ w=0;

Delay(40);

if(w==1) display_HZ(); } }

LED旋转屏原理浅说 2008-01-22 11:16

如果你在网上用google搜索“POV led”一词(POV即persistancd of vision),会找到世界各地的各种LED 旋转屏的制作介绍。那些摇晃出的空中图案,漂浮在车轮上的动画,以及形态各异的时钟,一定给你留下深刻印象。看到这些千奇百怪、创意无限的电子作品,除了羡慕、敬佩、感叹外,你是否想过自己亲自动手也做一个,做一个属于你自己的LED旋转屏呢?其实,无论你看到的LED旋转屏如何神奇,如何复杂,其原理都一样,也很简单,说白了就是一个晃动的流水灯。

在51单片机最简系统的其中的一个端口P0接上8个LED,就是一个典型的流水灯实验电路。由于没有几个元件,说干就干,把所有元件焊在万能板上,不需花费多长时间,就可完成整个制作。

下面是随便找一个流水灯的C51程序 #include

void main(void) {

unsigned int i,ch; ch=0x01; while(1) {

for(i=500;i>0;i--);

if(ch==0x00) ch=0x01; else ch=ch<<1; P0=~ch; } }

将这程序编译下载到系统的单片机上,待LED灯光开始正常开跑后,我们拿着它在手上来回晃动,你发现这光已经不是一条竖直线了,它已经变成了一条条斜线。你可以适当修改程序中的延时,让这一连串的斜线更漂亮些(宽和高基本一致),怎么样,我们的最简LED旋转屏就这样做成了。

高兴之余,发现这与我们的目标好象还有点遥远,我们并不需要这些斜线,怎样才能做出网上的那些大虾那样显示的各种各样的文字图案呢?接下来,我们还得想其它办法,换一下思路,将需要的图案数据一串存在数组中,运行时又将数据一串串读出来,驱动LED,这样就能看到我们想看到的图案了。

这是用此思路编的流水灯C51程序 #include

code unsigned char led[]={0x01,0x02, 0x04,0x08,0x10,0x20,0x40,0x80}; void main(void) {

unsigned int i,j; while(1) {

for(j=0;j<8;j++){ P0=~led[j];

for(i=3000;i>0;i--); } } }

运行看一下, 结果与我们的第一个程序效果是一样的,但这个程序的优势在


用硬盘音圈电机DIY摇摆显示钟 - 图文(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:NZ800C 数字式电容器保护测控装置说明书(V5.0)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: