找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4927|回复: 2
收起左侧

单片机生日快乐歌(带流水灯)程序

[复制链接]
ID:102668 发表于 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. }
复制代码


回复

使用道具 举报

ID:671206 发表于 2019-12-29 21:47 | 显示全部楼层
谢谢楼主分享,请问用了你的代码,流水灯全亮但不动怎么解决呢
回复

使用道具 举报

ID:671206 发表于 2019-12-29 21:48 | 显示全部楼层
谢谢楼主分享,用了你的代码可是流水灯全亮但不动怎么解决呢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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