标题:
单片机心形流水灯 程序加仿真
[打印本页]
作者:
赵子恒
时间:
2016-12-13 22:14
标题:
单片机心形流水灯 程序加仿真
0.png
(30.43 KB, 下载次数: 97)
下载附件
2017-1-6 23:23 上传
0.png
(64.08 KB, 下载次数: 105)
下载附件
2017-1-6 23:24 上传
所有资料下载:
心形流水灯.rar
(202.5 KB, 下载次数: 15)
2016-12-13 22:13 上传
点击文件名下载附件
下载积分: 黑币 -5
部分源程序:
#include "led.h"
#include <reg52.h>
void delay(uint xms)
{
uint x,y;
for(x=xms;x>0;x--)
for(y=112;y>0;y--);
}
void POUT(ulong i)
{
uchar temp;
P0=i&0x000000ff;
temp=(uchar)((i&0x0000ff00)>>8);
temp=((temp&0x10)>>1) | ((temp&0x08)<<1) | ((temp&0x20)>>3) | ((temp&0x04)<<3) | ((temp&0x40)>>5) | ((temp&0x02)<<5) | ((temp&0x80)>>7) | ((temp&0x01)<<7);
P2=temp;
temp=(uchar)((i&0x00ff0000)>>16);
temp=((temp&0x10)>>1) | ((temp&0x08)<<1) | ((temp&0x20)>>3) | ((temp&0x04)<<3) | ((temp&0x40)>>5) | ((temp&0x02)<<5) | ((temp&0x80)>>7) | ((temp&0x01)<<7);
P3=temp;
temp=(uchar)((i&0xff000000)>>24);
temp=((temp&0x10)>>1) | ((temp&0x08)<<1) | ((temp&0x20)>>3) | ((temp&0x04)<<3) | ((temp&0x40)>>5) | ((temp&0x02)<<5) | ((temp&0x80)>>7) | ((temp&0x01)<<7);
P1=temp;
}
void LED1()//持续亮一段时间后,亮灭三次。
{
uchar i;
POUT(0X00000000);
delay(5000);
POUT(0Xffffffff);
for(i=0;i<3;i++)
{
POUT(0X00000000);
delay(500);
POUT(0Xffffffff);
delay(500);
}
}
void LED2()//一颗灯跑马循环
{
ulong temp=1;
uchar i,j;
POUT(0Xffffffff);
for(j=0;j<3;j++)
{
temp=1;
for(i=0;i<32;i++)
{
POUT(~temp);
delay(300-j*100);
temp<<=1;
}
}
POUT(0Xffffffff);
for(j=0;j<3;j++)
{
temp=1;
POUT(0Xffffffff);
for(i=0;i<32;i++)
{
POUT(~temp);
delay(350-i*10);
temp<<=1;
}
}
POUT(0Xffffffff);
}
void LED3()//顺时针逐次亮、逐次灭
{
uchar i,j;
ulong temp=1;
for(j=0;j<3;j++)
{
for(i=0;i<32;i++)
{
POUT(~temp);
delay(500-j*200);
temp=(temp<<1)|1;
}
temp=1;
for(i=0;i<32;i++)
{
POUT(temp);
delay(500-j*200);
temp=(temp<<1)|1;
}
}
}
void LED4()//逆时针逐次亮、逐次灭
{
uchar i,j;
ulong temp=0X10000000;
for(j=0;j<3;j++)
{
for(i=0;i<32;i++)
{
POUT(~temp);
delay(500-j*200);
temp=(temp>>1)|0X10000000;
}
temp=0X10000000;
for(i=0;i<32;i++)
{
POUT(temp);
delay(500-j*200);
temp=(temp>>1)|0X10000000;
}
}
}
void LED5()//顺时针逐次亮、暂停一段时间、再逐次灭。逆时针重复
{
uchar i;
ulong temp=1;
for(i=0;i<32;i++)
{
POUT(~temp);
delay(300);
temp=(temp<<1)|1;
}
delay(2000);
temp=1;
for(i=0;i<32;i++)
{
POUT(temp);
delay(300);
temp=(temp>>1)|0X10000000;
}
temp=0x10000000;
for(i=0;i<32;i++)
{
POUT(~temp);
delay(300);
temp=(temp>>1)|0X10000000;
}
delay(2000);
temp=0X10000000;
for(i=0;i<32;i++)
{
POUT(temp);
delay(400);
temp=(temp>>1)|0X10000000;
}
}
void LED6()//四组四颗灯顺时针循环点亮
{
ulong temp;
uchar i,j;
for(j=0;j<8;j++)
{
temp=0xf0f0f0f0;
for(i=0;i<4;i++)
{
POUT(temp);
delay(500-30*j);
temp=temp<<1|0x01010101;
}
for(i=0;i<4;i++)
{
POUT(temp);
delay(500-30*j);
temp<<=1;
}
}
}
void LED7()//四组四颗灯顺时针循环点亮
{
ulong temp;
uchar i,j;
for(j=0;j<8;j++)
{
temp=0x0f0f0f0f;
for(i=0;i<4;i++)
{
POUT(temp);
delay(500-40*j);
temp=temp>>1|0x80808080;
}
for(i=0;i<4;i++)
{
POUT(temp);
delay(500-40*j);
temp>>=1;
}
}
}
void LED8()
{
uchar i,j;
ulong temp=0x80000001,temp2;
for(j=0;j<3;j++)
{
temp2=temp;
for(i=0;i<16;i++)
{
POUT(~temp2);
delay(200);
temp2=temp>>(i+1)|temp<<(i+1);
}
}
temp=0x7ffffffe;
for(j=0;j<3;j++)
{
temp2=temp;
for(i=0;i<16;i++)
{
POUT(temp2);
delay(200);
temp2=temp>>(i+1)&temp<<(i+1);
}
}
temp=0x00018000;
for(j=0;j<3;j++)
{
for(i=0;i<16;i++)
{
POUT(temp);
delay(200);
temp=temp>>1 | temp<<1;
}
}
}
void LED9()
{
uchar i;
for(i=0;i<16;i++)
{
POUT(0XAAAAAAAA);
delay(150);
POUT(0X55555555);
delay(150);
}
}
void LED10()
{
ulong temp=0xfefefefe;
uchar i;
for(i=0;i<8;i++)
{
POUT(temp);
delay(500);
temp=temp<<1&0xfefefeff;
}
temp=0x7f7f7f7f;
for(i=0;i<8;i++)
{
POUT(~temp);
delay(500);
temp=temp>>1&0x7f7f7f7f;
}
temp=0x7f7f7f7f;
for(i=0;i<8;i++)
{
POUT(temp);
delay(500);
temp=temp>>1&0x7f7f7f7f;
}
temp=0xfefefefe;
for(i=0;i<8;i++)
{
POUT(~temp);
delay(500);
temp=temp<<1&0xfefefeff;
}
}
void LED11()
{
uchar i;
for(i=0;i<20;i++)
{
POUT(0X00000000);
delay(100);
POUT(0Xffffffff);
delay(100);
}
for(i=0;i<20;i++)
{
POUT(0Xffff0000);
delay(150);
POUT(0X0000ffff);
delay(150);
}
}
main()
{
while(1)
{
LED1();
LED2();
LED3();
LED4();
LED5();
LED6();
LED7();
LED8();
LED9();
LED10();
LED11();
}
}
复制代码
作者:
admin
时间:
2017-1-6 23:25
51黑有你更精彩!!!
作者:
我是自主
时间:
2017-6-28 09:21
你的这个不是很全呀,还是希望能全面一点
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1