找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2561|回复: 1
打印 上一主题 下一主题
收起左侧

心形灯程序 花样很多

[复制链接]
跳转到指定楼层
楼主
ID:114420 发表于 2016-4-15 18:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include <REGX52.H>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED从低位往高位移
  5. uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED从高位往低位移
  6. uchar code table2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED从1个亮到8个都点亮(从低位往高位)
  7. uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED从1个亮到8个都点亮(从高位往低位)
  8. uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED从8个全亮到一个都不亮(从低位往高位)
  9. uchar code table5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED从8个全亮到一个都不亮(从高位往低位)
  10. uchar code table6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};//LED从低位往高位移(最低位始终为0)
  11. uchar code table7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};//LED从高位往低位移(最高位始终为0)
  12. uchar i,j;  //定义循环变量
  13. uint tt=70;  //定义时间指数
  14. void delay(uint time) //延时函数
  15. {
  16. uint x,y;
  17. for(x=time;x>0;x--)
  18. for(y=110;y>0;y--);
  19. }
  20. void disp0()   //状态0 所有LED闪烁3次
  21. {
  22. for(i=0;i<3;i++)
  23. {
  24.   P0=0x00; P2=0x00; P3=0x00; P1=0x00;
  25.   delay(300);
  26.   P0=0xff; P2=0xff; P3=0xff; P1=0xff;
  27.   delay(300);
  28. }
  29. }
  30. void disp1()   //状态1 LED顺时针转一圈
  31. {
  32. for(i=0;i<8;i++)
  33. {
  34.   P2=table1[i];
  35.   delay(100);
  36. }
  37. P2=0xff;
  38. for(i=0;i<8;i++)
  39. {
  40.   P3=table1[i];
  41.   delay(100);
  42. }
  43. P3=0xff;
  44. for(i=0;i<8;i++)
  45. {
  46.   P1=table1[i];      
  47.   delay(100);
  48. }
  49. P1=0xff;
  50. for(i=0;i<8;i++)
  51. {
  52.   P0=table0[i];
  53.   delay(100);
  54. }
  55. P0=0xff;
  56. }
  57. void disp2()   //状态2 LED逆时针转一圈
  58. {
  59. for(i=0;i<8;i++)
  60. {
  61.   P0=table1[i];
  62.   delay(100);
  63. }
  64. P0=0xff;
  65. for(i=0;i<8;i++)
  66. {
  67.   P1=table0[i];
  68.   delay(100);
  69. }
  70. P1=0xff;
  71. for(i=0;i<8;i++)
  72. {
  73.   P3=table0[i];
  74.   delay(100);
  75. }
  76. P3=0xff;
  77. for(i=0;i<8;i++)
  78. {
  79.   P2=table0[i];
  80.   delay(100);
  81. }
  82. P2=0xff;
  83. }
  84. void disp3()   //状态3 4个LED同时顺时、逆时针移动1/4圈
  85. {
  86. for(i=0;i<8;i++)
  87. {
  88.   P0=table1[i];
  89.   P1=table1[i];
  90.   P2=table1[i];
  91.   P3=table0[i];
  92.   delay(100);
  93. }
  94. for(i=0;i<8;i++)
  95. {
  96.   P0=table0[i];
  97.   P1=table0[i];
  98.   P2=table0[i];
  99.   P3=table1[i];
  100.   delay(100);
  101. }
  102. P3=0xff; P0=0xff;
  103. }
  104. void disp4()   //状态4  2个LED同时顺时针移动半圈
  105. {
  106. for(i=0;i<8;i++)
  107. {
  108.   P2=table1[i];
  109.   P1=table1[i];
  110.   delay(100);
  111. }
  112. P2=0xff; P1=0xff;
  113. for(i=0;i<8;i++)
  114. {
  115.   P3=table1[i];
  116.   P0=table0[i];
  117.   delay(100);
  118. }
  119. P3=0xff; P0=0xff;
  120. }
  121. void disp5()   //状态5  2个LED同时逆时针移动半圈
  122. {
  123. for(i=0;i<8;i++)
  124. {
  125.   P0=table1[i];
  126.   P3=table0[i];
  127.   delay(100);
  128. }
  129. P0=0xff; P3=0xff;
  130. for(i=0;i<8;i++)
  131. {
  132.   P1=table0[i];
  133.   P2=table0[i];
  134.   delay(100);
  135. }
  136. P1=0xff; P2=0xff;
  137. }
  138. void disp6()   //状态6 LED自上而下逐渐点亮(一半点亮一半不亮)
  139. {
  140. for(i=0;i<8;i++)
  141. {
  142.   P0=table3[i];
  143.   P2=table3[i];
  144.   delay(100);
  145. }
  146. P0=0xff; P2=0xff;
  147. for(i=0;i<8;i++)
  148. {
  149.   P1=table2[i];
  150.   P3=table3[i];
  151.   delay(100);
  152. }
  153. P1=0xff; P3=0xff;
  154. }
  155. void disp7()   //状态7 LED自下而上逐渐点亮(直到全部点亮)
  156. {
  157. for(i=0;i<8;i++)
  158. {
  159.   P1=table3[i];
  160.   P3=table2[i];
  161.   delay(100);
  162. }
  163. for(i=0;i<8;i++)
  164. {
  165.   P0=table2[i];
  166.   P2=table2[i];
  167.   delay(100);
  168. }
  169. }
  170. void disp8()   //状态8 间断8格的4个LED亮并逆时针旋转
  171. {
  172. for(j=0;j<2;j++)
  173. {
  174.   for(i=0;i<8;i++)
  175.   {
  176.    P0=table1[i];
  177.    P2=table0[i];
  178.    P1=table0[i];
  179.    P3=table0[i];
  180.    delay(100);
  181.   }
  182.   P0=0xff; P2=0xff; P1=0xff; P3=0xff;
  183.   for(i=0;i<8;i++)
  184.   {
  185.    P0=table1[i];
  186.    P2=table0[i];
  187.    P1=table0[i];
  188.    P3=table0[i];
  189.    delay(100);
  190.   }
  191.   P0=0xff; P2=0xff; P1=0xff; P3=0xff;
  192. }
  193. }
  194. void disp9()   //状态9 间断8格的4个LED亮,然后逆时针逐渐点亮(直到全部点亮)
  195. {
  196. for(i=0;i<8;i++)
  197. {
  198.   P0=table3[i];
  199.   P2=table2[i];
  200.   P1=table2[i];
  201.   P3=table2[i];
  202.   delay(100);
  203. }
  204. delay(500);
  205. }
  206. void disp10()   //状态10 从LED全部亮到全不亮(间断8格的4个LED开始逆时针熄灭)
  207. {
  208. for(i=0;i<9;i++)
  209. {
  210.   P0=table5[i];
  211.   P2=table4[i];
  212.   P1=table4[i];
  213.   P3=table4[i];
  214.   delay(100);
  215. }
  216. delay(300);
  217. }
  218. void disp11()   //状态11 间断8格的4个LED亮并顺时针旋转
  219. {
  220. for(j=0;j<2;j++)
  221. {
  222.   for(i=0;i<8;i++)
  223.   {
  224.    P0=table0[i];
  225.    P2=table1[i];
  226.    P1=table1[i];
  227.    P3=table1[i];
  228.    delay(100);
  229.   }
  230.   P0=0xff; P2=0xff; P1=0xff; P3=0xff;
  231.   for(i=0;i<8;i++)
  232.   {
  233.    P0=table0[i];
  234.    P2=table1[i];
  235.    P1=table1[i];
  236.    P3=table1[i];
  237.    delay(100);
  238.   }
  239.   P0=0xff; P2=0xff; P1=0xff; P3=0xff;
  240. }
  241. }
  242. void disp12()   //间断8格的4个LED亮,然后顺时针逐渐点亮(直到全部点亮)
  243. {
  244. for(i=0;i<8;i++)
  245. {
  246.   P0=table2[i];
  247.   P2=table3[i];
  248.   P1=table3[i];
  249.   P3=table3[i];
  250.   delay(100);
  251. }
  252. delay(1000);
  253. }
  254. void disp13()   //状态13 从LED全部亮到全不亮(间断8格的4个LED开始顺时针熄灭)
  255. {
  256. for(i=0;i<9;i++)
  257. {
  258.   P0=table4[i];
  259.   P2=table5[i];
  260.   P1=table5[i];
  261.   P3=table5[i];
  262.   delay(100);
  263. }
  264. delay(300);
  265. }
  266. void disp14()   //状态14 从LED不亮到全亮(从P0.0、P1.0、P2.0、P3.7开始逐步点亮)
  267. {
  268. for(i=0;i<8;i++)
  269. {
  270.   P0=table2[i];
  271.   P1=table2[i];
  272.   P2=table2[i];
  273.   P3=table3[i];
  274.   delay(100);
  275. }
  276. }
  277. void disp15()   //状态15 从LED全亮到全不亮(从P0.7、P1.7、P2.7、P3.0开始逐步熄灭)
  278. {
  279. for(i=0;i<9;i++)
  280. {
  281.   P0=table5[i];
  282.   P1=table5[i];
  283.   P2=table5[i];
  284.   P3=table4[i];
  285.   delay(100);
  286. }
  287. delay(300);
  288. }
  289. void disp16()   //状态16 LED灯交替闪烁(频率有慢变快)
  290. {
  291. for(i=0;i<5;i++)
  292. {
  293.   P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;
  294.   delay(100);
  295.   P0=~P0; P1=~P1; P2=~P2; P3=~P3;
  296.   delay(100);
  297. }
  298. for(i=0;i<5;i++)
  299. {
  300.   P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;
  301.   delay(200);
  302.   P0=~P0; P1=~P1; P2=~P2; P3=~P3;
  303.   delay(200);
  304. }
  305. for(i=0;i<5;i++)
  306. {
  307.   P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;
  308.   delay(300);
  309.   P0=~P0; P1=~P1; P2=~P2; P3=~P3;
  310.   delay(300);
  311. }
  312. P0=0xff; P2=0xff; P1=0xff; P3=0xff;
  313. delay(300);
  314. }
  315. void disp17()   //状态17 LED从P0.7开始逆时针逐步点亮,(循环2次)并且速度会逐步提高
  316. {
  317. for(i=0;i<8;i++)
  318. {
  319.   P0=table3[i];
  320.   delay(100);
  321. }
  322. for(i=0;i<8;i++)
  323. {
  324.   P1=table2[i];
  325.   delay(100);
  326. }
  327. for(i=0;i<8;i++)
  328. {
  329.   P3=table2[i];
  330.   delay(100);
  331. }
  332. for(i=0;i<8;i++)
  333. {
  334.   P2=table2[i];
  335.   delay(100);
  336. }
  337. P0=0xff; P1=0xff; P3=0xff; P2=0xff;
  338. /*******************************/
  339. for(i=0;i<8;i++)
  340. {
  341.   P0=table3[i];
  342.   delay(50);
  343. }
  344. for(i=0;i<8;i++)
  345. {
  346.   P1=table2[i];
  347.   delay(50);
  348. }
  349. for(i=0;i<8;i++)
  350. {
  351.   P3=table2[i];
  352.   delay(50);
  353. }
  354. for(i=0;i<8;i++)
  355. {
  356.   P2=table2[i];
  357.   delay(50);
  358. }
  359. P0=0xff; P1=0xff; P3=0xff; P2=0xff;
  360. }
  361. void disp18()   //状态18 LED从P0.7开始逆时针逐步点亮(每亮8位后就熄灭)
  362. {
  363. for(i=0;i<8;i++)
  364. {
  365.   P0=table3[i];
  366.   delay(100);
  367. }
  368. P0=0xff;
  369. for(i=0;i<8;i++)
  370. {
  371.   P1=table2[i];
  372.   delay(100);
  373. }
  374. P1=0xff;
  375. for(i=0;i<8;i++)
  376. {
  377.   P3=table2[i];
  378.   delay(100);
  379. }
  380. P3=0xff;
  381. for(i=0;i<8;i++)
  382. {
  383.   P2=table2[i];
  384.   delay(100);
  385. }
  386. P2=0xff;
  387. }
  388. void disp19()   //状态19 LED从P2.7开始顺时针逐步点亮,(循环2次)并且速度会逐步提高
  389. {
  390. for(i=0;i<8;i++)
  391. {
  392.   P2=table3[i];
  393.   delay(100);
  394. }
  395. for(i=0;i<8;i++)
  396. {
  397.   P3=table3[i];
  398.   delay(100);
  399. }
  400. for(i=0;i<8;i++)
  401. {
  402.   P1=table3[i];
  403.   delay(100);
  404. }
  405. for(i=0;i<8;i++)
  406. {
  407.   P0=table2[i];
  408.   delay(100);
  409. }
  410. P0=0xff; P1=0xff; P3=0xff; P2=0xff;
  411. /*******************************/
  412. for(i=0;i<8;i++)
  413. {
  414.   P2=table3[i];
  415.   delay(50);
  416. }
  417. for(i=0;i<8;i++)
  418. {
  419.   P3=table3[i];
  420.   delay(50);
  421. }
  422. for(i=0;i<8;i++)
  423. {
  424.   P1=table3[i];
  425.   delay(50);
  426. }
  427. for(i=0;i<8;i++)
  428. {
  429.   P0=table2[i];
  430.   delay(50);
  431. }
  432. P0=0xff; P1=0xff; P3=0xff; P2=0xff;
  433. }
  434. void disp20()   //状态20 LED从P2.7开始顺时针逐步点亮(每亮8位后就熄灭)
  435. {
  436. for(i=0;i<8;i++)
  437. {
  438.   P2=table3[i];
  439.   delay(100);
  440. }
  441. P2=0xff;
  442. for(i=0;i<8;i++)
  443. {
  444.   P3=table3[i];
  445.   delay(100);
  446. }
  447. P3=0xff;
  448. for(i=0;i<8;i++)
  449. {
  450.   P1=table3[i];
  451.   delay(100);
  452. }
  453. P1=0xff;
  454. for(i=0;i<8;i++)
  455. {
  456.   P0=table2[i];
  457.   delay(100);
  458. }
  459. P0=0xff;  
  460. }
  461. void disp21()   //状态21 2个LED开始上下移动半圈
  462. {
  463. for(i=0;i<8;i++)
  464. {
  465.   P0=table1[i];
  466.   P2=table1[i];
  467.   delay(100);
  468. }
  469. P0=0xff; P2=0xff;
  470. for(i=0;i<8;i++)
  471. {
  472.   P1=table0[i];
  473.   P3=table1[i];
  474.   delay(100);
  475. }

  476. for(i=0;i<8;i++)
  477. {
  478.   P1=table1[i];
  479.   P3=table0[i];
  480.   delay(100);
  481. }
  482. P1=0xff; P3=0xff;
  483. for(i=0;i<8;i++)
  484. {
  485.   P0=table0[i];
  486.   P2=table0[i];
  487.   delay(100);
  488. }
  489. }
  490. void disp22()   //装态22 2个LED自上而下移动(循环5次,且频率渐快,到最快时持续循环16次,然后循环5次频率再逐渐降低)
  491. {
  492. for(j=0;j<5;j++)
  493. {
  494.   for(i=0;i<8;i++)
  495.   {
  496.    P0=table1[i];
  497.    P2=table1[i];
  498.    delay(tt);
  499.   }
  500.   P0=0xff; P2=0xff;
  501.   for(i=0;i<8;i++)
  502.   {
  503.    P1=table0[i];
  504.    P3=table1[i];
  505.    delay(tt);
  506.   }
  507.   P1=0xff; P3=0xff;
  508.   tt=tt-10;
  509. }
  510. for(j=0;j<16;j++)
  511. {
  512.   for(i=0;i<8;i++)
  513.   {
  514.    P0=table1[i];
  515.    P2=table1[i];
  516.    delay(20);
  517.   }
  518.   P0=0xff; P2=0xff;
  519.   for(i=0;i<8;i++)
  520.   {
  521.    P1=table0[i];
  522.    P3=table1[i];
  523.    delay(20);
  524.   }
  525.   P1=0xff; P3=0xff;
  526. }
  527. tt=20;
  528. for(j=0;j<5;j++)
  529. {
  530.   for(i=0;i<8;i++)
  531.   {
  532.    P0=table1[i];
  533.    P2=table1[i];
  534.    delay(tt);
  535.   }
  536.   P0=0xff; P2=0xff;
  537.   for(i=0;i<8;i++)
  538.   {
  539.    P1=table0[i];
  540.    P3=table1[i];
  541.    delay(tt);
  542.   }
  543.   P1=0xff; P3=0xff;
  544.   tt=tt+10;
  545. }
  546. tt=70;

  547. }
  548. void disp23()   //状态23 LED上下交替闪烁
  549. {
  550. for(i=0;i<2;i++)
  551. {
  552.   P0=0x00; P2=0x00;
  553.   delay(1000);
  554.   P0=0xff; P2=0xff;
  555.   P1=0x00; P3=0x00;
  556.   delay(1000);
  557.   P1=0xff; P3=0xff;
  558. }
  559. }
  560. void disp24()   //状态24 LED左右交替闪烁
  561. {
  562. P1=0xff; P3=0xff; P0=0xff; P2=0xff;
  563. for(i=0;i<2;i++)
  564. {
  565.   P0=0x00; P1=0x00;
  566.   delay(1000);
  567.   P0=0xff; P1=0xff;
  568.   P2=0x00; P3=0x00;
  569.   delay(1000);
  570.   P2=0xff; P3=0xff;
  571. }
  572. }
  573. void disp25()   //状态25 LED交替闪烁
  574. {
  575. for(i=0;i<5;i++)
  576. {
  577.   P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;
  578.   delay(1000);
  579.   P0=~P0; P1=~P1; P2=~P2; P3=~P3;
  580.   delay(1000);  
  581. }
  582. }
  583. void disp26()   //状态26 2个LED开始上下移动半圈(LED不亮流水)
  584. {
  585. P0=0x00;P1=0x00;P2=0x00;P3=0x00;
  586. for(i=0;i<8;i++)
  587. {
  588.   P0=~table1[i];
  589.   P2=~table1[i];
  590.   delay(200);
  591. }
  592. P0=0x00; P2=0x00;
  593. for(i=0;i<8;i++)
  594. {
  595.   P1=~table0[i];
  596.   P3=~table1[i];
  597.   delay(200);
  598. }

  599. for(i=0;i<8;i++)
  600. {
  601.   P1=~table1[i];
  602.   P3=~table0[i];
  603.   delay(200);
  604. }
  605. P1=0x00; P3=0x00;
  606. for(i=0;i<8;i++)
  607. {
  608.   P0=~table0[i];
  609.   P2=~table0[i];
  610.   delay(200);
  611. }
  612. }
  613. void disp27()   //状态27 逐步顺时针点亮P2、P1的LED,熄灭后,再顺时针点亮P0、P3的LED
  614. {
  615. P0=0xff; P1=0xff; P2=0xff; P3=0xff;
  616. for(j=0;j<2;j++)
  617. {
  618.   for(i=0;i<8;i++)
  619.   {
  620.    P2=table3[i];
  621.    P1=table3[i];
  622.    delay(100);
  623.   }
  624.   P2=0xff; P1=0xff;
  625.   for(i=0;i<8;i++)
  626.   {
  627.    P0=table2[i];
  628.    P3=table3[i];
  629.    delay(100);
  630.   }
  631.   P0=0xff; P3=0xff;
  632. }
  633. }

  634. void disp28()   //状态28 P1、P2和P0、P3交替闪烁
  635. {
  636. for(i=0;i<2;i++)
  637. {
  638.   P1=0x00; P2=0x00; P0=0xff; P3=0xff;
  639.   delay(1000);
  640.   P1=0xff; P2=0xff; P0=0x00; P3=0x00;
  641.   delay(1000);
  642. }
  643. P1=0xff; P2=0xff; P0=0xff; P3=0xff;
  644. }
  645. void disp29()   //状态29 逐步顺时针点亮P2、P1的LED,再顺时熄灭后,再顺时针点亮P0、P3的LED,再顺时熄灭
  646. {
  647. P0=0xff; P1=0xff; P2=0xff; P3=0xff;
  648. for(j=0;j<2;j++)
  649. {
  650.   for(i=0;i<8;i++)
  651.   {
  652.    P2=table3[i];
  653.    P1=table3[i];
  654.    delay(100);
  655.   }
  656.   for(i=0;i<9;i++)
  657.   {
  658.    P2=table5[i];
  659.    P1=table5[i];
  660.    delay(100);
  661.   }
  662.   for(i=0;i<8;i++)
  663.   {
  664.    P0=table2[i];
  665.    P3=table3[i];
  666.    delay(100);
  667.   }
  668.   for(i=0;i<9;i++)
  669.   {
  670.    P0=table4[i];
  671.    P3=table5[i];
  672.    delay(100);
  673.   }
  674. }
  675. delay(200);
  676. }
  677. void disp30()   //状态30 逐步逆时针点亮P2、P1的LED,熄灭后,再逆时针点亮P0、P3的LED
  678. {
  679. P0=0xff; P1=0xff; P2=0xff; P3=0xff;
  680. for(j=0;j<2;j++)
  681. {
  682.   for(i=0;i<8;i++)
  683.   {
  684.    P2=table2[i];
  685.    P1=table2[i];
  686.    delay(100);
  687.   }
  688.   P2=0xff; P1=0xff;
  689.   for(i=0;i<8;i++)
  690.   {
  691.    P0=table3[i];
  692.    P3=table2[i];
  693.    delay(100);
  694.   }
  695.   P0=0xff; P3=0xff;
  696. }
  697. }
  698. void disp31()   //状态31 逐步逆时针点亮P2、P1的LED,再逆时熄灭后,再逆时针点亮P0、P3的LED,再逆时熄灭
  699. {
  700. P0=0xff; P1=0xff; P2=0xff; P3=0xff;
  701. for(j=0;j<2;j++)
  702. {
  703.   for(i=0;i<8;i++)
  704.   {
  705.    P2=table2[i];
  706.    P1=table2[i];
  707.    delay(100);
  708.   }
  709.   for(i=0;i<9;i++)
  710.   {
  711.    P2=table4[i];
  712.    P1=table4[i];
  713.    delay(100);
  714.   }
  715.   for(i=0;i<8;i++)
  716.   {
  717.    P0=table3[i];
  718.    P3=table2[i];
  719.    delay(100);
  720.   }
  721.   for(i=0;i<9;i++)
  722.   {
  723.    P0=table5[i];
  724.    P3=table4[i];
  725.    delay(100);
  726.   }
  727. }
  728. delay(200);
  729. }
  730. void disp32()   //状态32 LED自上而下逐步点亮,然后从下往上逐步熄灭
  731. {
  732. for(i=0;i<8;i++)
  733. {
  734.   P0=table3[i];
  735.   P2=table3[i];
  736.   delay(100);
  737. }
  738. for(i=0;i<8;i++)
  739. {
  740.   P1=table2[i];
  741.   P3=table3[i];
  742.   delay(100);
  743. }
  744. for(i=0;i<9;i++)
  745. {
  746.   P1=table5[i];
  747.   P3=table4[i];
  748.   delay(100);
  749. }
  750. for(i=0;i<9;i++)
  751. {
  752.   P0=table4[i];
  753.   P2=table4[i];
  754.   delay(100);
  755. }
  756. }
  757. void disp33()   //状态33 LED从左往右开始点亮(直到全亮),然后从左右两边开始熄灭(直到全部熄灭)
  758. {
  759. for(i=0;i<8;i++)
  760. {
  761.   P0=table2[i];
  762.   P1=table2[i];
  763.   delay(100);
  764. }
  765. for(i=0;i<8;i++)
  766. {
  767.   P2=table3[i];
  768.   P3=table2[i];
  769.   delay(100);
  770. }
  771. delay(500);
  772. for(i=0;i<9;i++)
  773. {
  774.   P2=table4[i];
  775.   P3=table5[i];
  776.   P1=table4[i];
  777.   P0=table4[i];
  778.   delay(100);
  779. }
  780. delay(300);
  781. }
  782. void disp34()   //状态34 LED从左往右开始点亮(直到全亮),然后从中间往左右边熄灭
  783. {
  784. for(i=0;i<8;i++)
  785. {
  786.   P2=table2[i];
  787.   P3=table3[i];
  788.   delay(100);
  789. }
  790. for(i=0;i<8;i++)
  791. {
  792.   P0=table3[i];
  793.   P1=table3[i];
  794.   delay(100);
  795. }
  796. delay(500);
  797. for(i=0;i<9;i++)
  798. {
  799.   P2=table5[i];
  800.   P3=table4[i];
  801.   P1=table5[i];
  802.   P0=table5[i];
  803.   delay(100);
  804. }
  805. delay(300);
  806. }
  807. void disp35()   //状态35  从P2.7、P1.7开始同时顺时针旋转,直到LED全亮
  808. {
  809. for(i=0;i<8;i++)
  810. {
  811.   P2=table3[i];
  812.   P1=table3[i];
  813.   delay(100);
  814. }
  815. for(i=0;i<8;i++)
  816. {
  817.   P3=table3[i];
  818.   P0=table2[i];
  819.   delay(100);
  820. }
  821. }
  822. void disp36()   //状态36  从P0.7、P3.1开始同时逆时针旋转,直到LED全亮
  823. {
  824. for(i=0;i<8;i++)
  825. {
  826.   P0=table3[i];
  827.   P3=table2[i];
  828.   delay(100);
  829. }
  830. for(i=0;i<8;i++)
  831. {
  832.   P1=table2[i];
  833.   P2=table2[i];
  834.   delay(100);
  835. }
  836. }
  837. void disp37()   //状态37 2个LED自上而下移动,并点亮最下2个LED,然后2个LED再自下而上回去,同时4个LED(上下各2个LED)再来回移动一次
  838. {
  839. for(i=0;i<8;i++)
  840. {
  841.   P0=table1[i];
  842.   P2=table1[i];
  843.   delay(100);
  844. }
  845. P0=0xff; P2=0xff;
  846. for(i=0;i<8;i++)
  847. {
  848.   P1=table0[i];
  849.   P3=table1[i];
  850.   delay(100);
  851. }

  852. for(i=0;i<8;i++)
  853. {
  854.   P1=table7[i];
  855.   P3=table6[i];
  856.   delay(100);
  857. }
  858. P1=0x7f; P3=0xfe;
  859. for(i=0;i<8;i++)
  860. {
  861.   P0=table0[i];
  862.   P2=table0[i];
  863.   delay(100);
  864. }

  865. for(i=0;i<8;i++)
  866. {
  867.   P0=table1[i];
  868.   P2=table1[i];
  869.   P1=table1[i];
  870.   P3=table0[i];
  871.   delay(200);
  872. }

  873. for(i=0;i<8;i++)
  874. {
  875.   P0=table0[i];
  876.   P1=table0[i];
  877.   P2=table0[i];
  878.   P3=table1[i];
  879.   delay(200);
  880. }
  881. P0=0xff;P1=0xff; P2=0xff;P3=0xff;
  882. }
  883. void disp38()   //状态38 逐步顺时针点亮P2、P1的LED,熄灭后,再顺时针点亮P0、P3的LED
  884. {
  885. P0=0xff; P1=0xff; P2=0xff; P3=0xff;
  886. for(j=0;j<2;j++)
  887. {
  888.   for(i=0;i<8;i++)
  889.   {
  890.    P2=table3[i];
  891.    P1=table3[i];
  892.    delay(100);
  893.   }
  894.   P2=0xff; P1=0xff;
  895.   for(i=0;i<8;i++)
  896.   {
  897.    P0=table2[i];
  898.    P3=table3[i];
  899.    delay(100);
  900.   }
  901.   P0=0xff; P3=0xff;
  902. }
  903. }
  904. void disp39()   //状态39 P1、P3LED(下半部分)一直亮,上半部分LED向外扩张亮,然后闪烁3次
  905. {
  906. P1=0x00; P3=0x00;
  907. for(i=0;i<8;i++)
  908. {
  909.   P0=table3[i];
  910.   P2=table3[i];
  911.   delay(150);
  912. }
  913. for(i=0;i<8;i++)
  914. {
  915.   P0=table3[i];
  916.   P2=table3[i];
  917.   delay(300);
  918. }
  919. for(i=0;i<4;i++)
  920. {
  921.   P0=~P0; P2=~P2;
  922.   delay(300);
  923. }
  924. delay(1000);
  925. }
  926. void disp40()   //状态40 LED从P3.0、P0.7开始逆时针同时熄灭,直到LED全部熄灭
  927. {
  928. for(i=0;i<9;i++)
  929. {
  930.   P3=table4[i];
  931.   P0=table5[i];
  932.   delay(100);
  933. }
  934. for(i=1;i<9;i++)
  935. {
  936.   P2=table4[i];
  937.   P1=table4[i];
  938.   delay(100);
  939. }
  940. delay(300);
  941. }
  942. void disp41()   //状态41 LED从P2.7、P1.7开始顺时针同时熄灭,直到全部熄灭
  943. {
  944. for(i=0;i<9;i++)
  945. {
  946.   P2=table5[i];
  947.   P1=table5[i];
  948.   delay(100);
  949. }
  950. for(i=1;i<9;i++)
  951. {
  952.   P0=table4[i];
  953.   P3=table5[i];
  954.   delay(100);
  955. }
  956. delay(300);  
  957. }
  958. void main()
  959. {
  960. while(1)
  961. {  
  962.   disp22();  //装态22 2个LED自上而下移动(循环5次,且频率渐快,到最快时持续循环16次,然后循环5次频率再逐渐降低)
  963.   disp0();  //状态0 所有LED闪烁3次
  964.   disp1();  //状态1 LED顺时针转一圈
  965.   disp2();  //状态2 LED逆时针转一圈
  966.   disp3();  //状态3 4个LED同时顺时、逆时针移动1/4圈
  967.   disp4();  //状态4  2个LED同时顺时针移动半圈
  968.   disp5();  //状态5  2个LED同时逆时针移动半圈
  969.   disp6();  //状态6 LED自上而下逐渐点亮(一半点亮一半不亮)
  970.   disp7();  //状态7 LED自下而上逐渐点亮(直到全部点亮)
  971.   disp0();  //状态0 所有LED闪烁3次
  972.   disp8();  //状态8 间断8格的4个LED亮并逆时针旋转
  973.   disp9();  //状态9 间断8格的4个LED亮,然后逆时针逐渐点亮(直到全部点亮)
  974.   disp10();  //状态10 从LED全部亮到全不亮(间断8格的4个LED开始逆时针熄灭)
  975.   disp11();  //状态11 间断8格的4个LED亮并顺时针旋转
  976.   disp12();  //间断8格的4个LED亮,然后顺时针逐渐点亮(直到全部点亮)
  977.   disp13();  //状态13 从LED全部亮到全不亮(间断8格的4个LED开始顺时针熄灭)
  978.   disp14();  //状态14 从LED不亮到全亮(从P0.0、P1.0、P2.0、P3.7开始逐布点亮)  
  979.   disp15();  //状态15 从LED全亮到全不亮(从P0.7、P1.7、P2.7、P3.0开始逐步熄灭)
  980.   disp16();  //状态16 LED灯交替闪烁(频率有慢变快)
  981.   disp17();  //状态17 LED从P0.7开始逆时针逐步点亮,并且速度会逐步提高
  982.   disp18();  //状态18 LED从P0.7开始逆时针逐步点亮(每亮8位后就熄灭)
  983.   disp19();  //状态19 LED从P2.7开始顺时针逐步点亮,(循环2次)并且速度会逐步提高
  984.   disp20();  //状态20 LED从P2.7开始顺时针逐步点亮(每亮8位后就熄灭)
  985.   disp21();  //状态21 2个LED开始上下移动半圈
  986.   disp22();  //装态22 2个LED自上而下移动(循环5次,且频率渐快,到最快时持续循环16次,然后循环5次频率再逐渐降低
  987.   disp23();  //状态23 LED上下交替闪烁
  988.   disp39();  //状态39 P1、P3LED(下半部分)一直亮,上半部分LED向外扩张亮,然后闪烁3次
  989.   disp24();  //状态24 LED左右交替闪烁
  990.   disp25();  //状态25 LED交替闪烁
  991.   disp8();  //状态8 间断8格的4个LED亮并逆时针旋转
  992.   disp9();  //状态9 间断8格的4个LED亮,然后逆时针逐渐点亮(直到全部点亮)
  993.   disp10();  //状态10 从LED全部亮到全不亮(间断8格的4个LED开始逆时针熄灭)
  994.   disp26();  //状态26 2个LED开始上下移动半圈(LED不亮流水)
  995.   disp27();  //状态27 逐步顺时针点亮P2、P1的LED,熄灭后,再顺时针点亮P0、P3的LED
  996.   disp28();  //状态28 P1、P2和P0、P3交替闪烁
  997.   disp38();  //状态38 逐步顺时针点亮P2、P1的LED,熄灭后,再顺时针点亮P0、P3的LED
  998.   disp29();  //状态29 逐步顺时针点亮P2、P1的LED,再顺时熄灭后,再顺时针点亮P0、P3的LED,再顺时熄灭
  999.   disp30();  //状态30 逐步逆时针点亮P2、P1的LED,熄灭后,再逆时针点亮P0、P3的LED
  1000.   disp31();  //状态31 逐步逆时针点亮P2、P1的LED,再逆时熄灭后,再逆时针点亮P0、P3的LED,再逆时熄灭
  1001.   disp32();  //状态32 LED自上而下逐步点亮,然后从下往上逐步熄灭
  1002.   disp33();  //状态33 LED从左往右开始点亮(直到全亮),然后从左右两边开始熄灭(直到全部熄灭)
  1003.   disp37();  //状态37 2个LED自上而下移动,并点亮最下2个LED,然后2个LED再自下而上回去,同时4个LED(上下各2个LED)再来回移动一次
  1004.   disp36();  //状态36  从P0.7、P3.0开始同时逆时针旋转,直到LED全亮
  1005.   disp40();  //状态40 LED从P3.0、P0.7开始逆时针同时熄灭,直到LED全部熄灭
  1006.   disp35();  //状态35  从P2.7、P1.7开始同时顺时针旋转,直到LED全亮
  1007.   disp41();  //状态41 LED从P2.7、P1.7开始顺时针同时熄灭,直到全部熄灭
  1008.   disp34();  //状态34 LED从左往右开始点亮(直到全亮),然后从中间往左右边熄灭
  1009.   disp28();  //状态28 P1、P2和P0、P3交替闪烁
  1010. }
  1011. }
复制代码


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2016-4-17 03:15 | 只看该作者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表