永发信息网

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

答案:1  悬赏:50  手机版
解决时间 2021-02-23 16:25
  • 提问者网友:末路
  • 2021-02-23 08:29
目前线路走向是第一片595依次级联到第8片595 再从第8片595级联到第9片-第10片 第9片与第10片分别控制8片4953来驱动点阵的行,前面8片595分别控制16片点阵的列.

595的第11,12,13,14脚分别并联引入到单片机来控制。
搞不懂怎么控制行,控制列的程序。 请老师指点下。比如 控制16片点阵的亮与灭。
问题有遗漏。 补充一下。第一片595的14脚是直接进单片机控制的。 与其他595的14脚没有并联、。行高电平,列低电平。
最佳答案
  • 五星知识达人网友:愁杀梦里人
  • 2021-02-23 09:51
#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)
{

}
}

//如有问题,可再咨询
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯