PH10全彩 LED屏 64*16 点阵显示4个汉字调试心得
2016-02-01 17:31
239 查看
2016年1月份一直调试 32*16 点阵的LED显示面板,到今天为止 总算完成了最困难的一部分,现在做一个小小的总结。
1. MBI5120+PR4538驱动调试
MBI5120是串并转换芯片,这里用作列显控制用,PR4538则用作行显控制。
行列显示必须配合默契,方能正常显示汉字或者图形。
2. LED屏扫描方式与刷新频率
这次用到的 32*16 点阵的LED显示面板是4扫屏,意思是整个屏幕分为4次扫描完成;
一块 64*16 点阵屏( 两块32*16 点阵串联组成)共1024 dot,
全彩模组分上下两个部分,即一个部分为512 dot,
4扫屏每次扫描点数为512/4=128dot,但是一次要发2组数据(上下两个部分)
就是时钟数位128,但是数据位数为128+128 bits
关于刷新频率,太低会有闪烁,太快数据显示不过来,显示效果也不好,
这里经过反复测试最后的刷新频率定为60HZ左右,效果较好。
3. 下面给大家分享一下主循环的架构
void Loop_Display(void)
{
unsigned char i = 0;
if(Delay300us_Flag)
{
for(i=0;i<16;i++)
{
send_buffer_a[i] = Save11[Delay_Cnt%4].Msk[i];
send_buffer_b[i] = Save22[Delay_Cnt%4].Msk[i];
send_buffer_m1[i] = Save11[Delay_Cnt%4].Msk[i];
send_buffer_m2[i] = Save22[Delay_Cnt%4].Msk[i];
send_buffer_l1[i] = Save11[Delay_Cnt%4].Msk[i];
send_buffer_l2[i] = Save22[Delay_Cnt%4].Msk[i];
send_buffer_r1[i] = Save11[Delay_Cnt%4].Msk[i];
send_buffer_r2[i] = Save22[Delay_Cnt%4].Msk[i];
}
Color_Display(send_buffer_a,send_buffer_b,send_buffer_m1,send_buffer_m2,send_buffer_l1,send_buffer_l2,send_buffer_r1,send_buffer_r2,Green);
HC138_scan(Delay_Cnt);
Delay300us_Flag = 0;
Delay_Cnt++;
}
}
1. MBI5120+PR4538驱动调试
MBI5120是串并转换芯片,这里用作列显控制用,PR4538则用作行显控制。
行列显示必须配合默契,方能正常显示汉字或者图形。
2. LED屏扫描方式与刷新频率
这次用到的 32*16 点阵的LED显示面板是4扫屏,意思是整个屏幕分为4次扫描完成;
一块 64*16 点阵屏( 两块32*16 点阵串联组成)共1024 dot,
全彩模组分上下两个部分,即一个部分为512 dot,
4扫屏每次扫描点数为512/4=128dot,但是一次要发2组数据(上下两个部分)
就是时钟数位128,但是数据位数为128+128 bits
关于刷新频率,太低会有闪烁,太快数据显示不过来,显示效果也不好,
这里经过反复测试最后的刷新频率定为60HZ左右,效果较好。
3. 下面给大家分享一下主循环的架构
void Loop_Display(void)
{
unsigned char i = 0;
if(Delay300us_Flag)
{
for(i=0;i<16;i++)
{
send_buffer_a[i] = Save11[Delay_Cnt%4].Msk[i];
send_buffer_b[i] = Save22[Delay_Cnt%4].Msk[i];
send_buffer_m1[i] = Save11[Delay_Cnt%4].Msk[i];
send_buffer_m2[i] = Save22[Delay_Cnt%4].Msk[i];
send_buffer_l1[i] = Save11[Delay_Cnt%4].Msk[i];
send_buffer_l2[i] = Save22[Delay_Cnt%4].Msk[i];
send_buffer_r1[i] = Save11[Delay_Cnt%4].Msk[i];
send_buffer_r2[i] = Save22[Delay_Cnt%4].Msk[i];
}
Color_Display(send_buffer_a,send_buffer_b,send_buffer_m1,send_buffer_m2,send_buffer_l1,send_buffer_l2,send_buffer_r1,send_buffer_r2,Green);
HC138_scan(Delay_Cnt);
Delay300us_Flag = 0;
Delay_Cnt++;
}
}
相关文章推荐
- Codeforces Round #341 (Div. 2) D. Rat Kwesh and Cheese
- 最简单的android弹出对话框
- oracle top newid()
- Service 开机接受广播,启动服务的问题
- jQuery照片墙相册
- 认识kibana
- 因台湾“台独”势力猖獗,我国著名白癜风非皮肤病理论专家楚海龙先生将取消前受邀赴台参会计划
- hdu1073
- C语言Windows程序设计->第三天->属于自己的窗口
- log4cplus使用备忘
- 1.4-原型
- connecting to controller ------LeapMotion API
- 3 广义逆矩阵
- 算法训练 集合运算
- 渲染农场
- bzoj2762 不等式组 树状数组
- Android 编码规范及代码风格
- 寄存器操作
- Java基础知识梳理
- Android 自定义Dialog以及参数的传递