#include "TM1638.h"
//************************************************************
#define DISP_CMD0 0x00 //4位13段
#define DISP_CMD1 0x01 //5位12段
#define DISP_CMD2 0x02 //6位11段
#define DISP_CMD3 0x03 //7位10段
//执行DISP_CMDx会把显示亮度关掉,但显示内容不变
//************************************************************
//************************************************************
#define cmdwr1 0x40 //地址自动加一
#define cmdwr2 0x44 //固定地址
#define cmdwr3 0x40 //mcu写给TM1638
#define cmdwr4 0x42 //mcu读按键值(TM1638)至少延时1us
//************************************************************
#define DISP_OFF 0X80 //关
#define DISP_LV0 0X88 //最暗0x88--0x8F
#define DISP_COMMAND 0x80 //小数点
#define ADDR_COMMAND 0XC0 //地址从0x00开始
//*************************************************************
//共阴数码管显示代码
u8 code_tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
void TM1638_Write(unsigned char DATA){//写数据函数(没有STB—ENABLE)
u8 ji;
for(ji=0;ji<8;ji++)
{
CLK=0;
if(DATA&0X01) DIO=1;
else DIO=0;
DATA=DATA>>1;
CLK=1;
}
}
/*u8 TM1638_Read(void){ //读单个数据DIO要设为输入
u8 ir,Datar=0x00;
DIN=1;
for(ir=0;ir<8;ir++)
{
Datar>>=1;
CLK=0;
if(DIN)
Datar|=0x80;
CLK=1;
}
return Datar;
}*/
void Write_COM(unsigned char cmd){ //发送命令字
STB=0;
TM1638_Write(cmd);
STB=1;
}
/*u8 TM1638_ReadKey(void) //读按键值D