一、学习内容:
1.LED点阵屏介绍


双色点阵实际可以显示三种颜色,因为红绿同时亮合成黄色
三色点阵有红绿蓝(光的三原色),可以显示各种各样的颜色
按像素一般是8的倍数,使内存不浪费

———————————————————————————————————————————
2.显示原理
PPT上为共阳极接法


———————————————————————————————————————————
3.74HC595
OE_:给低电平有效,接GND
SRCLR_:串行清零端,给低电平有效,接Vcc,使其不清零数据


SER(串行数据口):输入数据
SERCLK(上升沿移位):使数据一个个移位
RCLK(上升沿锁存):开大门一次性全部转移
全流程:先将最高位(QH) 数据写进串行数据口,控制时钟给SERCLK一个上升沿,数据被写入,同时将SERCLK清零,回到低电平。从最高位到最低位循环往复,直到8位数据全部写进,再控制时钟给RCLK一个上升沿,将左边的8位数据全部转移到输出缓存(右边),同时将RCLK清零
IO口扩展:当右边的输出缓存全被填满,还想继续向SER里输入数据,可以在QH’处接别的移位寄存器的SER,一直接一直接

代码如何实现74HC595功能
让数据与上(1000 0000>>i),只对特定一位保留,其余全部清零
每次输入完那一位,SCK=1,给一个上升沿(1)将数据移位,再把SCK清零回到低电平。待八次循环结束,给一个上升沿将数据全部转移,再把RCK清零回到低电平

———————————————————————————————————————————
4.sfr sbit
sfr:声明继承这个地址
sbit:声明地址中的某一位

———————————————————————————————————————————
5.动画逻辑
流动字幕:先做一个长长的完整的静态图形,再间隔几帧,整个显示屏范围向右移动一列,达到流动效果
逐帧动画:需要抽帧效果,先做出每一帧所需的静态图形,再让整个显示屏范围向右移动一个显示屏范围,有画面跳跃的感觉
———————————————————————————————————————————
二、实操注意点
1.sbit改用宏定义
本来想用sbit来声明P34-P36,但这三个引脚没有包含在标准位寻址的地址区间内,低4位不是0或8,硬件电路上不支持单独对它们进行位操作,所以改用define宏定义
#define后面不加分号
2.接线帽要接到OE与GND中间灯才亮,因为OE_低电平有效

3.底层函数不用声明在.h文件里
像void _74HC595_WriteByte(unsigned char Byte)函数,这已经是一个完整的功能,在主函数中不需要调用
4.8位赋给1位的逻辑?
SER=Byte&(0x80>>i),很明显,左边一位,右边八位,如果此时右边不全为0,SER将被赋予1,如果右边全为0,SER=0。这可以用来一位位的赋值。
5.函数不能以数字开头,得加下划线
———————————————————————————————————————————
三、代码展示




9-1 LED点阵屏显示图形
——————————————————-这是分界线——————————————————————






9-2 LED点阵屏显示动画
9-2 LED点阵屏显示动画
———————————————————————————————————————————
Delay之前日志有
留个疑问:为什么令P25=0可以消蜂鸣器声音,BEEP有接在P25上吗
2026.9.11完课
2026.9.12整理完毕
网硕互联帮助中心






评论前必须登录!
注册