#include "user\h\macro.h"
#include "..\..\LU_SDK\board\h\TM1640.h"
#include "intrins.H"
#define _1640_CLK P11
#define _1640_DIO P14
u8 idata dis_1640[16];
//自动写
static void start()//开始
{
_1640_DIO=1;
_nop_();
_1640_CLK=1;
_nop_();
_1640_DIO=0;
_nop_();
_1640_CLK=0;
_nop_();
}
static void stop()//停止
{
_1640_CLK=0;
_nop_();
_1640_DIO=0;
_nop_();
_1640_CLK=1;
_nop_();
_1640_DIO=1;
_nop_();
}
static void write_data(u8 dat)
{
u8 i;
for(i=0;i<8;i++)
{
_1640_CLK=0;
if(dat&0x01){
_1640_DIO=1;
}
else{
_1640_DIO=0;
}
dat>>=1;
_nop_();
_nop_();
_nop_();
_1640_CLK=1;
}
}
static void write_command(u8 command)
{
start();
_nop_();
write_data(command);
_nop_();
stop();
}
static void auto_write()
{
u8 i;
start();
_nop_();
write_data(0xC0);
for(i=0;i<16;i++)
{
write_data(dis_1640[i]);
}
_nop_();
stop();
}
void Write_All_Data_1640()
{
write_command(0x40);
auto_write();
write_command(0x8a);
}
评论0