完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
` 相信很多朋友都喜欢LED点阵屏吧,可是对于初学者而言,可能点阵的驱动会有点困难。现在就此讲解一下点阵的驱动方法。上几个图看看我做的点阵的效果吧。首先上个单色点阵的吧,
,这个有原理图,那么就给大家看看原理图吧,
这个是595芯片,串入并出,作为列输出,注意这个芯片有锁存输出,也就是说只有锁存脚有脉冲信号时输出才会改变,再看看行输出,就是控制选通每一行的,
,这个芯片和595主要的区别是没有锁存输出,为什么行不要锁存输出呢?因为每次选通一行,每来一个时钟信号改变一行,若行为低电平有效,164上电默认输出为1,则先移入一个0进去,然后一直移入1,直到16行移完,再循环,这里没来一个时钟输出都会变一下,而如果列输出也这样的话,列数据是经过16次的变化才得到最终的正确数据,而不是一次得到一个正确数据。然后继续下一个啊,这个是双色点阵
,这个其实是红色、绿色、红绿结合(橙色),这个我没原理图,但是这些都可以做,现在要自己分析了,不要原理图!对于大部分点阵都是逐行扫描的,行扫描一般都是A、B、C、D四根线组成的,再经过译码形成16根行选通信号线,再加上列数据输入线、列时钟线、列锁存线基本就没什么线了,再加个OE吧,这个用来控制亮度的,红、绿各有自己的数据线,但其他线都是公用的,先查查里面用的芯片,再先选通一行,再写入一个字节数据,看显示出来的和你的数据是怎么样的。下面展示一下彩色点阵,有三原色的,RGB,扫描方式是分上下两屏同时16行扫描,数据断独立,控制端共用,无原理图
|
|
相关推荐
143个回答
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
感觉好高深啊!
|
|
|
|
|
|
|
|
|
|
|
|
小白先来赞一个
|
|
|
|
|
|
谢谢楼主分享!
|
|
|
|
|
|
看的不明白啊,能不能详细点了
|
|
|
|
|
|
什么程序???
|
|
|
|
|
|
楼主人很不错奥!热心人啊
|
|
|
|
|
|
牛啊!顶起!!!!!!!!!!!!!!!!
|
|
|
|
|
|
制作广告灯箱用的吗?呵呵。。。。。。
|
|
|
|
|
|
学习学习,谢谢分享!
|
|
|
|
|
|
|
|
|
|
|
|
麻麻说看帖回帖是一种美德
|
|
|
|
|
|
本帖最后由 zk16 于 2014-7-16 21:29 编辑
几年前用4个595做过16*16点阵,楼主的比我强多了! 赞!以下测试程序,高手免笑: //本程序为在16*16点阵上固定显示一个“南”字, 2个595 控制行,2个595 控制列,主芯片89S52, 晶振12M #include < reg52.h > #include < intrins.h > #define uchar unsigned char #define uint unsigned int uint hsj,lsj; //行列数据 ***it SCLK_595=P1^0; //定义时钟端 ***it RCK_595=P1^1; //输出锁存器控制脉冲 ***it OE_595=P1^2; //定义输出使能端 ***it HDATA_595=P1^5; //行数据线 ***it LDATA_595=P1^6; //行数据线 uint HZ[]={0xFEFF,0xFEFB,0x0001,0xFEFF,0xFDFF,0xC003,0xDBDB,0xDDBB, 0xD00B,0xDEFB,0xC003,0xDEFB,0xDEFB,0xDEEB,0xDEF7,0xFFFF};/*"南",0*/ void Delay(unsigned int num) //延时 { while( --num ); } void WR_595(unsigned int dath,unsigned int datl) //16位行列数据写入 { uchar x; RCK_595=0; for(x=0;x<16;x++) { HDATA_595=(dath&0x8000); LDATA_595=(datl&0x8000); SCLK_595=0; _nop_(); _nop_(); SCLK_595=1; dath<<=1; //行数据左移 datl<<=1; //列数据左移 } } void OUT_595() //数据输出 { RCK_595=1; _nop_(); _nop_(); RCK_595=0; } void play() //点阵显示 { OE_595=1; WR_595(hsj,lsj); OUT_595(); OE_595=0; } main() { int i; while(1) { hsj=0x8000; //从第一行开始显示 for(i=0;i<16;i++) { lsj=HZ; play(); //点阵显示 Delay(50); //延时 hsj=hsj>>1; //行数据右移 } } } |
|
|
|
|
|
碉堡了!!!!!!!!!!!!
|
|
|
|
|
|
佩服,好羡慕楼主
|
|
|
|
|
|
有空学一学吧,我看有人弄点阵圆盘时钟的,不知道楼主知道不
|
|
|
|
|
|
|
|
|
|
|
|
不错!!!!!!!!!!!
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
435 浏览 0 评论
464 浏览 0 评论
450 浏览 0 评论
806 浏览 0 评论
RT-Thread与英飞凌(infineon)合作得板子PSOC 6 板子学习
748 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
17018 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 15:06 , Processed in 1.505767 second(s), Total 83, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2893