注:本程序已验证可用,但只对本店模块做过适配测试,其他模块我们没法保证一定能用
实物参考链接 直戳跳转
一、程序功能说明
二、基本参数
1、参数
主要注意供电电压,IIC引脚高低电平电压范围
2、引脚说明
三、通信协议说明
1、起始信号
时序图:
代码:
//IIC Start
void I2cStart()
{
HT16K33_SDA_H;
HT16K33_SCL_H;
HT16K33_SDA_L;
HT16K33_SCL_L;
}
2、停止信号
时序图:
代码:
void I2cStop()
{
HT16K33_SCL_H;
HT16K33_SDA_L;
HT16K33_SDA_H;
}
3、发送数据与等待应答
时序图:
代码:
unsigned char I2cSendByte(unsigned char dat)
{
unsigned char a=0,b=0;//
for(a=0;a<8;a++)//要发送8位,从最高位开始
{
if(dat>>7)
{
HT16K33_SDA_H;
}
else
{
HT16K33_SDA_L;
}
dat=dat<<1;
HT16K33_SCL_H;
HT16K33_SCL_L;
}
HT16K33_SDA_H;
HT16K33_SCL_H;
while(HT16K33_SDA)//等待应答,也就是等待从设备把SDA拉低
{
b++;
if(b>200) //如果超过没有应答发送失败
{
//HT16K33_SCL_L;
return 0;
}
}
HT16K33_SCL_L;
return 1;
}
四、部分代码说明
1、引脚定义
需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改
STC89C52RC+4位数米字码管(HT16K33)
sbit HT16K33_SCL=P1^0;
sbit HT16K33_SDA=P1^1;
#define HT16K33_SCL_L HT16K33_SCL=0
#define HT16K33_SCL_H HT16K33_SCL=1
#define HT16K33_SDA_L HT16K33_SDA=0
#define HT16K33_SDA_H HT16K33_SDA=1
STM32F103C8T6+4位数米字码管(HT16K33)
#define SCL_GPIO_PORT GPIOA /* GPIO端口 */
#define SCL_GPIO_CLK RCC_APB2Periph_GPIOA /* GPIO端口时钟 */
#define SCL_GPIO_PIN GPIO_Pin_0
#define SDA_GPIO_PORT GPIOA /* GPIO端口 */
#define SDA_GPIO_CLK RCC_APB2Periph_GPIOA /* GPIO端口时钟 */
#define SDA_GPIO_PIN GPIO_Pin_1
#define HT16K33_SCL_L GPIO_ResetBits(SCL_GPIO_PORT,SCL_GPIO_PIN)
#define HT16K33_SCL_H GPIO_SetBits(SCL_GPIO_PORT,SCL_GPIO_PIN)//SCL
#define HT16K33_SDA_L GPIO_ResetBits(SDA_GPIO_PORT,SDA_GPIO_PIN)//SDA
#define HT16K33_SDA_H GPIO_SetBits(SDA_GPIO_PORT,SDA_GPIO_PIN)
2、亮度调节
如需改显示亮度可改Brilliance宏定义,范围0-15
//亮度调节宏定义,范围0-15
#define Brilliance 8
五、相关资料链接
STC89C52RC程序下载 直戳跳转
STM32F103C8T6程序下载
串口下载 直戳跳转
ST-LINK下载 直戳跳转
J-LINK下载 直戳跳转
DAP-LINK下载 直戳跳转
六、视频效果展示与程序资料获取
实物参考链接 直戳跳转
七、注意事项
1、VCC GND请勿接反,接反易烧
2、显示异常时,排除接线接触不良/3、同程序换其他同类屏幕后需要按单片机复位才会正常显示
4、用单片机驱动时Ji2c接高电平或者接3.3V或5V(STC89C52RC单片机不接可能异常)
九、接线说明
可参考程序main.c最上面接线说明