单片机心型流水灯程序_第1页
单片机心型流水灯程序_第2页
单片机心型流水灯程序_第3页
单片机心型流水灯程序_第4页
单片机心型流水灯程序_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、#include <REGX52.H>#define uint unsigned int#define uchar unsigned charuchar code table0=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/LEDuchar code table1=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;/LEDuchar code table2=0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00;/LED (从低位往高位 )uchar code table3=0x7f,0x3f

2、,0x1f,0x0f,0x07,0x03,0x01,0x00;/LED (从高位往低位 )uchar code table4=0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff;/LED 都不亮 (从低位往高位 )uchar code table5=0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff;/LED 都不亮 (从高位往低位 )uchar code table6=0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e;/LED 始终为 0)uchar code table7=0x7f,0

3、x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e;/LED 始终为 0)uchar i,j;/ 定义循环变量uint tt=70; /定义时间指数void delay(uint time) /延时函数从低位往高位移从高位往低位移从 1 个亮到 8 个都点亮从 1 个亮到 8 个都点亮从 8 个全亮到一个从 8 个全亮到一个从低位往高位移 (最低位从高位往低位移 (最高位uint x,y; for(x=time;x>0;x-) for(y=110;y>0;y-);void disp0()/状态 0 所有 LED 闪烁 3 次for(i=0;i<3;i+)P0=

4、0x00; P2=0x00; P3=0x00; P1=0x00; delay(300);P0=0xff; P2=0xff; P3=0xff; P1=0xff; delay(300);void disp1()/状态 1 LED 顺时针转一圈for(i=0;i<8;i+)P2=table1i;delay(100);P2=0xff; for(i=0;i<8;i+) P3=table1i; delay(100);P3=0xff; for(i=0;i<8;i+) P1=table1i; delay(100);P1=0xff; for(i=0;i<8;i+) P0=table0i;

5、 delay(100);P0=0xff;/状态 2 LED 逆时针转一圈void disp2() for(i=0;i<8;i+)P0=table1i; delay(100);P0=0xff; for(i=0;i<8;i+)P1=table0i; delay(100);P1=0xff; for(i=0;i<8;i+)P3=table0i; delay(100);P3=0xff; for(i=0;i<8;i+)delay(100);P2=0xff;void disp3()状态3 4个LED同时顺时、逆时针移动1/4圈for(i=0;i<8;i+)P0=table1i;

6、P1=table1i;P2=table1i;P3=table0i;delay(100);for(i=0;i<8;i+)P0=table0i;P1=table0i;P2=table0i;P3=table1i;delay(100);P3=0xff; P0=0xff;void disp4()/状态 4 2 个 LED 同时顺时针移动半圈for(i=0;i<8;i+)P2=table1i;P1=table1i; delay(100);P2=0xff; P1=0xff; for(i=0;i<8;i+) P3=table1i;P0=table0i; delay(100);P3=0xff;

7、 P0=0xff;void disp5()/状态52个LED同时逆时针移动半圈for(i=0;i<8;i+)P0=table1i;P3=table0i; delay(100);P0=0xff; P3=0xff; for(i=0;i<8;i+) P1=table0i;P2=table0i; delay(100);P1=0xff; P2=0xff;void disp6()/状态6 LED 自上而下逐渐点亮 (一半点亮一半不亮 )for(i=0;i<8;i+)P0=table3i;P2=table3i; delay(100);P0=0xff; P2=0xff; for(i=0;i&

8、lt;8;i+) P1=table2i;P3=table3i; delay(100);P1=0xff; P3=0xff;void disp7()/状态7 LED 自下而上逐渐点亮 ( 直到全部点亮 )for(i=0;i<8;i+)P1=table3i;P3=table2i; delay(100);for(i=0;i<8;i+)P0=table2i;P2=table2i; delay(100);void disp8()/状态 8 间断 8格的 4个 LED 亮并逆时针旋转for(j=0;j<2;j+)for(i=0;i<8;i+)P0=table1i;P2=table0i

9、;P1=table0i;P3=table0i;delay(100);P0=0xff; P2=0xff; P1=0xff; P3=0xff;for(i=0;i<8;i+)P0=table1i;P2=table0i;P1=table0i;P3=table0i;delay(100);void disp9() 亮)P0=0xff; P2=0xff; P1=0xff; P3=0xff;/状态 9 间断 8格的 4个 LED 亮,然后逆时针逐渐点亮 (直到全部点for(i=0;i<8;i+)P0=table3i;P2=table2i;P1=table2i;P3=table2i; delay(1

10、00);delay(500);void disp10() 熄灭 )/状态 10 从 LED 全部亮到全不亮 (间断 8 格的 4 个 LED 开始逆时针for(i=0;i<9;i+)P0=table5i;P2=table4i;P1=table4i;P3=table4i;delay(100);delay(300);void disp11()状态11间断8格的4个LED亮并顺时针旋转for(j=0;j<2;j+)for(i=0;i<8;i+)P0=table0i;P2=table1i;P1=table1i;P3=table1i; delay(100);P0=0xff; P2=0x

11、ff; P1=0xff; P3=0xff; for(i=0;i<8;i+)P0=table0i;P2=table1i;P1=table1i;P3=table1i; delay(100);P0=0xff; P2=0xff; P1=0xff; P3=0xff;void disp12()/间断 8 格的 4个 LED 亮,然后顺时针逐渐点亮 (直到全部点亮 )for(i=0;i<8;i+)P0=table2i;P2=table3i;P1=table3i;P3=table3i;delay(100); delay(1000);void disp13() 熄灭 )/状态13从 LED 全部亮到

12、全不亮 ( 间断 8 格的 4 个 LED 开始顺时针for(i=0;i<9;i+)P0=table4i;P2=table5i;P1=table5i;P3=table5i;delay(100);delay(300);void disp14() 亮) /状态14从 LED 不亮到全亮 (从 P0.0、P1.0、P2.0、P3.7 开始逐步点for(i=0;i<8;i+)P0=table2i;P1=table2i;P2=table2i;P3=table3i; delay(100);void disp15() 熄灭)/状态15从 LED 全亮到全不亮 (从 P0.7、P1.7、P2.7、

13、P3.0 开始逐步for(i=0;i<9;i+)P0=table5i;P1=table5i;P2=table5i;P3=table4i;delay(100); delay(300);void disp16()/状态 16 LED 灯交替闪烁 (频率有慢变快 )for(i=0;i<5;i+)P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa; delay(100);P0=P0; P1=P1; P2=P2; P3=P3;delay(100);for(i=0;i<5;i+)P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa; delay(200)

14、;P0=P0; P1=P1; P2=P2; P3=P3;delay(200);for(i=0;i<5;i+)P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa; delay(300);P0=P0; P1=P1; P2=P2; P3=P3; delay(300);void disp17() 步提高P0=0xff; P2=0xff; P1=0xff; P3=0xff; delay(300);/状态 17 LED 从 P0.7 开始逆时针逐步点亮 ,(循环 2 次 )并且速度会逐for(i=0;i<8;i+)for(i=0;i<8;i+)P1=table2i; d

15、elay(100); for(i=0;i<8;i+)P3=table2i; delay(100); for(i=0;i<8;i+)P2=table2i; delay(100);P0=0xff; P1=0xff; P3=0xff; P2=0xff;/*/for(i=0;i<8;i+)P0=table3i;delay(50); for(i=0;i<8;i+)P1=table2i;delay(50); for(i=0;i<8;i+)P3=table2i;delay(50); for(i=0;i<8;i+)P2=table2i;delay(50);P0=0xff;

16、P1=0xff; P3=0xff; P2=0xff; void disp18()for(i=0;i<8;i+)/状态 18 LED 从 P0.7 开始逆时针逐步点亮 (每亮 8 位后就熄灭 )P0=table3i;delay(100);P0=0xff; for(i=0;i<8;i+)P1=table2i; delay(100);P1=0xff; for(i=0;i<8;i+)P3=table2i; delay(100);P3=0xff; for(i=0;i<8;i+)P2=table2i; delay(100);P2=0xff;void disp19() 步提高/状态

17、19 LED 从 P2.7 开始顺时针逐步点亮 ,(循环 2 次 )并且速度会逐for(i=0;i<8;i+)P2=table3i;delay(100);for(i=0;i<8;i+)P3=table3i;delay(100);for(i=0;i<8;i+)P1=table3i;delay(100);for(i=0;i<8;i+)P0=table2i;delay(100);P0=0xff; P1=0xff; P3=0xff; P2=0xff;/*/ for(i=0;i<8;i+) P2=table3i;delay(50); for(i=0;i<8;i+)P3

18、=table3i;delay(50); for(i=0;i<8;i+)P1=table3i;delay(50); for(i=0;i<8;i+)P0=table2i;delay(50);P0=0xff; P1=0xff; P3=0xff; P2=0xff; void disp20()/状态 20 LED 从 P2.7 开始顺时针逐步点亮 (每亮 8 位后就熄灭 )for(i=0;i<8;i+)P2=table3i;delay(100);P2=0xff;for(i=0;i<8;i+)P3=table3i;delay(100);P3=0xff;for(i=0;i<8;

19、i+)P1=table3i;delay(100);P1=0xff; for(i=0;i<8;i+)P0=table2i; delay(100);P0=0xff;void disp21()/状态 21 2 个 LED 开始上下移动半圈for(i=0;i<8;i+)P0=table1i;P2=table1i; delay(100);P0=0xff; P2=0xff; for(i=0;i<8;i+) P1=table0i;P3=table1i; delay(100);for(i=0;i<8;i+)P1=table1i;P3=table0i; delay(100);P1=0xf

20、f; P3=0xff; for(i=0;i<8;i+) P0=table0i;P2=table0i; delay(100);void disp22()/装态 22 2 个 LED 自上而下移动 (循环 5 次,且频率渐快 ,到最快时持续循环 16次,然后循环 5 次频率再逐渐降低 ) for(j=0;j<5;j+)for(i=0;i<8;i+)P0=table1i;P2=table1i; delay(tt);P0=0xff; P2=0xff; for(i=0;i<8;i+) P1=table0i;P3=table1i; delay(tt);P1=0xff; P3=0xf

21、f; tt=tt-10;for(j=0;j<16;j+)for(i=0;i<8;i+)P0=table1i;P2=table1i; delay(20);P0=0xff; P2=0xff; for(i=0;i<8;i+) P1=table0i;P3=table1i; delay(20);P1=0xff; P3=0xff; tt=20; for(j=0;j<5;j+)for(i=0;i<8;i+)P0=table1i;P2=table1i;delay(tt);P0=0xff; P2=0xff; for(i=0;i<8;i+) P1=table0i;P3=tabl

22、e1i; delay(tt);P1=0xff; P3=0xff;tt=tt+10;tt=70;void disp23()/状态 23 LED 上下交替闪烁for(i=0;i<2;i+)P0=0x00; P2=0x00; delay(1000);P0=0xff; P2=0xff;P1=0x00; P3=0x00; delay(1000);P1=0xff; P3=0xff;void disp24()/状态 24 LED 左右交替闪烁P1=0xff; P3=0xff; P0=0xff; P2=0xff; for(i=0;i<2;i+)P0=0x00; P1=0x00; delay(100

23、0);P0=0xff; P1=0xff;P2=0x00; P3=0x00; delay(1000);P2=0xff; P3=0xff;void disp25()/状态 25 LED 交替闪烁for(i=0;i<8;i+)for(i=0;i<5;i+)P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa; delay(1000);P0=P0; P1=P1; P2=P2; P3=P3; delay(1000);void disp26()/状态 26 2 个 LED 开始上下移动半圈 (LED 不亮流水 )P0=0x00;P1=0x00;P2=0x00;P3=0x00;f

24、or(i=0;i<8;i+)P0=table1i;P2=table1i;delay(200);P0=0x00; P2=0x00;for(i=0;i<8;i+)P1=table0i;P3=table1i;delay(200);for(i=0;i<8;i+)P1=table1i;P3=table0i; delay(200);P1=0x00; P3=0x00; for(i=0;i<8;i+)P0=table0i;P2=table0i;delay(200);void disp27()P3 的 LEDII状态27逐步顺时针点亮 P2、P1的LED,熄灭后,再顺时针点亮P0、P0=

25、0xff; P1=0xff; P2=0xff; P3=0xff; for(j=0;j<2;j+)for(i=0;i<8;i+)P2=table3i;P1=table3i;delay(100);P2=0xff; P1=0xff;for(i=0;i<8;i+)P0=table2i;P3=table3i;delay(100);P0=0xff; P3=0xff;void disp28()状态28 P1、P2和P0、P3交替闪烁for(i=0;i<2;i+)P1=0x00; P2=0x00; P0=0xff; P3=0xff;delay(1000);P1=0xff; P2=0xf

26、f; P0=0x00; P3=0x00;delay(1000);P1=0xff; P2=0xff; P0=0xff; P3=0xff;void disp29()II状态29逐步顺时针点亮 P2、P1的LED,再顺时熄灭后,再顺时针点亮 P0、 P3 的 LED, 再顺时熄灭P0=0xff; P1=0xff; P2=0xff; P3=0xff; for(j=0;j<2;j+)P2=table3i;P1=table3i;delay(100); for(i=0;i<9;i+) P2=table5i;P1=table5i; delay(100); for(i=0;i<8;i+) P0

27、=table2i;P3=table3i; delay(100); for(i=0;i<9;i+) P0=table4i;P3=table5i; delay(100);delay(200);/状态30逐步逆时针点亮 P2、P1的LED,熄灭后,再逆时针点亮P0、void disp30()P3 的 LEDP0=0xff; P1=0xff; P2=0xff; P3=0xff;for(j=0;j<2;j+)for(i=0;i<8;i+)P2=table2i;P1=table2i; delay(100);P2=0xff; P1=0xff;for(i=0;i<8;i+)P0=tab

28、le3i;P3=table2i; delay(100);P0=0xff; P3=0xff;void disp31()/状态31逐步逆时针点亮 P2、P1的LED,再逆时熄灭后,再逆时针点亮 P0、 P3 的 LED, 再逆时熄灭P0=0xff; P1=0xff; P2=0xff; P3=0xff; for(j=0;j<2;j+)for(i=0;i<8;i+)P2=table2i;P1=table2i;delay(100);for(i=0;i<9;i+)P2=table4i;P1=table4i;delay(100);for(i=0;i<8;i+)P0=table3i;P

29、3=table2i;delay(100);for(i=0;i<9;i+)P0=table5i;P3=table4i;delay(100);delay(200);/状态 32 LED 自上而下逐步点亮,然后从下往上逐步熄灭void disp32() for(i=0;i<8;i+)P0=table3i;P2=table3i;delay(100); for(i=0;i<8;i+)P1=table2i;P3=table3i; delay(100); for(i=0;i<9;i+)P1=table5i;P3=table4i; delay(100); for(i=0;i<9;

30、i+)P0=table4i;P2=table4i; delay(100);void disp33()/状态 33 LED 从左往右开始点亮 (直到全亮 ),然后从左右两边开始熄灭( 直到全部熄灭 )for(i=0;i<8;i+)P0=table2i;P1=table2i; delay(100); for(i=0;i<8;i+)P2=table3i;P3=table2i; delay(100);delay(500);for(i=0;i<9;i+)P2=table4i;P3=table5i;P1=table4i;P0=table4i;delay(100); delay(300);

31、P3=table3i;void disp34() 灭/状态 34 LED 从左往右开始点亮 (直到全亮 ),然后从中间往左右边熄for(i=0;i<8;i+)P2=table2i;P3=table3i; delay(100); for(i=0;i<8;i+)P0=table3i;P1=table3i; delay(100); delay(500); for(i=0;i<9;i+)P2=table5i;P3=table4i;P1=table5i;P0=table5i; delay(100); delay(300);/状态 35 从 P2.7、P1.7 开始同时顺时针旋转,直到L

32、ED 全亮void disp35() for(i=0;i<8;i+) P2=table3i;P1=table3i; delay(100); for(i=0;i<8;i+) P0=table3i;delay(100);void disp36()/状态 36 从 P0.7、P3.1 开始同时逆时针旋转,直到 LED 全亮for(i=0;i<8;i+)P0=table3i;P3=table2i; delay(100); for(i=0;i<8;i+)P1=table2i;P2=table2i; delay(100);/状态 37 2 个 LED 自上而下移动,并点亮最下 2个

33、 LED ,然后 2 个 同时 4个 LED (上下各 2个 LED )再来回移动一次void disp37()LED 再自下而上回去, for(i=0;i<8;i+)P0=table1i;P2=table1i; delay(100);P0=0xff; P2=0xff; for(i=0;i<8;i+) P1=table0i;P3=table1i; delay(100);for(i=0;i<8;i+)P1=table7i;P3=table6i; delay(100);P1=0x7f; P3=0xfe; for(i=0;i<8;i+) P0=table0i;P2=table

34、0i; delay(100);for(i=0;i<8;i+)P0=table1i;P2=table1i;P1=table1i;P3=table0i; delay(200);for(i=0;i<8;i+)P0=table0i;P1=table0i;P2=table0i;P3=table1i; delay(200);P0=0xff;P1=0xff; P2=0xff;P3=0xff; /状态38逐步顺时针点亮 P2、P1的LED,熄灭后,再顺时针点亮P0、void disp38()P3 的 LEDP0=0xff; P1=0xff; P2=0xff; P3=0xff;for(j=0;j&l

35、t;2;j+)for(i=0;i<8;i+)P2=table3i;P1=table3i; delay(100);P2=0xff; P1=0xff;for(i=0;i<8;i+)P0=table2i;P3=table3i;delay(100);/状态 39 P1、P3LED( 下半部分 )一直亮 ,上半部分 LED 向外扩张亮 ,P0=0xff; P3=0xff;void disp39() 然后闪烁 3 次P1=0x00; P3=0x00;for(i=0;i<8;i+)P0=table3i;P2=table3i; delay(150); for(i=0;i<8;i+)P0

36、=table3i;P2=table3i; delay(300);for(i=0;i<4;i+)P0=P0; P2=P2; delay(300);void disp40() 灭delay(1000);/状态 40 LED 从 P3.0、P0.7 开始逆时针同时熄灭, 直到 LED 全部熄 for(i=0;i<9;i+) P3=table4i;P0=table5i; delay(100); for(i=1;i<9;i+)P2=table4i;P1=table4i;delay(100); delay(300);void disp41()/状态 41 LED 从 P2.7、P1.7

37、开始顺时针同时熄灭,直到全部熄灭for(i=0;i<9;i+)P2=table5i;P1=table5i; delay(100); for(i=1;i<9;i+)P0=table4i;P3=table5i; delay(100); delay(300);void main() while(1) 续循环disp22();16 次,然后循环 disp0(); disp1(); disp2(); disp3(); disp4(); disp5(); disp6(); disp7(); disp0(); disp8(); disp9();/装态 22 2 个 LED 自上而下移动 (循环

38、5 次,且频率渐快 ,到最快时持 5 次频率再逐渐降低 )/状态/状态/状态/状态/状态/状态/状态/状态/状态/状态/状态0 所有 LED 闪烁 3 次1 LED 顺时针转一圈2 LED 逆时针转一圈3 4个 LED 同时顺时、逆时针移动 1/4圈4 2个 LED 同时顺时针移动半圈5 2个 LED 同时逆时针移动半圈6 LED 自上而下逐渐点亮7 LED 自下而上逐渐点亮 所有 间断 间断(一半点亮一半不亮 )(直到全部点亮 )亮)disp10();/状态熄灭)disp11();disp12();LED 闪烁 3 次 8 格的 4 个 LED 8 格的 4 个 LED亮并逆时针旋转 亮,然

39、后逆时针逐渐点亮 (直到全部点10 从 LED 全部亮到全不亮 (间断 8 格的 4 个 LED 开始逆时针11 间断 8 格的 4 个 LED 亮并顺时针旋转/状态/间断 8 格的 4 个 LED 亮,然后顺时针逐渐点亮 (直到全部点亮 )disp13();/状态13从 LED 全部亮到全不亮 ( 间断 8 格的 4 个 LED 开始顺时针熄灭 )disp14();/状态14从 LED 不亮到全亮 (从 P0.0、P1.0、P2.0、P3.7 开始逐布点亮)disp15();/状态15从 LED 全亮到全不亮 (从 P0.7、P1.7、P2.7、P3.0 开始逐步熄灭 )disp16();disp17();disp18();disp19();/状态/状态/状态/状态16 LED17 LED18 LED19 LED灯交替闪烁 (频率有慢变快 ) 从 P0.7 开始逆时针逐步点亮 从 P0.7 开始逆时针逐步点亮 从 P2.7 开始顺时

温馨提示

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

评论

0/150

提交评论