yzqlpc 发表于 2023-9-15 14:18:38

-031-再复习一遍单片机驱动LED屏幕2023年9月15日

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的部分指令所需的时钟数。


页: [1]
查看完整版本: -031-再复习一遍单片机驱动LED屏幕2023年9月15日