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

📄 22.1184mhz_light.c

📁 用ATMEL8051系列单片机控制八个LED的跑马灯的小程序.为C语言格式.用记事本可查看学习.专业开发平台为Keil uVision2.
💻 C
字号:
#include "reg52.h"
sbit RSin = 0x92;
sbit RStr = 0x94;
sbit RSck = 0x93;


	unsigned char showsbuf[32];
unsigned char code sbuf[16]={0x00,0xE2,0xF2,0x92,0x9E,0x8C,0,0,11,12,13,14,15};

unsigned char code HZ_CODE[]={
0x00,0x01,0x00,0x0E,0x7F,0xF0,0x44,0x82,0x44,0x81,0x7F,0xFE,0x22,0x20,0x1A,0x20,
0x02,0x20,0xFF,0xFF,0x02,0x20,0x0A,0x20,0x32,0x20,0x12,0x20,0x00,0x20,0x00,0x00,
0x00,0x01,0x00,0x0E,0x7F,0xF0,0x44,0x82,0x44,0x81,0x7F,0xFE,0x22,0x20,0x1A,0x20,
0x02,0x20,0xFF,0xFF,0x02,0x20,0x0A,0x20,0x32,0x20,0x12,0x20,0x00,0x20,0x00,0x00,
0x00,0x10,0x00,0x10,0x1F,0xD0,0x14,0x90,0x94,0x90,0x74,0x90,0x54,0x90,0x1F,0xFF,
0x14,0x90,0x34,0x90,0xD4,0x90,0x54,0x90,0x1F,0xD0,0x00,0x10,0x00,0x10,0x00,0x00,
0x00,0x01,0x00,0x02,0x00,0x0C,0x7F,0xF0,0x08,0x80,0x08,0x80,0x08,0x80,0x08,0x80,
0x08,0x80,0xF8,0x80,0x08,0x80,0x08,0xFF,0x08,0x00,0x18,0x00,0x08,0x00,0x00,0x00,
0x10,0x20,0x10,0xC0,0x13,0x00,0xFF,0xFF,0x12,0x00,0x11,0x82,0x10,0x0C,0x00,0x30,
0x7F,0xC0,0x40,0x00,0x40,0x00,0x40,0x00,0x7F,0xFC,0x00,0x02,0x00,0x1E,0x00,0x00,
0x00,0x04,0x00,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x7F,0xFC,
0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x00,0x04,0x00,0x00,
0x01,0x00,0x02,0x00,0x04,0x00,0x1F,0xFF,0xE0,0x00,0x44,0x00,0x18,0x00,0x30,0x00,
0xDF,0xFF,0x12,0x20,0x12,0x20,0x12,0x20,0x16,0x20,0x12,0x60,0x10,0x20,0x00,0x00,
0x00,0x02,0x08,0x02,0x34,0x12,0x24,0x92,0x25,0x92,0x26,0x92,0xA4,0x92,0x64,0xFE,
0x24,0x92,0x24,0x92,0x25,0x92,0x24,0xD2,0x2C,0x12,0x34,0x02,0x20,0x02,0x00,0x00

};



void delay(unsigned char x)
{
	unsigned int i;
	unsigned char y;
	for( y=0;y < x;y++)
	{
		for( i=0;i < 80;i++);
	}
}

void Show_8(unsigned char zz)
{
	unsigned char i;
	zz=~zz;
	RStr=0;
	for(i=0;i<8;i++)
	{
		RSck=0;
		zz<<=1;
		RSin=CY;
		RSck=1;
	}
	RStr=1;
}


void Show_HZ2()
{
	unsigned char i,x;
	x=0x7f;	
	for(i=0;i<16;i+=2)
	{
		Show_8(showsbuf[16+i]);
		Show_8(showsbuf[i]);
		P0=x;
		delay(1);
		P0=0xFF;
			
		Show_8(showsbuf[16+i+1]);	
		Show_8(showsbuf[i+1]);
		P2=x;
		delay(1);
		P2=0xFF;
		x>>=1;
		x|=0x80;
	}
}



void Show_HZ(unsigned char y,unsigned char yPos)
{
	unsigned char i,x;
	x=yPos;//0x7F;	
	for(i=0;i<16;i+=2)
	{
		Show_8(HZ_CODE[y*32+16+i]);
		Show_8(HZ_CODE[y*32+i]);
		P0=x;
		delay(1);
		P0=0xFF;
			
		Show_8(HZ_CODE[y*32+16+i+1]);	
		Show_8(HZ_CODE[y*32+i+1]);
		P2=x;
		delay(1);
		P2=0xFF;
		x>>=1;
		x|=0x80;
	}
}


void Show_HZ1(unsigned char *stmp,unsigned char len)
{
	unsigned char i,j,x;
	x=0x7F;	
	for(i=0;i<16;i+=2)
	{
	
		for(j=0;j<len;j++)
 	    {
			Show_8(HZ_CODE[stmp[len-j]*32+16+i]);
			Show_8(HZ_CODE[stmp[len-j]*32+i]);
		}
		P0=x;
		delay(1);
		P0=0xFF;
		for(j=0;j<len;j++)
 	    {
			Show_8(HZ_CODE[stmp[len-j]*32+16+i+1]);
			Show_8(HZ_CODE[stmp[len-j]*32+i+1]);										
		}
		P2=x;
		delay(1);
		P2=0xFF;
		x>>=1;
		x|=0x80;
	}
}

void main()
{
	unsigned char i,x,y,z,u,w,yPos1,tmp1,tmp2;
	unsigned char showhz[]={0,1,2,3,4,5,6,7};
	unsigned char showtmp[32];
	
	Show_8(0xff);
	Show_8(0xff);
	x=0;
	i=0;
	u=0;
	while(1)
	{

		if( x++ > 15 )	//停留时间
		{
			x=0;

			if ( u++ > 15 )			//改变显示内容
			{
				u=1;
				if ( w++ > 6 )
				     w=0;
				for( z=0;z<32;z++)
				{
					showtmp[z]=HZ_CODE[32*w+z];
				}
				
			}

/*
			showsbuf[0]=showtmp[31-i-1];
			showsbuf[1=showtmp[31-i];
			
			showsbuf[i]=tmp1;
			showsbuf[i+1]=tmp2;

			showsbuf[

*/	
			tmp1=showtmp[31-i-1];
			tmp2=showtmp[31-i];

			for( y=0;y<30;y+=2)
			{
				showsbuf[31-y-1]=showsbuf[31-y-3];
				showsbuf[31-y]=showsbuf[31-y-2];
			}
			showsbuf[0]=tmp1;
			showsbuf[1]=tmp2;

			if ((i+=2) > 30 )
				i =0;
		}
/*
	if ( (i+=2) >32)
			{
				for(i =0;i <32;i++)
				  showsbuf[i]=0;
				i=0;
			}
		}
*/		
		Show_HZ2();
//		Show_HZ(0,yPos1);
//		Show_HZ1(showhz,8);
	}
}

⌨️ 快捷键说明

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