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

📄 左移.c

📁 LED板显示程序 LED板显示程序
💻 C
📖 第 1 页 / 共 3 页
字号:
#include <AT89x52.H>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define SPEED 1                      //定义速度
#define light 1                      //定义亮度
uint  hang;
uchar dat1;
/*****************************************************
管脚定义:
P1.0接点阵输入引脚8
P1.1接点阵输入引脚6
P1.2接点阵输入引脚7
P1.3接点阵输入引脚5
单片机串口连9,10脚(P3.0-->9;P3.1-->10)
*****************************************************/
sbit V_RCK = P1^7;
sbit V_OE  = P1^5;
sbit H_SDA = P1^6;
sbit H_CLK = P1^4;
/*****************************************************
定义两个可位寻址的变量,用于对字模数据的顺序调整,
因为这块屏的连接没有按正常顺序,需对每位数据从新
编排,才能使用一般的字模工具产生的字模
*****************************************************/
uchar bdata temp0;
uchar bdata temp1;
sbit  temp00=temp0^0;
sbit  temp01=temp0^1;
sbit  temp02=temp0^2;
sbit  temp03=temp0^3;
sbit  temp04=temp0^4;
sbit  temp05=temp0^5;
sbit  temp06=temp0^6;
sbit  temp07=temp0^7;
sbit  temp10=temp1^0;
sbit  temp11=temp1^1;
sbit  temp12=temp1^2;
sbit  temp13=temp1^3;
sbit  temp14=temp1^4;
sbit  temp15=temp1^5;
sbit  temp16=temp1^6;
sbit  temp17=temp1^7;

uchar col,disrow;                    //col为位移变量,disrow为行变量
uint word;
uchar code HZ[];
uchar BUFF[18];
void loadoneline(void);
void delay(uchar t);
void sendoneline(void);
void send(uint k);
/********************************************/
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));
 return temp;
}
/*******************************************************/
void main(void)
{uchar i;
 col=0;word=0;
 SCON  = 0x00;       //串口工作方式0
 V_RCK = 0;          //先拉低V_RCK
 V_OE=0;          //关闭显示
 hang=0xfffe;        //行选信号初始化
 while(1)
   {while(col<16)
      {for(i=0;i<SPEED;i++)
         {for(disrow=0;disrow<16;disrow++)
		    		{    loadoneline();	
                 		 sendoneline();
            
			
              		     V_RCK = 1;          //锁存已发送的整一行的数据
			  			 V_RCK = 0;
			  			 V_OE  = 0;          //关闭显示
			 			 send(hang);         //发送行选择数据
                                             V_OE= 1;
                                           
						delay(light);            //延时			
						hang=_irol_(hang,1);//行选信号调整,选中下一行
					 		
				   }
               
	   	  } 
   	    col++; 
		
      }
    col=0;word=word+32;
    if(word>=4740)word=0;//字数*32
   }
}
/****************把字模移入数组的子函数********************/
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
 {temp0=two_onebyte(BUFF[s],BUFF[s+1]); //取出字模数据(数据地址为行基址i+偏移地址j)

    temp10=temp07;   //对字模数据进行顺序调整
    temp11=temp06;
    temp12=temp05;
    temp13=temp04;
    temp14=temp03;
    temp15=temp02;
    temp16=temp01;
    temp17=temp00;
	V_OE = 0;       //关显示
   	SBUF=temp1;      //发送字模数据
    while(TI==0);    //等待发送完毕
	  TI=0;
	 }
}
/*******************************************************/
void send(uint k)
{uchar i;
 H_CLK=0;
 for(i=0;i<16;i++)   //一次发送16位数据
 {
  H_SDA = k&0x8000;  //发送最高位
  H_CLK=1;           //时钟信号产生一个脉冲来锁存数据
  H_CLK=0;
  k=k<<1;            //左移一位
  }
}
 
/*******************************************************/
void delay(uchar t)
{ uchar i,j;
  for(j=0;j<t;j++)
   {for(i=0;i<10;i++);}
}

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

//*******************************以上字码用作黑屏**********************************
//*********************************************************************************
//***********横向取模,左边为高位*****************
//***********每个汉字共32字节*********
//***********.点阵四个角取字顺序为左上角→右上角→左下角→右下角。*****
//*********************************************************************************
//****************要显示的字模放在这里*********************************************
/*--  文字:  痛  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x01,0x00,0x00,0x80,0x00,0xF0,0x0F,0x00,0x28,0xF0,0x1B,0x20,0x08,0x40,0x0B,0xF8,
0x3A,0x48,0xCA,0xC8,0x12,0x68,0x12,0xC8,0x22,0x48,0x40,0x58,0x00,0x00,0x00,0x00,

/*--  文字:  !  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,
0x18,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  !  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,
0x18,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  !  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,
0x18,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  1  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x30,0x00,0x10,0x00,0x10,0x00,0x10,0x00,
0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  .  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  我  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x01,0x00,0x01,0x00,0x01,0x20,0x05,0x10,0x19,0x00,0x09,0x70,0x0F,0x80,0x38,0x90,
0x0A,0xA0,0x0C,0x40,0x38,0xC0,0xCB,0x24,0x18,0x14,0x08,0x0C,0x00,0x04,0x00,0x00,

/*--  文字:  和  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x01,0x00,0x07,0x00,0x3C,0x00,0x04,0x00,0x07,0x1C,0xFC,0xE4,0x0C,0x84,
0x16,0x44,0x25,0x78,0x44,0x40,0x84,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00,

/*--  文字:  超  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x08,0x00,0x08,0x00,0x08,0x38,0x0E,0xC8,0x38,0x48,0x08,0xB0,0x0F,0x00,0xF8,0x78,
0x0E,0x88,0x28,0x90,0x38,0xF0,0x46,0x00,0x81,0xC0,0x00,0x7E,0x00,0x00,0x00,0x00,

/*--  文字:  人  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x05,0x00,
0x08,0x80,0x10,0x40,0x20,0x20,0x40,0x18,0x80,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  的  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x20,0x08,0x20,0x08,0x40,0x10,0x58,0x2C,0xE8,0x75,0x08,0x46,0x88,
0x74,0x48,0x44,0x48,0x44,0x08,0x3C,0x08,0x24,0x28,0x00,0x10,0x00,0x00,0x00,0x00,

/*--  文字:  唯  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x80,0x00,0xA0,0x01,0x10,0x31,0x1C,0xD2,0xE0,0x92,0x20,0xF6,0x38,0x4A,0xE0,
0x12,0x38,0x02,0xE0,0x02,0x3E,0x03,0xE0,0x02,0x00,0x02,0x00,0x02,0x00,0x00,0x00,

/*--  文字:  一  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x7F,0x86,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  区  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0xF8,0x3F,0x00,0x10,0x20,0x10,0x20,0x12,0x20,0x11,0x40,0x10,0x80,
0x11,0x40,0x12,0x20,0x14,0x10,0x10,0x00,0x17,0xF8,0x18,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  别  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x08,0x0F,0x08,0x11,0x48,0x12,0x48,0x1E,0x48,0x08,0x48,0x0F,0x48,
0x39,0x48,0x09,0x48,0x11,0x08,0x2A,0x08,0x44,0x28,0x00,0x10,0x00,0x00,0x00,0x00,

/*--  文字:  是  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0xE0,0x0F,0x20,0x04,0x40,0x07,0x40,0x04,0x40,0x03,0x80,0x00,0x70,0x3F,0x80,
0x01,0x00,0x09,0xE0,0x0D,0x00,0x13,0x00,0x21,0x80,0xC0,0x7E,0x00,0x00,0x00,0x00,

/*--  文字:  :  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  我  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x01,0x00,0x01,0x00,0x01,0x20,0x05,0x10,0x19,0x00,0x09,0x70,0x0F,0x80,0x38,0x90,
0x0A,0xA0,0x0C,0x40,0x38,0xC0,0xCB,0x24,0x18,0x14,0x08,0x0C,0x00,0x04,0x00,0x00,

/*--  文字:  把  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x38,0x0D,0xC8,0x79,0x48,0x09,0x50,0x0D,0x70,
0x19,0x80,0x69,0x02,0xC9,0x02,0x09,0x02,0x28,0xFC,0x10,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  内  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x02,0x00,0x02,0x00,0x03,0xF0,0x3E,0x10,0x22,0x10,0x22,0x10,0x25,0x10,
0x24,0x90,0x28,0x50,0x30,0x10,0x20,0x10,0x20,0x30,0x00,0x10,0x00,0x00,0x00,0x00,

/*--  文字:  裤  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x10,0x40,0x08,0x20,0x00,0x38,0x01,0xE0,0x39,0x38,0xC9,0xC0,0x15,0x60,0x39,0xB8,
0x55,0xE0,0x92,0x3E,0x13,0xE0,0x14,0x20,0x18,0x20,0x00,0x20,0x00,0x20,0x00,0x00,

/*--  文字:  穿  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x01,0x00,0x00,0xF8,0x3F,0x08,0x24,0x90,0x48,0x40,0x10,0xE0,0x07,0x80,0x10,0x80,
0x13,0xF0,0x1D,0x80,0x02,0x80,0x04,0x80,0x18,0x80,0x60,0x80,0x01,0x80,0x00,0x00,

/*--  文字:  在  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xF0,0x1E,0x00,0x04,0x40,0x04,0x40,0x08,0x40,
0x18,0x70,0x2B,0xC0,0x48,0x40,0x88,0x7C,0x0F,0x80,0x08,0x00,0x08,0x00,0x00,0x00,

/*--  文字:  里  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0xF0,0x1F,0x10,0x12,0x10,0x13,0xA0,0x16,0x20,0x13,0xE0,0x0E,0x00,
0x02,0x00,0x03,0xC0,0x0E,0x00,0x02,0x00,0x03,0xFC,0x7C,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  面  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0xE0,0x1F,0x00,0x02,0x00,0x02,0x00,0x07,0xF8,0x7C,0x88,0x46,0x88,
0x44,0x88,0x26,0x88,0x24,0x88,0x27,0xE8,0x38,0x10,0x00,0x10,0x00,0x00,0x00,0x00,

/*--  文字:  了  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x01,0xE0,0x3E,0x20,0x00,0x40,0x00,0x80,0x01,0x00,0x01,0x00,0x01,0x00,

⌨️ 快捷键说明

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