找回密码
 立即注册
查看: 338|回复: 0

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

[复制链接]

该用户从未签到

31

主题

45

回帖

362

积分

中级会员

积分
362
发表于 2023-9-15 14:18:38 | 显示全部楼层 |阅读模式
999990002-031-再复习一遍单片机驱动LED屏幕2023915-黄秋生2023915
抱歉,有点忘了,赶紧复习一下:
一:LED屏幕硬件驱动原理,自学
   仔细查看电路:64点(LED/行、16.其上有:三态门电路双向可控芯片、4位译码器芯片、24CMOS开关芯片(负责点亮、熄灭对应的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(纳秒)。:
2LED164灯需要最少的CPU时间=0.0285714285714286微秒*64=1.828571428571429微秒;
3LED3264灯需要最少的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作为1LED操作所需要的时间--每行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(双倍速)模式”。但亮度还是很低。
三款单片机从上到下分别为:STC12C5A60S2STC89C52STC32G12K128的显示效果如下图:
截图202309151414448086.jpg
附:STC32G12K128的部分指令所需的时钟数。
截图202309151417198038.jpg 截图202309151417299151.jpg 截图202309151417371688.jpg 截图202309151417488510.jpg 截图202309151418301950.jpg


回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-6-14 15:45 , Processed in 0.071827 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表