LED点阵程序不理解,求大神指导
时间:10-02
整理:3721RD
点击:
//--重定义函数变量--//
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
//--定义SPI要使用的 IO--//
sbit MOSIO = P3^4;
sbit R_CLK = P3^5;
sbit S_CLK = P3^6;
//函数声明
void HC595SendData( uchar BT3, uchar BT2,uchar BT1,uchar BT0);
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main(void)
{
uint i , j;
uchar b1;
while(1)
{
//--全亮--//
HC595SendData(0x00, 0x00, 0xFF, 0xFF);
for(j=0; j<50000; j++);
//--刷行--//
b1 = 0x01;
for(i = 0; i<8; i++)
{
HC595SendData(0x00, 0x00, 0x00, b1);
b1 <<= 1;
for(j=0; j<20000; j++);
}
b1 = 0x01;
for(i = 0; i<8; i++)
{
HC595SendData(0x00, 0x00, b1, 0x00);
b1 <<= 1;
for(j=0; j<20000; j++);
}
//--刷列--//
b1 = 0x01;
for(i = 0; i<8; i++)
{
HC595SendData(0xFF, ~b1, 0xFF, 0xFF);
b1 <<= 1;
for(j=0; j<20000; j++);
}
b1 = 0x01;
for(i = 0; i<8; i++)
{
HC595SendData(~b1, 0xFF, 0xFF, 0xFF);
b1 <<= 1;
for(j=0; j<20000; j++);
}
}
}
/*******************************************************************************
* 函 数 名 : HC595SendData
* 函数功能 : 通过595发送四个字节的数据
* 输 入 : BT3:第四个595输出数值
* * BT2: 第三个595输出数值
* * BT1:第二个595输出数值
* * BT0:第一个595输出数值
* 输 出 : 无
*******************************************************************************/
void HC595SendData( uchar BT3, uchar BT2,uchar BT1,uchar BT0)
{
uchar i;
//--发送第一个字节--//
for(i=0;i<8;i++)
{
MOSIO = BT3 >> 7 ; //从高位到低位
BT3 <<= 1;
S_CLK = 0;
S_CLK = 1;
}
//--发送第一个字节--//
for(i=0;i<8;i++)
{
MOSIO = BT2 >>7; //从高位到低位
BT2 <<= 1;
S_CLK = 0;
S_CLK = 1;
}
//--发送第一个字节--//
for(i=0;i<8;i++)
{
MOSIO = BT1 >> 7; //从高位到低位
BT1 <<= 1;
S_CLK = 0;
S_CLK = 1;
}
//--发送第一个字节--//
for(i=0;i<8;i++)
{
MOSIO = BT0 >> 7; //从高位到低位
BT0 <<= 1;
S_CLK = 0;
S_CLK = 1;
}
//--输出--//
R_CLK = 0; //set dataline low
R_CLK = 1; //片选
}
我今天刚学的这个点亮点阵的程序,花了半天又是看595,又是琢磨程序,总算有点小的理解,也不知道能不能帮到你。你看哪儿不懂,追问我。
我今天刚学的这个点亮点阵的程序,花了半天又是看595,又是琢磨程序,总算有点小的理解,也不知道能不能帮到你。你看哪儿不懂,追问我。
第一个红色是三个IO口的定义,p3.4是数据输入,p3.5是锁存,p3.6是时钟。
第二个,看图
如果那里说错了,欢迎指正,如果有什么不清楚,就再问吧。
求问是是是是是是
发送四个字节的数据是什么意思,是使能端控制吗
大神,我刚开始看点阵,发送四个字节的数据是什么意思,算是使能端控制吗
谢谢小编分享。