标题:
8x8x8光立方原理图与单片机程序
[打印本页]
作者:
1171055923
时间:
2018-11-3 08:22
标题:
8x8x8光立方原理图与单片机程序
仿真原理图程序8x8x8
0.jpg
(105.17 KB, 下载次数: 39)
下载附件
2018-11-3 13:17 上传
0.png
(6.9 KB, 下载次数: 36)
下载附件
2018-11-3 13:16 上传
单片机源程序如下:
/**
*******************************************************************************
* @file apps.c
* @author Whao
* @version 1.0.0
* @date 2014/06/25
* @brief Appliction function
*******************************************************************************
* @attention
* @addtogroup
* @COPYRIGHT Whao-Technology
*******************************************************************************
*/
/* Includes -------------------------------------------------------------------*/
#include "apps.h"
#include "stc12func.h"
#include "display.h"
/* Global variables ------------------------------------------------------------*/
//8*8*8bits
//8layer*8row*8leds
idata uint8_t cubeBuf[8][8];
idata bool_t cubeUpdateFlag;
idata uint8_t cubeGraphical;
idata uint8_t cubeStage;
/* Private typedef -------------------------------------------------------------*/
/* Private define --------------------------------------------------------------*/
#define ROW_1 0x00
#define ROW_2 0x04
#define ROW_3 0x02
#define ROW_4 0x06
#define ROW_5 0x01
#define ROW_6 0x05
#define ROW_7 0x03
#define ROW_8 0x07
/* Private macro ---------------------------------------------------------------*/
/* Private variables -----------------------------------------------------------*/
idata uint8_t cubeLayer;
idata bool_t cubeEnableFlag;
/* Private const ---------------------------------------------------------------*/
/* Private function prototypes -------------------------------------------------*/
/* Private functions -----------------------------------------------------------*/
/********************************************************************************/
/* Ordinary function */
/********************************************************************************/
/**
* @brief Init stc mcu
* @param None
* @retval None
* @author Whao
* @data 2014/03/05
*/
void InitSTCMcu(void)
{
//Init Timer0,Timer1
AUXR &= 0x7F; //12T
TH0 = 0xDC; //10ms
TL0 = 0x00;
TCON = 0x00; //TFx=0,TRx=0
TMOD = 0x21; //Timer0,16bits Timer Mode
//Timer1,8bits reload Timer Mode
ET0 = 1; //Enable timer0
//Init Uart
TH1 = 0xFF; //9600
TL1 = 0xFF; //
SCON = 0x50; //8bits Uart
PCON |= 0x80; //Clear SMOD.Enable SMOD
ES = 1; //Enable serial
WDTEnable(WDT_TIME_1137MS);
LED_RUN = 0; //Light run-led
runLedFlag = TRUE;
}
/**
* @brief Init coefficient
* @param None
* @retval None
* @author Whao
* @data 2014/03/05
*/
void InitCoeff(void)
{
cubeEnableFlag = TRUE; //Open the display
cubeUpdateFlag = FALSE;
cubeLayer = 0;
cubeGraphical = GRAPH_01;
cubeStage = 0;
}
/**
* @brief Init devices
* @param None
* @retval None
* @author Whao
* @data 2014/03/05
*/
void InitDevice(void)
{
CUBE_574_OE = 0; //Open the display
CUBE_DATA_BUS = 0x00;
//CUBE_ROW_BUS = 0xFF; //All Off
}
/**
* @brief Turn on Cube
* @param None
* @retval None
* @author Whao
* @data 2014/06/25
*/
void TurnOnCube()
{
if(cubeEnableFlag == FALSE)
{
cubeEnableFlag = TRUE;
CUBE_574_OE=0;
}
}
/**
* @brief Turn off Cube
* @param None
* @retval None
* @author Whao
* @data 2014/06/25
*/
void TurnOffCube()
{
if(cubeEnableFlag == TRUE)
{
cubeEnableFlag = FALSE;
CUBE_574_OE=1;
}
}
/**
* @brief Reloard new graphical
* @param None
* @retval None
* @author Whao
* @data 2014/06/29
*/
void CubeBufReload()
{
if(cubeUpdateFlag == TRUE)
{
cubeUpdateFlag = FALSE;
}
else
{
return;
}
/*Reload graphical or switch grahical*/
switch(cubeGraphical)
{
case GRAPH_01:
if( TRUE == Display01())
{
cubeGraphical = GRAPH_02;
cubeStage = 0xFF;
}
break;
case GRAPH_02:
if( TRUE == Display02())
{
cubeGraphical = GRAPH_03;
cubeStage = 0xFF;
}
break;
case GRAPH_03:
if( TRUE == Display03())
{
cubeGraphical = GRAPH_04;
cubeStage = 0xFF;
}
break;
case GRAPH_04:
if( TRUE == Display04())
{
cubeGraphical = GRAPH_01;
cubeStage = 0xFF;
}
break;
case GRAPH_05:
if( TRUE == Display05())
{
cubeGraphical = GRAPH_06;
cubeStage = 0xFF;
}
break;
case GRAPH_06:
if( TRUE == Display06())
{
cubeGraphical = GRAPH_07;
cubeStage = 0xFF;
}
break;
case GRAPH_07:
if( TRUE == Display07())
{
cubeGraphical = GRAPH_01;
cubeStage = 0xFF;
}
break;
default:
cubeGraphical = GRAPH_01;
cubeStage = 0xFF;
break;
}
cubeStage++;
}
/**
* @brief Light Cube Loop.
* @param None
* @retval None
* @author Whao
* @data 2014/06/25
*/
void CubeLoop(void)
{
/*Layer data load*/
CUBE_ROW_1 = 0;
CUBE_DATA_BUS = cubeBuf[cubeLayer][0];
CUBE_ROW_1 = 1;
CUBE_ROW_2 = 0;
CUBE_DATA_BUS = cubeBuf[cubeLayer][1];
CUBE_ROW_2 = 1;
CUBE_ROW_3 = 0;
CUBE_DATA_BUS = cubeBuf[cubeLayer][2];
CUBE_ROW_3 = 1;
CUBE_ROW_4 = 0;
CUBE_DATA_BUS = cubeBuf[cubeLayer][3];
CUBE_ROW_4 = 1;
CUBE_ROW_5 = 0;
CUBE_DATA_BUS = cubeBuf[cubeLayer][4];
CUBE_ROW_5 = 1;
CUBE_ROW_6 = 0;
CUBE_DATA_BUS = cubeBuf[cubeLayer][5];
CUBE_ROW_6 = 1;
CUBE_ROW_7 = 0;
CUBE_DATA_BUS = cubeBuf[cubeLayer][6];
CUBE_ROW_7 = 1;
CUBE_ROW_8 = 0;
CUBE_DATA_BUS = cubeBuf[cubeLayer][7];
CUBE_ROW_8 = 1;
CUBE_LAYER_BUS = ~(0x01<<cubeLayer);
/*Layer select*/
cubeLayer++;
if(cubeLayer == CUBE_LAYER_NUM )
{
cubeLayer = 0;
}
Delay1ms(3);
}
/**
* @brief This function initialize stc-mcu.
*/
void IdleProcess(void)
{
PCON |= 0x01;
}
/****************** (C) COPYRIGHT 2014 Whao-Technology *****END OF FILE******************/
复制代码
所有资料51hei提供下载:
光立方.zip
(401.09 KB, 下载次数: 17)
2018-11-3 08:21 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1