使用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]);
- }
- }
- }
结果如下图:

如有什么问题欢迎指出来,有什么模块可以联系博主,博主会查询资料分享出来。