⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1638.h

📁 定时打铃控制器
💻 H
字号:
#define uchar unsigned char
#define uint  unsigned int

#define DIO_1 GPIO_WriteHigh(GPIOB, GPIO_PIN_2) //PB2
#define DIO_0 GPIO_WriteLow(GPIOB, GPIO_PIN_2)
#define CLK_1 GPIO_WriteHigh(GPIOB, GPIO_PIN_1) //PB1
#define CLK_0 GPIO_WriteLow(GPIOB, GPIO_PIN_1)
#define STB_1 GPIO_WriteHigh(GPIOB, GPIO_PIN_0) //PB0
#define STB_0 GPIO_WriteLow(GPIOB, GPIO_PIN_0)

#define DIO_IN     GPIO_Init(GPIOB, GPIO_PIN_2, GPIO_MODE_IN_FL_IT)
#define DIO_OUT    GPIO_Init(GPIOB, GPIO_PIN_2, GPIO_MODE_OUT_PP_HIGH_FAST)
#define DIO_STATE  GPIO_ReadInputData(GPIOB)&0x04

void Delay(u16 nCount)
{
  /* Decrement nCount value */
  while (nCount != 0)
  {
    nCount--;
  }
}

void TM1638_Write(uchar dat)//发送一个字节。先发送低位
{
       uchar i;
       DIO_OUT;      //DIO 设为输出口
       for(i=0;i<8;i++)//拉低,给数据,拉高,再拉低,给数据,拉高
       {
           CLK_0;
           if(dat&0x01)//取低位
              DIO_1;
           else DIO_0;
           Delay((u16)10);
           dat>>=1;
           Delay((u16)10);  
           CLK_1;
       }     
}

void Write_COM(unsigned char cmd)		//发送命令字
{
	STB_0;
	TM1638_Write(cmd);
	STB_1;
}

void Write_DATA(uchar add,uchar DATA)		//指定地址写入数据
{
	Write_COM(0x44);//设置为写数据,普通模式
	STB_0;
	TM1638_Write(0xc0|add);
	TM1638_Write(DATA);
	STB_1;
}

uchar TM1638_Read(void) //读寄存器、、、、、、、、、、、
{
        uchar i,temp=0;
        DIO_IN;  
        for(i=0;i<8;i++)
        {
          temp>>=1;
          CLK_0;
          if(DIO_STATE)      
            temp|=0x80;
          CLK_1;
        }
        DIO_OUT;
        return temp;
}



void init_TM1638(void)//初始化1638
{
	unsigned char i;
	Write_COM(0x8A);//亮度,开显示
	Write_COM(0x40); //写 数据命令  01000000,,写数据到缓存,地址自动增加,普通模式
	STB_0;
	TM1638_Write(0xc0);//写地址命令 11000000  起始地址
	for(i=0;i<16;i++)
	TM1638_Write(0x00);//清空显存
	STB_1;    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -