基于单片机的LED点阵显示原理图等图 16x16的

急需帮助。
2025-04-02 12:58:15
推荐回答(3个)
回答1:

#include

#include //包含有左右循环移位子函数的库

#define uint unsigned int     //宏定义

#define uchar unsigned char   //宏定义

sbit CLK=P2^2;  //时钟线

sbit DAT=P2^0;  //数据线

sbit LCK=P2^1;  //锁存线


void delay(uint z)       //延时子函数

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}


void sendbyte(unsigned char temp)   //向595发送一字节数据,顺序从高位到低位

{

unsigned char i;

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

{

CLK=0;

DAT=temp&0x80;

temp<<=1;

CLK=1;

}

}


void out595(void) //将移位寄存器数据锁存至输出显示寄存器

{

LCK=1;

_nop_();

_nop_();

LCK=0;

}


void main()

{


        unsigned char i;

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

{

P0=i;

sendbyte(0x00); //送低8位

sendbyte(0x00); //再送高8位   

out595(); //开片选

delay(500);   //延时0.5ms

}

}

回答2:

点阵有分共阴和共阳的,还有得看你是行扫描和列扫描,硬件电路可以由串行控制和并行控制,如果单片机IO口够用的话,用并口是最简便的啦,如果是串行的,那可以欧诺个74HC154和74HC573,控制好移位数据就可以的了,不懂可以问我,乐意为你解答。

回答3:

16*16的点阵电路复杂是一方面,程序也不好理解的