标题: 求助!51单片机+10片 74hc595 控制16*64点阵屏显示 [打印本页]

作者: hqboy    时间: 2017-5-12 23:07
标题: 求助!51单片机+10片 74hc595 控制16*64点阵屏显示
目前线路走向是第一片595依次级联到第10片595  第9片与第10片分别控制8片4953来驱动点阵的行,前面8片595分别控制16片点阵的列. 点阵分布是:分为2行 第9片控制4片4953来驱动第一行8块点阵屏,第10片4953控制4片4953来驱动第二行8块点阵屏。 前面8片分别控制列来驱动点阵屏。

595的第11,12,13,14脚分别并联引入到单片机来控制。
搞不懂怎么控制行,控制列的程序。 请老师指点下。比如 控制16片点阵的亮与灭。麻烦老师以上面的描述写个例子。万分感谢。
作者: zl2168    时间: 2017-5-13 08:30
本帖最后由 zl2168 于 2017-5-13 15:54 编辑

给你个参考案例。实例66  LED 16×16点阵扫描显示汉字

Proteus仿真一下,确认有效。


以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1.书中电路和程序设计有详细说明,程序语句条条有注解仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。

作者: yzwzfyz    时间: 2017-5-13 12:39
给你一个我做的实用产品原理图,我用了18个595,驱动16个8*8点阵 + 14个LED数码管,这是第一版的版图。
作者: hqboy    时间: 2017-5-13 23:20
yzwzfyz 发表于 2017-5-13 12:39
给你一个我做的实用产品原理图,我用了18个595,驱动16个8*8点阵 + 14个LED数码管,这是第一版的版图。

请老师发图上来看看、我参考下!有没什么地方不对的。

#include<reg52.h>
sbit HC595_DS = P3^0;
sbit HC595_STCP = P3^1;
sbit HC595_SHCP = P3^2;
sbit HC595_OE = P3^7;
void HC595_WriteByte(unsigned char value)
{
unsigned char i;
for(i=0;i<8;i++)
{
HC595_SHCP = 0;
HC595_DS = value&(0x80>>i);
HC595_SHCP = 1;
}
}
void Lattice_WriteData(unsigned char *buffer,unsigned char value,unsigned char value1)
{
while(*buffer)//列扫描
{
HC595_WriteByte(*buffer++);
}
HC595_WriteByte(value);//行数据低八位
HC595_WriteByte(value1);//行数据高八位
HC595_STCP = 0;
HC595_STCP = 1;
}
unsigned char buffer[8]={0x01,0,0,0,0,0,0,0};//64列
void main()
{
HC595_OE = 0;
HC595_OE = 1;
//假设行低电平有效,列高电平有效,显示效果为第一行,第一列坐标为(0,0)的像素点亮,其他均不亮
Lattice_WriteData(buffer,0xfe,0xff);
while(1);
}
还请老师指点下。

作者: yzwzfyz    时间: 2017-5-16 23:36


作者: 123good    时间: 2017-5-17 08:27
楼主解决了吗?好复杂的图
作者: a1714439082    时间: 2017-5-17 14:55
楼楼啥情况了0.0,感觉看上去有点蒙
作者: l_v_    时间: 2017-5-17 20:34
可以考虑用2片74HC154来驱动行,楼主是要做1/16扫描吗?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1