标题: 有没有人能帮我看看我这个单片机程序怎么写成8乘8点阵流动显示啊 [打印本页]

作者: 萌萌萌新aa    时间: 2020-4-12 17:03
标题: 有没有人能帮我看看我这个单片机程序怎么写成8乘8点阵流动显示啊
#include <STC12C5A60S2.H>
#define uchar unsigned char
#define uint unsigned int
sbit DU = P2^0; //数码管段选
sbit WE = P2^1; //数码管位选
sbit CS88 = P2^2; //8X8点阵使能
sbit LCDEN=P2^5;
unsigned char code seg[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//列选通控制
unsigned char code segm[2][8]=
{0x00,0x6C,0x92,0x82,0x44,0x28,0x10,0x00,
0x7c,0x48,0x48,0xff,0x48,0x48,0x7c,0x00};
void delay(uint z)   //毫秒级延时
{
uint x,y;
for(x=z;x>0;x--)
  for(y=114;y>0;y--);
}
void main()
{
uchar tab,j;
uint i;
LCDEN=0;//关掉LCD1602
    WE=1;  
    P0=0Xff;
    WE=0; //关掉数码管显示
while(1)
{
  for(i=0;i<50;i++)
  {
   for(tab=0;tab<8;tab++)
   {
     DU=1;
              P0=segm[j][tab];//取显示数据
           DU=0;
           CS88=1;
           P0=seg[tab];  //取段码
           CS88=0;
           delay(15); //扫描间隙延时
   }
  }
  j++;
  if(j==2)
  {
   j=0;
  }
}
}

作者: man1234567    时间: 2020-4-12 18:05
定义的和数码管一样是不可以的,要按点阵字库的方式进行。网上和实验板都有现成的抄抄就可以。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1