include“TM 1650.h”unsigned charcode [ 20 ]={0x3f,0x06,0x5b,0x4F,0x66,0x6d,0x7D,0x 07,0x7f,0x6F,0x6F,0x7D 什么? 什么? 什么?
__ASMvoidnop(void ) )。
{
NOP
}
voidDelay_us(u32I )/us? 什么?
{
for (; i0; I)
{
__nop (;
//nop (;
//nop (;
//nop (;
//nop (;
}
}
voidI2cstart(void )//? 什么? 什么? 什么?
{
CLK_H;
DIO_H;
elay_us(5;
DIO_L;
}
voidI2cask(void )//ACK? 什么?
{
u8 timeout=1;
CLK_H;
elay_us(5;
CLK_L;
//while((dio ) ) timeout=100 ) )
{
timeout;
}
elay_us(5;
CLK_L;
}
VoidI2cstop(Void )//? 什么? 什么? 什么?
{
CLK_H;
DIO_L;
elay_us(5;
DIO_H;
}
voidI2cwrbyte(u8onebyte ) /? 什么? 什么? 什么? 什么? 什么? 什么? 什么? 什么? 什么? 什么? 什么?
{
u8 i;
CLK_L;
dlay_us(1);
for(I=0; i8; I )
{
if(onebyte0x80 ) DIO_H; else DIO_L; oneByte=oneByte1; CLK_L; elay_us(5; CLK_H; elay_us(5; CLK_L; }
voidTM1650_set(U8add,u8 dat ) /? 什么? 什么? 什么? 什么?
{
I2cwrbyte(add;
I2Cask (;
I2cwrbyte(dat;
I2Cask (;
I2CStop (;
}
voiddisplay(U8add,u8 dat ) )。
{
开关(add ) {
case1:TM1650_set(0x68,CODE[dat] );
黑;
case2:TM1650_set(0x6a,CODE[dat] );
黑;
case:TM1650_set(0x6c,CODE[dat] );
黑;
case4:TM1650_set(0x6e,CODE[dat] );
黑;
默认:
黑;
}
}
voiddisplay_two(U8dat,u8 dat1) )。
{
显示(1,dat/10 );
显示(2,dat );
显示(3,dat1/10 );
display(4,dat1;
}
voiddisplay_phase(U8dat,u8 dat1) )。
{
if(dat13 ) dat1-=3;
显示(1,16 );
显示(2,dat );
显示(3,dat1/10 );
display(4,dat1;
}
voiddisplay_set(U8dat,u8 dat1) )。
{
显示(1,15;
显示(2,dat );
显示(3,dat1/10 );
display(4,dat1;
}
. h文件
ifndef http://www.Sina.com/define http://www.Sina.com/include“STM 32 f0x.h”include“STM 32 f0x _ Tim.h”defines8chardefineu8unsignedchardefines 16 intdefineu 16 unsignedintdedefinttttted s(gpioa,GPIO_Pin_0) define CLK_L GPIOhldlq,GPIO_Pin_0) definedine GPIO_Pin_1) define DIO_L GPIOhldlq
unsignedCharscan_key(void;
voiddisplay(unsignedcharadd,unsigned char dat );
void display _ two (unsignedchardat,unsigned char dat1;
voiddisplay_phase(U8dat,u8 dat1);
voiddisplay_set(U8dat,u8 dat1);
endif