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

📄 text2.c

📁 能够显示32个汉字的LED大屏显示的单片机源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
		switch(lines)
		{
			case 0:
			return 176;
			case 1:
			return 160;
			case 2:
			return 144;
			case 3:
			return 128;
			case 4:
			return 112;
			case 5:
			return 96;
			case 6:
			return 80;
			case 7:
			return 64;
			default :
			break;
		}
}
//void display_linedata(unsigned char linedata,unsigned char *data11)
//{
//		unsigned char i,lines;
//		unsigned int j1;
//		unsigned char j2;
//		unsigned char line_count;

//		line_count=linedata/8;
//		lines=linedata%8;
//		j1=display_line1(lines)+line_count;
//		j2=display_line2(lines)+line_count;
//		for(i=0;i<4;i++)
//		{
//			yyj[j1*8+i]=data11[i*2];
//			yyj[j2*8+i]=data11[i*2+1];
//		}
//}
void shift_display(unsigned char *point)
{
		unsigned char i,j;
		unsigned int j1;
		unsigned char j2;
		unsigned char lines,line_count;
		CNTB_245=1;
		CNTA_245=0;
		SELECT0=0;
		for(i=0;i<128;i++)
		{
			line_count=i/8;
			lines=i%8;
			j1=ret_lines1(lines)-line_count;
			j2=ret_lines2(lines)-line_count;
			
			for(j=0;j<4;j++)
			{
				yyj[j1*8+j]=point[j*2*128+i];
				yyj[j2*8+j]=point[(j*2+1)*128+i];
			}
		}
		CNTB_245=0;
		CNTA_245=1;
		SELECT0=1;
}


void shift_display2(unsigned char cr,unsigned char *point)
{
		unsigned char j;
		unsigned int j1;
		unsigned char j2;
		unsigned char lines,line_count;
		CNTB_245=1;
		CNTA_245=0;
		SELECT0=0;
			line_count=cr/8;
			lines=cr%8;
			j1=ret_lines1(lines)-line_count;
			j2=ret_lines2(lines)-line_count;
			for(j=0;j<4;j++)
			{
				yyj[j1*8+j]=point[j*2*128+cr];
				yyj[j2*8+j]=point[(j*2+1)*128+cr];
			}
		CNTB_245=0;
		CNTA_245=1;
		SELECT0=1;
}
void s_d(unsigned char *pointdata)
{
		unsigned char i;
		
		for(i=0;i<128;i++)
		{
			shift_display2(i,pointdata);
			delay(20);
		}
		
}
void shift_display3(unsigned char cr,unsigned char *point)
{
		unsigned char j;
		unsigned int j1;
		unsigned char j2;
		unsigned char lines,line_count;
		CNTB_245=1;
		CNTA_245=0;
		SELECT0=0;
			line_count=cr/8;
			lines=cr%8;
			j1=display_line1(lines)+line_count;
			j2=display_line2(lines)+line_count;
			for(j=0;j<4;j++)
			{
				yyj[j1*8+j]=point[(j*2*128+127)-cr];
				yyj[j2*8+j]=point[((j*2+1)*128+127)-cr];
			}
		CNTB_245=0;
		CNTA_245=1;
		SELECT0=1;
}
void left_s_d(unsigned char *pointdata)
{
		unsigned char i;
		
		for(i=0;i<128;i++)
		{
			
			shift_display3(i,pointdata);
			delay(20);
		}
		
}
void display_line(unsigned char linedata)
{
		unsigned char i,lines;
		unsigned int j1;
		unsigned char j2;
		unsigned char line_count;
		unsigned char line_count1;
		unsigned char lines1;
		unsigned int jj1;
		unsigned char jj2;

		line_count=linedata/8;
		lines=linedata%8;

		line_count1=(linedata-1)/8;
		lines1=(linedata-1)%8;

		jj1=display_line1(lines1)+line_count1;
		jj2=display_line2(lines1)+line_count1;

		j1=display_line1(lines)+line_count;
		j2=display_line2(lines)+line_count;

		CNTB_245=1;
		CNTA_245=0;	
		SELECT0=0;
		
		for(i=0;i<4;i++)
		{
			yyj[jj1*8+i]=0x0;
			yyj[jj2*8+i]=0x0;
		}

		for(i=0;i<4;i++)
		{
			yyj[j1*8+i]=0xff;
			yyj[j2*8+i]=0xff;
		}
		CNTB_245=0;
		CNTA_245=1;
		SELECT0=1;
}
void display_screen(unsigned char *data0)
{
		unsigned int i;
		unsigned int l;
		unsigned char linecount;
		unsigned char bytecount;
		unsigned char kk,kkk1,kkk2;
		CNTB_245=1;
		CNTA_245=0;
		SELECT0=0;	
		for(i=0;i<1024;i++)
		{
			linecount=i/8;          // 确定数据所在的列数
			kkk1=linecount%8;
			kkk2=linecount/8;
			bytecount=i%2;
			kk=i%8;
			if(bytecount==0)
			l=display_line1(kkk1)+kkk2;
			else
			l=display_line2(kkk1)+kkk2;
			yyj[l*8+kk]=*data0;
			data0++;
		}
		CNTB_245=0;
		CNTA_245=1;	
		SELECT0=1;
}
void display_screen1(unsigned char *data0)  //整屏图文方式
{
		unsigned int i;
		unsigned int l;
		unsigned char bytecount;
		unsigned char kkk1,kkk2;
		unsigned char cc;
		CNTB_245=1;
		CNTA_245=0;	
		SELECT0=0;
		for(i=0;i<1024;i++)
		{
			cc=i/128;
			kkk1=i%8;
			kkk2=(i/8)%16;
			bytecount=cc%2;
			cc=cc/2;
			if(bytecount==0)
			l=ret_lines1(kkk1)-kkk2;
			else
			l=ret_lines2(kkk1)-kkk2;

			yyj[l*8+cc]=*data0;
			data0++;
		}
		CNTB_245=0;
		CNTA_245=1;	
		SELECT0=1;
}


void clr_line(unsigned char linedata)
{
		unsigned char i,lines;
		unsigned int j1,j2;
		unsigned char line_count;

		line_count=linedata/8;
		lines=linedata%8;

		j1=display_line1(lines)+line_count;
		j2=display_line2(lines)+line_count;
		
		CNTB_245=1;
		CNTA_245=0;	
		SELECT0=0;
		for(i=0;i<4;i++)
		{
			yyj[j1*8+i]=0x0;
			yyj[j2*8+i]=0x0;
		}
		CNTB_245=0;
		CNTA_245=1;	
		SELECT0=1;
}

void delay(unsigned char n)
{
			unsigned int ii;
			for(ii=0;ii<200*n;ii++)
				_nop_();
}
void down_1(unsigned char row,unsigned char *data9)
{
		unsigned char i,j,cc;
		unsigned int ll;
		unsigned char lines,lines_count;
		unsigned char data lll[8]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
		for(i=0;i<8;i++)
		{
			CNTB_245=1;
			CNTA_245=0;	
			SELECT0=0;
			for(j=0;j<128;j++)
			{	
				lines_count=j/8;
				lines=j%8;
				cc=row%2;
				if(cc==0)
					ll=ret_lines1(lines)-lines_count;
				else
					ll=ret_lines2(lines)-lines_count;
				yyj[ll*8+row/2]=data9[128*row+j]&lll[i];
			}
		CNTB_245=0;
		CNTA_245=1;	
		SELECT0=1;
		delay(20);
		}
}
void d_d(unsigned char *tuw)
{
		unsigned char i;
		for(i=0;i<8;i++)
		{
			down_1(i,tuw);
			delay(20);
		}
}
void up_1(unsigned char row,unsigned char *data9)
{
		unsigned char i,j,cc;
		unsigned int ll;
		unsigned char lines,lines_count;
		unsigned char data lll[8]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
		for(i=8;i>0;i--)
		{
			CNTB_245=1;
			CNTA_245=0;	
			SELECT0=0;
			for(j=0;j<128;j++)
			{	
				lines_count=j/8;
				lines=j%8;
				cc=row%2;
				if(cc==0)
					ll=ret_lines1(lines)-lines_count;
				else
					ll=ret_lines2(lines)-lines_count;
				yyj[ll*8+row/2]=data9[128*row+j]&lll[8-i];
			}
		CNTB_245=0;
		CNTA_245=1;	
		SELECT0=1;
		delay(20);
		}
}
void u_d(unsigned char *tuw)
{
		unsigned char i;
		for(i=8;i>0;i--)
		{
			up_1(i,tuw);
			delay(20);
		}
			up_1(0,tuw);
			delay(20);
}
void up_ee(unsigned char row,unsigned char picturenumber)
{
		unsigned char i,j,cc;
		unsigned int ll;
		unsigned char lines,lines_count;
		unsigned char data lll[8]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
		for(i=8;i>0;i--)
		{
			CNTB_245=1;
			CNTA_245=0;	
			SELECT0=0;
			for(j=0;j<128;j++)
			{	
				lines_count=j/8;
				lines=j%8;
				cc=row%2;
				if(cc==0)
					ll=ret_lines1(lines)-lines_count;
				else
					ll=ret_lines2(lines)-lines_count;
				yyj[ll*8+row/2]=read_eeprom(picturenumber*1024+128*row+j)&lll[8-i];
			}
		CNTB_245=0;
		CNTA_245=1;	
		SELECT0=1;
		delay(20);
		}
}
void u_ee(unsigned char picturenumber)
{
		unsigned char i;
		for(i=8;i>0;i--)
		{
			up_ee(i,picturenumber);
			delay(20);
		}
			up_ee(0,picturenumber);
			delay(20);
}
void down_ee(unsigned char row,unsigned char picturenumber)
{
		unsigned char i,j,cc;
		unsigned int ll;
		unsigned char lines,lines_count;
		unsigned char data lll[8]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
		for(i=0;i<8;i++)
		{
			CNTB_245=1;
			CNTA_245=0;	
			SELECT0=0;
			for(j=0;j<128;j++)
			{	
				lines_count=j/8;
				lines=j%8;
				cc=row%2;
				if(cc==0)
					ll=ret_lines1(lines)-lines_count;
				else
					ll=ret_lines2(lines)-lines_count;
				yyj[ll*8+row/2]=read_eeprom(picturenumber*1024+128*row+j)&lll[i];
			}
		CNTB_245=0;
		CNTA_245=1;	
		SELECT0=1;
		delay(20);
		}
}
void d_ee(unsigned char picturenumber)
{
		unsigned char i;
		for(i=0;i<8;i++)
		{
			down_ee(i,picturenumber);
			delay(20);
		}
}		

⌨️ 快捷键说明

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