我想编写16*16点阵的左移程序。用C语言,51单片机。你能否帮我编一个小例程,左移显示“陈”啊?谢谢了~!

 我来答
47okey
2012-02-11 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5900
采纳率:75%
帮助的人:2333万
展开全部

#include <reg51.h>

#define uchar unsigned char

#define uint  unsigned int 

sbit SH_CP=P2^0;

sbit DS=P2^1;

sbit ST_CP=P2^2;

uchar code tab[ ]= 

{

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,/*" ",0*/

0x00,0x00,0x7F,0xFF,0x44,0x40,0x4A,0x20,0x71,0xC4,0x00,0x08,0x23,0x30,0x2D,0x02,

0x31,0x01,0xE7,0xFE,0x21,0x00,0x21,0x40,0x21,0x20,0x21,0x18,0x20,0x0C,0x00,0x00,/*"陈",1*/

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,/*" ",2*/

};

//顺向、逐列、阴码    宋体 MATRIX-8X8-GREEN  左旋90度 左右翻转

//     MATRIX-8X8-RED     右旋90度 上下翻转

void delay_ms(unsigned int ms)

{

uchar j;

while(ms--)

for(j=0;j<123;j++);

}

void WriteByte(uchar dat)

{

uchar k;

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

{

dat=dat>>1;

DS=CY;

SH_CP=0;

SH_CP=1;

}

}

void main()

{

uchar num,temp,n,m;

while(1)

{

 for(n=0;n<32;n++)  //

    for(m=0;m<8;m++) //重复显示8次

{

temp=0;// 不加此条,流动飞快

for(num=n;num<16+n;num++)

{

WriteByte(tab[2*num+1]);

WriteByte(tab[2*num+0]);

P1=temp;

ST_CP=0;

ST_CP=1;

delay_ms(1);

temp++;

if(temp==16)

temp=0;

}

}

}

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式