点阵显示左移和不动程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

×点阵显示左移和不动程序

显示左移的程序(串行送数据)

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

#define SCAN P2 //行驱动接到P2

sbit SHCP=P1^0; //595 CLK

sbit STCP=P1^1; //595 STR

sbit DR=P1^2; //红色

sbit DG=P1^3; //绿色

sbit ENT=P1^4; //595 OE/G

uint word; //字模计数器

uchar move; //列指针

uchar line; //行指针

uchar speed=10; //设定移动速度

uchar BUF[12]; //缓存数组

uchar code disp[]; //字模数组

/********************装载一线点阵数据********************/ void loadline()

{

uchar s;

for(s=0;s<5;s++) //s为要显示的字数+1

{

BUF[2*s]=disp[word+32*s+2*line];

BUF[2*s+1]=disp[word+1+32*s+2*line];

}

}

/********************发送一线移动数据********************/ void sendline()

{

char s,p;

uchar inc,k,j;

if(move<8)

inc=0;

else inc=1;

for(s=0+inc;s<=7+inc;s++)

{

if(move<8)

j=move;

else j=move-8;

k=(BUF[s]<<j)|(BUF[s+1]>>(8-j)); //字模左边字节左移j位,右边字节右移j位,2者相或

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

{ DR=(k&0x80); //选择红色显示

SHCP=0; //595时钟信号,产生脉冲

SHCP=1;

k<<=1;

//左移一位

}

}

}

void main()

{

char s;

uint k;

uchar i,y=0;

move=0;

word=0;

ENT=0;

ENT=1; //清屏

while(1)

{

while(word<448) //(4+10)*32=448

{

while(move<16) //数据移位

{

for(i=0;i<speed;i++) //移动速度

{

for(line=0;line<16;line++) //行扫描

{

loadline(); //装载一线点阵数据

sendline(); //发送一线移动数据

SCAN=line; //显示第line行

STCP=1; //锁存为高,595锁存信号

STCP=0;

}

}

move++; //移动一步(一位)

}

move=0;

word=word+32; //下一个字

}

word=0;

}

}

uchar code disp[]={

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,/*前面四字位置空白显示*/

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

////////////////////////////////////////////////////////////////////////////////

/* (16 X 16 , 宋体)*/

0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFE,0xFF,0xFE,0xFF,

0xFE,0xFF,0xFD,0x7F,0xFB,0xBF,0xF

7,0xDF,0xEF,0xEF,0xDF,0xF7,0xBF,0xFB,0xFF,0xFF,/*"大",8*/

/* (16 X 16 , 宋体)*/

0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x80,0x03,0xFF,0xFF,

0xFF,0xFF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xFF,0xFF,0xFF,0xFF,/*"吉",9*/

/* (16 X 16 , 宋体)*/

0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFE,0xFF,0xFE,0xFF,

0xFE,0xFF,0xFD,0x7F,0xFB,0xBF,0xF7,0xDF,0xEF,0xEF,0xDF,0xF7,0xBF,0xFB,0xFF,0xFF,/*"大",10*/

/* (16 X 16 , 宋体)*/

0xFF,0xFD,0xF8,0x7D,0xC3,0xFD,0xFB,0xED,0xFB,0xED,0x80,0x6D,0xFB,0xED,0xFB,0xED,

0xF1,0xED,0xEA,0xED,0xDB,0x6D,0xBB,0xAD,0xFB,0xFD,0xFB,0xF5,0xFB,0xF9,0xFF,0xFF,/*&q uot;利",11*/

/* (16 X 16 , 宋体)*/

0xEF,0xFF,0xF7,0x81,0x80,0xBF,0xDD,0xBF,0xEB,0xBF,0x00,0x81,0xF7,0xB7,0xF7,0xB7,

0x00,0xB7,0xF7,0xB7,0xE3,0xB7,0xD5,0xB7,0xB6,0xB7,0xE7,0xB7,0xF7,0xB7,0xFF,0xFF,/*&qu ot;新",12*/

/* (16 X 16 , 宋体)*/

0xF7,0xFF,0xF0,0x03,0xF7,0x7F,0xEF,0x7F,0xDF,0x7F,0xB0,0x07,0x77,0x7F,0xF7,0x7F,

0xF7,0x7F,0xF7,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,/*"年",13*/

/* (16 X 16 , 宋体)*/

0xEF,0xBF,0xEF,0xBF,0xEF,0xBF,0xC4,0x03,0xAB,0xBB,0x6D,0xBB,0xEF,0xBB,0xE8,0x00,

相关文档
最新文档