长久的课看

/***********************多人识别修改,可以验证密码正确**********************************************
----------------1.开发环境:Keil v4					   ----------------
----------------2.使用单片机型号:STC89C52RC		   ----------------
----------------3.单片机使用晶振:11.0592M			   ----------------
----------------4.功能:实现密码解锁,和存储记录----------------
----------------5.名称:智能保险柜qqqqqqqqqqqqqqqqqq ----------------
************************************参考程序加油***********************************/
#include <reg52.h>
#include <intrins.h>
#include <main.h>
#include <chuankou.h>
#include <delay.h>
#include <eeprom.h>
#define uchar unsigned char
#define uint unsigned int
bit I2C_WriteData(uchar ADDR,uchar DAT);
uchar I2C_ReadData(uchar ADDR);
void main()
{	
	uchar xdata i,old[25],b[9],k[7],r1,r2,r3,r4,m1=1,m2=1,m3=1,m4=1,m5=1,m6=1;
			 
		init();	
		
		for(s8=1;s8<25;s8++)
			{
				c[s]=I2C_ReadData(s+26);	//从s+26地址中读取的k的值分别存入c[s]中	,从C1开始,四个一组(4位数)。
			}
	while(1)
	{ 

		I2C_WriteData(1,0x30);delay(5);
		I2C_WriteData(2,0x30);delay(5);		//24c02的第1到24地址单元作为密码存储区
		I2C_WriteData(3,0x30);delay(5);	 	//必须放到while函数里
		I2C_WriteData(4,0x31);delay(5);		//一定要加延时,否则会接受不到
	
		I2C_WriteData(5,0x30);delay(5);
		I2C_WriteData(6,0x30);delay(5);		//24c02的第1到24地址单元作为密码存储区
		I2C_WriteData(7,0x30);delay(5); 	//必须放到while函数里
		I2C_WriteData(8,0x32);delay(5);		//一定要加延时,否则会接受不到
	
		I2C_WriteData(9,0x30);delay(5);
		I2C_WriteData(10,0x30);delay(5);	//24c02的第1到24地址单元作为密码存储区
		I2C_WriteData(11,0x30);delay(5); 	//必须放到while函数里
		I2C_WriteData(12,0x33);delay(5);	//一定要加延时,否则会接受不到
	
		I2C_WriteData(13,0x30);delay(5);
		I2C_WriteData(14,0x30);delay(5);	//24c02的第1到24地址单元作为密码存储区
		I2C_WriteData(15,0x30);delay(5); 	//必须放到while函数里
		I2C_WriteData(16,0x34);delay(5);   	//一定要加延时,否则会接受不到
	
		I2C_WriteData(17,0x30);delay(5);
		I2C_WriteData(18,0x30);delay(5);	 //24c02的第1到24地址单元作为密码存储区
		I2C_WriteData(19,0x30);delay(5);	 //必须放到while函数里
		I2C_WriteData(20,0x35);delay(5);	 //一定要加延时,否则会接受不到
	
		I2C_WriteData(21,0x30);delay(5);
		I2C_WriteData(22,0x30);delay(5);	 //24c02的第1到24地址单元作为密码存储区
		I2C_WriteData(23,0x30);delay(5);	 //必须放到while函数里
		I2C_WriteData(24,0x36);delay(5);	 //一定要加延时,否则会接受不到

		  	for(s7=1;s7<7;s7++)
			{
				k[s7]=I2C_ReadData(s7+34);		     //读取储存在35,36中的k1,k2
			}

		if(tr2==1)						     //如果TR2==1则初始化
		{
			tr2=0;
			I2C_WriteData(35,0x00);delay(5); //必须放到while函数里	将k1,k2清零 ,初始化
			I2C_WriteData(36,0x00);delay(5); //必须放到while函数里
			I2C_WriteData(37,0x00);delay(5); //必须放到while函数里	将k1,k2清零 ,初始化
			I2C_WriteData(38,0x00);delay(5); //必须放到while函数里
			I2C_WriteData(39,0x00);delay(5); //必须放到while函数里	将k1,k2清零 ,初始化
			I2C_WriteData(40,0x00);delay(5); //必须放到while函数里
			I2C_WriteData(41,0x00);delay(5); //必须放到while函数里	将k1,k2清零 ,初始化
		}
		if(tr0_ok==1)						//必须把验正密码也包括进去,否则会容易因为进入密码验证过多而出错
			{
					tr0_ok=0;
					ES=0; 
					for(i=1;i<25;i++)			  		
					{
						old[i]=I2C_ReadData(i);	 		//将从地址1开始读取的数依次存入old
						delay(5);
					}
					 ES=1;
				 
				if(a[1]==old[1]&&a[2]==old[2]&&a[3]==old[3]&&a[4]==old[4])				  //第一组密码验证
				{
						  ES=0;
							for(i=0;i<9;i++)	   
							{
							 SBUF = num10[i];	
							 delay(5);
							 while(!TI); 
							 TI = 0; 
							}
							ES=1;
							k[1]++;
				}
				if(a[1]==old[5]&&a[2]==old[6]&&a[3]==old[7]&&a[4]==old[8])				 //第二组密码验证
				{
					for(i=0;i<9;i++)	   //发送数据1给文本t0
							{
							ES=0;
							SBUF = num10[i];	
							delay(5);
							 while(!TI); 
							 TI = 0; 
							}
							ES=1;
							k[2]++;
				}
				if(a[1]==old[9]&&a[2]==old[10]&&a[3]==old[11]&&a[4]==old[12])			 //第三组密码验证
				{
					for(i=0;i<9;i++)	   //发送数据1给文本t0
							{
							SBUF = num10[i];	
							delay(5);
							 while(!TI); 
							 TI = 0; 
							}
							k[3]++;
				}
				if(a[1]==old[13]&&a[2]==old[14]&&a[3]==old[15]&&a[4]==old[16])			//第四组密码验证
				{
							for(i=0;i<9;i++)	   //发送数据1给文本t0
							{
							SBUF = num10[i];	
							delay(5);
							 while(!TI); 
							 TI = 0; 
							}
							k[4]++;
				}
				if(a[1]==old[17]&&a[2]==old[18]&&a[3]==old[19]&&a[4]==old[20])			//第五组密码验证
				{
					for(i=0;i<9;i++)	   //发送数据1给文本t0
							{
							SBUF = num10[i];	
							delay(5);
							 while(!TI); 
							 TI = 0; 
							};
							k[5]++;
				}
				if(a[1]==old[21]&&a[2]==old[22]&&a[3]==old[23]&&a[4]==old[24])		 //第六组密码验证
				{
					for(i=0;i<9;i++)	   //发送数据1给文本t0
							{
							SBUF = num10[i];	
							delay(5);
							 while(!TI); 
							 TI = 0; 
							}
							k[5]++;
				}
				else
				{
					P1=0xfd;  
				}
 /*=====================拆分k并转换成16进制======================================*/

			for(s2=1;s2<21;s2=s2+4)			  //万位	 4个一组
			{	  
				b[s2]=k[m1]/1000%10+48;
				m1++;							   //每进一次k+1
			}

			for(s3=2;s3<22;s3=s3+4)			  //千位  4个一组
			{
					b[s3]=k[1]/100%10+48;
					m2++;
			}

				for(s4=3;s4<23;s4=s4+4)			  //十位 4个一组
			{
			
				b[s4]=k[1]/10%10+48;				
			   	m3++;
			}

				for(s5=4;s5<24;s5=s5+4)			  //个位 4个一组
			{
				b[s5]=k[1]%10+48;
				m4++;
			}
/*========================将b写入从27开始到34的地址中============================================*/
			for(s1=1;s1<25;s1++)
			{										 //必须放到while函数里
				I2C_WriteData(s1+26,b[s1]);delay(5);//一定要加延时,否则会接受不到	//将k的值分别存入c[s]中	,从C1开始,四个一组(4位数)。
			}										 //将k的值分别存入b[s]中	,从C1开始,四个一组(4位数)。
/*==========================将k的值存放到地址从35,36开始第一个人为k1========================================*/
//			for(s6=1;s6<7;s6++)
//			{
//				I2C_WriteData(s6+34,k[s6]);delay(5); //必须放到while函数里
//			}
		}
/*=======================================================================
					从s+26中读取的k的值分别存入c[s]中,
			从C1开始,四个一组(4位数),将万位,千万,百位十位分别赋值给c1,c2,c3,c4
。======================================================================*/	
			for(s=1;s<25;s++)
			{
				c[s]=I2C_ReadData(s+26);	//从s+26中读取的k的值分别存入c[s]中	,从C1开始,四个一组(4位数),将万位,千万,百位十位分别赋值给c1,c2,c3,c4。
			}


			fasong();	//发送函数,发送16进制	


	 }	
}

#include <reg52.h>
#include <chuankou.h>
#include <delay.h>
#include <eeprom.h>
#define uchar unsigned char
#define uint unsigned int
bit tr0_ok;
uchar tr0,n,a[5],EEPROM_DATA,z,i,tr1,c[8],d[5],z1,tr2,s,s1,s2,s3,s4,s5,s6,s7,s8;
uchar I2C_ReadData(uchar ADDR);
uchar xdata num11[]={0x74,0x30,0x2e,0x74,0x78,0x74};	   //t0.txt								//=
uchar xdata num13[]={0x74,0x31,0x2e,0x74,0x78,0x74};	   //t1.txt								//=
uchar xdata num14[]={0x74,0x32,0x2e,0x74,0x78,0x74};	   //t2.txt								//=
uchar xdata num15[]={0x74,0x33,0x2e,0x74,0x78,0x74};	   //t3.txt								//=
uchar data num16[]={0x74,0x34,0x2e,0x74,0x78,0x74};	   //t4.txt								//=
uchar data num17[]={0x74,0x35,0x2e,0x74,0x78,0x74};	   //t5.txt								//=


uchar data num1[]={0x2b,0x22,0x31,0x22};						// +"1"
uchar data num2[]={0x2b,0x22,0x32,0x22};						// +"2"
uchar data num3[]={0x2b,0x22,0x33,0x22};						// +"3"
uchar data num4[]={0x2b,0x22,0x34,0x22};						// +"4"
uchar data num5[]={0x2b,0x22,0x35,0x22};						// +"5"
uchar data num6[]={0x2b,0x22,0x36,0x22};						// +"6"
uchar data num7[]={0x2b,0x22,0x37,0x22};						// +"7"
uchar data num8[]={0x2b,0x22,0x38,0x22};						// +"8"
uchar data num9[]={0x2b,0x22,0x39,0x22};						// +"9"
uchar data num0[]={0x2b,0x22,0x30,0x22};						// +"0"
uchar data num12[]={0xff,0xff,0xff};							//


uchar xdata num10[]={0x70,0x61,0x67,0x65,0x20,0x31,0xff,0xff,0xff};//


/*=======初始化=========*/
void init()
{
	/*定义占空比*/
	TMOD = 0x20;	   /*=============使用工作模式1会失败 ================*/
	
	/*定义串口*/
    SM0 = 0;
	SM1 = 1;		   //工作模式1
	REN = 1;
	
	
	TH1 = 0xfd;
	TL1 = 0xfd;        //比特率9600
	TR1 = 1;   		  
	EA = 1;			   //开总中断
	ES = 1;			   //串口中断打开
}
/*=========串口============*/
void fasong()
{
/*========================发送第一个人==================================*/
	if(EEPROM_DATA==0xb1)     //发送从c1到c4
	{
		for(z=1;z<5;z++)	   //判断每个数是多少
		{
		 ES=0;
		for(i=0;i<6;i++)	   		  //t0.txt
			{
				SBUF = num11[i];	
				delay(5);
				while(!TI); 
				TI = 0; 
			}
			SBUF =0x3d;	
				delay(5);
				while(!TI); 
				TI = 0; 
					   //=
			for(i=0;i<6;i++)	   	   //t0.txt
			{
				SBUF = num11[i];	
				delay(5);
				while(!TI); 
				TI = 0; 
			}
		switch(c[z])
		{
			case 0x31: for(i=0;i<4;i++)	   //发送数据1给文本t0
						{
						SBUF = num1[i];	
						delay(5);
						while(!TI); 
						TI = 0; 
						}
						break;		
			case 0x32:	for(i=0;i<4;i++)	  //发送数据2给文本t0
						{
						 SBUF = num2[i];
						 while(!TI); 
						 TI = 0; 
						}break;
			case 0x33: for(i=0;i<4;i++)	  //发送数据3给文本t0
						{
						SBUF = num3[i];
						while(!TI); 
						TI = 0; 
						}break;
			case 0x34:	for(i=0;i<4;i++)	 //发送数据4给文本t0
						{
						SBUF = num4[i];
						while(!TI); 
						TI = 0; 
						}break;
			case 0x35:	for(i=0;i<4;i++)	 //发送数据5给文本t0
						{
						SBUF = num5[i];	
						while(!TI); 
						TI = 0;
						}break;
			case 0x36:	for(i=0;i<4;i++)	 //发送数据6给文本t0
						{
						SBUF = num6[i];	
						 while(!TI); 
						 TI = 0;	 
						}break;
			case 0x37:	for(i=0;i<4;i++)	 //发送数据7给文本t0
						{
						SBUF = num7[i];
						 while(!TI); 
						 TI = 0;	
						}break;
			case 0x38:	for(i=0;i<4;i++)	  //发送数据8给文本t0
						{						
						SBUF = num8[i];	
						 while(!TI); 
						 TI = 0;	
						}break;
			case 0x39:	for(i=0;i<4;i++)	 //发送数据9给文本t0
						{
						SBUF = num9[i];	
						 while(!TI);  
						 TI = 0;
						}break;
			case 0x30:	for(i=0;i<4;i++)	 //发送数据0给文本t0
						{
						SBUF = num0[i];	
						 while(!TI); 
						 TI = 0;
						}break;  
		} 
		 for(i=0;i<3;i++)	 //发送数据0给文本t0
						{
						SBUF = num12[i];	
						 while(!TI); 
						 TI = 0;
						 }
		ES=1;
		}
		
		EEPROM_DATA=0;	//串口需要清零,要么一直发送停不下来
	}
/*========================发送第二个人==================================*/
	if(EEPROM_DATA==0xb2)
	{
		for(z1=5;z1<9;z1++)
		{
		 ES=0;
		 for(i=0;i<6;i++)	   		  //t1.txt
			{
				SBUF = num13[i];	
				delay(5);
				while(!TI); 
				TI = 0; 
			}
			SBUF =0x3d;	
				delay(5);
				while(!TI); 
				TI = 0; 
					   //=
			for(i=0;i<6;i++)	   	   //t1.txt
			{
				SBUF = num13[i];	
				delay(5);
				while(!TI); 
				TI = 0; 
			}
		switch(c[z1])
		{
			case 0x31: for(i=0;i<4;i++)	   //发送数据1给文本t0
						{
						SBUF = num1[i];	
						delay(5);
						 while(!TI); 
						 TI = 0; 
						}break;		
			case 0x32:	 for(i=0;i<4;i++)	  //发送数据2给文本t0
						{
						SBUF = num2[i];
						 while(!TI); 
						 TI = 0; 
						}break;
			case 0x33: for(i=0;i<4;i++)	  //发送数据3给文本t0
						{
						SBUF = num3[i];
						 while(!TI); 
						 TI = 0; 
						}break;
			case 0x34:	for(i=0;i<4;i++)	 //发送数据4给文本t0
						{
						SBUF = num4[i];
						 while(!TI); 
						 TI = 0; 
						}break;
			case 0x35:	for(i=0;i<4;i++)	 //发送数据5给文本t0
						{
						SBUF = num5[i];	
						 while(!TI); 
						 TI = 0;
						}break;
			case 0x36:	for(i=0;i<4;i++)	 //发送数据6给文本t0
						{
						SBUF = num6[i];	
						 while(!TI); 
						 TI = 0;	 
						}break;
			case 0x37:	for(i=0;i<4;i++)	 //发送数据7给文本t0
						{
						SBUF = num7[i];
						 while(!TI); 
						 TI = 0;	
						}break;
			case 0x38:	for(i=0;i<4;i++)	  //发送数据8给文本t0
						{						
						SBUF = num8[i];	
						 while(!TI); 
						 TI = 0;	
						}break;
			case 0x39:	for(i=0;i<4;i++)	 //发送数据9给文本t0
						{
						SBUF = num9[i];	
						 while(!TI);  
						 TI = 0;
						}break;
			case 0x30:	for(i=0;i<4;i++)	 //发送数据0给文本t0
						{
						SBUF = num0[i];	
						 while(!TI); 
						 TI = 0;
						}break;  
		} 
		for(i=0;i<3;i++)	 //发送数据0给文本t0
						{
						SBUF = num12[i];	
						 while(!TI); 
						 TI = 0;
						 }
		ES=1;
		}
		EEPROM_DATA=0;//串口需要清零,要么一直发送停不下来
	}


/*========================发送第三个人==================================*/
	if(EEPROM_DATA==0xb3)     //发送从c1到c4
	{
		for(z=1;z<5;z++)	   //判断每个数是多少
		{
		 ES=0;
		for(i=0;i<6;i++)	   		  //t2.txt
			{
				SBUF = num14[i];	
				delay(5);
				while(!TI); 
				TI = 0; 
			}
			SBUF =0x3d;	
				delay(5);
				while(!TI); 
				TI = 0; 
					   //=
			for(i=0;i<6;i++)	   	   //t2.txt
			{
				SBUF = num14[i];	
				delay(5);
				while(!TI); 
				TI = 0; 
			}
		switch(c[z])
		{
			case 0x31: for(i=0;i<4;i++)	   //发送数据1给文本t0
						{
						SBUF = num1[i];	
						delay(5);
						while(!TI); 
						TI = 0; 
						}
						break;		
			case 0x32:	for(i=0;i<4;i++)	  //发送数据2给文本t0
						{
						 SBUF = num2[i];
						 while(!TI); 
						 TI = 0; 
						}break;
			case 0x33: for(i=0;i<4;i++)	  //发送数据3给文本t0
						{
						SBUF = num3[i];
						while(!TI); 
						TI = 0; 
						}break;
			case 0x34:	for(i=0;i<4;i++)	 //发送数据4给文本t0
						{
						SBUF = num4[i];
						while(!TI); 
						TI = 0; 
						}break;
			case 0x35:	for(i=0;i<4;i++)	 //发送数据5给文本t0
						{
						SBUF = num5[i];	
						while(!TI); 
						TI = 0;
						}break;
			case 0x36:	for(i=0;i<4;i++)	 //发送数据6给文本t0
						{
						SBUF = num6[i];	
						 while(!TI); 
						 TI = 0;	 
						}break;
			case 0x37:	for(i=0;i<4;i++)	 //发送数据7给文本t0
						{
						SBUF = num7[i];
						 while(!TI); 
						 TI = 0;	
						}break;
			case 0x38:	for(i=0;i<4;i++)	  //发送数据8给文本t0
						{						
						SBUF = num8[i];	
						 while(!TI); 
						 TI = 0;	
						}break;
			case 0x39:	for(i=0;i<4;i++)	 //发送数据9给文本t0
						{
						SBUF = num9[i];	
						 while(!TI);  
						 TI = 0;
						}break;
			case 0x30:	for(i=0;i<4;i++)	 //发送数据0给文本t0
						{
						SBUF = num0[i];	
						 while(!TI); 
						 TI = 0;
						}break;  
		} 
		 for(i=0;i<3;i++)	 //发送数据0给文本t0
						{
						SBUF = num12[i];	
						 while(!TI); 
						 TI = 0;
						 }
		ES=1;
		}
		
		EEPROM_DATA=0;	//串口需要清零,要么一直发送停不下来
	}
	/*========================发送第四个人==================================*/
	if(EEPROM_DATA==0xb4)     //发送从c1到c4
	{
		for(z=1;z<5;z++)	   //判断每个数是多少
		{
		 ES=0;
		for(i=0;i<6;i++)	   		  //t3.txt
			{
				SBUF = num15[i];	
				delay(5);
				while(!TI); 
				TI = 0; 
			}
			SBUF =0x3d;	
				delay(5);
				while(!TI); 
				TI = 0; 
					   //=
			for(i=0;i<6;i++)	   	   //t3.txt
			{
				SBUF = num15[i];	
				delay(5);
				while(!TI); 
				TI = 0; 
			}
		switch(c[z])
		{
			case 0x31: for(i=0;i<4;i++)	   //发送数据1给文本t0
						{
						SBUF = num1[i];	
						delay(5);
						while(!TI); 
						TI = 0; 
						}
						break;		
			case 0x32:	for(i=0;i<4;i++)	  //发送数据2给文本t0
						{
						 SBUF = num2[i];
						 while(!TI); 
						 TI = 0; 
						}break;
			case 0x33: for(i=0;i<4;i++)	  //发送数据3给文本t0
						{
						SBUF = num3[i];
						while(!TI); 
						TI = 0; 
						}break;
			case 0x34:	for(i=0;i<4;i++)	 //发送数据4给文本t0
						{
						SBUF = num4[i];
						while(!TI); 
						TI = 0; 
						}break;
			case 0x35:	for(i=0;i<4;i++)	 //发送数据5给文本t0
						{
						SBUF = num5[i];	
						while(!TI); 
						TI = 0;
						}break;
			case 0x36:	for(i=0;i<4;i++)	 //发送数据6给文本t0
						{
						SBUF = num6[i];	
						 while(!TI); 
						 TI = 0;	 
						}break;
			case 0x37:	for(i=0;i<4;i++)	 //发送数据7给文本t0
						{
						SBUF = num7[i];
						 while(!TI); 
						 TI = 0;	
						}break;
			case 0x38:	for(i=0;i<4;i++)	  //发送数据8给文本t0
						{						
						SBUF = num8[i];	
						 while(!TI); 
						 TI = 0;	
						}break;
			case 0x39:	for(i=0;i<4;i++)	 //发送数据9给文本t0
						{
						SBUF = num9[i];	
						 while(!TI);  
						 TI = 0;
						}break;
			case 0x30:	for(i=0;i<4;i++)	 //发送数据0给文本t0
						{
						SBUF = num0[i];	
						 while(!TI); 
						 TI = 0;
						}break;  
		} 
		 for(i=0;i<3;i++)	 //发送数据0给文本t0
						{
						SBUF = num12[i];	
						 while(!TI); 
						 TI = 0;
						 }
		ES=1;
		}
		
		EEPROM_DATA=0;	//串口需要清零,要么一直发送停不下来
	}
	/*========================发送第五个人==================================*/
	if(EEPROM_DATA==0xb5)     //发送从c1到c4
	{
		for(z=1;z<5;z++)	   //判断每个数是多少
		{
		 ES=0;
		for(i=0;i<6;i++)	   		  //t4.txt
			{
				SBUF = num16[i];	
				delay(5);
				while(!TI); 
				TI = 0; 
			}
			SBUF =0x3d;	
				delay(5);
				while(!TI); 
				TI = 0; 
					   //=
			for(i=0;i<6;i++)	   	   //t4.txt
			{
				SBUF = num16[i];	
				delay(5);
				while(!TI); 
				TI = 0; 
			}
		switch(c[z])
		{
			case 0x31: for(i=0;i<4;i++)	   //发送数据1给文本t0
						{
						SBUF = num1[i];	
						delay(5);
						while(!TI); 
						TI = 0; 
						}
						break;		
			case 0x32:	for(i=0;i<4;i++)	  //发送数据2给文本t0
						{
						 SBUF = num2[i];
						 while(!TI); 
						 TI = 0; 
						}break;
			case 0x33: for(i=0;i<4;i++)	  //发送数据3给文本t0
						{
						SBUF = num3[i];
						while(!TI); 
						TI = 0; 
						}break;
			case 0x34:	for(i=0;i<4;i++)	 //发送数据4给文本t0
						{
						SBUF = num4[i];
						while(!TI); 
						TI = 0; 
						}break;
			case 0x35:	for(i=0;i<4;i++)	 //发送数据5给文本t0
						{
						SBUF = num5[i];	
						while(!TI); 
						TI = 0;
						}break;
			case 0x36:	for(i=0;i<4;i++)	 //发送数据6给文本t0
						{
						SBUF = num6[i];	
						 while(!TI); 
						 TI = 0;	 
						}break;
			case 0x37:	for(i=0;i<4;i++)	 //发送数据7给文本t0
						{
						SBUF = num7[i];
						 while(!TI); 
						 TI = 0;	
						}break;
			case 0x38:	for(i=0;i<4;i++)	  //发送数据8给文本t0
						{						
						SBUF = num8[i];	
						 while(!TI); 
						 TI = 0;	
						}break;
			case 0x39:	for(i=0;i<4;i++)	 //发送数据9给文本t0
						{
						SBUF = num9[i];	
						 while(!TI);  
						 TI = 0;
						}break;
			case 0x30:	for(i=0;i<4;i++)	 //发送数据0给文本t0
						{
						SBUF = num0[i];	
						 while(!TI); 
						 TI = 0;
						}break;  
		} 
		 for(i=0;i<3;i++)	 //发送数据0给文本t0
						{
						SBUF = num12[i];	
						 while(!TI); 
						 TI = 0;
						 }
		ES=1;
		}
		
		EEPROM_DATA=0;	//串口需要清零,要么一直发送停不下来
	}
	/*========================发送第六个人==================================*/
	if(EEPROM_DATA==0xb6)     //发送从c1到c4
	{
		for(z=1;z<5;z++)	   //判断每个数是多少
		{
		 ES=0;
		for(i=0;i<6;i++)	   		  //t5.txt
			{
				SBUF = num17[i];	
				delay(5);
				while(!TI); 
				TI = 0; 
			}
			SBUF =0x3d;	
				delay(5);
				while(!TI); 
				TI = 0; 
					   //=
			for(i=0;i<6;i++)	   	   //t5.txt
			{
				SBUF = num17[i];	
				delay(5);
				while(!TI); 
				TI = 0; 
			}
		switch(c[z])
		{
			case 0x31: for(i=0;i<4;i++)	   //发送数据1给文本t0
						{
						SBUF = num1[i];	
						delay(5);
						while(!TI); 
						TI = 0; 
						}
						break;		
			case 0x32:	for(i=0;i<4;i++)	  //发送数据2给文本t0
						{
						 SBUF = num2[i];
						 while(!TI); 
						 TI = 0; 
						}break;
			case 0x33: for(i=0;i<4;i++)	  //发送数据3给文本t0
						{
						SBUF = num3[i];
						while(!TI); 
						TI = 0; 
						}break;
			case 0x34:	for(i=0;i<4;i++)	 //发送数据4给文本t0
						{
						SBUF = num4[i];
						while(!TI); 
						TI = 0; 
						}break;
			case 0x35:	for(i=0;i<4;i++)	 //发送数据5给文本t0
						{
						SBUF = num5[i];	
						while(!TI); 
						TI = 0;
						}break;
			case 0x36:	for(i=0;i<4;i++)	 //发送数据6给文本t0
						{
						SBUF = num6[i];	
						 while(!TI); 
						 TI = 0;	 
						}break;
			case 0x37:	for(i=0;i<4;i++)	 //发送数据7给文本t0
						{
						SBUF = num7[i];
						 while(!TI); 
						 TI = 0;	
						}break;
			case 0x38:	for(i=0;i<4;i++)	  //发送数据8给文本t0
						{						
						SBUF = num8[i];	
						 while(!TI); 
						 TI = 0;	
						}break;
			case 0x39:	for(i=0;i<4;i++)	 //发送数据9给文本t0
						{
						SBUF = num9[i];	
						 while(!TI);  
						 TI = 0;
						}break;
			case 0x30:	for(i=0;i<4;i++)	 //发送数据0给文本t0
						{
						SBUF = num0[i];	
						 while(!TI); 
						 TI = 0;
						}break;  
		} 
		 for(i=0;i<3;i++)	 //发送数据0给文本t0
						{
						SBUF = num12[i];	
						 while(!TI); 
						 TI = 0;
						 }
		ES=1;
		}
		
		EEPROM_DATA=0;	//串口需要清零,要么一直发送停不下来
	}	 

}
void UART() interrupt 4
{
	 	
	if(RI)
	{	 	
		RI = 0;
		EEPROM_DATA = SBUF;

		if(EEPROM_DATA==0xaa)	  //接受0xaa开始储存数值
		{
			tr1=1;	
		}

		if(EEPROM_DATA==0xdd)	  //进行初始化
		{
			tr2=1;	
		}

		if(tr1==1)					   //开始储存数值到a[n];
		{	 	
			a[n]=EEPROM_DATA;
			n++;			
			if(n==5)	//4个一组
			{
				P1=~P1 ;
				n=0;
				tr1=0;
				tr0_ok=1;
			}					
		}
		
	}
}

猜你喜欢

转载自blog.csdn.net/qq_42444944/article/details/84954928
今日推荐