找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5535|回复: 0
收起左侧

广州塔PCB原理图和代码

[复制链接]
ID:230901 发表于 2017-9-6 18:13 | 显示全部楼层 |阅读模式
DIY广州塔PCB和代码
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)
0.png 0.png 0.png
单片机源程序如下:
  1. #include <reg51.h>
  2. #include <intrins.h>

  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. sbit EN_1=P3^5;
  6. sbit EN_2=P3^4;


  7. void delay(uint t)                //@12.000MHz
  8. {
  9.         while(--t)
  10.         {
  11.                 unsigned char i, j;
  12.                 _nop_();
  13.                 _nop_();
  14.                 i = 12;
  15.                 j = 168;
  16.                 do
  17.                 {
  18.                         while (--j);
  19.                 } while (--i);
  20.         }
  21. }

  22. void flash1()
  23. {
  24.         uchar i;
  25.         P3=0XFF;
  26.         P0=0XFF;
  27.         P2=0X00;
  28.         P1=0x01;
  29.         delay(100);       
  30.         for(i=0;i<7;i++)
  31.         {
  32.                 P1<<=1;
  33.                 delay(100);       
  34.         }
  35.         P1=0;
  36.         P2=0X01;
  37.         delay(100);
  38.         for(i=0;i<7;i++)
  39.         {
  40.                 P2<<=1;
  41.                 delay(100);       
  42.         }
  43.         for(i=0;i<7;i++)
  44.         {
  45.                 P2>>=1;
  46.                 delay(100);       
  47.         }
  48.         P2=0X00;
  49.         P1=0x80;
  50.         delay(100);
  51.         for(i=0;i<7;i++)
  52.         {
  53.                 P1>>=1;
  54.                 delay(100);       
  55.         }
  56.                
  57. }

  58. void flash2()
  59. {
  60.         uchar i;
  61.         P3=0XFF;
  62.         P0=0XFF;
  63.         P2=0X00;
  64.         P1=0x00;
  65.         for(i=0;i<8;i++)
  66.         {
  67.                 P1<<=1;
  68.                 P1|=0X01;
  69.                 delay(100);
  70.         }
  71.         for(i=0;i<8;i++)
  72.         {
  73.                 P2<<=1;
  74.                 P2|=0X01;
  75.                 delay(100);
  76.                
  77.         }
  78.         for(i=0;i<8;i++)
  79.         {
  80.                 P1<<=1;
  81.                 delay(100);
  82.         }
  83.         for(i=0;i<8;i++)
  84.         {
  85.                 P2<<=1;
  86.                 delay(100);
  87.                
  88.         }
  89.        
  90.         for(i=0;i<8;i++)
  91.         {
  92.                 P2|=0X80;
  93.                 delay(100);
  94.                 P2>>=1;       
  95.         }
  96.         for(i=0;i<8;i++)
  97.         {
  98.                 P1|=0X80;
  99.                 delay(100);
  100.                 P1>>=1;       
  101.         }
  102.         P1=0XFF;
  103.         for(i=0;i<8;i++)
  104.         {
  105.                 P2&=0X7F;
  106.                 delay(100);
  107.                 P2>>=1;       
  108.         }
  109.         for(i=0;i<8;i++)
  110.         {
  111.                 P1&=0X7F;
  112.                 delay(100);
  113.                 P1>>=1;       
  114.         }       
  115. }

  116. void flash3()
  117. {
  118.         uchar i;
  119.         uchar j=3;
  120.         P0=0X00;
  121.         P1=P2=0XFF;
  122.         P3=0xFF;
  123.         EN_1=1;
  124.         P0=0X01;
  125.         delay(200);
  126.         for(i=0;i<39;i++)
  127.         {
  128.                 P0=_crol_(P0,1);
  129.                 delay(80);
  130.         }
  131.         for(i=0;i<39;i++)
  132.         {
  133.                 P0=_cror_(P0,1);
  134.                 delay(80);
  135.         }
  136.         P0=0X55;
  137.         for(i=0;i<7;i++)
  138.         {
  139.                 P0=_crol_(P0,1);
  140.                 delay(500);
  141.         }
  142.         for(i=0;i<7;i++)
  143.         {
  144.                 P0=_cror_(P0,1);
  145.                 delay(500);
  146.         }       
  147. }


  148. void flash4()
  149. {
  150.         uchar i;
  151.         P1=P2=0XFF;
  152.         P0=0X00;
  153.         P3=0XFF;
  154.         for(i=0;i<8;i++)
  155.         {
  156.                 P0<<=1;
  157.                 P0|=0X01;
  158.                
  159.                 delay(80);
  160.         }
  161.         for(i=0;i<8;i++)
  162.         {
  163.                 P0=_crol_(P0,1);
  164.                 P0&=0Xfe;
  165.                
  166.                 delay(80);
  167.         }
  168. }

  169. void flash5()
  170. {               
  171.         uchar i;         
  172.         P3=P0=0XFF;
  173.         P2=0x80;
  174.         P1=0X01;       
  175.         for(i=0;i<7;i++)
  176.         {
  177.                 P1=_crol_(P1,1);
  178.                 P2=_cror_(P2,1);
  179.                 delay(130);       
  180.         }
  181.         for(i=0;i<7;i++)
  182.         {
  183.                 P1=_cror_(P1,1);
  184.                 P2=_crol_(P2,1);
  185.                 delay(130);       
  186.         }

  187.         for(i=0;i<7;i++)
  188.         {       
  189.                 P1=_crol_(P1,1);
  190.                 P2=_cror_(P2,1);
  191.                 P1|=0X01;
  192.                 P2|=0X80;
  193.                 delay(200);       
  194.         }
  195.         for(i=0;i<7;i++)
  196.         {       
  197.                
  198.                 P1=_crol_(P1,1);
  199.                 P2=_cror_(P2,1);
  200.                 P1&=0Xfe;
  201.                 P2&=0X7f;
  202.                 delay(200);       
  203.         }                                
  204. }

  205. void flash6()
  206. {
  207.         uchar i;
  208.         P3=P0=0XFF;
  209.         P2=P1=0X00;
  210.         for(i=0;i<8;i++)       
  211.         {
  212.                 P1<<=1;
  213.                 P1|=0X01;
  214.                 delay(100);
  215.         }
  216.         for(i=0;i<8;i++)       
  217.         {
  218.                 P2<<=1;
  219.                 P2|=0X01;
  220.                 delay(100);
  221.         }
  222.         delay(3000);
  223.         P3=P0=0XFF;
  224.         P2=P1=0X00;
  225.         for(i=0;i<8;i++)       
  226.         {
  227.                 P1<<=1;
  228.                 P1|=0X01;
  229.                 delay(100);
  230.         }
  231.         for(i=0;i<8;i++)       
  232.         {
  233. ……………………

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

所有资料51hei提供下载:
小蛮腰DIY.rar (1.09 MB, 下载次数: 53)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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