⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2051.c.bak

📁 显示四个字的LED原理图及程序
💻 BAK
📖 第 1 页 / 共 2 页
字号:
//http://www.cdle.net/bbs/dispbbs.asp?boardID=2&ID=10011&page=1

#include <AT89x51.H>
#define uchar unsigned char
#define uint unsigned int
#define SPEED 1                      //定义速度
#define light 3                      //定义亮度
sbit OE=P1^6;                        //138使能端
sbit CLK=P1^7;                       //锁存器脉冲
//使用串口,行选用P2口.原参考程序用P1口,且OE,CLK也是用P1口,更简洁
uchar col,disrow;                    //col为位移变量,disrow为行变量
uint word;
uchar code HZ[];
uchar BUFF[18];
void loadoneline(void);
void delay(uchar t);
void sendoneline(void);
/********************************************/
uchar two_onebyte(uchar h1,uchar h2)
{uchar temp,tempcol;
 if(col<8) tempcol=col;
 else tempcol=col-8;
 temp=(h1>>tempcol)|(h2<<(8-tempcol));
 temp=255-temp;
 return temp;
}
/*******************************************************/
void main(void)
{uchar i;col=0;word=0;
 while(1)
   {while(col<16)
      {for(i=0;i<SPEED;i++)
         {for(disrow=0;disrow<16;disrow++)
            {OE=1;
			 CLK=0;
			 loadoneline();
             sendoneline();
             P2=disrow;                  //P2为行选              
			 //P1=0x10+disrow;
             //P1=0x20+disrow;
			 CLK=1;
			 OE=0;
			 delay(light);
            }
         }
       col++; 
      }
    col=0;word=word+32;
    if(word>=2184)word=0;
   }
}
/****************把字模移入数组的子函数********************/
void loadoneline(void)
{uchar s;
 for(s=0;s<9;s++)                          //s为要显示的数字+1
   {BUFF[2*s]=HZ[word+32*s+2*disrow];
    BUFF[2*s+1]=HZ[word+1+32*s+2*disrow];
   }
}
/*******************发送一行的子函数************************/
void sendoneline(void)
{char s;uchar inc;
 if(col<8)inc=0;else inc=1;
 for(s=0+inc;s<=15+inc;s++)                 //s=2*要显示的数字-1
   {SBUF=two_onebyte(BUFF[s],BUFF[s+1]);
    while(!TI);TI=0;
   }
}
/*******************************************************/
void delay(uchar t)
{ uchar i,j;
  for(j=0;j<t;j++)
   {for(i=0;i<20;i++);}
}
/*****************************************************
输出字模数据子函数
函数入口:*zm:本次发送的数据在字模数组中起始位置
          bit_num:发送不是完整的字模部分的位数
用法示例:send_line(&zimo[i],j);
          zimo[]为字模数组
/*****************************************************
void send_line(uchar *zm,uchar bit_num)
{uint byte_num;
uchar temp;
uint m=0;
for(byte_num=SCREEN_WIDTH;byte_num>0;byte_num--)
  {SBUF=zm[m++];      
   while(TI==0);    
   TI=0;
   }
   V_CLK=0;
   temp=zm[m];
for(;bit_num>0;bit_num--)
  {V_SDA=temp&0x80;
   V_CLK=1;
   V_CLK=0;
   temp=temp<<1;
   }
}
*******************************************************/
uchar code HZ[]=
{
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,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,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,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,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,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,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,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,

//*******************************以上字码用作黑屏**********************************
//*********************************************************************************
//***********以横向8个连续点构成一个字节,最左边的点为字节的最低位,即BIT0,**********
//***********最右边的点为BIT7.16×16汉字按每行2字节,共16行取字模,每个汉字*********
//***********共32字节.点阵四个角取字顺序为左上角→右上角→左下角→右下角。*****
//*********************************************************************************

/*真   CD5E6 */
0x80,0x00,0x80,0x20,0xFE,0x7F,0x40,0x00,0xF0,0x0F,0x10,0x08,0xF0,0x0F,0x10,0x08,
0xF0,0x0F,0x10,0x08,0xF0,0x0F,0x10,0x08,0xFF,0x7F,0x20,0x02,0x18,0x0C,0x06,0x30,

/*诚   CB3CF */
0x02,0x04,0x0C,0x14,0x04,0x24,0xF0,0x7F,0x20,0x04,0x27,0x04,0x24,0x24,0xE4,0x65,
0x24,0x29,0x24,0x29,0x24,0x19,0x34,0x49,0x2C,0x55,0x54,0x63,0x90,0x40,0x08,0x00,

/*服   CB7FE */
0x3C,0x3F,0x24,0x21,0x24,0x21,0x24,0x29,0x3C,0x11,0x24,0x01,0x24,0x3F,0x3C,0x23,
0x24,0x23,0x24,0x15,0x24,0x15,0x24,0x09,0x22,0x15,0x2A,0x73,0x11,0x21,0x00,0x00,

/*务   CCEF1 */
0x20,0x00,0xE0,0x0F,0x30,0x08,0x28,0x04,0x46,0x02,0x81,0x01,0x60,0x06,0x98,0x78,
0x86,0x20,0xF8,0x0F,0x40,0x08,0x40,0x08,0x20,0x08,0x10,0x08,0x0C,0x0A,0x03,0x04,

/*、   CA1A2 */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0C,0x00,0x08,0x00,0x00,0x00,0x00,0x00,

/*精   CBEAB */
0x08,0x04,0x88,0x7F,0x29,0x04,0x2A,0x3F,0x1A,0x04,0xBF,0x7F,0x0C,0x00,0x1C,0x3F,
0x2A,0x21,0x4A,0x3F,0x0A,0x21,0x09,0x3F,0x08,0x21,0x08,0x21,0x08,0x29,0x08,0x11,

/*心   CD0C4 */
0x40,0x00,0x80,0x00,0x00,0x01,0x00,0x03,0x10,0x01,0x10,0x00,0x10,0x08,0x12,0x10,
0x12,0x20,0x12,0x60,0x11,0x20,0x10,0x08,0x10,0x08,0x10,0x08,0xE0,0x0F,0x00,0x00,

/*打   CB4F2 */
0x08,0x00,0x08,0x00,0xC8,0x7F,0x08,0x04,0x7F,0x04,0x08,0x04,0x28,0x04,0x18,0x04,
0x0C,0x04,0x0B,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x0A,0x05,0x04,0x02,

/*造   CD4EC */
0x02,0x02,0x44,0x02,0x44,0x02,0xC0,0x3F,0x20,0x02,0x00,0x02,0xF7,0x7F,0x04,0x00,
0xC4,0x1F,0x44,0x10,0x44,0x10,0xC4,0x1F,0x44,0x10,0x0A,0x00,0xF1,0x7F,0x00,0x00,

/*。   CA1A3 */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x0C,0x00,0x12,0x00,0x12,0x00,0x0C,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,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,0x00,0x00,0x00,
//*****************************************************************************

/*单   CB5A5 */
0x10,0x04,0x60,0x0C,0x20,0x02,0xFC,0x1F,0x84,0x10,0xFC,0x1F,0x84,0x10,0x84,0x10,
0xFC,0x1F,0x84,0x10,0x80,0x00,0xFF,0x7F,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,

/*片   CC6AC */
0x00,0x02,0x08,0x02,0x08,0x02,0x08,0x22,0xF8,0x7F,0x08,0x00,0x08,0x00,0x08,0x00,
0xF8,0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0x04,0x08,0x04,0x08,0x02,0x08,0x01,0x08,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -