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

📄 text1.c

📁 led的部分程序 时候可是马上的不是每次比赛
💻 C
字号:
//*************12Mhz*************************
//*************头文件************************
#include<AT89X52.H>
//*************宏定义************************
#define clk1  P1_0
#define clk2 P1_2
#define io  P1_1
#define num_words  2  //修改字数
//*************全局变量声明******************
//-------------------------------------------
//  数组初始化,直接复制过来,【行】, 【列】
//-------------------------------------------
code unsigned char word_1[32]={  
/*--  文字:  欢  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x80,0x00,0x80,0xFC,0x80,0x05,0xFE,0x85,0x04,0x4A,0x48,0x28,0x40,0x10,0x40,
0x18,0x40,0x18,0x60,0x24,0xA0,0x24,0x90,0x41,0x18,0x86,0x0E,0x38,0x04,0x00,0x00,

};
//*************函数声明**********************
void Delay(unsigned int x);
void init(void);
void time0(void);
void Byte_out(unsigned char);
//*************主程序************************
void main (void)
{
   /////////////////
   init();
   Delay(50);
   /////////////////
   while(1)
   {
		
   }
}

//***初始化*****************************
void init(void)
{
	P2=P1=P3=P0=0xff; //复位后就是0XFF 为什么要设置?
	// UART_init
	/*  
	SCON =0x00;//串行口方式0,允许发送,启动发送过程
	ES=0;      // 禁止串口中断 
	*/
	EA=1; // 中断总允许位。EA=1,CPU开放中断
	ET0 = 1;//T0溢出中断允许位。ET0=1,允许T0中断
	TMOD = 0X11;//定时器工作方式:16位计数定时器  只要用软件使TR0(或TR1)置1就能启动定时器T0(或T1);  
	TR0 = 1;//启动
}

/******************************************************************/
/* 函数名:定时器中断
/* 参  数:无
/* 功  能:用于时间的刷新,日期的维护
/******************************************************************/ 
void time0(void) interrupt 1 
{
	 static unsigned char time_add;

	 static unsigned char i=0,i2=0,i2_1=0,j=0,pos_r=0,pos_l=0,pos_=num_words*2;

	 unsigned char k,m;								
 	 //TH0 = 0xf0; TL0 = 0xc4; //f0c4 3.9ms,12Mhz; 
	 //TH0 = 0xe1; TL0 = 0x88;  //e188  7.8ms,12Mhz; 3.9ms,24Mhz 
	 TH0 = 0xe8; TL0 = 0x90;  //6ms 12mhz        /******[2(16)-T0]X10(-6)=6X10(-3) =》T0=E890******/	 						 时间计数器
	 time_add++;	  //时间计数器加1
	 P0=0x00;
	 																								   
	 if(i>=32){i=0;}
	 i2 = i<<1;
	 i2_1 = i2+1;
     clk1 =0;//位置很重要
	 for(k=0; k<num_words*2; k++)
	 {
	 	 Byte_out(word_1[32]);
	 }
	 
}

//-------------------------------------------------------------------------------------------------------
//  函数名称:Byte_out()
//  输入参数:byte,需要从74LS595并行口输出的数据
//  输出参数:无
//  功能说明:发送八位串行数据至并口
//--------------------------------------------------------------------------------------------------------
void  Byte_out(unsigned char byte)
{
	unsigned char i;
	clk1=0; 
	clk1=1;//开始串行移位
	/*
	SBUF = byte;
	while (TI==0){;} 
	TI=0;
	*/
	for(i=0;i<8;i++)
 	{
		io=byte&0x01;
 		byte=byte>>1;
 		clk2=0;
 		clk2=1;
	}
	
}
/******************************************************************/
/* 函数名:Delay(unsigned int x)
/* 参  数:int型延时参数
/* 功  能:延时
/******************************************************************/ 
void Delay(unsigned int x)  
{
  unsigned int j;
  while(x--)
  {
		for (j=0;j<200;j++){;}
  }
}

⌨️ 快捷键说明

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