51单片机+10片 74hc595 控制16*64点阵屏显示

目前线路走向是第一片595依次级联到第8片595再从第8片595级联到第9片-第10片第9片与第10片分别控制8片4953来驱动点阵的行,前面8片595分别控制16片点阵... 目前线路走向是第一片595依次级联到第8片595 再从第8片595级联到第9片-第10片 第9片与第10片分别控制8片4953来驱动点阵的行,前面8片595分别控制16片点阵的列.

595的第11,12,13,14脚分别并联引入到单片机来控制。
搞不懂怎么控制行,控制列的程序。 请老师指点下。比如 控制16片点阵的亮与灭。
问题有遗漏。 补充一下。第一片595的14脚是直接进单片机控制的。 与其他595的14脚没有并联、。行高电平,列低电平。
展开
 我来答
热心市民MrZ
2017-05-12 · 超过34用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:31.3万
展开全部
#include<reg52.h>
sbit HC595_DS = P2^0;
sbit HC595_STCP = P2^1;
sbit HC595_SHCP = P2^2;
sbit HC595_OE = P2^3;
void HC595_WriteByte(unsigned char value)
{
unsigned char i;

for(i=0;i<8;i++)

{
HC595_SHCP = 0;

HC595_DC = value&(0x80>>i);

HC595_SHCP = 1;

}
}
void Lattice_WriteData(unsigned char *buffer,unsigned char value,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)
{

}
}

//如有问题,可再咨询
更多追问追答
追问
你好! 老师. 我编译了你发的代码。点阵还是不亮!
追答
第一片595不也是控制列的麽,把数组里面的0x01改成0xfe,其它7个改成0xff'
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式