找回密码
 立即注册

QQ登录

只需一步,快速开始

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

8*8*8光立方

[复制链接]
ID:246347 发表于 2017-11-19 10:11 | 显示全部楼层 |阅读模式
8*8*8光立方
140546iadzq8l4ulgarwz7.jpg _}7SOMHL9[8S1MUVEY6YA8V.png SHE_89BXDO}XTUBVB0AEC9D.png AG~W6HP)BI8}(MCGSN{N6UD.png (PJ~X_BRAA4E5QFZ@N7PR]O.png

单片机源程序如下:
  1. /**
  2.   *******************************************************************************
  3.   * @file     apps.c
  4.   * @author   Whao
  5.   * @version  1.0.0
  6.   * @date   2014/06/25   
  7.   * @brief    Appliction function  应用功能
  8.   *******************************************************************************
  9.   * @attention
  10.   * @addtogroup  
  11.   * @COPYRIGHT  Whao-Technology
  12.   *******************************************************************************
  13.   */
  14. /* Includes -------------------------------------------------------------------*/
  15. #include "apps.h"
  16. #include "stc12func.h"
  17. #include "display.h"
  18. /* Global variables --全局变量-----------------------------------------------*/
  19. //8*8*8bits
  20. //8layer*8row*8leds
  21. idata uint8_t cubeBuf[8][8];
  22. idata bool_t cubeUpdateFlag;
  23. idata uint8_t cubeGraphical;
  24. idata uint8_t cubeStage;
  25. /* Private typedef ---私人类型---------------------------------------------*/
  26. /* Private define -----私人定义-------------------------------------------------*/
  27. #define ROW_1 0x00
  28. #define ROW_2 0x04
  29. #define ROW_3 0x02
  30. #define ROW_4 0x06
  31. #define ROW_5 0x01
  32. #define ROW_6 0x05
  33. #define ROW_7 0x03
  34. #define ROW_8 0x07
  35. /* Private macro -----私有宏---------------------------------------------*/
  36. /* Private variables ----私有变量--------------------------------------------*/
  37. idata uint8_t cubeLayer; //立方体层
  38. idata bool_t cubeEnableFlag;  //立方体启用标志
  39. /* Private const ---------私人常识-----------------------------------------*/
  40. /* Private function prototypes ------私人功能原型---------------------------*/
  41. /* Private functions ----------私人功能-------------------------------*/
  42. /********************************************************************************/
  43. /*                Ordinary function      普通功能                       */
  44. /********************************************************************************/
  45. /**
  46.   * @brief  Init stc mcu    初始化STC单片机
  47.   * @param  None
  48.   * @retval None
  49.   * @author Whao
  50.   * @data 2014/03/05
  51.   */
  52. void InitSTCMcu(void)
  53. {
  54.        //Init Timer0,Timer1
  55. AUXR &= 0x7F; //12T
  56. TH0 = 0xDC;  //10ms
  57. TL0 = 0x00;
  58. TCON = 0x00; //TFx=0,TRx=0
  59. TMOD = 0x21; //Timer0,16bits Timer Mode     定时器模式
  60.      //Timer1,8bits reload Timer Mode   重新加载定时器模式
  61. ET0 = 1;  //Enable timer0     启用timer0
  62.     //Init Uart
  63. TH1 = 0xFF;  //9600
  64. TL1 = 0xFF;  //
  65. SCON = 0x50;  //8bits Uart
  66. PCON |= 0x80; //Clear SMOD.Enable SMOD  清除SMOD。 启用SMOD
  67. ES = 1;   //Enable serial   启用串口
  68. WDTEnable(WDT_TIME_1137MS);
  69. LED_RUN = 0; //Light run-led
  70. runLedFlag = TRUE;
  71. }  
  72. /**
  73.   * @brief  Init coefficient   初始系数
  74.   * @param  None
  75.   * @retval None
  76.   * @author Whao
  77.   * @data 2014/03/05
  78.   */
  79. void InitCoeff(void)
  80. {
  81. cubeEnableFlag = TRUE; //Open the display   打开显示屏
  82. cubeUpdateFlag = FALSE;
  83. cubeLayer = 0;
  84. cubeGraphical = GRAPH_01;
  85. cubeStage = 0;
  86. }
  87. /**
  88.   * @brief  Init devices  初始设备
  89.   * @param  None
  90.   * @retval None
  91.   * @author Whao
  92.   * @data 2014/03/05
  93.   */
  94. void InitDevice(void)
  95. {
  96. CUBE_574_OE = 0;  //Open the display
  97. CUBE_DATA_BUS = 0x00;
  98. //CUBE_ROW_BUS = 0xFF; //All Off   全部关闭
  99. }
  100. /**
  101.   * @brief  Turn on Cube  打开立方体
  102.   * @param  None
  103.   * @retval None
  104.   * @author Whao
  105.   * @data 2014/06/25
  106.   */
  107. void TurnOnCube()
  108. {
  109. if(cubeEnableFlag == FALSE)
  110. {
  111.   cubeEnableFlag = TRUE;
  112.   CUBE_574_OE=0;
  113. }
  114. }
  115. /**
  116.   * @brief  Turn off Cube   关闭立方体
  117.   * @param  None
  118.   * @retval None
  119.   * @author Whao
  120.   * @data 2014/06/25
  121.   */
  122. void TurnOffCube()
  123. {
  124. if(cubeEnableFlag == TRUE)
  125. {
  126.   cubeEnableFlag = FALSE;
  127.   CUBE_574_OE=1;
  128. }
  129. }
  130. /**
  131.   * @brief  Reloard new graphical    重新加载新的图形
  132.   * @param  None
  133.   * @retval None
  134.   * @author Whao
  135.   * @data 2014/06/29
  136.   */
  137. void CubeBufReload()
  138. {
  139. if(cubeUpdateFlag == TRUE)
  140. {
  141.   cubeUpdateFlag = FALSE;
  142. }
  143. else
  144. {
  145.   return;
  146. }
  147. /*Reload graphical or switch grahical  重新加载图形或开关图形*/
  148. switch(cubeGraphical)
  149. {
  150.   case GRAPH_01:
  151.    if( TRUE == Display01())
  152.    {
  153.     cubeGraphical = GRAPH_02;
  154.     cubeStage = 0xFF;
  155.    }
  156.    break;
  157.   case GRAPH_02:
  158.    if( TRUE ==  Display02())
  159.    {
  160.     cubeGraphical = GRAPH_03;
  161.     cubeStage = 0xFF;
  162.    }
  163.    break;
  164.   case GRAPH_03:
  165.    if( TRUE ==  Display03())
  166.    {
  167.     cubeGraphical = GRAPH_04;
  168.     cubeStage = 0xFF;
  169.    }
  170.    break;
  171.   case GRAPH_04:
  172.    if( TRUE ==  Display04())
  173.    {
  174.     cubeGraphical = GRAPH_01;
  175.     cubeStage = 0xFF;
  176.    }
  177.    break;
  178.   case GRAPH_05:
  179.    if( TRUE ==  Display05())
  180.    {
  181.     cubeGraphical = GRAPH_06;
  182.     cubeStage = 0xFF;
  183.    }
  184.    break;
  185.   case GRAPH_06:
  186.    if( TRUE ==  Display06())
  187.    {
  188.     cubeGraphical = GRAPH_07;
  189.     cubeStage = 0xFF;
  190.    }
  191.    break;
  192.   case GRAPH_07:
  193.    if( TRUE ==  Display07())
  194.    {
  195.     cubeGraphical = GRAPH_01;
  196.     cubeStage = 0xFF;
  197.    }
  198.    break;
  199.   default:
  200.    cubeGraphical = GRAPH_01;
  201.    cubeStage = 0xFF;
  202.    break;
  203. }
  204. cubeStage++;
  205. }
  206. /**
  207.   * @brief  Light Cube Loop. 光立方回路
  208.   * @param  None
  209.   * @retval None
  210.   * @author Whao
  211.   * @data 2014/06/25
  212.   */
  213. void CubeLoop(void)
  214. {
  215. /*Layer data load*/
  216. CUBE_ROW_1 = 0;
  217. CUBE_DATA_BUS = cubeBuf[cubeLayer][0];
  218. CUBE_ROW_1 = 1;

  219. CUBE_ROW_2 = 0;
  220. CUBE_DATA_BUS = cubeBuf[cubeLayer][1];
  221. CUBE_ROW_2 = 1;
  222. CUBE_ROW_3 = 0;
  223. CUBE_DATA_BUS = cubeBuf[cubeLayer][2];
  224. CUBE_ROW_3 = 1;
  225. CUBE_ROW_4 = 0;
  226. CUBE_DATA_BUS = cubeBuf[cubeLayer][3];
  227. CUBE_ROW_4 = 1;
  228. CUBE_ROW_5 = 0;
  229. CUBE_DATA_BUS = cubeBuf[cubeLayer][4];
  230. CUBE_ROW_5 = 1;
  231. CUBE_ROW_6 = 0;
  232. CUBE_DATA_BUS = cubeBuf[cubeLayer][5];
  233. CUBE_ROW_6 = 1;
  234. CUBE_ROW_7 = 0;
  235. CUBE_DATA_BUS = cubeBuf[cubeLayer][6];
  236. CUBE_ROW_7 = 1;
  237. CUBE_ROW_8 = 0;
  238. CUBE_DATA_BUS = cubeBuf[cubeLayer][7];
  239. CUBE_ROW_8 = 1;
  240. CUBE_LAYER_BUS = ~(0x01<<cubeLayer);
  241. /*Layer select图层选择*/
  242. cubeLayer++;
  243. if(cubeLayer == CUBE_LAYER_NUM )
  244. {
  245.   cubeLayer = 0;
  246. }
  247. Delay1ms(3);
  248. }
  249. /**
  250.   * @brief  This function initialize stc-mcu.  此函数初始化stc-mcu
  251.   */
  252. void IdleProcess(void)
  253. {
  254. PCON |= 0x01;
  255. }
  256. /****************** (C) COPYRIGHT 2014 Whao-Technology *****END OF FILE******************/
复制代码

所有资料51hei提供下载:
完整LED光立方原理图(参考).pdf (558.03 KB, 下载次数: 16)
回复

使用道具 举报

ID:1 发表于 2017-11-19 22:12 | 显示全部楼层
好东东 但是源码不全 能分享个压缩包吗?
回复

使用道具 举报

ID:258694 发表于 2018-6-28 13:59 | 显示全部楼层
能分享个压缩包吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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