找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机星座灯源码+PCB工程+电路原理图

[复制链接]
跳转到指定楼层
楼主
看网上都是流水灯心形灯 刚学 做了一个星座灯也就是改了下布局 程序抄的
附加原理图 PCB 还有程序
Altium Designer画的单片机星座灯原理图和PCB图如下:(51hei附件中可下载工程文件)

单片机源程序如下:
  1. #include<reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. uint n,n1,n2,n3,n4,n5,n6,n7;
  5. uchar code light[]={
  6. 0xbd,0xbb,0xbe,0xde,
  7. 0xdd,0xee,0xed,0xeb,
  8. 0xb5,0xba,0xd5,0xda,
  9. 0xe5,0xea,0x5a,0xe5};

  10. void delay(uint);
  11. void breath();                                            //呼吸
  12. void flashing(uint);                                //十六灯闪烁
  13. void flicker(uint);                                        //间隔闪烁
  14. void waterlamp(uint);                                 //流水灯
  15. void regainlamp0(uint);                                //复原灯 从前往后亮
  16. void regainlamp1(uint);                                //从后往前亮
  17. void regainlamp2(uint);                                //中间向两边灭灯
  18. void Kong_lamp(uint);                                //中间暗灯
  19. void irr_flashing(uint);                         //无规则闪烁
  20. void Qun_flashing(uint);                        //四个一闪,三个一闪,三个一闪,两个一闪,四个一闪,乱闪
  21. void Y_lamp(uint);                                        //从上往下亮

  22. void main()
  23. {
  24.         uint i;
  25.         while(1)
  26.         {
  27.                 P1=P3=0x00;
  28.                 delay(100);
  29.                 for(i=3;i>0;i--)
  30.                 {
  31.                          breath();       
  32.                 }
  33.                
  34.                 for(i=5;i>0;i--)
  35.                 {
  36.                         flicker(500);       
  37.                 }
  38.                 P1=P3=0xff;
  39.                 waterlamp(280);                                         
  40.                 waterlamp(240);
  41.                 waterlamp(200);
  42.                  
  43.                 regainlamp0(200);

  44.                 breath();
  45.                 breath();
  46.                                   
  47.                 for(i=2;i>0;i--);
  48.                 {
  49.                         flashing(500);
  50.                 }

  51.              irr_flashing(200);       
  52.                
  53.                                
  54.                 P1=P3=0xff;
  55.                 regainlamp0(200);
  56.                  
  57.                 flashing(500);

  58.                 regainlamp1(300);

  59.                 Kong_lamp(200);
  60.                 regainlamp2(220);
  61.                        
  62.                 irr_flashing(300);
  63.                 waterlamp(800);
  64.                 Kong_lamp(800);

  65.                 for(i=2;i>0;i--)
  66.                         flicker(300);
  67.                
  68.                 Y_lamp(500);
  69.         }
  70. }

  71. void breath()                                           //呼吸
  72. {
  73.         n1=n3=25;
  74.         n2=n4=0;

  75.         for(n6=10;n6>0;n6--)
  76.         {
  77.                 for(n=30;n>0;n--)
  78.                 {
  79.                         P1=0xff;
  80.                         P3=0xff;
  81.                         delay(n1);
  82.                         P1=0x00;
  83.                         P3=0x00;
  84.                         delay(n2);
  85.                 }
  86.                 n1--;
  87.                 n2++;
  88.                 if(n1==0)
  89.                         n1=20;
  90.                 if(n2==20)
  91.                         n2=0;
  92.         }
  93.        
  94.        
  95.         for(n7=10;n7>0;n7--)
  96.         {
  97.                 for(n5=30;n5>0;n5--)
  98.                 {
  99.                         P1=0xff;
  100.                         P3=0xff;
  101.                         delay(n4);
  102.                         P1=0x00;
  103.                         P3=0x00;
  104.                         delay(n3);
  105.                 }       
  106.                         n3--;
  107.                         n4++;
  108.                         if(n3==0)
  109.                                 n3=20;
  110.                         if(n4==20)
  111.                                 n4=0;
  112.          }

  113. }

  114. void flashing(uint a)                                        //十六灯闪烁
  115. {
  116.         P1=0x00;
  117.         P3=0x00;
  118.         delay(a);
  119.         P1=0xff;
  120.         P3=0xff;
  121.         delay(a);
  122. }

  123. void flicker(uint b)                                        //间隔闪烁
  124. {
  125.         P1=0xaa;
  126.         P3=0xaa;
  127.         delay(b);
  128.         P1=0x55;
  129.         P3=0x55;
  130.         delay(b);
  131.         P1=P3=0x00;
  132. }
  133.                                                                  //流水灯
  134. void waterlamp(uint c)
  135. {
  136.         P1=0xbe;
  137.         delay(c);
  138.         P1=0xdd;
  139.         delay(c);

  140.         P1=0xfb;
  141.         delay(c);
  142.         P1=0xf7;
  143.         delay(c);
  144.         P1=0xef;

  145.         delay(c);
  146.         P1=0x7f;
  147.         delay(c);
  148.         P1=0xff;
  149.         P3=0xfe;
  150.         delay(c);
  151.         P3=0xfb;
  152.         delay(c);
  153.         P3=0xdf;
  154.         delay(c);
  155.         P3=0xbf;
  156.         delay(c);
  157.         P3=0xef;
  158.         delay(c);
  159.         P3=0xf7;
  160.         delay(c);
  161.         P3=0xfd;
  162.         delay(c);
  163.         P3=0x7f;
  164.         delay(c);
  165.         P3=0xff;
  166.        
  167. }

  168. void regainlamp0(uint d)
  169. {
  170.         P1=0xbe;
  171.         delay(d);
  172.         P1=0x9c;
  173.         delay(d);
  174.         P1=0x98;
  175.         delay(d);
  176.         P1=0x90;
  177.         delay(d);
  178.         P1=0x80;
  179.         delay(d);
  180.         P1=0x00;
  181.         delay(d);
  182.         P3=0xfe;
  183.         delay(d);
  184.         P3=0xfa;
  185.         delay(d);
  186.         P3=0xda;
  187.         delay(d);
  188.         P3=0x9a;
  189.         delay(d);
  190.         P3=0x8a;
  191.         delay(d);
  192.         P3=0x82;
  193.         delay(d);
  194.         P3=0x80;
  195.         delay(d);
  196.         P3=0x00;
  197.         delay(d);
  198. }

  199. void regainlamp1(uint f)
  200. {
  201.         P3=~0x00;
  202.         delay(f);
  203.         P3=~0x80;
  204.         delay(f);
  205.         P3=~0x82;
  206.         delay(f);
  207.         P3=~0x8a;
  208.         delay(f);
  209.         P3=~0x9a;
  210.         delay(f);
  211.         P3=~0xda;
  212.         delay(f);
  213.         P3=~0xfa;
  214.         delay(f);
  215.         P3=~0xfe;
  216.         delay(f);
  217.         P3=0x00;
  218.         P1=~0x00;
  219.         delay(f);
  220.         P1=~0x80;
  221.         delay(f);
  222.         P1=~0x90;
  223.         delay(f);
  224.         P1=~0x98;
  225.         delay(f);
  226.         P1=~0x9c;
  227.         delay(f);
  228.         P1=~0xbe;
  229.         delay(f);
  230.         P1=P3=0x00;
  231.         delay(f);       
  232. }

  233. void regainlamp2(uint g)
  234. {
  235.         P1=P3=0xff;
  236.         delay(g);
  237.         P1=0x80;        P3=0x01;
  238.         delay(g);
  239.         P1=0x90;        P3=0x05;
  240.         delay(g);
  241.         P1=0x98;        P3=0x25;
  242.         delay(g);
  243.         P1=0x9c;        P3=0xd5;
  244.         delay(g);
  245.         P1=0xbd;        P3=0x7d;
  246.         delay(g);
  247.         P1=0xff;        P3=0xff;
  248.         delay(g);
  249. }

  250. void irr_flashing(uint e)
  251. {
  252.         uchar j;
  253.         for(j=0;j<16;j++)
  254.         {
  255.                 P1=light[j];
  256.                 P3=light[16-j];
  257.                 delay(e);
  258.                 P1=P3=0xff;
  259.                 delay(e);
  260.         }
  261. }                       

  262. void Kong_lamp(uint h)
  263. {
  264.         P1=P3=0xff;
  265.         delay(h);
  266.         P1=0xef;        P3=0xfe;
  267.         delay(h);
  268.         P1=0x3f;        P3=0xcf;
  269.         delay(h);
  270.         P1=~0x98;        P3=~0x25;
  271.         delay(h);
  272.         P1=~0x9c;        P3=~0xd5;
  273.         delay(h);
  274.         P1=~0xbd;        P3=~0x7d;
  275.         delay(h);
  276.         P1=~0xff;        P3=~0xff;
  277.         delay(h);       
  278. }

  279. void Qun_flashing(uint j)
  280. {
  281.         P1=P3=0xff;
  282.         delay(j);
  283.         P1=0x9c;
  284.         delay(j);
  285.         P1=P3=0xff;
  286.         delay(j);
  287.         P1=0xe3;
  288.         delay(j);
  289.         P1=P3=0xff;
  290.         delay(j);
  291.         P1=0x7f;        P3=0xf6;
  292.         delay(j);
  293.         P1=P3=0xff;
  294.         delay(j);
  295.         P1=0xff;        P3=0x9f;
  296.         delay(j);
  297.         P1=P3=0xff;
  298.         delay(j);
  299.         P3=0x65;
  300.         delay(j);
  301.         P1=P3=0xff;
  302.         delay(j);

  303.         P1=0xff;        P3=0x9f;
  304.         delay(j);
  305.         P1=P3=0xff;
  306.         delay(j);
  307.         P3=0xff;        P1=0xe3;
  308.         delay(j);
  309.         P1=P3=0xff;
  310.         delay(j);
  311.         P3=0x65;
  312.         delay(j);
  313.         P1=P3=0xff;
  314.         delay(j);
  315.         P3=0xff;        P1=0x9c;
  316.         delay(j);
  317.         P1=P3=0xff;
  318.         delay(j);
  319.         P1=0xff;        P3=0x00;
  320.         delay(j);
  321.         P1=P3=0xff;
  322.         delay(j);
  323. ……………………

  324. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
星座灯(天蝎座).zip (6.94 MB, 下载次数: 9)


评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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