微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机驱动点阵16*16综合C程序-包含各种效果

单片机驱动点阵16*16综合C程序-包含各种效果

时间:11-29 来源:互联网 点击:

,0x50,0x14,0x7C,0x7F,0x50,0x55,0x90,0x55,0x10,0x57,0xFE,

0x61,0x04,0x41,0x7E,0x41,0x44,0x7F,0x44,0x41,0x44,0x41,0x44,0x7F,0x7C,0x41,0x44,

0x01,0x00,0x01,0x08,0x7F,0xFC,0x01,0x00,0x3F,0xF8,0x01,0x00,0xFF,0xFE,0x00,0x10,

0x1F,0xF8,0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0x10,0x50,0x10,0x20,

0x00,0x00,0x00,0x10,0x3F,0xF8,0x04,0x10,0x04,0x14,0xFF,0xFE,0x04,0x10,0x04,0x10,

0x3F,0xF0,0x04,0x10,0x04,0x00,0x08,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

/************************************************************/

/*************************右覆盖数组************************/

/************************************************************/

uchar code table2[]={

0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,

0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00

};

/************************************************************/

/*************************左覆盖数组************************/

/************************************************************/

uchar code table3[]={

0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,

0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00

};

/*****************************************/

/*****************延时子程序*************/

/***************************************/

void delay(uchar z)

{

uchar x,y;

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

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

}

/*****************************************/

/**************74HC595送数子程序********/

/***************************************/

void song(uchar z)//带参数函数

{

uchar num,hang;//定义变量

hang=z;//将形参给变量

for(num=0;num<8;num++)//移动8次将数据发送完毕

{

if(hang&0x01==1)//将高7位屏蔽掉,保留最低位判断

DATA=1;//为1就将74HC595数据端置1

else

DATA=0;//否则给0

CLK=0;//上升沿送走数据

CLK=1;//高电平形成上升沿

hang>>=1;//将数移走一位

}

}

/************************************************************/

/************************************************************/

/**************************间断显示***************************/

/************************************************************/

/************************************************************/

void jian()

{

while(word<128)//要显示多少字?

{

for(move=150;move>0;move--)//字间断显示的速度

{

ji=word;

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

{

song(~table[ji*2+1]);//先右半屏

song(~table[ji*2]);//再左半屏

ji++;//下一行

CLKR=1;//在74HC595处锁存起来

CLKR=0;

CLKR=1;

LINE=line;//打开列

delay(17);

}

}

word=ji;

}

}

/************************************************************/

/************************************************************/

/**************************上移显示***************************/

/************************************************************/

/************************************************************/

void shang()

{

while(word<128)

{

for(move=20;move>0;move--)

{

ji=word;//将变量存起来

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

{

song(~table[ji*2+1]);

song(~table[ji*2]);

ji++;

CLKR=1;//在74HC595处锁存起来

CLKR=0;

CLKR=1;

LINE=line;

delay(5);

}

}

word+=1;//数组数增加一行,形成上移

}

}

/************************************************************/

/************************************************************/

/**************************下移显示***************************/

/************************************************************/

/************************************************************/

void xia()

{

while(word>1)

{

for(move=20;move>0;move--)

{

ji=word;//给倒数第2个字位置地址码给ji变量

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

{

song(~table1[ji*2+1]);//发右半屏数 注意这是数组1的代码

song(~table1[ji*2]);//发左半屏数

ji++;

CLKR=1;//在74HC595处锁存起来

CLKR=0;

CLKR=1;

LINE=line;

delay(5);

}

}

word-=1;//数组数减1一行,形成下移

}

}

/*****************************************

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top