一、前言
使用STM32F103C8T6作为主控,控制16×16的点阵显示单个汉字。点阵是通过4个74HC595 ic进行控制的(学习笔记整理)。
三、硬件连接
74HC595引脚连接如下表 :
STM32 | 74HC595 |
PA12 | DS |
PA13 | STCP |
PA14 | SHCP |
四、程序例程
1、单个74HC595的程序参考STM32实现74HC595控制
2、74HC595级联显示函数
void HC595_Send_Byte(u8 dat1,u8 dat2,u8 dat3,u8 dat4)
{
SRCLK = 1;
RCLK = 1;
HC595_Send_Data(dat1);
HC595_Send_Data(dat2);
HC595_Send_Data(dat3);
HC595_Send_Data(dat4);
RCLK = 0;
delay_us(2);
RCLK = 1;
delay_us(2);
RCLK = 0;
}
3、主控函数
u8 ledduan1[]=
{
/*-- 文字: 庆 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0xFC,0x04,0x84,0x84,0x84,0x85,0xF6,0x84,0x84,0x84,0x84,0x84,0x04,0x00,
0x40,0x30,0x0F,0x80,0x40,0x20,0x18,0x06,0x01,0x06,0x18,0x20,0x40,0x80,0x80,0x00,
};
int main(void)
{
int i = 0;
Sys_Delay_Init();
Usart1_Pin_Init(115200);
printf("初始化成功\r\n");
HC595_Pin_Init();
while(1)
{
for (i = 0; i < 16; i++) {
HC595_Send_Byte(~ledwei[i+16],~ledwei[i],ledduan1[16+i],ledduan1[i]);
}
}
}
五、实验结果
结果如下图:
如有什么问题欢迎指出来,有什么模块可以联系博主,博主会查询资料分享出来。