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

📄 2main.c

📁 stc单片机读内部eeprom代码
💻 C
字号:
#include "reg52.h"
#define uchar unsigned char
#define unit  unsigned int
uchar Data[11],Data0[11],Data1[11]={0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00};
uchar number,flag,flag1,flag2,c;
sfr WDT=0XE1;
sbit LED=P1^7;
sbit LED1=P1^6;
sbit LED2=P1^5;

 /*********MCU初始化**************/
void MCU_Init(void)
{
        TMOD = 0x21;
        TH1 = 250;
        TL1 = 250;
        SCON = 0x50;
        PCON = 0x80;
    	EA = 1;
      	ES = 1;
		TR1=1;
}
/***********串口发送一个字节****************/

 void send(uchar S_Data)
   {
    SBUF = S_Data;
    while(TI == 0);
     TI =0;
   }

/*************接收中断********************/
void Serial() interrupt 4 using 2
{  
    
	if(RI == 1)
    {
		LED2=0;
		c=SBUF;

		Data[number++]=c;
		RI = 0;
		flag++;
    }
}

/************生成校验码子程序***********/
void XiaoYan(uchar *a)
{
  uchar i, all=0;
 
   for(i=0;i<10;i++)
   all=all+a[i];
   all=~all;
   all=all-1;
   a[i]=all;
}



/****************串口发送子程序****************/
void sends(uchar *b )
{
	
	uchar count,i;
	count=11;
	LED1=0;
	for(i=0;i<count;i++)
		send(b[i]);
}
/**************主程序***********************/
void main(void)
 {
 	unsigned ld=0,i;
	//LED1=0;
	//LED2=0;

  	MCU_Init();
  	while(1)
  	{
	  	while(1)
	 	{
			LED1=1;
			LED2=1;
		  	WDT=0X34;
		  	ld++;
		  	if(ld>3000)
		  	{
		  		ld=0;
				LED=!LED;
		  	}
		  	if(flag==10)
		  	{
		      	flag=0;
			  	number=0;
			  	c=0;
			  	XiaoYan(Data);
			  	for(i=0;i<11;i++)
			  	Data0[i]=Data[i];
			  	sends(Data);
			  	flag2=1;
			  
		   	}
		   	if(flag2)
		   		break;
	   	}

	 	if(c==0x01)
 	 	{
			sends(Data0);
			flag1=1;
	  	}
	 	if(c==0x02)
	  	{	 
		  	XiaoYan(Data1);
		  	sends(Data1);
		  	flag1=1;
	  	}
  
	  	if(flag1)
	  	break;

	 	WDT=0X34;
  	}
	//while(1)
	{
	 	WDT=0X34;
	}
   
  }

  

⌨️ 快捷键说明

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