999990002-031-再复习一遍单片机驱动LED屏幕2023年9月15日-黄秋生2023年9月15日 抱歉,有点忘了,赶紧复习一下: 一:LED屏幕硬件驱动原理,自学: 仔细查看电路:64点(LED)/行、16行.其上有:三态门电路双向可控芯片、4位译码器芯片、24位CMOS开关芯片(负责点亮、熄灭对应的LED小灯)、24位移位寄存器芯片。 二:工作原理: 1,移位寄存器ic在每次上升沿就接收一个数据(0或者1)并移位存储,一共要64次上升沿存储一行完整的数据; 2,单片机输出控制4位译码器数据(共16种); 3,单片机控制LED屏的oe为低电平,制定LED行点亮; 4,保持点亮一段时间; 5,逐行如此操作循环 三:下面以单片机STC32G12K128举例介绍计算各部分运行时间及亮度。 1:单片机使用内部震荡源R/C振荡器,35MHZ。一个震荡周期=1秒/35MHZ=0.0285714285714286微秒=28.5714285714286ns(纳秒)。: 2:LED的1行64灯需要最少的CPU时间=0.0285714285714286微秒*64=1.828571428571429微秒; 3:LED的32行64灯需要最少的CPU时间==1.828571428571429微秒*32行=58.51428571428573微秒; 4:假设采取25帧/秒的刷新率,则每帧图片占用40毫秒(40000微秒);每行LED可以分配40毫秒(40000微秒)/32行=12502微秒; 5:每行LED点亮时间=1250微秒-58.51428571428573微秒=1,191.485714285714微秒 6:由于一个指令需要1/3~10个机器周期(1T单片机一个震荡周期就是一个机器周期),可以乘以一个系数3作为1行LED操作所需要的时间--每行LED点亮时间=1250微秒-58.51428571428573微秒*3系数=1,074.457142857143微秒; 7:每行LED点亮时间占比总分配时间=1,074.457142857143微秒/1250微秒=0.8595657142857142=85% 由于点亮LED的时间占比很大,亮度很高的啦 四:介绍单片机STC89C52,晶振11.0592MHZ,驱动 1:简单计算:所需要的时间--每行驱动LED点亮时间=58.51428571428573微秒*3系数*70倍=12,288微秒;是1250微秒的10倍,因此,屏幕明显闪烁,亮度也是很暗。 2:解决闪烁:在烧录时选择“使能6T(双倍速)模式”。但亮度还是很低。 三款单片机从上到下分别为:STC12C5A60S2、STC89C52、STC32G12K128的显示效果如下图:
附:STC32G12K128的部分指令所需的时钟数。
|