蓝桥杯嵌入式竞赛-数码管学习笔记(个人备份,以便日后查找)
一、硬件原理1.1 数码管5161AS数码管引脚图:5161AS数码管原理图:1.2 74HC595芯片《74HC595芯片介绍和使用详解》:74HC595芯片介绍和使用详解【干货】_枉少年不纯洁的博客-CSDN博客_74hc595^v9^control,157^v4^control&utm_term=74hc595&spm=1018.2226.3001.4187注:74HC595
一、硬件原理
1.1 数码管
5161AS数码管引脚图:

5161AS数码管原理图:

1.2 74HC595芯片
《74HC595芯片介绍和使用详解》:
74HC595芯片介绍和使用详解【干货】_枉少年不纯洁的博客-CSDN博客_74hc595^v9^control,157^v4^control&utm_term=74hc595&spm=1018.2226.3001.4187
注:74HC595与74ls595是两种不同的芯片,前者为CMOS电路,后者为TTL电路。74ls595是简单的数据分配器,不需要CP脉冲,也不需要同步;74HC595需要同步传输。在实际工作原理和驱动程序上,两者区别不大。
时序图:

图片来源:74系列595芯片使用详解(包含电路设计要点与驱动程序示例)_Naisu Xu的博客-CSDN博客_74ls595
二.编码说明
2.1 数码管驱动编码
八位二进制数据控制一个数码管,从高位到低位依次控制h、g、f、e、d、c、b、a,1亮0熄。
逆序编码原因:最先进入移位寄存器的数据为控制最后一个LED的信号,因此需逆序编码。当全部数据写入驱动芯片,并经过移位寄存器移位后,各位数据将是顺序排列。
2.2十六进制数编码参考
Seg7[17] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0x00};//依次为 0、1、2、3、4、5、6、7、8、9、A,b,C,d,E,F,空
三、驱动代码参考
3.4 三位数码管显示驱动参考代码
void SEG_DisplayValue(u8 Bit1, u8 Bit2, u8 Bit3)
{
u8 i = 0;
u8 code_tmp = 0;
RCLK_L;//存储寄存器时钟置0
code_tmp = Seg7[Bit3];//最低位数码管数据应首先写入,原因同“逆序编码原因”
for(i = 0; i < 8; i++)
{
SCK_L;
if(code_tmp & 0x80)
{
SER_H;
}
else
{
SER_L;
}
code_tmp = code_tmp << 1;
SCK_L;
SCK_H;//移位寄存器时钟置1,将高位数据向低位移一位
}
code_tmp = Seg7[Bit2];
for(i = 0; i < 8; i++)
{
SCK_L;
if(code_tmp & 0x80)
{
SER_H;
}
else
{
SER_L;
}
code_tmp = code_tmp << 1;
SCK_L;
SCK_H;
}
code_tmp = Seg7[Bit1];
for(i = 0; i < 8; i++)
{
SCK_L;
if(code_tmp & 0x80)
{
SER_H;
}
else
{
SER_L;
}
code_tmp = code_tmp << 1;
SCK_L;
SCK_H;
}
RCLK_L;
RCLK_H;//存储寄存器时钟置1,将移位寄存器数据逐位写入存储寄存器并从输出引脚输出
}
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐
所有评论(0)