标题: 单片机生日快乐歌(带流水灯)程序 [打印本页]

作者: 51hei社区    时间: 2016-1-16 05:48
标题: 单片机生日快乐歌(带流水灯)程序
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit P32=P3^3;
  5. uchar i,j,time1,time2;
  6. uint code array1[]={
  7.      400,400,650,650,650,1200,
  8.      400,400,650,650,650,1200,
  9.      400,400,650,650,650,650,1200,
  10.      400,400,650,650,650,1200
  11.      };
  12. uchar code array[]={
  13.      0xfd,0x79,0xfd,0x79,0xfd,0xc7,0xfd,0x79,0xfe,0x21,0xfe,0x05,
  14.         0xfd,0x79,0xfd,0x79,0xfd,0xc7,0xfd,0x79,0xfe,0x51,0xfe,0x21,
  15.      0xfd,0x79,0xfd,0x79,0xfe,0xc0,0xfe,0x84,0xfe,0x21,0xfe,0x05,0xfd,0xc7,
  16.      0xfe,0x99,0xfe,0x99,0xfe,0x90,0xfe,0x21,0xfe,0x51,0xfe,0x21
  17.      };
  18. uchar code LED[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
  19. void delay(uint m)
  20. {
  21.     uint n;
  22. for(;m>0;m--)
  23.   for(n=80;n>0;n--);
  24. }
  25. void main()
  26. { uint a=0;
  27. TMOD=0x01;
  28. TH0=0;
  29. TL0=0;
  30. EA=1;
  31. ET0=1;
  32. TR0=1;
  33. while(1)
  34. {  if(a==8)
  35.       {a=0;}
  36.   time1=array[i++];
  37.   time2=array[i++];
  38.   if(i==50)
  39.    i=0;
  40.    P1=LED[a];
  41.    a++;
  42.   delay(array1[j++]);
  43.   P0=1;
  44.   if(j==25)
  45.   { j=0;}
  46.   
  47. }
  48. }
  49. void init() interrupt 1
  50. {
  51. TR0=0;
  52. P32=~P32;
  53. TH0=time1;
  54. TL0=time2;
  55. TR0=1;
  56. }
复制代码



作者: zht948    时间: 2019-12-29 21:47
谢谢楼主分享,请问用了你的代码,流水灯全亮但不动怎么解决呢
作者: zht948    时间: 2019-12-29 21:48
谢谢楼主分享,用了你的代码可是流水灯全亮但不动怎么解决呢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1