点阵 左移上移 右移 下移 下拉 等花样显示讲解学习.docx

上传人:b****5 文档编号:7719701 上传时间:2023-01-26 格式:DOCX 页数:14 大小:16.53KB
下载 相关 举报
点阵 左移上移 右移 下移 下拉 等花样显示讲解学习.docx_第1页
第1页 / 共14页
点阵 左移上移 右移 下移 下拉 等花样显示讲解学习.docx_第2页
第2页 / 共14页
点阵 左移上移 右移 下移 下拉 等花样显示讲解学习.docx_第3页
第3页 / 共14页
点阵 左移上移 右移 下移 下拉 等花样显示讲解学习.docx_第4页
第4页 / 共14页
点阵 左移上移 右移 下移 下拉 等花样显示讲解学习.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

点阵 左移上移 右移 下移 下拉 等花样显示讲解学习.docx

《点阵 左移上移 右移 下移 下拉 等花样显示讲解学习.docx》由会员分享,可在线阅读,更多相关《点阵 左移上移 右移 下移 下拉 等花样显示讲解学习.docx(14页珍藏版)》请在冰豆网上搜索。

点阵 左移上移 右移 下移 下拉 等花样显示讲解学习.docx

点阵左移上移右移下移下拉等花样显示讲解学习

 

点阵左移上移右移下移下拉等花样显示

#include

#defineuintunsignedint

#defineucharunsignedchar

#definesudu20

/***各种声明的声明*****/

sbitLAT_port=P2^0;

sbitCLK_port=P2^1;

sbitDI_port=P2^2;

sbitG_port=P2^3;

sbitA_port=P2^4;

sbitB_port=P2^5;

sbitC_port=P2^6;

sbitD_port=P2^7;

ucharmove;//上移下移用的全局变量

uchartemp;//缓冲用的

ucharhan;

ucharzi;

ucharcodeziku[]={

0xFF,0xFF,0xC7,0xE3,0x83,0xC1,0x79,0x9E,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,

0xFE,0x7F,0xFE,0x7F,0xFC,0x3F,0xF9,0x9F,0xE3,0xC7,0xC7,0xF1,0x1F,0xFC,0x7F,0xFE,/*"未命名文件",0*/

0x7F,0xFF,0x7F,0xFF,0x01,0xC0,0x3F,0xFE,0x5F,0xFD,0x6F,0xFB,0x73,0xE7,0x7C,0x9F,

0x0F,0xF8,0xFF,0xFD,0xFF,0xFE,0x00,0x80,0x7F,0xFF,0x7F,0xFF,0x5F,0xFF,0xBF,0xFF,/*"李",0*/

0xF7,0xF7,0x80,0x80,0xF7,0xF7,0xC1,0xC1,0xF7,0xF7,0x80,0x80,0xF7,0xF7,0x03,0xE0,

0xFF,0xEF,0x07,0xE0,0xFF,0xEF,0x03,0xE0,0x7F,0xFF,0xED,0xDE,0xED,0xB7,0x1E,0xB0,/*"慧",1*/

0xFF,0xFF,0x07,0xF0,0xF7,0xF7,0xF7,0xF7,0xB7,0xF7,0x77,0xF7,0x77,0xF7,0xF7,0xF7,

0x00,0x80,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xFB,0xF7,0xFB,0xF7,0xFD,0xF5,0xFE,0xFB,/*"丹",2*/

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,

};

ucharcodeziku1[]={

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,

 

0xFF,0xFF,0x07,0xF0,0xF7,0xF7,0xF7,0xF7,0xB7,0xF7,0x77,0xF7,0x77,0xF7,0xF7,0xF7,

0x00,0x80,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xFB,0xF7,0xFB,0xF7,0xFD,0xF5,0xFE,0xFB,/*"丹",2*/

0xF7,0xF7,0x80,0x80,0xF7,0xF7,0xC1,0xC1,0xF7,0xF7,0x80,0x80,0xF7,0xF7,0x03,0xE0,

0xFF,0xEF,0x07,0xE0,0xFF,0xEF,0x03,0xE0,0x7F,0xFF,0xED,0xDE,0xED,0xB7,0x1E,0xB0,/*"慧",1*/

0x7F,0xFF,0x7F,0xFF,0x01,0xC0,0x3F,0xFE,0x5F,0xFD,0x6F,0xFB,0x73,0xE7,0x7C,0x9F,

0x0F,0xF8,0xFF,0xFD,0xFF,0xFE,0x00,0x80,0x7F,0xFF,0x7F,0xFF,0x5F,0xFF,0xBF,0xFF,/*"李",0*/

0xFF,0xFF,0xC7,0xE3,0x83,0xC1,0x79,0x9E,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,

0xFE,0x7F,0xFE,0x7F,0xFC,0x3F,0xF9,0x9F,0xE3,0xC7,0xC7,0xF1,0x1F,0xFC,0x7F,0xFE,/*"未命名文件",0*/

};

ucharBUF[4];

/***子函数申明****/

voiddelay(uintt);

voidxie595(uchardat);

voidhangxuan(ucharhan);

voidhuanchong();

voidzhuanhuanzuoyi();

voidzhuanhuanyouyi();

/***延时****///

voiddelay(uintt)

{

while(t--);

}

/****595输入函数****///

voidxie595(uchardat)

{

uchari;

CLK_port=0;

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

{

if((dat&0x80)!

=0)

DI_port=1;

else

DI_port=0;

CLK_port=1;//上升沿输入数据

CLK_port=0;

dat<<=1;

}

}

/*******行扫描程序*******///

voidhangxuan(ucharhan)

{

switch(han)

{

case0:

A_port=0;B_port=0;C_port=0;D_port=0;

break;

case1:

A_port=1;B_port=0;C_port=0;D_port=0;

break;

case2:

A_port=0;B_port=1;C_port=0;D_port=0;

break;

case3:

A_port=1;B_port=1;C_port=0;D_port=0;

break;

case4:

A_port=0;B_port=0;C_port=1;D_port=0;

break;

case5:

A_port=1;B_port=0;C_port=1;D_port=0;

break;

case6:

A_port=0;B_port=1;C_port=1;D_port=0;

break;

case7:

A_port=1;B_port=1;C_port=1;D_port=0;

break;

case8:

A_port=0;B_port=0;C_port=0;D_port=1;

break;

case9:

A_port=1;B_port=0;C_port=0;D_port=1;

break;

case10:

A_port=0;B_port=1;C_port=0;D_port=1;

break;

case11:

A_port=1;B_port=1;C_port=0;D_port=1;

break;

case12:

A_port=0;B_port=0;C_port=1;D_port=1;

break;

case13:

A_port=1;B_port=0;C_port=1;D_port=1;

break;

case14:

A_port=0;B_port=1;C_port=1;D_port=1;

break;

case15:

A_port=1;B_port=1;C_port=1;D_port=1;

break;

}

}

/*****缓冲****************/

voidhuanchong()

{

uchari;

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

{

BUF[i*2+1]=ziku[zi*32+i*32+han*2+1];//右半部分屏的数据

BUF[i*2]=ziku[zi*32+i*32+han*2];//左半部分屏数据

}

}

/*********左右转换********/

voidzhuanhuanzuoyi()//向左子函数

{

ucharwy;

if(move<8)

{

wy=move;

temp=((BUF[2]<<(8-wy))|(BUF[1]>>wy));//右半屏的数据处理准备移动的屏左移(8-wy)位;看得见的右移wy位

xie595(temp);

temp=((BUF[1]<<(8-wy))|(BUF[0]>>wy));//左半屏同上

xie595(temp);

}

else

{

wy=(move-8);

temp=((BUF[3]<<(8-wy))|(BUF[2]>>wy));//同上

xie595(temp);

temp=((BUF[2]<<(8-wy))|(BUF[1]>>wy));

xie595(temp);

}

}

voidzhuanhuanyouyi()//向右子函数统统同上方向改变

{

ucharwy;

if(move<8)

{

wy=move;

temp=((BUF[0]>>(8-wy))|(BUF[1]<

xie595(temp);

temp=((BUF[3]>>(8-wy))|(BUF[0]<

xie595(temp);

}

else

{

wy=(move-8);

temp=((BUF[3]>>(8-wy))|(BUF[0]<

xie595(temp);

temp=((BUF[2]>>(8-wy))|(BUF[3]<

xie595(temp);

}

}

/***一般显示***********/

voidyiban()

{

zi=0;

han=0;

LAT_port=0;//锁住595

G_port=1;//138不使能

for(zi=0;zi<4;zi++)//多少个字循环多少次

{

uinti;

for(i=0;i<2000;i++)//刷屏N次

{

xie595(ziku[zi*32+han*2+1]);

xie595(ziku[zi*32+han*2]);

LAT_port=1;//上升沿595输出数据

LAT_port=0;

hangxuan(han);

G_port=0;

delay(30);

G_port=1;//关屏

han++;

if(han==16)

han=0;

}

}

}

/**********下拉******/

voidxiala()

{

uinti,j=0;

uintk;

zi=0;

han=0;

LAT_port=0;

G_port=1;

for(k=0;k<64;k++)//一个字要16

{

for(i=0;i

{

xie595(ziku[zi*32+han*2+1]);//先写高位

xie595(ziku[zi*32+han*2]);

LAT_port=1;

LAT_port=0;

hangxuan(han);

G_port=0;

delay(30);

G_port=1;

han++;

if(han==16)

han=0;

if(han>j)

han=0;

}

j++;

if(j>15)

{

G_port=1;

j=0;

delay(50000);

zi++;

if(zi==4)

zi=0;

}

}

}

/*********上移***********/

voidshangyi()

{

uinti=0,j=0;

ucharmove=0;

G_port=1;

LAT_port=0;

zi=0;

han=0;

for(j=0;j<(zi+1)*16;j++)

{

for(i=0;i<(sudu*15);i++)

{

xie595(ziku[zi*32+han*2+1+move*2]);//......

xie595(ziku[zi*32+han*2+move*2]);

LAT_port=1;

LAT_port=0;

hangxuan(han);

G_port=0;

delay(30);

G_port=1;

han++;

if(han==16)

han=0;

}

move++;

if(move==16)

{

move=0;

zi++;

if(zi==4)

zi=0;

}

}

}

/*********下移***********/

voidxiayi()

{

uinti=0,j=0;

ucharmove=0;

G_port=1;

LAT_port=0;

zi=4;

han=0;

for(j=0;j<(zi+2)*16;j++)

{

for(i=0;i<(sudu*15);i++)

{

xie595(ziku1[zi*32+han*2+1-move*2]);

xie595(ziku1[zi*32+han*2-move*2]);

LAT_port=1;

LAT_port=0;

hangxuan(han);

G_port=0;

delay(30);

G_port=1;

han++;

if(han==16)

han=0;

}

move++;

if(move==16)

{

move=0;

zi--;

if(zi<0)

zi=4;

}

}

}

/*******左移***************/

voidzuoyi()

{

uchari;

LAT_port=0;

G_port=1;

zi=0;

han=0;

for(zi=0;zi<4;zi++)

{

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

{

for(i=0;i

{

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

{

huanchong();

zhuanhuanzuoyi();

LAT_port=1;

LAT_port=0;

hangxuan(han);

G_port=0;

delay(30);

G_port=1;

}

}

}

}

}

/********右移**********/

voidyouyi()

{

uchari;

LAT_port=0;

G_port=1;

zi=0;

han=0;

for(zi=0;zi<4;zi++)

{

for(move=0;move<16;move++)//移动16次置0

{

for(i=0;i

{

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

{

huanchong();

zhuanhuanyouyi();

LAT_port=1;

LAT_port=0;

hangxuan(han);

G_port=0;

delay(30);

G_port=1;

}

}

}

}

}

voidmain()

{

while

(1)

{

yiban();

delay(30000);

xiala();

delay(30000);

shangyi();//各种调用

delay(30000);

xiayi();

delay(30000);

zuoyi();

delay(30000);

youyi();

}

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1