标题:
51单片机控制LED点阵显示囧
[打印本页]
作者:
liuda
时间:
2015-1-22 01:55
标题:
51单片机控制LED点阵显示囧
#include <REG51.H>
#include <intrins.h>
#define NOP() _nop_() // 定义空指令 ,这个函数在库 <intrins.h> 中
//SPI IO
sbit MOSIO = P3^4;
sbit R_CLK = P3^5;
sbit S_CLK = P3^6;
//点阵显示数组
unsigned char code tab0[] = {0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,
0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00};
unsigned char code tab1[] ={0,0,254,127,2,64,66,66,34,68,18,72,2,64,2,64,242,79,18,72,18,72,18,72,242,79,2,64,254,127,0,0};
//函数声明
void HC595SendData( unsigned char BT3, unsigned char BT2,unsigned char BT1,unsigned char BT0);
/*************主函数*****************************/
void main(void)
{
int k,i,ms;
i = 16; //显示时间
while(1)
{
for(ms = i; ms > 0; ms--)
{
for(k = 0; k < 16; k++) //显示囧
{
HC595SendData(~tab1[2*k +1],~tab1[2*k],tab0[2*k],tab0[2*k + 1]);
}
}
}
}
/*********************************************************************************************************
** 函数名称: HC595SendData
** 功能描述: 向SPI总线发送数据
*********************************************************************************************************/
void HC595SendData( unsigned char BT3, unsigned char BT2,unsigned char BT1,unsigned char BT0)
{
unsigned char i;
for(i = 0; i < 32; i++)
{
if(i > 23 )
{
if((BT0 << (i - 24)) & 0x80)
{
MOSIO = 1;
}
else
{
MOSIO = 0;
}
}
else if(i > 15 & i < 24 )
{
if((BT1 << (i - 16)) & 0x80) //set dataline high 0X80000000 最高位与SendVal左移的最高位 进行逻辑运算
{
MOSIO = 1; // 如果为真 MOSIO = 1
}
else
{
MOSIO = 0;
}
}
else if(i < 16 & i > 7 )
{
if((BT2 << (i - 8)) & 0x80)
{
MOSIO = 1;
}
else
{
MOSIO = 0;
}
}
else
{
if((BT3 << i) & 0x80) //set dataline high 0X80000000 最高位 进行逻辑运算
{
MOSIO = 1; // 如果为真 MOSIO = 1
}
else
{
MOSIO = 0;
}
}
S_CLK = 0;
NOP(); //产生方形波
S_CLK = 1;
}
R_CLK = 0; //set dataline low
NOP(); //产生方形波
R_CLK = 1;
}
复制代码
作者:
欧阳小美
时间:
2017-3-30 15:57
HC595SendData(~tab6[2*k +1],~tab6[2*k],tab0[2*k],tab0[2*k + 1]);这一步能解释下吗?
还有点阵显示数组怎么来的
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1