金牌会员
 
- 积分
- 1477
- 金钱
- 1477
- 注册时间
- 2014-5-21
- 在线时间
- 342 小时
|

楼主 |
发表于 2014-6-3 08:20:47
|
显示全部楼层
*****TM1642.C****
#include "tm1642.h"
#include <math.h>
#include "stdint.h"
#include "spi.h"
#include "delay.h"
#include "stm32f10x_spi.h"
int8_t rdBuffer[5] = {0};
int8_t wrBuffer[8] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
int8_t command[8] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
int8_t __I seg_code_cc[] =
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,//0x3f,0x79,0x71,0x37,0x50,0x00,
};//0 1 2 3 4 5 6 7 8 9 O E F n r
void segBufCha (int16_t dat)
{
int8_t i,j;
int16_t temp = dat;
j = 1 + (int)log10(dat);
for ( i = 0; i < 8; i++ )
{
wrBuffer = 0;
}
for ( i = 0; i < j; i++ )
{
if (seg_code_cc[ temp % 10 ]<0x40)
wrBuffer [ i * 2 ] = seg_code_cc[ temp % 10 ];
else
wrBuffer [ i * 2 ] = seg_code_cc[ temp % 10 ]-0x40;
wrBuffer [ i * 2 + 1 ] = 0x01;
temp = temp / 10;
}
}
void displayLED (void)
{
int8_t i,k;
wrBuffer[0] = BIT7_SEG10;//????????????
SPI_CS_RESET;
for ( k = 0; k < 10; k++ );
SPI1_ReadWriteByte(wrBuffer[0]);
SPI_CS_SET;
wrBuffer[0] = DAT_WR | ADD_INC;//?????????????????÷?????·×???????1
SPI_CS_RESET;
for ( k = 0; k < 10; k++ );
SPI1_ReadWriteByte(wrBuffer[0]);
SPI_CS_SET;
//delay_ms(500);
wrBuffer[0] = 0xC0;//???????·00H????
SPI_CS_RESET;
for ( k = 0; k < 10; k++ );
SPI1_ReadWriteByte(wrBuffer[0]);
SPI_CS_SET;
// delay_ms(500);
SPI_CS_RESET;
for ( k = 0; k < 10; k++ );
for ( i = 0; i < 8; i++ )
{
SPI1_ReadWriteByte(wrBuffer); //????????
}
SPI_CS_SET;
wrBuffer[0] = CUR_14_16|DIS_ON;//?è?????÷±?14/16,??????
SPI1_ReadWriteByte(wrBuffer[0]);
}
/* void segBufErr (void)
{
wrBuffer[1] = 0x50;
wrBuffer[3] = 0x50;
wrBuffer[5] = 0x79;
}
void segBufOn (void)
{
wrBuffer[1] = 0x37;
wrBuffer[3] = 0x3f;
wrBuffer[5] = 0x00;
}
void segBufOff (void)
{
wrBuffer[1] = 0x71;
wrBuffer[3] = 0x71;
wrBuffer[5] = 0x3f;
}
void segBufNull (void)
{
wrBuffer[1] = 0x00;
wrBuffer[3] = 0x00;
wrBuffer[5] = 0x00;
}*/
/*void ledCtrl (int8_t ledValue,_Bool OnOff)
{
if ( OnOff == 1 )
{
wrBuffer[7] |= ledValue;
}
else if ( OnOff == 0 )
{
wrBuffer[7] &= ~ledValue;
}
}
*/ |
|