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

📄 16x256.c

📁 汉字点阵16X128源程序,与PC联机代码
💻 C
字号:
#include <REGX51.H>
#define FOSC	12				//定义晶振频率
#define	INIT_TH0 0x3C			//定时器T0初始值
#define	INIT_TL0 0xB0
#define	TMOD_T00 0x00			//定义T0为方式0,GATE=0,C/T=0,13位计数器
#define	TMOD_T01 0x01			//定义T0为方式1,GATE=0,C/T=0,16位计数器
#define	TMOD_T02 0x02			//定义T0为方式2,GATE=0,C/T=0,自动装入8位计数器
#define	TMOD_T03 0x03			//定义T0为方式3,GATE=0,C/T=0,定时器0分成两个8位计数器,定时器1停止计数

/*缩定定义*/

#define uchar unsigned char
#define	uint unsigned int

/*P1口位定义*/


/*P2 BIT Define*/


/*P3 bit define*/

/************位定义***************/
sbit STTP = P2^7;


/************函数声明*************/
void	delay(uint c);		        	//延时函数
void	out_rxd(uchar *d);				//汉字输出


/************汉字点阵*************/
char code hanzi[6][32]={
			{0x01,0x00,0x01,0x00,0x3F,0xFC,0x01,0x00,0x1F,0xF8,0x02,0x00,0xFF,0xFE,0x04,0x20,
             0x08,0x18,0x3F,0xEE,0xC8,0x24,0x0F,0xE0,0x08,0x20,0x08,0x20,0x0F,0xE0,0x00,0x00},
		    {0x04,0x20,0x44,0x20,0x54,0x40,0x54,0x80,0x55,0xFF,0x56,0x92,0x5C,0x92,0xF4,0x92,
             0x54,0x92,0x56,0x92,0x55,0xFF,0x54,0x80,0x54,0x40,0x44,0x60,0x04,0x40,0x00,0x00},
			{0x02,0x20,0x0C,0x20,0x88,0x20,0x69,0x20,0x09,0x20,0x09,0x22,0x89,0x21,0x69,0x7E,
             0x09,0x60,0x09,0xA0,0x19,0x20,0x28,0x20,0xC8,0x20,0x0A,0x60,0x0C,0x20,0x00,0x00},
			{0x00,0x00,0x7F,0xFF,0x44,0x20,0x5A,0x10,0x69,0xE1,0x30,0x81,0x24,0x82,0x24,0x8C,
             0xA4,0xF0,0x64,0x80,0x24,0xFC,0x2C,0x82,0x25,0x82,0x28,0x82,0x30,0x0E,0x00,0x00},
		    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,    	 //'!'
			 0x00,0x00,0x00,0x00,0x38,0x00,0x7F,0xCC,
			 0x7F,0xCC,0x38,0x00,0x00,0x00,0x00,0x00,
			 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
		    },
			{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	//显示空屏,如果只有一个字或将字全部移出必须设置一个空屏幕
			 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
			 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
		  	 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
			};

/************主函数***************/
void main()
{
	uchar i,j,k;	//i:每个字的显示循环;j每个字的显示码除以2;k每列刷新次数
	uchar b=0;		//显示偏移控制,char类型最多只能显示14个汉字+一个空白位字符
	uchar a;		//控制移动间隔时间
	SCON = 0x00;
	while(1)
	{	
	  j=0;
	  if(a>5)	//移动间隔时间;取值0--255
		{
		  a=0;
		  b+=2;
		  if(b>=160)	//显示到最后一个字,回头显示,判断值=字数*32
		   {
		     b=0;
		   }	
		}
  	  for(i=0;i<16;i++)
	   {
	  	 P1=i;
		 for(k=0;k<5;k++)
 	  	  {	
			STTP = 0;
			out_rxd(&hanzi[3][j+b+1]);
			out_rxd(&hanzi[3][j+b]);
			out_rxd(&hanzi[2][j+b+1]);
			out_rxd(&hanzi[2][j+b]);
			out_rxd(&hanzi[1][j+b+1]);
			out_rxd(&hanzi[1][j+b]);
			out_rxd(&hanzi[0][j+b+1]);
			out_rxd(&hanzi[0][j+b]);
			STTP = 1;
			delay(4);
		  }
		 j=j+2;
	   }
	   a++;
   	 }
}

/************子函数**************/

void delay(uint c)
	{
	  int i,j;
	  for(i=0;i<c;i++)
		for(j=0;j<5;j++)
			;
	}

void out_rxd(uchar *d)
{
	SBUF = *d;			//启动串行口传送
	while(TI == 0);		//等待串口传送结束
	TI = 0;				//将串口中断标志位置0
}


⌨️ 快捷键说明

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